Tải bản đầy đủ (.doc) (8 trang)

Dùng visual basic để xây dựng chương trình in danh sách học sinh trong các kì thi

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (211.61 KB, 8 trang )

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc

MÔ TẢ GIẢI PHÁP
Mã số: ......................................................................................................
1. Tên sáng kiến: Dùng Visual Basic để xây dựng chương trình in danh
sách học sinh trong các kì thi.
2. Lĩnh vực áp dụng sáng kiến: Chuyên môn – môn Tin học
3. Mô tả bản chất của sáng kiến:
3.1. Tình trạng giải pháp đã biết:
Tin học là một công cụ quan trọng phục vụ con người hiện đại, thành
thạo kỹ năng tin học giúp chúng ta tiết kiệm thời gian và công sức. Chỉ với
những thao tác nhanh chóng trên máy tính, con người có thể hoàn thành tốt
những vấn đề liên quan đến văn bản, bảng tính toán, danh sách học sinh,… Tin
học còn làm tăng năng suất và hiệu quả trong công việc và học tập. Có kỹ năng
tin học vững vàng, cá nhân có khả năng xử lý công việc chuyên nghiệp, góp
phần giúp nhà trường được vận hành trôi chảy ở mọi khâu.
Ở trường tôi hằng năm phải thực hiện tổ chức các đợt thi, công việc ở văn
phòng thường xuyên thành lập danh sách cho các phòng thi. Nhằm nâng cao
chất lượng học tập của học sinh, nhà trường cho học sinh khối 10, khối 11 ngồi
xen kẽ với nhau trong cùng một phòng thi. Danh sách phòng thi có dạng như
sau:

Trang 1


Để thực hiện được danh sách như trên bộ phận văn phòng gặp phải những
hạn chế như sau:
+ Còn sử dụng các thao tác đơn giản như cắt và dán, chưa ứng dụng triệt để
công nghệ thông tin vào công việc một cách tự động hoá.
+ Thao tác cắt, dán được lặp đi lặp lại nhiều lần dễ gây nhằm lẫn dẫn đến có


thể xẩy ra một vài sai sót.
+ Văn phòng thường sử dụng danh sách học sinh đầu năm nên sau khi lập
danh sách thi vẫn còn tên một vài học sinh đã bỏ học từ lâu.
+ Văn phòng chưa sử dụng danh sách trên Vnedu (đã cập nhật số học sinh
đã nghỉ học thường xuyên) để lập danh sách phòng thi.
+ Chưa tiết kiệm được thời gian và công sức để tăng năng suất và hiệu quả
trong công việc.
Chính từ những hạn chế đó, bản thân tôi đã nghiên cứu và xây dựng một
giải pháp mới có tên là: “Dùng Visual Basic để xây dựng chương trình in
danh sách học sinh trong các kì thi”. Giải pháp này nhằm xây dựng chương
trình chỉ cần lấy danh sách học sinh trên Vnedu sau đó nhấn vào nút “Lập danh
sách” thì chương trình tự động lập danh sách từng phòng thi xuất ra dưới dạng
Excel (mỗi phòng thi là một Sheet). Chương trình này còn có những chức năng
ưu việt khắc phục những hạn chế trên như sau:
+ Tiết kiệm được thời gian và công sức để tăng năng suất và hiệu quả trong
công việc.
+ Chỉ cần lấy danh sách học sinh trên Vnedu rồi chép vào 2 thư mục “Khoi
10”, “Khoi 11” thì chương trình tự động lấy dữ liệu trong 2 thư mục này để lập
danh sách phòng thi.
+ Chương trình đã loại bỏ những học sinh đã nghỉ học nên không còn
trường hợp danh sách phòng thi có học sinh đã nghỉ học.
+ Không còn thao tác cắt, dán nên hạn chế tối đa việc nhầm lẫn và sai sót.
+ Việc lập danh sách phòng thi một cách tự động, ứng dụng triệt để công
nghệ thông tin vào công việc trong nhà trường.

Trang 2


3.2. Nội dung giải pháp đề nghị công nhận là sáng kiến:
3.2.1. Mục đích của giải pháp:

- Khi thực hiện giải pháp này sẽ tạo cho công tác văn phòng lập danh sách
phòng thi một cách nhanh chóng, hiệu quả hơn.
- Ứng dụng giải pháp này sẽ giúp công việc thực hiện một cách tự động,
tiến hành một cách chính xác, khoa học, hợp lí có ứng dụng công nghệ thông tin
phù hợp với yêu cầu đổi mới.
3.2.2. Điểm mới của giải pháp:
Chương trình này có những chức năng ưu việt giúp ích trong công tác văn
phòng:
+ Tiết kiệm được thời gian và công sức để tăng năng suất và hiệu quả trong
công việc.
+ Chỉ cần lấy danh sách học sinh trên Vnedu rồi chép vào 2 thư mục “Khoi
10”, “Khoi 11” thì chương trình tự động lấy dữ liệu trong 2 thư mục này để lập
danh sách phòng thi.
+ Chương trình đã loại bỏ những học sinh đã nghỉ học nên không còn
trường hợp danh sách phòng thi có học sinh đã nghỉ học.
+ Không còn thao tác cắt, dán nên hạn chế tối đa việc nhầm lẫn và sai sót.
+ Việc lập danh sách phòng thi một cách tự động, ứng dụng triệt để công
nghệ thông tin vào công việc trong nhà trường.
3.2.3. Bản chất của giải pháp:
- Với giải pháp này sử dụng ngôn ngữ lập trình Visual Basic để xây dựng
chương trình nhằm phục vụ cho công tác văn phòng với công việc lập danh sách
phòng thi ở các đợt thi của học sinh trong nhà trường.
- Để lập danh sách phòng thi ta thực hiện các bước như sau:
 Bước 1: Lấy tất cả danh sách học sinh khối 10, khối 11 trên mạng
Vnedu rồi sao chép vào 2 thư mục “Khoi 10”, “Khoi 11”

Trang 3


 Bước 2: Chạy chương trình bằng cách nháy đúp “CT Xep phong

thi.exe” ta được giao diện chương trình như sau:

(Giao diện chương trình)
 Bước 2: Ta xem đủ danh sách các lớp hay không và có trường hợp số
phòng thi không phải bắt đầu bằng 1 (Phòng thi số 5, Phòng thi số 6,…) thì ta
sửa lại cho phù hợp.
 Bước 3: Cuối cùng ta nháy vào nút:

Trang 4


Sau khi nháy vào nút “Lập danh sách” ta được kết quả với mỗi Sheet là
một phòng thi như sau:

- Để làm được chương trình có giao diện và đạt được kết quả như trên tôi
sử dụng ngôn ngữ lập trình Visual Basic xây dựng các thủ tục hỗ trợ giải quyết
các công việc hoàn thiện giải pháp. Một vài thủ tục như sau:
Thủ tục lấy các tập tin danh sách các lớp trong 2 thư mục “Khoi 10”,
“Khoi 11”:
+ Private Sub FileKhoi10()
Dim F As String
F = Dir$(App.Path & "\Khoi10\" & "*.xls")
List1.Clear
While Len(F)
List1.AddItem F
F = Dir$
Wend
End Sub
+ Private Sub FileKhoi11()
Dim F As String

F = Dir$(App.Path & "\Khoi11\" & "*.xls")
Trang 5


List2.Clear
While Len(F)
List2.AddItem F
F = Dir$
Wend
End Sub
Thủ tục lấy danh sách học sinh các lớp đưa vào một mảng để sắp xếp, xử
lí rồi ghi ra File Excel:
+ Private Sub DocArr10()

--- Đọc danh sách HS khối 10 đưa vào mảng

---Dim arr, Item, N
Dim FileName As String, SheetName As String, RangeAddress As
String
i=0
N = List1.ListCount
For j = 0 To N - 1
FileName = App.Path & "\Khoi10\" & List1.List(j)
SheetName = "Sheet1"
RangeAddress = "E8:E55"
arr = GetData(FileName, SheetName, RangeAddress)
If IsArray(arr) Then
For Each Item In arr
If Item <> "" Then
i=i+1

MangHS10(i).HoTen = Item
MangHS10(i).Lop = Left(Right(List1.List(j), 9), 5)
End If
Next
End If
Next
SL10 = i
End Sub
+ Private Sub DocArr11()

--- Đọc danh sách HS khối 11 đưa vào mảng

---Dim arr, Item, N
Dim FileName As String, SheetName As String, RangeAddress As
String
i=0
N = List2.ListCount
For j = 0 To N - 1
FileName = App.Path & "\Khoi11\" & List2.List(j)
SheetName = "Sheet1"
Trang 6


RangeAddress = "E8:E55"
arr = GetData(FileName, SheetName, RangeAddress)
If IsArray(arr) Then
For Each Item In arr
If Item <> "" Then
i=i+1
MangHS(i).HoTen = Item

MangHS(i).Lop = Left(Right(List2.List(j), 9), 5)
End If
Next
End If
Next
SL11 = i
End Sub
Thủ tục xuất kết quả ra tập tin Excel:
Private Sub GhiFile()
Set xlTmp = CreateObject("Excel.Application")
xlTmp.Workbooks.Open App.Path & "\KQ.xls"
'Set xlSht = Excel.Worksheet
'---------- Ghi 11---phong = Int(SL11 / 24) + 1
trang = 0
For j = 1 To phong
Set XlSht = xlTmp.Sheets(j)
XlSht.Cells(3, 8) = Text2.Text + j - 1 '-------- So phong -----------For i = 1 To 24
XlSht.Cells(i + 5, 3) = MangHS(i + trang).HoTen
XlSht.Cells(i + 5, 4) = MangHS(i + trang).Lop
Next
trang = trang + i - 1
Next
'---------- Ghi 10---phong = Int(SL10 / 24) + 1
trang = 0
For j = 1 To phong
Set XlSht = xlTmp.Sheets(j)
For i = 1 To 24
XlSht.Cells(i + 5, 9) = MangHS10(i + trang).HoTen
XlSht.Cells(i + 5, 10) = MangHS10(i + trang).Lop
Next

trang = trang + i - 1
Next
xlTmp.Visible = True
'xlTmp.Workbooks.Close
Trang 7


'xlTmp.Quit
End Sub

3.3. Khả năng áp dụng của giải pháp:
Với giải pháp này tôi đã áp dụng thành công với hầu hết các đợt thi của
trường trong các năm qua.
3.4. Hiệu quả thu được do áp dụng giải pháp:
Sau khi thực hiện giải pháp “Dùng Visual Basic để xây dựng chương
trình in danh sách học sinh trong các kì thi” tôi nhận thấy đạt được một số kết
quả sau:
+ Giúp bộ phận văn phòng sử dụng triệt để công nghệ thông tin vào công
việc một cách tự động hoá.
+ Do sử dụng danh sách học sinh trên mạng Vnedu và không còn các thao
tác thủ công nên tất cả danh sách phòng thi trong các đợt thi không còn sai sót
như: Dư hoặc thiếu học sinh hay còn tên những học sinh đã nghỉ học từ lâu.
+ Giúp bộ phận văn phòng tiết kiệm được rất nhiều thời gian và công sức để
tăng năng suất và hiệu quả trong công việc.
3.5. Những người tham gia tổ chức áp dụng sáng kiến lần đầu:
Giáo viên dạy môn Tin học và giáo viên làm công tác văn phòng.
3.6. Tài liệu tham khảo:
- Thông tin và danh sách phòng thi ở bộ phận văn phòng.
- Ngôn ngữ lập trình Visual Basic trên mạng Internet.
Bến Tre, ngày 10 tháng 03 năm 2018


Trang 8



×