1 Tổng quan về chương trình1.1 Mục đích của chương trình • Tạo ra các đề thi với các câu hỏi được chọn ngẫu nhiên và các đáp ánđược đảo ngẫu nhiên từ ngân hàng đề thi.. • Trang chủ: Tran
Trang 1ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
—————*————–
BÁO CÁO
MÔN HỌC
NHẬP MÔN CNTT
Về phần mềm quản lí đề thi trắc nghiệm môn THDC
Giáo viên hướng dẫn: PGS.TS TRẦN ĐÌNH KHANG.
Trang 3Mục lục
1.1 Mục đích của chương trình 7
1.2 Cấu trúc chương trình 7
1.3 Phạm vi chương trình 9
1.4 Công cụ 9
2 Nội dung chương trình 9 2.1 Nội dung 9
2.1.1 Phân tích bài toán, ý tưởng tạo dựng 9
2.1.2 Cấu trúc chương trình, các phần chính 12
2.2 Môi trường làm việc và cách sử dụng chương trình 14
2.3 Kết quả 19
2.3.1 Kết quả lí thuyết 19
2.3.2 Kết quả thực nghiệm 19
3 Kết luận 20 3.1 Thu hoạch 20
3.2 Định hướng 21
Trang 5Lời nói đầu
Cuộc sống ngày càng hiện đại, các trang thiết bị phục vụ cho giáo dục cũngđược nâng lên, cùng với đó, máy tình được đưa vào trong học tập như làmột công cụ hỗ trợ đắc lực cho việc thi cử, quản lí học sinh Cũng trongthời gian này, hình thức thi trắc nghiệm được đưa vào trong giáo dục, thi
cử vì nó thường tổng hợp được hầu hết các kiến thức đã học vào các đề thi
Vì thế nhóm chúng em cũng muốn thử sức mình tạo nên một chương trìnhquản lí đề thi trắc nghiệm để giúp cho các giáo viên tạo ra những đề thitrắc nghiệm tự động bằng máy tính mà không phải mất nhiều công sức,thời gian, tiền của Chương trình của của chúng em mới chỉ áp dụng chomôn tin học đại cương với một số thông số cho trước cố định (về số câu,
số đề thi, ) nhưng chúng em tin rằng theo thời gian nó có thể áp dụng
mở rộng cho những môn học khác Do còn thiếu nhiều kiến thức và kinhnghiệm nên bài tập lớn của chúng em không tránh khỏi những sai sót, vìthế chúng em kính mong thầy giáo góp ý để hoàn thiện Qua đây, chúng
em xin chân thành cảm ơn thầy giáo, PGS.TS Trần Đình Khang đã
chỉ bảo, giảng giải và giúp đỡ trong thời gian qua, chúng em xin cảm ơn
thầy giáo, ThS Đỗ Bá Lâm đã cung cấp tài liệu và những hướng dẫn
quý báu để chúng em hoàn thành được bài tập
Mục đích: Thông thường những đề thi trắc nghiệm thường có số lượng
lớn các câu hỏi (từ 50-100 câu/đề), vì thế nếu dùng các phần mềm soạnthảo thông thường như word hay excel sẽ rất mất thời gian, và khả năngxảy ra sai sót lớn Chương trình quản lí đề thi trắc nghiệm sẽ giải quyếtnhững vấn đề trên Chương trình có khả năng lưu trữ ngân hàng câu hỏi
và đáp án, chỉnh sửa, quan sát một cách khoa học, tạo ra các đề thi trắcnghiệm một cách nhanh chóng và chính xác
Trang 71 Tổng quan về chương trình
1.1 Mục đích của chương trình
• Tạo ra các đề thi với các câu hỏi được chọn ngẫu nhiên và các đáp ánđược đảo ngẫu nhiên từ ngân hàng đề thi Số lượng câu hỏi mỗi đềcùng phạm vi (chương học) được chọn tùy ý bởi người dùng
• Tạo, cập nhật, quản lí ngân hàng câu hỏi thi với giao diện trực quancho người dùng
• Tạo ngân hàng đề thi cho việc tổ chức thi trắc nghiệm trên máy
Lí do ra đời phần mềm này:
• Giảm thời gian và công sức tạo ra các đề thi từ cùng nguồn câu hỏi
• Đảm bảo tính khách quan, ngẫu nhiên khi ra các đề có cùng cấu trúc,trình độ, chất lượng và không mang dấu ấn chủ quan của người rađề
• Thuận lợi hóa việc cập nhật các câu hỏi bất cứ lúc nào, lưu trữ và cóthể sử dụng lại bất cứ khi nào
• Tạo ra các đề có nội dung giống nhau nhưng đa dạng về thứ tự hoặc
có trình độ như nhau nhằm đạt được việc kiểm tra công bằng nhấtcho người thi
• Tạo nguồn đề cho tổ chức thi trắc nghiệm diễn ra hiệu quả, việc chấmthi được nhanh chóng
• Ngoài ra, đây là một bài tập nhóm trong quá trình học nhập mônCông nghệ thông tin, giúp sinh viên định hình được quá trình và cáchthức áp dụng kiến thức vào các bài toán thực tế trong cuộc sống
Trang 8• Trang chủ: Trang có chứa các đường dẫn đến nội dung mà người dùng
có thể đến để: tạo đề, cập nhật ngân hàng câu hỏi, quản lí người dùng
Từ trang chủ sẽ dẫn tới các trang:
– Trang thêm câu hỏi vào CSDL.
– Trang tạo đề thi.
– Trang tạo nhanh.
– Trang hiển thị ngân hàng câu hỏi trong CSDL.
– Trang xem câu hỏi đề ?( với ? là các sổ từ 1-10).
– Trang chức năng admin.
– Thoát khỏi chương trình.
Trong đó:
• Trang thêm câu hỏi: trang này sẽ yêu cầu người dùng nhập chương,nội dung câu hỏi, nội dung các phương án trả lời và đáp án tươngứng sau khi ấn thêm, câu hỏi sẽ được thêm vào CSDL Người dùng
có thể ấn nhập lại để nhập lại toàn bộ nội dung câu hỏi
• Trang tạo đề thi: người dùng chọn và nhập số lượng câu hỏi cho từng
đề, sau khi ấn làm đề thì 1 đề được tạo ra
• Trang tạo nhanh: người dùng chọn số câu hỏi từng chương và ấn tạonhanh, sẽ có 10 đề được tạo ra với số lượng câu hỏi từng chương nhưnhau nhưng có nội dung câu hỏi khác nhau
• Trang hiển thị ngân hàng đề thi: ở trang này, người dùng có thể xemlần lượt từng câu hỏi trong ngân hàng đề thi, nếu có sai sót, có thểsửa xoá nội dung của câu hỏi
• Trang hiển thị đề thi: sau khi tạo đề thi, người dùng có thể vào xemnội dung câu hỏi từng đề thi
• Trang chức năng admin: Trang này cho phép người dùng đổi thay đổitên và mật khẩu, ngoài ra, chỉ có admin mới được phép thay đổi cácngười dùng, còn các user thì chỉ được sửa thông tin tài khoản củamình
Trang 9• Được sử dụng như chương trình con của việc tổ chức thi trắc nghiệmtrên máy môn Tin học đại cương Có thể dùng để quản lí các đề thitrên các trang web trực tuyến.
1.4 Công cụ
• Ngôn ngữ lập trình: PHP, HTML, Java Script,SQL
• Công cụ lập trình: NetBeans, Macromedia Dreamweaver
• Cơ sở dữ liệu: XAMPP (tích hợp MySQL)
2 Nội dung chương trình
2.1 Nội dung
2.1.1 Phân tích bài toán, ý tưởng tạo dựng
Bài toán đặt ra là xây dựng phần mềm thi trắc nghiệm tin học đại cươngtrên máy, giao cho 2 nhóm làm việc Muốn thi trắc nghiệm trên máy, trướchết cần ngân hàng đề, sau đó là việc tổ chức thi với đề cho từng thí sinh
có trong ngân hàng đề Do vậy, mỗi nhóm được giao 1 phần việc và nhómnày phụ trách việc tạo ra ngân hàng đề thi Bài toán được đặt ra là làmthế nào tạo ra được ngân hàng đề thi
• Input là ngân hàng câu hỏi, số lượng câu hỏi từng chương người nhập
nhập vào khi muốn sinh đề
• Output là ngân hàng đề thi gồm các đề đã được sinh ra do yêu cầu
người dùng
Trang 10Yêu cầu của các đề sinh ra là với cùng yêu cầu của người nhập, các đề
có độ khó ngang nhau, các câu được chọn ngẫu nhiên, có thể từ cùng bộcâu hỏi nhưng thứ tự đa dạng đảm bảo việc thi diễn ra nghiêm túc
• Trước hết cần tạo ra ngân hàng câu hỏi với nội dung các câu hỏi đã
có Hơn nữa, cần cấu trúc nó để thuận tiện cho việc chọn câu hỏingẫu nhiên phù hợp với yêu cầu người dùng Do đó, các câu hỏi banđầu được chia thành các chương như trong sách và có độ khó
• Từ ngân hàng câu hỏi cần chọn ngẫu nhiên ra các câu trong cácchương với các độ khó khác nhau để tạo ra bộ câu hỏi
• Từ bộ câu hỏi thực hiện đảo thứ tự để ra được các hoán vị đa dạng
• Tăng thêm tính đa dạng của đề thi nhận được bằng cách đảo chỗ cácphương án trong cùng một câu hỏi
Qua phân tích sơ bộ thấy được cần phải cấu trúc ngân hàng câu hỏi theochương và độ khó Do việc chọn và đảo câu hỏi cần tính khách quan vàngẫu nhiên nên cần sử dụng hàm random Tới đây, vấn đề đặt ra là sửdụng hàm random như thế nào? Có 2 cách random:
• Chọn ra ngẫu nhiên các câu trong các chương, đánh dấu các câu đãđược chọn, tiếp tục thực hiện cho tới khi chọn đủ số câu Phươngpháp này tốn thời gian do mỗi lần chọn câu tiếp theo lại lặp lại quátrình
• Với bộ số các câu trong các chương đã được xác định, thông qua hàmrandom để hoán vị bộ chỉ số, sau đó chọn ra n câu đầu tiên từ bộ chỉ
số mới đã hoán vị, tham chiểu sang bộ chỉ số ban đầu n là số câucủa chương mà người dùng nhập vào
Cách làm này nhanh gọn, dễ thực hiện Cuối cùng nhóm đã chọn cách 2.Vấn đề tiếp theo là sử dụng công cụ gì Do mới chỉ có kiến thức về ngônngữ C nên ban đầu nhóm đã lập trình bằng C Tuy nhiên, vấn đề gặp phải
là không sử dụng được tiếng Việt Với sự gợi ý của thầy Lâm, nhóm đãchuyển sang dùng ngôn ngữ lập trình PHP và phần mềm quản trị cơ sở
dữ liệu MySQL
Sau khi tạo dựng được phần căn bản, một số vấn đề được đặt ra tiếptheo:
Trang 11• Làm thế nào để nhập các câu hỏi không chỉ định dạng text Ví dụnhư 1 số câu hỏi có hình ảnh Sử dụng thẻ html để hiển thị ảnh.
• Với dạng text có các kí tự nào có vấn đề Làm thế nào để giải quyết
và thân thiện với người dùng Người dùng có cần phải gõ theo mã các
kí tự đặc biệt theo hướng dẫn bên cạnh không hay gõ bình thườngrồi máy sẽ xử lí Nhóm đã tìm được hàm Repalce để tạo thuận tiệncho việc nhập của người dùng
• Cập nhật ngân hàng câu hỏi sẽ tiến hành như thế nào Vấn đề đượcgiải quyết bằng cách nhập thêm các câu hỏi và cập nhật các câu hỏi
đã được nhập bằng phương pháp sửa và xóa
• Giao diện tương tác với người dùng sẽ như thế nào? Khi người dùngmuốn nhập câu hỏi, cập nhật câu hỏi, nhập yêu cầu về đề thi, xem
đề thi đã được tạo ra, xem lại ngân hàng đề thi thì sẽ phải vào đâu?Giải quyết bằng 1 trang chủ với các đường link đến các thao tác ngườidùng có thể sử dụng Bố trí các câu hỏi trong bảng, mỗi hàng hiểnthị cho 1 câu hỏi Tất cả các câu hỏi sẽ được hiển thị ra từng trang,mỗi trang gồm 10 câu Để xem đề thi được tao ra, vào trang chủ vàclick vào lần lượt từng đường link dẫn tới 10 đề
• Về quản lí hệ thống, liệu ai cũng có thể sử dụng, thay đổi ngân hàng
đề và tạo đề hay chỉ có những người nhất định Để đảm bảo tính antoàn, chỉ có 1 số người được phép sử dụng và truy nhập Do đó cóthêm admin để quyết định những người dùng như thêm tên, xóa, sửangười dùng Vì thế có thêm một biến chức vụ để check xem người đó
có phải là admin
• Có những trường hợp nào sẽ cần phải báo lỗi cho người dùng và làmthế nào để phát hiện ra lỗi Do yêu cầu đặt ra nên cần dùng các biếnkiểm tra hoặc đánh dấu
• Báo lỗi khi nhập câu hỏi:
– Nhập câu hỏi chưa chọn chương.
– Nhập câu hỏi chưa nhập nội dung câu hỏi hoặc nhập toàn kí tự
trống
– Nhập câu hỏi chưa nhập phương án trả lời hoặc nhập toàn kí tự
trống
Trang 12– Nhập nội dung câu hỏi chưa chọn đáp án trả lời, kiểm tra nếu
trường nào rỗng thì báo lỗi
• Báo lỗi khi nhập yêu cầu về đề thi:
– Nhập quá số lượng câu hỏi từng chương trong ngân hàng câu hỏi.
Phương án dùng biến đếm cập nhật số lượng câu hỏi có trongcsdl rổi so sánh với câu hỏi người dùng nhập vào
– Ô số lượng câu hỏi để trống không nhập, hay nhập không phải
số Phương án: dùng hàm kiểm tra xem phần nhập vào có phải
số không
– Không chọn tên bảng đề lưu.
• Báo lỗi người dùng
– Đăng nhập sai tên.
– Đăng nhập sai password.
– Thêm người dùng trùng tên đã có.
– Sửa tên mà nhập tên trống.
– Sửa password mới, nhưng mã xác nhập pass không khớp.
– Đề trống không nhập, hay nhập không phải số.
2.1.2 Cấu trúc chương trình, các phần chính
• Các module chính bao gồm:
– Phần quản lí ngân hàng câu hỏi
∗ Thêm câu hỏi, phương án và đáp án đúng
∗ Xoá/sửa câu hỏi
∗ Xem lại toàn bộ ngân hàng câu hỏi
Trong đó, mỗi chức năng được thực hiện ở một trang:
∗ Thêm câu hỏi, phương án và đáp án đúng: thực hiện trêntrang reg2.php
∗ Sửa câu hỏi: thực hiện trên trang edit.php
∗ Xem lại toàn bộ ngân hàng câu hỏi: thực hiện trên tranglist.php
– Phần sinh đề
Trang 13∗ Chọn số lượng câu, bảng lưu đề (nếu tạo thủ công từng đề),nếu tạo nhanh thì không cần chọn bảng lưu đề thi.
∗ Xem lại đề vừa tạo ra Mỗi phần được thực hiện tại một trang
∗ Chọn số lượng câu, bảng lưu đề trên trang input.php, hoặctạo nhanh thì vào trang taonhanh.php
∗ Xem lại đề vừa tạo ra trên trang de?.php (?: 1,2,3 10)
Mỗi phần được thực hiện ở một trang:
∗ Đăng nhập vào hệ thống trên trang login.php
∗ Đổi mật khẩu trên trang edit_user.php
∗ Thêm người dùng (chỉ có admin mới vào được) trên trangadduser.php
• Công cụ chính và 1 số hàm được dùng
– Công cụ chính: NetBeans IDE 6.7.1 và XAMPP.
– Hàm random: Random bằng cách hoán vị bộ số.
∗ Random ra câu hỏi
Thực hiện hàm random cho từng chương chọn ra n câu hỏicủa chương đó theo yêu cầu của người sử dụng khi muốn sinh
đề Cơ chế của hàm là hoán vị bộ chỉ số của các câu hỏi đã
có trong chương đó, lấy ra n chỉ sổ đầu tiên với n là số câungười dùng muốn lấy ra từ chương đó Từ đó được 1 bộ cácchỉ số, dùng bộ chỉ số này để lấy ra bộ câu hỏi
∗ Random phương án trả lời
Trước khi in ra 4 phương án thì hoán vị 1 mảng $mang từ
1 tới 4, rồi in ra từng phương án có thứ tự dựa trên kết quảhoán vị đó, ví dụ hoán vị 1,2,3,4 thì sẽ thành 2,3,1,4 Và in
Trang 14lần lượt đáp án theo trình tự đó ’phuongan2’ rồi ’phuongan3’tiếp là ’phuongan1’ cuối cùng là ’phuongan4’ Để in ra đáp
án dựa vào kết quả hoán vị trên ta thực hiện phép gán nếu
’dapan’=’A’ thì gán cho 1 biến đánh dấu $p=1; tiếp tục pan’=’B’ thì $p=2; ’dapan’=’C’ thì $p=3; ’dapan’=’D’ thì
’da-$p=4; sau đó sẽ so sánh biến $p với từng phần tử của mảnghoán vị trên nếu $mang[1]=$p thì in ra đáp án là A; nếu
$mang[2]=$p thì in đáp án là B tương tự ta sẽ được đáp án
C hoặc D
– Hàm Replace: Dùng để thay thế các kí tự đặc biệt mà người dùng
gõ vào bằng các mã tương ứng của máy
– Để kiểm tra báo lỗi cho người dùng, sử dụng thêm các biến kiểm
tra
2.2 Môi trường làm việc và cách sử dụng chương trình
• Môi trường làm việc
– Hệ điều hành: tương thích với hầu hết các hệ điền hành Windows
như: Windows NT, 2000, XP, Windows 7, Windows 8
– Yêu cầu hệ thống: >= 64 MB RAM, 200 MB free fixed disk.
• Cách sử dụng chương trình
– Cài đặt XAMPP: Người dùng có thể tải các bản MYSQL trên
mạng về cài, sau đó copy source code vào htdocs, còn csdl thìngười dùng vào localhot/phpmyadmin để import từ bộ cài
– Sau khi cài đặt thành công, người dùng click chuột để khởi động
mysql Sau đó chạy chương trình bằng trình duyệt chrome, ploer, hoặc filefox, safari Vào trang welcome.php để bắt đầuthực hiện chương trình
ex-– Đăng nhập vào hệ thống.
Trang 16Hình 3: Trang tạo từng đề thi
∗ Tạo nhanh: Khi phục vụ cho kì thi chính thức, muốn tạo ra
số lượng đề nhiều với form như nhau
Hình 4: Trang tạo nhanh 10 đề
Trang 17∗ Thêm, chỉnh sửa câu hỏi vào CSDL: Khi muốn bổ sung câuhỏi vào ngân hàng câu hỏi.
Hình 5: Trang thêm câu hỏi
Hình 6: Trang chỉnh sửa câu hỏi
∗ Hiển thị danh sách tất cả các câu hỏi trong CSDL: Khi muốnxem lại toàn bộ ngân hàng câu hỏi
∗ Xem câu hỏi đề ? : Khi muốn xem lại phần đề sinh ra lưutrong bảng ? ( ? là các số từ 1-10)
∗ Thông tin người dùng: Vào đây để xem lại, cập nhật thôngtin người dùng
∗ Thêm người dùng: Chức năng này chỉ dành cho admin đểthêm người dùng chương trình
Trang 18Hình 7: Trang hiển thị ngân hàng câu hỏi
Hình 8: Trang thêm users
∗ Thoát khỏi chương trình: Khi đã thực hiện xong các côngviệc (sau khi thoát, người dùng không thể vào trang nào đótương tác với csdl được, nếu cố tình muốn vào thì hệ thống
sẽ báo yêu cầu đăng nhập)
• Một số lưu ý cho người dùng:
– Một số kí tự ở khi muốn có một số thao tác đặc biệt lúc nhập
câu hỏi đã được chú thích phía dưới phần nhập câu hỏi (xuốngdòng, tab, bôi đậm, viết chỉ số )
– Khi nhập sai, thiếu, quá số lượng trong từng trang sẽ có báo lỗi
cho người dùng
Trang 192.3 Kết quả
2.3.1 Kết quả lí thuyết
Trên lí thuyết, khi người dùng nhập, sửa, xóa các câu hỏi thì kết quả sẽđược lưu trữ lại trong ngân hàng câu hỏi Khi người dùng nhập số lượngcâu hỏi và chọn bảng thì sau đó đề thi sẽ được lưu vào bảng tương ứng
và sẽ hiện ra cho người dùng xem luôn (nếu là tạo từng đề) Còn nếu tạonhanh thì sau khi nhập số lượng câu hỏi sẽ có 10 đề được tạo ra và lưuvào trong 10 bảng đề Các trường hợp không nhập đúng sẽ báo lỗi
2.3.2 Kết quả thực nghiệm
• Giống với kết quả lí thuyết
• Các trường hợp lỗi bắt buộc và cảnh báo:
Truy nhập vào các trang tương tác csdl thì thông
báo yêu cầu đăng nhập
Đạt
Đăng nhập sai tên báo lỗi tên đăng nhập sai Đạt
Đăng nhập sai password báo lỗi sai pass Đạt
Nhập câu hỏi chưa chọn chương: báo lỗi chưa
chọn chương
Đạt
Nhập câu hỏi chưa nhập nội dung câu hỏi hoặc
nhập toàn kí tự trống: báo lỗi chưa nhập nội
dung câu hỏi
Đạt
Nhập câu hỏi chưa nhập nội dung phương án
trả lời hoặc nhập toàn kí tự trống: báo lỗi chưa
nhập nội dung câu trả lời (tương ứng)
Đạt
Nhập nội dung câu hỏi chưa chọn đáp án trả lời:
báo lỗi chưa chọn phương án trả lời
Đạt