TRƯỜNG ĐẠI HỌC HỊA BÌNH KHOA CƠNG NGHỆ THƠNG TIN – ĐIỆN TỬ VIỄN THÔNG Báo cáo kết đề tài nghiên cứu khoa học November 27 2019 Chọn ngẫu nhiên tạo đề thi từ ngân hàng đề thi câu hỏi, đáp án để tạo đề thi trắc nghiệm Người dự thi, người đề thi hỗ trợ tối đa để việc đề thuận lợi Quá trình thi người dự thi phép chọn thứ tự tùy ý Làm đi, làm lại nhiều lần phương án lựa chọn uối tính điểm Mọi lý dẫn đến làm bị gián đoạn tính đến Khi làm tiếp máy tính, điện kết cũ lưu Thời gian làm trừ… Đề thi dịng text, hình ảnh… Xây dựng phần mềm thi trắc nghiệm đa cho Trường Đại học Hịa Bình Báo cáo kết đề tài nghiên cứu khoa học Mục lục I.Khái niệm chung kiểm tra trắc nghiệm khách quan 1.Khái niệm chung 2.Áp dụng kiểm tra trắc nghiệm khách quan II.Xây dựng phần mềm 1.Xây dựng ngân hàng câu hỏi trắc nghiệm 2.Xây dựng cách lập đề kiểm tra từ ngân hàng câu hỏi 4.Hướng dẫn thực thi trắc nghiệm dùng phần mềm thi trắc nghiệm đa trường Đại học Hịa Bình 5.Code phần mềm 12 III.Quá trình thử nghiệm 35 Xây dựng phần mềm thi trắc nghiệm đa cho trường Đại học Hịa Bình Báo cáo kết đề tài nghiên cứu khoa học I.Khái niệm chung kiểm tra trắc nghiệm khách quan (Multiple choice objective Test) 1.Khái niệm chung Kiểm tra trắc nghiệm khách quan hình thức kiểm tra, hình thức đánh giá sử dụng sớm rộng rãi nhiều lĩnh vực khác nhau, từ đánh giá người nói chung đến đánh giá phẩm chất tinh thần, tâm lý, đánh giá tốc độ phản ứng đánh giá chức tư duy, đánh giá phản ứng với tác động bên ngồi….Hình thức kiểm tra trắc nghiệm khách quan tiêu chuẩn hóa, nhanh gọn thời gian cho kết khách quan không phụ thuộc vào ý kiến chủ quan người tiến hành kiểm tra người kiểm tra Kiểm tra trắc nghiệm khách quan phát triển nhanh nhiều lĩnh vực có lĩnh vực thuộc Bộ GD&ĐT 2.Áp dụng kiểm tra trắc nghiệm khách quan Trong ngành sư phạm kiểm tra trắc nghiệm khách quan cho phép kiểm tra kết học tập giai đoạn khác nhau, đánh giá hiệu chương trình đào tạo kết trình đào tạo Kiểm tra khách quan sử dụng ngành sư phạm sớm Năm 1904 nhà tâm lý học người Pháp A Vine dùng loạt test để chọn em phát triển tâm lý khơng bình thường Kiểm tra trắc nghiệm khách quan dựa trả lời hay không câu hỏi cách lựa chọn số câu trả lời cho sẵn có số câu trả lời Dễ thấy, số câu hỏi ít, số lựa chọn câu trả lời xác suất trả lời học sinh không hiểu phải chọn may rủi câu trả lời khơng thấp Ví dụ: Câu hỏi 12*321=? Với câu trả lời: 3722 3852 Một người không hiểu phép nhân với số nguyên dự đốn kết phải lớn 3000 số lớn 300 nhân với số lớn 10 Số cuối đáp số phải có giá trị 2…Tiếc lựa chọn thỏa mãn điều kiện nên cách chọn hú họa…Xác suất chọn hú họa ½! Nếu có câu trả lời hú họa cho ta kết ¼! Nếu phải trả lời câu với lựa chọn đáp án xác suất câu cịn 1/16! Qua ví dụ nhỏ ta thấy muốn đánh giá hiểu biết học sinh qua thi trắc nghiệm, việc đề, lựa chọn cách tiến hành thi phải lựa chọn cách thích hợp Dễ thấy số câu hỏi tăng lên xác suất điểm cao khơng hiểu thấp dần Ngày để thi trắc nghiệm số câu hỏi 10! Xây dựng phần mềm thi trắc nghiệm đa cho trường Đại học Hịa Bình Báo cáo kết đề tài nghiên cứu khoa học Số phương án lựa chọn ảnh hưởng không nhỏ đến may rủi người thi Ngày người ta lựa chọn khác Thực tế cho thấy tốt số câu hỏi nên chọn 50, số phương án để thí sinh lựa chọn Ở nơi việc kiểm tra nhằm nhắc nhở sinh viên, học sinh phải ôn cũ trước đến lớp học phương pháp kiểm tra trắc nghiệm lựa chọn tốt vừa nhanh vừa có tác dụng để người khác ngồi nghe, theo dõi trình kiểm tra ôn lại cũ Đề tài: Xây dựng phần mềm kiểm tra trắc nghiệm đa cho Trường Đại học Hịa Bình nhằm tạo phần mềm cho phép thực việc kiểm tra theo hình thức trắc nghiệm khách quan dễ sử dụng phần lớn trường hợp cần kiểm tra: Kiểm tra buổi học, kiểm tra cuối môn, kiểm tra cuối kỳ Câu hỏi kiểm tra văn bản, hình ảnh Đề cương nghiên cứu kèm theo cuối tài liệu II.Xây dựng phần mềm Để kiểm tra trắc nghiệm, cần thực theo quy trình sau đây: Xây dựng ngân hàng câu hỏi trắc nghiệm Công việc xây dựng ngân hàng câu hỏi thuộc môn, khoa Một ngân hàng câu hỏi thường khơng 100 câu Ngân hàng câu hỏi đồng phân chia thành nhiều phần với cách chia phần theo nguyên tắc khác - Chia theo độ khó; - Chia theo chương, phần theo cấu trúc môn học; - Chia theo nguyên tắc khác Trong phần mềm ngân hàng câu hỏi có tên cau-hoi.txt đặt thư mục: 1gch1/cau_hoi_1.txt Xây dựng cách lập đề kiểm tra từ ngân hàng câu hỏi Từ ngân hàng câu hỏi cần chọn ngẫu nhiên số câu hỏi để lập thành đề thi, đề kiểm tra Các câu hỏi lấy phải theo nguyên tắc ngẫu nhiên Để thực việc quan tiến hành kiểm tra phận chuyên môn tiến hành kiểm tra cần xuất phát từ cấu trúc ngân hàng câu hỏi yêu cầu cụ thể lần kiểm tra đề dẫn cụ thể để phần mềm lấy khách quan câu hỏi từ ngân hàng để tạo nên đề thi Để thích hợp với lập ngân hàng câu hỏi cách lựa chọn khác nhau, phần quy tắc lấy câu hỏi dựa theo nguyên tắc: Ngân hàng có nhiều phần Số phần không hạn chế Trong phần cần lấy ngẫu nhiên số câu hỏi định so cho tổng số câu hỏi đề thi số câu hỏi cần thiết tổng số câu hỏi ngân hàng Ví dụ cụ thể sau: -Trong số n1 câu phần ngân hàng câu hỏi cần lấy m1 câu để đưa vào đề thi; -Trong số n2 câu phần ngân hàng câu hỏi cần lấy m2 câu để đưa vào đề thi; -Trong số ni câu hỏi ngân hàng câu hỏi lấy mi câu để đưa vào đề thi… Cứ hết Như tổng số câu hỏi ngân Ta có N tổng số câu hỏi ngân hàng câu hỏi xác định sau: Xây dựng phần mềm thi trắc nghiệm đa cho trường Đại học Hịa Bình Báo cáo kết đề tài nghiên cứu khoa học 𝑁 𝑁 = ∑ 𝑛𝑖 Và số câu hỏi đề thi là: 𝑖=1 𝑁 𝑀 = ∑ 𝑚𝑖 𝑖=1 Trong phần mềm dẫn để lấy từ ngân hàng câu hỏi thành đề thi đặt thư mục 1gch1/cau_hoi.txt File có dạng sau: Trong th vin có:(dòng phi gi nguyên son văn Các dòng tip theo vit theo thực tế Ví dụ mục đầu có 25 câu lÊy c©u ) 5/25 13/20 4/10 6/15 3/10 19/30 het/end-Băt buộc có dòng cuối dòng câu hỏi Ghi chú: Lấy 25 ch-ơng ch-ơng Lấy 13 20 câu ch-ơng ……………………… Trong thư viện cã tỉng céng 25+20+15+10+30 c©u hỏi đánh thứ tự từ đến 100 theo thø tù 25 26 63 100 C¸c sè 5/25 13/20 4/10 6/15 3/10 19/30 thêm bớt số nh-ng phải viết thứ tự gạch chéo Phn mm thụng minh s tự nhận biết để xử lý người dùng không phi lm gỡ thờm File 1gch1/cau_hoi.txt đ-ợc đặt th- môc 1gch1 Như để sử dụng phần mềm người, quan phải có sẵn file tơ mầu vàng tài liệu Kết chạy phần mềm lấy câu hỏi thi file 1gch1\luu-cat.txt Để tránh nhầm lẫn file, file đổi tên thành test_tn.txt lưu vào thư mục 2test_cuoi\test_tn\test_tn.txt Xây dựng phần mềm thi trắc nghiệm đa cho trường Đại học Hịa Bình Báo cáo kết đề tài nghiên cứu khoa học Khi việc kiểm tra nhằm đánh giá tiếp thu sinh viên Giáo viên tự đề thi không cần đến việc lựa chọn ngẫu nhiên câu hỏi thi việc làm đơn giản nhiều Mẫu đề thi Giảng viên cần sọan file test_tn.txt theo mẫu sau: BAI THI TRAC NGHIEM NGON NGU VisualBasic Moi Khoa CNTT-§TVT ĐH Hòa Bình Nghĩa ng-ời phòng nào? Trên trời D-ới biển Mặt đt Đào tạo Visualbasic ? Là ngôn ngữ lập trình Là thành phần DOS Là thành phần hệ điều hành Không phải ngôn ngữ lập trình abc.jpg ảnh hình ảnh sinh viên ảnh thể thao ảnh lung tung VisualBasic thuộc quyền hÃng nào? Microsoft Intel Omega Không có quyền Lệnh option explecit có tác dụng gì? Không có tác dụng không để làm Bắt phải c«ng bè biÕn tr-íc dïng kh«ng cã VB Lệnh option explecit có tác dụng gì? Không có tác dụng không để làm Bắt phải kai báo tr-ớc dùng VB Đại học Hòa Bình đâu Hà Nội Xõy dng phn mm thi trắc nghiệm đa cho trường Đại học Hòa Bình Báo cáo kết đề tài nghiên cứu khoa hc Hà Tây Hòa Bình Sơn Tây Tần số clock đo Kg KG Hz Byte Bình yên là: Không bị quấy nhiễu Không ngang Không dọc Không chạy nhảy abc là chữ tiếng nóng tiếng nguội tiÕng hÐt CPU TiÕng anh lµ ? CPU - computer CPU vớ vẩn CPU trung tâm CPU -Central Pro Unit arduino.jpg Đây ảnh tình yêu ảnh hoa sen ¶nh hoa hång ¶nh arduino uno arduino1.jpg tình yêu ảnh Xuân ảnh hoa hồng ảnh arduino uno Phong o dau Cau Dien Phung Khoang Tay Tuu Ha t©y Xây dựng phần mềm thi trắc nghiệm đa cho trường Đại học Hịa Bình Báo cáo kết đề tài nghiên cứu khoa học tai thang di cung tuoi duong vi khác duong cao bang nha cung lop Ho cua Thay Đo Tran van Phan Ngo Ho cua Phuong Tran Le Nguyen Phan Ăn tr-a kiểu Kiểu bò Kiểu lợn kiểu ng-ời Kiểu ấn độ Co giao ten gi? Huong Luong Hoa hau que Binh Dinh Số lượng câu hỏi tùy ý Font cần vntime cho đẹp Chỉ dùng enter cho cuối câu hỏi câu trả lời để phần mềm không bị nhầm câu với câu khác! Khi câu hỏi hình ảnh công thức phải viết qua file ảnh, chọn file.jpg định dạng khác dùng cách biến đổi Các file ảnh cần đặt folder với file test_tn.txt Để kiểm soát người thi, phần mềm yêu cầu phải nhập số báo danh Số báo danh người đề thi định Thời gian thi xác định từ trước ki thi viết vào file test_tn1.txt đặt folder test_tn.txt File là: 111 400 45 N Xây dựng phần mềm thi trắc nghiệm đa cho trường Đại học Hịa Bình Báo cáo kết đề tài nghiên cứu khoa học Phần mềm hiểu số nhỏ số báo danh 111, số lớn 400, thời gian làm 45 phút Các số cần nhập theo thực tế kiểm tra Việc làm cho việc thi cử khơng u cầu thí sinh phải lựa chọn khác Khi kiểm tra cần cách ly hoàn toàn người tham gia kiểm tra phần cịn lại có máy tính mạng, phần mềm có option ly phần mềm kiểm tra ngồi … Khi kiểm tra xong người điều hành quay lại thông qua mã đặc biệt 12345 explorer… Khi kiểm tra lý bất khả kháng, máy tính bị điện, việc kiểm tra bị gián đoạn Phần mềm có đề phịng tượng tắt máy bất ngờ Khi có điện trở lại, bật máy, bắt đầu kiểm tra thời gian bị trừ kết lúc trước tắt máy ghi nhận để làm tiếp Hướng dẫn thực thi trắc nghiệm dùng phần mềm thi trắc nghiệm đa trường Đại học Hịa Bình Để thi cần có máy tính cài font tiếng Việt Vào thư mục 2test_cuoi, chạy test-cuoi.exe, ta : thông báo để người thi biết để lựa chọn số báo danh Sau OK ta Xây dựng phần mềm thi trắc nghiệm đa cho trường Đại học Hịa Bình Báo cáo kết đề tài nghiên cứu khoa học Cần nhập số báo danh tên để bắt đầu Nhập số báo danh tên vào có dẫn Sau nhập số báo danh tên ta có : xanh lên để ta chọn Nhấn vào để bắt đầu làm : Xây dựng phần mềm thi trắc nghiệm đa cho trường Đại học Hịa Bình Báo cáo kết đề tài nghiên cứu khoa học Với file cau_hoi.txt 12/45 Lấy 25 ch-ơng ch-ơng 13/35 Lấy 38 câu ch-ơng vµ 14/20 TA ĐƯỢC : Như có thảy 45+35+20 câu hỏi Lấy 12/45,13/35 14/20 Phần mềm đảo toàn 45 câu số 45 câu Câu 46,47,48,49 giữ nguyên Nhấn vào ghiketqua Xây dựng phần mềm thi trắc nghiệm đa cho trường Đại học Hịa Bình 22 Báo cáo kết đề tài nghiên cứu khoa học Lần thứ ta được: 35 19 41 22 23 26 34 43 20 16 33 51 69 77 79 49 59 78 61 76 57 64 47 67 Xây dựng phần mềm thi trắc nghiệm đa cho trường Đại học Hịa Bình 23 Báo cáo kết đề tài nghiên cứu khoa học 89 91 97 83 88 85 90 96 86 93 94 95 84 87 39 câu hỏi Nhấn vào lần thứ ta : 21 27 38 29 11 20 26 30 18 44 53 48 58 51 64 67 71 75 46 60 47 61 49 89 83 94 96 91 Xây dựng phần mềm thi trắc nghiệm đa cho trường Đại học Hịa Bình 24 Báo cáo kết đề tài nghiên cứu khoa học 86 92 88 98 97 81 82 90 87 Ta 39 câu khác hẳn vê câu hỏi thứ tự câu hỏi Một số câu trùng với lần lựa chọn trước…tất ngẫu nhiên Có thể nhấn nhiều lần để nhiều phương án Phần mềm thực biến thành game xếp hình với mức độ khó khác tính thời gian Nhìn khả qua menu ta thấy có nhiều lựa chọn để thi đua Chọn xong câu hỏi, cần lấy từ ngân hàng câu hỏi phần mềm Ghi_cau_hoi.exe thư mục 1ghich Ta chạy phần mềm với câu hỏi đơn giản hơn: Xây dựng phần mềm thi trắc nghiệm đa cho trường Đại học Hịa Bình 25 Báo cáo kết đề tài nghiên cứu khoa học xem câu hỏi đáp án Kiểm tra lại cho chắn việc liên tục click vào câu trước ta xem toàn câu hỏi phương án đáp án Khi xem đến câu có thơng báo Code phần mềm '************************************************************* ********' '* Vb6 *' '************************************************************* ********' Option Explicit Dim Click_1 As Integer Dim Solanitnhat As Integer Const KhoangCach = 20 Dim level As Byte ' Dim I As Byte Dim Space As Byte 'position of cell is no digital Dim Difficult_level As Integer Dim click As Integer Dim Giam As Single Dim GG As Boolean Dim Bobot As Byte Dim So_co(0 To 10) As Integer Dim So_lay(0 To 10) As Integer Dim trung_gian As String Dim tg2 As Variant Dim k As Integer Dim Dang As Integer Dim Chon_cau_hoi(1 To 100) As String Xây dựng phần mềm thi trắc nghiệm đa cho trường Đại học Hịa Bình 26 Báo cáo kết đề tài nghiên cứu khoa học Dim Da_ghi(0 To 10) As Boolean Dim Lan_cat As Integer 'Dim Bobot As Integer Sub CreatTable(bac As Byte) On Error Resume Next Nut(1).Top = 440 Nut(1).Caption = 'Caption of cell is For I = To (bac) * bac Load Nut(I) If I Mod bac = Then Nut(I).Left = Nut(1).Left Nut(I).Top = Nut(I - bac).Top + Nut(I - bac).Height + KhoangCach Else Nut(I).Left = Nut(I - 1).Left + Nut(I - 1).Width + KhoangCach Nut(I).Top = Nut(I - 1).Top End If Nut(I).Caption = I Nut(I).Visible = True Next Nut(I - 1).Caption = "" 'no caption Space = I - Me.Width = Nut(I - 1).Left + Nut(I - 1).Width + 500 '300 Me.Height = Nut(I - 1).Top + Nut(I - 1).Height + 1300 '900 Me.Top = Screen.Height / - Me.Height / - 800 Me.Top = 1500 'Screen.Height / - Me.Height / - 800 Me.Left = Screen.Width / - Me.Height / End Sub Sub ClearTable(bac As Byte) On Error Resume Next For I = To bac ^ Unload Nut(I) Next End Sub Sub RandomDigital(bac As Byte) Dim tempstring As String Dim tg As Integer Solanitnhat = If bac * bac - - Bobot < Then Bobot = For I = To bac * bac - - Bobot tempstring = Nut(I).Caption tg = Random(bac * bac - I, Bobot) Nut(I).Caption = Nut(I + tg).Caption Nut(I + tg).Caption = tempstring Next ' Text1.Visible = Xây dựng phần mềm thi trắc nghiệm đa cho trường Đại học Hịa Bình 27 Báo cáo kết đề tài nghiên cứu khoa học For I = To bac * bac - Solanitnhat = Solanitnhat + Abs(I - Val(Nut(I).Caption)) Next Text1.Text = Str(Solanitnhat) + "NhÊn :" + Str(Click_1) 'Minh End Sub Sub Vemenu() For I = To 10 Load Menu_level(I) Menu_level(I).Caption = I + Menu_level(I).Visible = True Menu_level(I).Checked = False Next End Sub Function Random(max As Byte, Bobot As Byte) As Byte If max = Then Random = 0: Exit Function 'Bobot = max = max - Bobot Random = ((Second(Now) ^ + Minute(Now) ^ + Hour(Now) ^ + Second(Now) * (Minute(Now) + 22) * Day(Now) + Rnd(12) * 12) Mod max) End Function Private Sub Difficult_Click() If Difficult_level = Then Difficult_level = Else Difficult_level = End If 'Menu_level(2).Visible = False MsgBox ("Difficult_level=" & Str(Difficult_level)) End Sub Private Sub Form_Click() Me.Caption = "We work with row number :" + Str(Dang) + " Number co:" + Str(So_co(Dang)) + ", lay:" + "so_lay" + Str(So_lay(Dang)) click = End Sub Private Sub Form_Load() ' ' ' Open "lay_cau_hoi.txt" For Output As #1 Write #1, "Open lay_cau_hoi.txt For Output As #1 " Close (1) Dim tg1 As String Lan_cat = On Error GoTo nhac Xây dựng phần mềm thi trắc nghiệm đa cho trường Đại học Hịa Bình 28 Báo cáo kết đề tài nghiên cứu khoa học Open CurDir + "\cau_hoi.txt" For Input As #1 'MsgBox (" open c:\cau_hoi.txt") GoTo tiep nhac: MsgBox (CurDir + "\cau_hoi.txt- 3/5, 6/7") ' Open "cau_hoi.txt" For Input As #1 tiep: Line Input #1, trung_gian 'Bo dong huong dan k=1 tg1 = "2" 'For k = To 'Line Input #1, trung_gian 'tg = Split(trung_gian, "/") 'So_co(k) = Val(tg(1)) 'So_lay(k) = Val(tg(0)) 'Next While Val(tg1) > Line Input #1, tg1 If Val(tg1) > Then tg2 = Split(tg1, "/") So_lay(k) = Val(tg2(0)) So_co(k) = Val(tg2(1)) k=k+1 End If Wend Close #1 Me.Caption = Str(UBound(tg2)) + ":" + Str(So_co(1)) + " -" + Str(So_co(2)) + " -" + Str(So_co(3)) + " lay " + Str(So_lay(1)) + " -" + Str(So_lay(2)) + " " + Str(So_lay(3)) Vemenu 'level = 'Bobot = 'Call Chon_level_bobot(So_co(1), Bobot) ' -If Int(Sqr(So_co(1))) = Sqr(So_co(1)) Then level = Sqr(So_co(1)) - Bobot = Else level = Int(Sqr(So_co(1))) - Bobot = (level + 2) * (level + 2) - So_co(1) End If ' Xây dựng phần mềm thi trắc nghiệm đa cho trường Đại học Hịa Bình 29 Báo cáo kết đề tài nghiên cứu khoa học 'Call chon_level_bobot Me.Caption = Bobot mnunewgame_Click Difficult_level = Text1.Visible = Me.Caption = Str(So_co(1)) + " -" + Str(So_co(2)) + " -" + Str(So_co(3)) + " lay " + Str(So_lay(1)) + " -" + Str(So_lay(2)) + " -" + Str(So_lay(3)) Dang = End Sub Private Sub Help_Click() 'Form2.Show End Sub Private Sub Memory_Click() Dim tg As String Dim Socot As String Close #1 Open "C:\nho.txt" For Output As #1 Write #1, level For I = To (level + 2) * (level + 2) - Write #1, Nut(I).Caption Next Me.Caption = level Close #1 Open "C:\nho.txt" For Input As #1 Input #1, tg Socot = Val(tg) + Me.Caption = "Nho van choi co: " + Str(Socot) + " cot" Close #1 End Sub Private Sub mniexit_Click() Dim I As Integer I = InputBox("Exit", "OK to exit", 123) If I = 123 Then End End Sub Private Sub Menu_level_Click(Index As Integer) ' If level = Index Then Exit Sub ClearTable level + ' Menu_level(level + 1).Checked = False level = Index ' Menu_level(level).Checked = True Xây dựng phần mềm thi trắc nghiệm đa cho trường Đại học Hịa Bình 30 Báo cáo kết đề tài nghiên cứu khoa học 'Menu_level(2 + 1).Visible = False mnunewgame_Click End Sub Private Sub mnunewgame_Click() CreatTable (level + 2) RandomDigital (level + 2) ' MsgBox ("Khong bo chi-mnunewgame_Click()") End Sub Private Sub Muc_tiep_Click() ClearTable level + If Dang < k - Or Dang = k - Then Dang = Dang + If Dang > k - Then Dang = If Int(Sqr(So_co(Dang))) = Sqr(So_co(Dang)) Then level = Sqr(So_co(Dang)) - Bobot = Else level = Int(Sqr(So_co(Dang))) - Bobot = (level + 2) * (level + 2) - So_co(Dang) End If ' 'Call chon_level_bobot Me.Caption = Bobot mnunewgame_Click Difficult_level = Text1.Visible = Me.Caption = Str(So_co(Dang)) + ":" + Str(So_lay(Dang)) End Sub Private Sub Ghi_click() Dim Trunggian As Integer Dim tg As Integer Dim batdau As Integer Dim balangnhang As String 'Text1.Visible = True 'On Error GoTo ditiep Dim Cauhoi(1 To 100) As Integer Dim Thutu As Integer Dim cauhoinganhang(1 To 1000) As String Thutu = 'batdau = InputBox("Isert number if it is firt time run in this Computer, else other any ") 'If batdau = Then MkDir ("C:\luu") Lan_cat = Lan_cat + 'Open "c:\luu\" + "luu" + Str(Lan_cat) + ".txt" For Output As #1 balangnhang = CurDir + "\luu\luu" + Str(Lan_cat) + ".txt" Xây dựng phần mềm thi trắc nghiệm đa cho trường Đại học Hịa Bình 31 Báo cáo kết đề tài nghiên cứu khoa học 'Open "luu" + Str(Lan_cat) + ".txt" For Output As #1 Open balangnhang For Output As #1 ditiep: For Dang = To k - ClearTable level + If Int(Sqr(So_co(Dang))) = Sqr(So_co(Dang)) Then level = Sqr(So_co(Dang)) - Bobot = Else level = Int(Sqr(So_co(Dang))) - Bobot = (level + 2) * (level + 2) - So_co(Dang) End If mnunewgame_Click Me.Caption = Me.Caption + " " + Str(So_lay(Dang)) If Dang = k - Then MsgBox ("It is Great Result-OK! You see in " + balangnhang) So_co(0) = Trunggian = For I = To Dang Trunggian = Trunggian + So_co(I - 1) Next For I = To So_lay(Dang) tg = Trunggian + Val(Nut(I).Caption) 'Write #1, ":" + Nut(I).Caption Write #1, tg Cauhoi(Thutu) = tg Thutu = Thutu + Next Next Close #1 Thutu = Thutu - 'Open "nganhang.txt" For Output As #3 'doc cauhoi tu ngan hang 'While Not (EOF(3)) 'Line Input #3, cauhoinganhang(I) 'Wend 'Open "c:\cauhoithituluan.txt" For Output As #1 'For ss = To Thutu 'lay tu ngan hang 'Write #1, cauhoinganhang(ss) 'Next 'Close #1 End Sub Private Sub Nut_Click(Index As Integer) Dim so1, so2 As Single 'level độ khó level=1,2 có hàng, cột §é khã =3 cã 5, 4-6 Xây dựng phần mềm thi trắc nghiệm đa cho trường Đại học Hòa Bình 32 Báo cáo kết đề tài nghiên cứu khoa hc 'abs(index-Space)=level+2 điều kiện nhảy d-ới lên, xuống 'abs(index-space=1) điều kiện nhảy hàng, cạnh 'Cách tính liền kề ô trống(space) nh- sau: Index số thø tù cđa « trèng 'If (Abs(Index - Space) = level + 2) Or (Abs(Index - Space) = And (((Index - 1) \ (level + 2)) = ((Space - 1) \ (level + 2)))) Then so1 = 12 \ so2 = (Space - 1) \ (level + 2) ' néu dễ cho nhay cách If Difficult_level = Then If (Abs(Index - Space) = level + 2) Or (Abs(Index - Space) = 1) Or (Abs(Index - Space) = * level + 4) Or (Abs(Index - Space) = 2) Then Nut(Space).Caption = Nut(Index).Caption Nut(Index).Caption = "" Space = Index Click_1 = Click_1 + Check 'so1 = (Index - 1) \ (level + 2) 'so2 = (Space - 1) \ (level + 2) Me.Caption = " Hoang Minh" End If Else If (Abs(Index - Space) = level + 2) Or (Abs(Index - Space) = 1) Then Nut(Space).Caption = Nut(Index).Caption Nut(Index).Caption = "" Space = Index Click_1 = Click_1 + Check ' moi chua Me.Caption = " Check " End If End If Me.Caption = "So lan nhan:" + Str(Click_1) End Sub Sub Check() Beep On Error Resume Next For I = To (level + 2) * (level + 2) - If CLng(Nut(I).Caption) Nut(I).Index Then Exit Sub Next Text1.Visible = Xây dựng phần mềm thi trắc nghiệm đa cho trường Đại học Hịa Bình 33 Báo cáo kết đề tài nghiên cu khoa hc Text1.Text = "Khoảng cách " + Str(Solanitnhat) + " NhÊn :" + Str(Click_1) + " Chóc mõng b¹n" MsgBox " Going to New Game" Text1.Visible = If level < Then level = level + mnunewgame_Click ' mmmm End Sub Private Sub RePlay_Click() Dim tg As String ClearTable level + Open "C:\nho.txt" For Input As #1 Input #1, tg level = Val(tg) ClearTable level + mnunewgame_Click For I = To (level + 2) * (level + 2) - Input #1, tg Nut(I).Caption = tg Next Close #1 End Sub Private Sub Timer1_Timer() click = click + If click Mod 50 = Then Me.Caption = "It is easy for You-DHHB Students " click = End If Me.Caption = " " + Me.Caption If Len(Me.Caption) > Form1.Width Then Me.Caption = Trim(Me.Caption) End Sub Private Sub vao_ra_Click() Me.Caption = "input E:\test\cau_hoi.txt, output E:\test\luu" + Str(Lan_cat) + ".txt""" Form1.Width = Form1.Width * 1.5 End Sub Private Sub XSCH_Click() Dim file_name As String On Error Resume Next file_name = "C:\cau_hoi.txt" Open file_name For Input As #1 If Err.Number Then MsgBox " Khong co file o day" Xây dựng phần mềm thi trắc nghiệm đa cho trường Đại học Hòa Bình 34 Báo cáo kết đề tài nghiên cứu khoa học Else MsgBox (" Co file : " + file_name + " o duong dan roi") End If 'Shell ("F:\Windows\system32\notepad.exe c:\cau_hoi.txt") 'tuy thuoc win cai o dau copy notepad vao thu muc can End Sub III.Quá trình thử nghiệm Test phần mềm việc quan trọng đặc biệt phần mềm có sử dụng sở liệu có khả biến đổi theo nhu cầu thực tế Việc test tiến hành nhiều máy khác điều kiện khác Các lỗi phát được sửa Khoảng tháng cuối không xuất lỗi Test phần mềm test_cuoi.exe Test phần mềm ghi_cau_hoi.exe Test phần mềm chon_n-from_m.exe Cấu trúc: Các phần mềm sử dụng tạo nên file liệu tạo folder khác nên việc test tiến hành nhiều máy khác Phần mềm sử dụng ổ đĩa folder không bị cấm ghi Có phương án: 1.test_cuoi.exe có chạy codestuff.exe đặt c:\programfiles\code 2.test_cuoi_F.exe codestuff.exe đặt F:\ máy Khoa Xây dựng phần mềm thi trắc nghiệm đa cho trường Đại học Hịa Bình 35 Báo cáo kết đề tài nghiên cứu khoa học 3.Tên file cauhoi tự chọn Đặt tên file test_tn1.txt, dòng thứ : 111 400 45 luu-cat.txt test_tn.txt N Phụ lục: Đề cương nghiên cứu Xây dựng phần mềm thi trắc nghiệm đa cho trường Đại học Hịa Bình 36