Đồ án Phân tích và thiết kế hệ thống Quản lý ngân hàng câu hỏi và tổ chức thi trắc nghiệm trên mạng

ĐỀ TÀI:  
Quản lý ngân hàng câu hỏi và tổ  
chức thi trắc nghiệm trên mạng  
Phần I. khảo sát  
i. khảo sát mục tiêu bài toán  
1. Tìm hiểu chung về tổ chức thi trắc nghiệm của bộ môn tiếng anh của ĐHHH:  
Ngoại ngữ là môn học chung của toàn trường nên có rất nhiều sinh viên theo  
học. Vì vậy tổ chức thi hết môn cho sinh viên toàn trường là việc khó khăn. Trắc  
nghiệm là hình thức thi được tổ bộ môn sử dụng trong những năm gần đây.  
- ưu điểm:  
+ Có nhiều dạng đề khác nhau nên việc đánh giá trình độ của từng sinh viên là  
chính xác hơn .  
+ Việc chấm thi đỡ tốn thời gian hơn so với thi viết.  
- Nhược điểm:  
+ Việc tạo ra nhiều đề rất mất thời gian: dùng phương pháp thủ công nên mất  
nhiều người để làm việc này.  
+ Lưu trữ đề thi không an toàn (chủ yếu bằng văn bản).  
+ Các kì thi tiếp theo muốn thay đổi nội dung đề thi thì các giáo viên lại phải  
soạn câu hỏi và ra đề thi. Công việc này mất thời gian và không hiệu quả.  
+ Số lượng sinh viên đông nên chi phí cho việc phô tô đề thi lớn.  
+ Chấm thi bằng tay: nhiều giáo viên tham gia.  
+ Khi sinh viên làm sai muốn sửa lại sẽ gây ra việc gạch xoá, bài thi không đẹp  
mắt.  
2. Mục tiêu và phương án giải quyết:  
- Phương án giải quyết: xây dựng được hệ thống quản lý ngân hàng câu hỏi tổ  
chức thi trắc nghiệm trên mạng máy tính và sử dụng cho nhiều môn học khác nhau.  
- Mục đích: Phát huy ưu điểm và khắc phục nhược điểm của hệ thống cũ.  
+ Xây dựng ngân hàng câu hỏi với mức độ khó dễ khác nhau.  
+ Tự động sinh đề thi dựa theo mẫu và một quy tắc quy định sẵn.  
+ Quản lý danh sách sinh viên thi.  
+ Cho phép sinh viên thi và chấm điểm tự động.  
II. Xác lập dự án:  
1. Dự trù về trang thiết bị  
2. Lên kế hoạch  
- Việc cần làm, thời gian  
3. Dự trù về con người và thời gian.  
III. Khảo sát  
1. Môi trường hoạt động  
- Cơ cấu tổ chức:  
Ban giám hiệu  
Bộ môn ANH VĂN  
Trưởng bộ môn  
Các giáo viên  
Bộ môn khác  
- Phần mềm quản lý ngân hàng câu hỏi tổ chức thi trắc nghiệm:  
+ Được sử dụng cho một tổ bộ môn, hoạt động trên môi trường mạng lan.  
-> Đáp ứng mô hình tổ chức thi trắc nghiệm trên mạng máy tính: nhiều sinh viên  
có thể thi cùng một lúc.  
-> Sinh nhiều đề khác nhau, tráo đổi phương án trả lời.  
-> Quản lý được ngân hàng câu hỏi với số lượng lớn.  
-> Chấm thi tự động.  
-> Lưu trữ kết quả bài thi.  
2. Các nghiệp vụ trong hệ thống  
- Các giáo viên trong bộ môn là người trực tiếp soạn các câu hỏi (dạng văn bản).  
Mẫu câu hỏi được sử dụng có cấu trúc như ở bảng III.1. Mỗi giáo viên sẽ soạn khoảng  
100 câu hỏi (50 dễ, 50 khó) và nộp lại cho trưởng bộ môn duyệt. Sau đó bộ môn sẽ họp  
lại và quyết định các câu hỏi sẽ được lựa chọn. Mẫu xét duyệt như mẫu III.2.  
- Trưởng bộ môn là người có quyền cao nhất trong bộ môn, quyết định câu hỏi  
có được sử dụng hay không.  
- Các câu hỏi được xét duyệt xong sẽ chuyển cho NHÂN VIÊN A (người được  
giao nhiệm vụ). Người này có nhiệm vụ lên danh sách ngân hàng câu hỏi và là người  
duy nhất được truy xuất, xử lý thông tin trên cơ sở dữ liệu.  
- Một đề thi hoàn chỉnh (mẫu III.3) là tập hợp 100 câu hỏi khác nhau lấy ngẫu  
nhiên từ ngân hàng câu hỏi (quy tắc ra đề sẽ do bộ môn quyết định). Phương án trả lời  
sẽ được hoán đổi vị trí cho nhau để tránh việc 2 đề bài có chung một câu hỏi, thứ tự  
câu hỏi giống nhau. Yêu cầu sinh viên làm bài thi trong thời gian là 100 phút.  
- Sinh viên trả lời câu hỏi bằng cách chọn một trong 4 phương án trả lời A, B, C,  
D. Mỗi câu trả lời đúng tương ứng với 1 điểm. Không chọn phương án nào hoặc chọn  
sai sẽ không có điểm. Bài thi của sinh viên sẽ được lưu lại trong cơ sở dữ liệu và được  
NHÂN VIÊN A tổng hợp và kiểm tra. Khi nhân viên muốn lấy kết quả bài thi của sinh  
viên thì sẽ lấy từ bảng III.4.  
- Cuối đợt thi, NHÂN VIÊN A tổng kết điểm Y (điểm thi trắc nghiệm) và căn cứ  
vào điểm X để tính điểm Z cho sinh viên. Cuối cùng là đưa ra bảng điểm của từng lớp  
(Bảng III.5)  
3. Các biểu mẫu  
- Bảng III.1.  
Cấu trúc một câu hỏi:  
Câu số: ....  
...........................................................(Câu hỏi)  
(Các phương án trả lời)  
O A. ...............  
O B. ...................  
O C. ................  
O D. ...............  
- Mẫu III.2:  
TRường đhhhvn  
Khoa:...................  
cộng hoà xã hội chủ nghĩa việt nam  
Độc lập – Tự do – Hạnh phúc  
Tổ bộ môn: ...........  
-------***--------  
Bản xét duyệt  
Vào hồi ...h...’ ngày ... tháng ... năm .... tổ bộ môn.....đã họp và xét duyệt .... câu  
hỏi thi trắc nghiệm môn ... năm học ...  
Tổ trưởng bộ môn  
(Ký, ghi rõ họ tên)  
- Mẫu III.3:  
Đề số:.....  
Đề thi Môn  
Chủ nhiệm bộ môn  
............ Lần: ....  
...........  
Thời gian làm bài: 100’  
Chọn phương án trả lời đúng:  
Câu số: 001  
.......................................  
O A. ...............  
O B. ...................  
O C. ................  
O D. ...............  
O D. ...............  
.........................  
Câu số: 100  
.......................................  
O A. ............... O B. ...................  
O C. ................  
Mã sv:.......................  
Họ và tên:..........................  
Ngày sinh:.....................  
Lớp:...........................  
Khoa:.......................  
- Bảng III.4:  
Kết quả bài thi môn......lần ...  
Đề số:...  
Ngày thi:...............  
Mã sinh viên:....  
Họ và tên:.........................  
Ngày sinh:..............  
Lớp:..........  
Khoa:...........  
Trả lời: ....../100  
Điểm:.......  
- Bảng III.5  
Kết quả học phần lần...  
--------------------  
Trường ĐHHHVN  
Khoa:.......  
Lớp:........  
Năm học:.......  
Môn:.......  
Học kỳ: .....  
... Ngày.... tháng ... năm ...  
kết quả  
X
Ngày  
sinh  
Điểm Z  
(bằng chữ)  
TT  
Họ và tên  
số đề  
Ghi chú  
Y
Z
Số SV thi.... Tỷ lệ điểm giỏi:...... Tỷ lệ điểm khá:...... Tỷ lệ điểm TB  
Số SV đạt yêu cầu trở lên:..... Số SV vi phạm kỷ luật.....  
.... Ngày ... tháng ... năm ....  
Chủ nhiệm bộ môn  
Phần II: Phân tích và thiết kế hệ thống  
I. Sơ đồ phân rã chức năng:  
QL ngân hàng câu  
hỏi và HT thi trắc  
nghiệm  
Tìm  
kiếm  
Thống  
kê  
Thi  
QL Danh mục QL đề thi  
Tổ chức  
thi  
Phát hành  
QLDS SV  
Môn  
Quy tắc ra  
Tạo đề  
Câu hỏi  
Khoa  
Lớp  
QL DS bài  
II. Xác định đầu vào, đầu ra của hệ thống  
1. Chức năng quản lý danh mục  
1.1. Mục tiêu  
- Chức năng này tương ứng với nghiệp vụ soạn câu hỏi, cho phép cập nhật các  
nội dung về môn thi, câu hỏi, khoa, lớp của sinh viên.  
- Nó cho phép quản lý các nội dung trên với các thao tác thêm, sửa, xoá.  
1.2. Thông tin đầu vào  
- Danh sách các môn thi và danh sách câu hỏi của các môn đó  
- Danh sách khoa, lớp của sinh viên  
- Thông tin về môn thi, khoa, lớp thì khá đơn giản và bao gồm mã và tên. Còn  
về câu hỏi sẽ có những mức độ khó, dễ khác nhau chúng ta dựa trên mẫu câu hỏi (mẫu  
01)  
- Thông tin về kỳ thi (tổng hợp từ 3 mẫu biểu: mẫu III.3, III.4, III.5).  
1.3.Thông tin đầu ra  
- Lưu các thông tin vào cơ sở dữ liệu để làm đầu vào cho các chức năng khác.  
2. Chức năng quản lý đề thi  
2.1. Mục tiêu  
- Làm việc với các câu hỏi đã hoàn chỉnh. Nó cho phép đưa ra một quy tắc ra đề  
nhất định.  
- Chức năng này tương ứng với nghiệp vụ tạo đề thi của phòng đào tạo. Chức  
năng này sẽ tạo ra một số lượng đề theo quy tắc nào đó.  
2.2.Thông tin đầu vào  
- Chức năng này lấy dữ liệu của các câu hỏi, các môn được tạo từ chức năng  
trước, và căn cứ vào các câu hỏi đó ta có được một đề thi hoàn chỉnh (mẫu 02).  
2.3. Thông tin đầu ra  
- Nội dung đề thi lưu trữ trong cơ sở dữ liệu. Thông tin này sẽ là đầu vào của  
chức năng khác.  
- Đưa ra được một quy tắc ra đề với mức độ các câu khó, dễ phù hợp và lưu trữ  
trong cơ sở dữ liệu.  
3. Chức năng tổ chức thi  
3.1. Mục tiêu  
- Tương ứng với nghiệp vụ tổ chức thi  
- Tiến hành phát hành đề thi để cho sinh viên thi ở bước tiếp theo  
- Lên danh sách sinh viên và đề thi đưa ra được từng bài thi đầy đủ  
3.2.Thông tin đầu vào  
- Dữ liệu sinh viên căn cứ vào nội dung sinh viên ghi trong phiếu đăng ký thi.  
- Các đề thi hoàn chỉnh đã đựơc tạo từ bước tạo đề.  
- Thông tin về kỳ thi (tổng hợp từ 3 mẫu biểu: mẫu III.3, III.4, III.5).  
3.3.Thông tin đầu ra  
- Dữ liệu sinh viên, bài thi được lưu trong cơ sở dữ liệu để lấy ra sử dụng trong  
chức năng Thi  
4. Chức năng thi  
4.1. Mục tiêu  
- Chức năng này tương ứng với nghiệp vụ làm bài thi của sinh viên.  
- Cho phép sinh viên thi trong một khoảng thời gian nào đó tương ứng với môn.  
- Chấm điểm bài thi của sinh viên một cách tự động.  
4.2. Thông tin đầu vào  
- Thông tin đầy đủ về sinh viên, bài thi và các thông tin về thời gian thi, ngày thi  
cụ thể để đảm bảo không xảy ra thiếu sót trong quá trình thi.  
- Các dữ liệu được đưa vào sử dụng và sinh viên trực tiếp làm bài thi  
4.3. Thông tin đầu ra  
- Bài làm chi tiết sinh viên.  
- Điểm bài thi của sinh viên được chấm tự động, lưu trữ trong cơ sở dữ liệu và  
trả kết quả về cho sinh viên.  
5. Chức năng tìm kiếm và thống kê  
5.1.Thông tin đầu vào:  
- Các thông tin có trong quá trình từ khi bắt đầu tạo đề đến khi thi xong gồm có  
dữ liệu câu hỏi, khoa, lớp, sinh viên, đề thi, bài thi, ngày thi, điểm, .....  
- Cho phép tìm kiếm, thống kê theo các tiêu chí trên.  
5.2. Thông tin đầu ra:  
- Kết quả tìm kiếm, thống kê trả về cho Nhân viên lưu vào cơ sở dữ liệu để gửi  
tới các Khoa và sinh viên  
II. Sơ đồ luồng dữ liệu  
Bài  
thi  
1. Sơ đồ mức ngữ cảnh:  
Dl  
1. Nhập  
QLngân  
hàng câu  
hỏi và HT  
Dữ  
Nhân  
viên  
câu  
hỏi  
2. Tìm kiếm,  
Kết quả tìm kiếm  
KQ  
Đề  
th  
i
Đăng  
ký,  
làm  
bài  
Sinh  
viên  
2. Sơ đồ mức đỉnh:  
Kỳ  
DLDM  
1. Nhập DM  
QL Danh  
mục  
Danh  
quy tắc  
Câu hỏi  
DL ĐT  
2. Nhập T2 đề  
thi  
QL Đề thi  
Nhân  
Đề thi  
viên  
DL ĐT  
Lớp  
Kỳ  
Khoa Môn  
3. Nhập DS  
SV, số lượng  
đề thi  
DL SV  
Sinh vien  
DL SV  
Tổ chức  
Thi  
Làm  
DL  
BT  
Bài thi  
DL BT  
Sinh  
viên  
Kết  
Thi  
Tìm kiếm  
4. Tìm kiếm  
5. Thống kê  
Thống kê  
3. Sơ đồ mức dưới đỉnh:  
3.1. Quản lý danh mục:  
Dl câu  
hỏi  
1.Nhập, sửa  
ds  
QL DS  
Câu hỏi  
Nhân  
câu hỏi  
viên  
Dl  
môn  
thi  
2.Nhập, sửa  
ds  
QL DS  
Dl môn  
thi  
Môn thi  
Kỳ thi  
Môn thi  
Dl kỳ thi  
Dl khoa  
3.Nhập, sửa  
ds  
QL DS  
Khoa  
Khoa  
Lớp  
Dl khoa  
Dl lớp  
4.Nhập, sửa  
ds  
QL DS  
Lớp  
3.2 Quản lý đề thi:  
Khoa  
Môn  
Dl  
Dl  
Dl câu  
hỏi  
Câu  
hỏi  
1.Nhập,sửa số  
Nhân  
viên  
Tạo đề  
Dl đề  
Đề  
3.3. Tổ chức thi:  
QL DS  
SV  
Dl SV  
1. Đăng  
Sinh  
bài thi  
Khoa Lớp môn  
Sinh  
viên  
QL DS  
3. Làm  
Môn  
Dl bài  
3.4. T
bài thi  
bài thi  
Sinh  
Dl đề  
Phát  
Đề  
2. Ra đề  
l sv  
hành đề  
Dl  
môn  
Sinh  
viên  
Sinh  
viên  
Chấm  
điểm  
IV. phân tích hệ thống dữ liệu  
1. Xác định các thực thể  
1.1. Mô tả các thực thể  
* Danh sách các thực thể  
- Môn học  
- Kỳ thi  
- Câu hỏi  
- Đề thi  
- Quy tắc ra đề  
- Bài thi  
- Khoa  
- Lớp  
- Sinh viên  
* Vai trò các thực thể  
- Môn: lưu trữ thông tin về môn. Các thông tin về môn gồm mã môn học, tên  
môn học  
- Kỳ thi: lưu trữ thông tin về một đợt tổ chức thi trong năm học nào đó. Các  
thông tin về kỳ thi gồm: mã kỳ thi, diễn giải, năm học, học kỳ, lần thi, thời gian.  
- Câu hỏi phải thuộc môn nào đó, câu hỏi tham gia cấu tạo nên đề thi và là phần  
chính của đề thi. Các thông tin về câu hỏi gồm mã câu hỏi, nội dung câu hỏi, phương  
án trả lời, đáp án đúng và mức độ câu hỏi  
- Đề thi: dữ liệu chính để tổ chức thi. Thông tin về đề thi gồm mã đề, tên đề.  
- Quy tắc ra đề: Quy tắc để tổ chức một đề thi. Thông tin về quy tắc ra đề gồm  
có: mã quy tắc, số lượng đề, số lượng câu, số câu hỏi khó, số câu hỏi trung bình và số  
câu hỏi dễ.  
- Khoa: lưu trữ thông tin về khoa, gồm mã khoa và tên khoa  
- Lớp: tham gia vào chức năng lớp sinh viên, nó xác định danh mục các lớp mà  
khoa đang quản lý. Thông tin về lớp gồm mã lớp, tên lớp  
- Sinh viên: lưu trữ danh sách sinh viên của một lớp, tham gia vào cấu trúc của  
bài thi. Thông tin sinh viên gồm mã sinh viên, tên sinh viên, ngày sinh, ghi chú  
- Bài thi: Đây là tổng hợp tất cả nội dung của bài thi với sinh viên. Dữ liệu gồm  
mã bài thi, ngày thi, lần thi và thời gian thi, số câu đúng, điểm.  
2.2. Quan hệ giữa các thực thể  
- Xét 2 thực thể: Môn và câu hỏi.  
Một môn học có nhiều câu hỏi nhưng một câu hỏi chỉ thuộc một môn học  
Môn 1- n câu hỏi  
- Xét 2 thực thể: Môn và kỳ thi  
Một kỳ thi có rất nhiều môn thi và một môn thi chỉ thuộc một kỳ thi của năm  
học.  
kỳ thi 1 - n môn  
- Xét 2 thực thể: Đề thi và Môn.  
Đề thi và quy tắc ra đề: Một môn học có thuộc nhiều đề thi (xáo trộn vị trí câu  
và đáp án) và một đề thi chỉ thuộc một môn nhất định.  
Môn 1- n Đề thi  
- Xét 2 thực thể: Đề thi và quy tắc ra đề  
Nhiều đề thi có chung một quy tắc ra đề và 1 quy tắc ra đề được áp dụng cho  
nhiều đề thi.  
Quy tắc ra đề 1 – n Đề thi  
- Xét 2 thực thể: Câu hỏi và đề thi  
Nhiều câu hỏi thuộc nhiều đề thi khác nhau và nhiều đề thi có thể có nhiều câu  
hỏi khác nhau.  
Câu hỏi n - n Đề thi  
- Xét 2 thực thể: Câu hỏi và bài thi.  
Một câu hỏi thuộc bài thi và một bài thi có nhiều câu hỏi.  
Câu hỏi n - 1 Chi tiết bài thi  
- Xét 2 thực thể: Đề thi & Bài thi  
Một đề thi chỉ thuộc một bài thi và một bài thi chỉ có một đề  
Đề thi 1 - 1 bài thi  
- Xét 2 thực thể: Sinh viên & Bài thi  
Một sinh viên làm nhiều bài thi và một bài thi chỉ để một sinh viên làm  
Sinhviên 1- n Bài thi  
- Xét 2 thực thể: Khoa & Lớp.  
Một khoa có nhiều lớp nhưng một lớp chỉ thuộc một khoa duy nhất  
Khoa 1- n Lớp  
- Xét 2 thực thể: Lớp & Sinh viên  
Một lớp có nhiều sinh viên nhưng một sinh viên chỉ được học trong một lớp  
Lớp 1- n Sinhvien  
2.3. Sơ đồ quan hệ thực thể (E-R)  
* Sơ đồ tập thực thể ban đầu:  
có  
tổ  
chức  
c
1
n
kỳ thi  
- makt  
1
n
n
1
-
quy tắc ra  
đề  
Đề  
- made  
- tende  
Môn  
1
thu  
diengiai  
- namhoc  
- hocky  
- lanthi  
-
- mam  
- tenm  
- maqt  
- soluongcau  
- socaukho  
-
n
n
Bài thi  
- mabt  
- ngaythi  
-
thu  
1
socaudung  
- diem  
n
làm  
1
Câu hỏi  
- mach  
-
noidung  
-
luachon1  
-
thuộ  
c
n
n
-
Sinh viên  
traloi  
lớp  
- masv  
- tensv  
-
luachon2  
-
luachon3  
n
1
- mal  
- tenl  
c
ngsinh  
-
n
1
khoa  
- mak  
- tenk  
c
* Sơ đồ tập thực thể liên kết mức hạn chế  
chi tiết  
đề thi  
quy tắc ra đề  
- stt  
- made  
- mach  
- maqt  
đề thi  
- maqt  
- made  
-
tendeth  
- soluongcau  
- socaukho  
-
socautrungbi  
nh  
bài thi  
- made  
- mabt  
- masv  
-
ngaythi  
-
socaudun  
kỳ thi  
- makt  
-
diengiai  
- namhoc  
- hocky  
- lanthi  
-
môn  
- makt  
- mam  
- tenm  
sinh  
viên  
- masv  
- mal  
-
tensv  
-
thoigian  
câu hỏi  
- mach  
- noidung  
-
luachon1  
-
chi tiết  
bài thi  
- mabt  
- mach  
- traloi  
lớp  
khoa  
- mak  
-
- mal  
- mak  
- tenl  
2. Sơ đồ dữ liệu quan hệ  
2.1. Các bảng dữ liệu:  
tenk  
- môn(mã môn, tên môn)  
- kỳ thi(mã kì thi, diễn giải, năm học, học kỳ, lần thi, thời gian)  
- câu hỏi (mã câu hỏi, nội dung, phương án trả lời, đáp án, mức độ, lựa chọn 1,  
lựa chọn 2, lựa chọn 3, lựa chọn 4, đáp án)  
- đề thi(mã đề, mã quy tắc, mã môn, tên đề thi)  
- chi tiết đề thi(stt, mã đề thi, mã câu hỏi)  
- quy tắc ra đề (mã quy tắc, số lượng câu, số câu khó, số câu trung bình, số câu  
dễ )  
- bài thi (mã bài thi, mã đề thi, mã sinh viên, ngày thi, số câu đúng, điểm)  
- chi tiết bài thi (mã bài thi, mã câu hỏi, trả lời)  
- khoa (mã khoa, tên khoa)  
- lớp (mã lớp, mã khoa, tên lớp)  
- sinh viên (mã sinh viên, mã lớp, tên sinh viên, ngày sinh, ghi chú)  
* Bảng môn:  
Name  
mam  
makt  
tenm  
Data type Size Nulls  
Diễn giải  
mã môn  
mã kỳ thi  
tên môn  
varchar  
varchar  
nvarchar  
10  
10  
50  
* Bảng kỳ thi:  
Name  
makt  
diengiai  
namhoc  
hocky  
Data type Size Nulls  
Diễn giải  
mã kỳ thi  
diễn giải  
năm học  
học kỳ  
varchar  
nvarchar  
varchar  
smallint  
smallint  
int  
10  
30  
12  
2
2
4
lanthi  
thoigian  
lần thi  
thời gian  
* Bảng câu hỏi:  
Name  
mach  
Data type Size Nulls  
Diễn giải  
mã câu hỏi  
nội dung  
lựa chọn 1  
lựa chọn 2  
lựa chọn 3  
lựa chọn 4  
đáp án  
varchar  
nvarchar  
nvarchar  
nvarchar  
nvarchar  
nvarchar  
nvarchar  
char  
10  
255  
30  
30  
30  
30  
30  
10  
noidung  
luachon1  
luachon2  
luachon3  
luachon4  
dapan  
mucdo  
mức độ  
* Quy tắc ra đề:  
Name  
Data type Size Nulls  
Diễn giải  
maqt  
varchar  
10  
mã quy tắc  
soluongch int  
4
4
4
4
số lượng câu hỏi  
số câu hỏi khó  
số câu hỏi trung bình  
số câu hỏi dễ  
kho  
tb  
int  
int  
int  
de  
* Bảng đề thi:  
Name  
made  
maqt  
mam  
tende  
Data type Size Nulls  
Diễn giải  
mã đề  
mã quy tắc  
mã môn  
tên đề  
varchar  
varchar  
varchar  
nvarchar  
10  
10  
10  
30  
* Bảng chi tiết đề thi  
Name  
stt  
made  
mach  
Data type Size Nulls  
Diễn giải  
số thứ tự  
mã đề  
int  
4
varchar  
varchar  
10  
10  
mã quy tắc  
* Bảng bài thi:  
Name  
mabt  
made  
masv  
Data type Size Nulls  
Diễn giải  
mã bài thi  
mã đề  
mã sinh viên  
ngày thi  
varchar  
varchar  
varchar  
datetime  
10  
10  
10  
8
ngaythi  
socaudung int  
4
2
số câu đúng  
điểm  
diem  
smallint  
* Bảng chi tiết bài thi:  
Name  
Data type Size Nulls  
Diễn giải  
mabt  
mach  
traloi  
varchar  
varchar  
nvarchar  
10  
10  
30  
mã bài thi  
mã câu hỏi  
trả lời  
* Bảng khoa:  
Name  
mak  
tenk  
Data type Size Nulls  
Diễn giải  
mã khoa  
tên khoa  
varchar  
10  
50  
nvarchar  
* Bảng lớp:  
Name  
mal  
mak  
tenl  
Data type Size Nulls  
Diễn giải  
mã lớp  
mã khoa  
tên lớp  
varchar  
varchar  
nvarchar  
10  
10  
50  
* Bảng sinh viên:  
Name  
masv  
mal  
tensv  
ngaysinh  
ghichu  
Data type Size Nulls  
Diễn giải  
mã sinh viên  
mã lớp  
tên sinh viên  
ngày sinh  
ghi chú  
varchar  
varchar  
nvarchar  
datetime  
nvarchar  
10  
10  
50  
8
50  
+
3.2.2. Sơ đồ mô hình quan hệ  
PHầN III: Thiết kế giao diện  
1. Đăng nhập  
frmdangnha  
p
Đăng nhập người dùng  
User  
name  
Passwor  
txtuser size  
= 30  
txtpass  
d
size = 30  
pictureB  
ox1  
OK Exit  
btnOK  
btnEx  
size =  
size =  
(70,40)  
(70,40)  
Trạng thái khởi tạo:  
- btnOk, btnExit có enable = true.  
- txtpass có passwordChar = *  
- pictureBox1 show 1 icon.  
Hành động:  
- Khi click vào btnExit thì: thoát khỏi frmdangnhap.  
- Khi click vào btnOk thì kiểm tra trong bảng dangnhap và dữ liệu được nhập  
vào từ 2 ô text.  
Nếu txtuser.text hoặc txtpass.text = “ ” thì thông báo “Chưa nhập đủ thông tin”.  
Nếu upper(txtuser.text) != “ADMIN” hoặc “TEACHER” hoặc “STUDENTS” hoặc  
mat_ma không trùng thì thông báo “nhập sai thông tin”.  
Nếu upper(txtuser.text) == “ADMIN”, và trùng cả mat_khau thì thông báo “Bạn  
đăng nhập quyền Admin”.  
Thoát khỏi frmdangnhap và show Frmmain có trạng thái khởi tạo: tất cả menu của  
Frmmain có enable = true.  
Nếu upper(txtuser.text) == “TEACHER”, và trùng cả mat_khau thì thông báo  
“Bạn đăng nhập quyền giáo viên”.  
Thoát khỏi frmdangnhap và show Frmmain có trạng thái khởi tạo:  
+ mnuthongtin, mnuquytac, mnutaode có enable =false.  
Nếu upper(txtuser.text) == “STUDENTS”, và trùng cả mat_khau thì thông báo  
“Bạn đăng nhập quyền sinh viên”.  
-> Thoát khỏi frmdang nhap và show frmdangnhapsv.  
2. Formmain:  
Frmmain  
chương trình tổ chức thi trắc nghiệm  
Hệ thống  
Cập nhật  
Tra cứu/Thống kê  
Thông tin  
Help  
Danh mục hệ thống  
Đổi mật khẩu  
Sign out  
Danh sách sinh viên Tổng hợp  
Thông tin kỳ thi  
Quy tắc đề  
Exit  
Tạo đề thi  
- 5 menu chính: mnuhethong, mnucapnhat, mnutracuu, mnutkthongke,  
mnuthongtin.  
- mnuhethong: mnudmhethong, mnudoimatkhau, mnuthongtin, mnusignout.  
- mnucapnhat: mnudanhsachsv, mnuthongtinkythi, mnuquytac, mnutaode  
- mnutracuu: mnutracuutonghop  
* Trạng thái khởi tạo:  
- Tuỳ theo người dùng đăng nhập quyền Admin hay Teacher mà frmmain sẽ có  
menu nào được hoạt động.  
- Các thuộc tính: locked = true, MinimizeBox = false, WindowState =  
Maximized.  
* Hành động:  
- Khi người dùng:  
+ Click vào mnuexit thì thoát khỏi chương trình.  
+ Click vào mnusignout thì thoát khỏi Frmmain, trở về frmdangnhap.  
+ Click vào mnudoimatkhau thì hiển thị frmdoimatkhau  
+ Click vào mnuthongtin (quyền admin) thì hiển thị frmthongtinnguoidung  
+ Click vào mnuhelp: một file help sẽ được mở ra, giới thiệu về thông tin về  
phần mềm và toàn bộ hướng dẫn cụ thể về cách sử dụng phần mềm.  
+ Click vào mnudanhmuc: show form frmdanhmuc  
+ Click vào mnudanhsachsv: hiển thị frmdanhsachsv  
+ Click vào mnuthongtinkythi: hiển thị frmthongtinkythi  
+ Click vào mnuquytactaode: hiển thị frmquytactaode  
+ Click vào mnutaode: hiển thị frmtaode  
+ Click vào mnutracuutonghop: hienthi frmtracuutonghop  
3. Cập nhật danh mục  
frmdanhmu  
c
Danh mục hệ thống  
Cập nhật danh mục  
Thông tin cập nhật  
txt1  
txt2  
Danh mục dùng  
Labe  
l1  
Labe  
ComboBox2 size 120,25  
Labe  
ComboBox  
size 120,25  
gridvi  
ew  
Cance  
Thêm  
Sửa  
Xoá  
Thoát  
Save  
l
btnthe  
btnxoa  
btnsu  
btnCanc  
el  
btnSa  
ve  
btntho  
- ComboBox: Items (collection) :  
- 1. Môn  
- 2. Câu hỏi  
- 3. Khoa  
- 4. Lớp  
* Trạng thái khởi tạo:  
- frmdanhmuc có Font: TimeNewRoman 12. WindowState = Maximized;  
- txt1, txt2 có Multiline = true, Size = 200,30;  
- ComboBox2.text = “ ”; ComboBox2.enable = false;  
- ComboBox.text= “ ”; btnthem, btnsua, btnxoa, btnCancel, btnSave có enable = false.  
- gridview:  
+ Không cho phép thêm, sửa, xoá trực triếp trên gridview.  
+ Các dòng xen kẽ màu khác nhau.  
+ Chế độ chọn: FullRowSelect.  
* Hành động:  
Khi người dùng:  
- Click ComboBox chọn dòng “Môn”:  
+ gridview nạp tất cả danh sách đã nhập của bảng mon.  
+ btnthem, btnsua, btnxoa có enable = true;  
+ ComboBox2.enable = true, hiển thị tên kỳ thi nhưng trả về giá trị là makt;  
lable3.Visible = true; lable1.text = “Mã môn”; lable2.text = “Tên môn”, lable3.text =  
“Tên kỳ thi”;  
+ Lấy thông tin về mon của dòng tương ứng đưa vào các ô txt1, txt2, ComboBox2  
+ Nếu không có bản ghi nào trong danh sách thì btnsua, btnxoa có enable =  
false; Nếu có bản ghi trong danh sách thì btnxoa, btnsua có enable = true;  
+ Khi click vào nút thêm:  
btnthem, btnsua, btnxoa, có enable = false; btnSave, btnCancel có enable = true;  
ComboBox.enable = false; txt1.text= “ ”, txt2.text = “ ”;  
-> Click nút Cancel thì trở về trạng thái trước khi click nút thêm.  
-> Khi txt1.text != “ ” & txt2.text != “” thì: btnSave.enable = true;  
Khi nhấn nút Save:  
/. mam trùng thì thông báo “trùng mã môn”.  
/. nếu mam không trùng thì thêm bản ghi mới vào bảng mon. Nạp lại danh sách  
mon lên gridview. Chuyển btnthem, btnsua, btnxoa, ComboBox có enable = true;  
btnSave, btnCancel có enable = false;  
+ Khi click nút sửa: Xét một bản ghi trong danh sách  
ComboBox.enable = false; btnthem.enable = false; btnxoa.enable = false;  
btnCancel.enable = true; txt1.Readonly = true; btnSave.enable = true;  
btnsua.enable= false;  
Lấy thông tin về mon của dòng đang xét đưa vào các ô txt1, txt2. Chuyển con  
trỏ về ô txt2;  
/. Khi click vào nút Cancel:  
Trở lại trạng thái trước khi click nút sửa.  
/. Khi click vào nút Save:  
-> Nếu người dùng sửa ô txt2.text = “ ” thì thông báo “tên môn không để trống”.  
Ngược lại thì đẩy vào bảng mon. Trở lại trạng thái trước khi click nút sửa.  
+ Khi click nút xoá: Xét một bản ghi trong danh sách  
-> Nếu có sự ràng buộc không xoá được thì thông báo “không thể xoá bản ghi”.  
-> Nếu không có sự ràng buộc với các bảng khác thì xoá bản ghi khỏi danh sách.  
-> Khi xoá hết bản ghi trong danh sách, btnxoa.enable = false;  
- Click ComboBox chọn dòng “3. Khoa”:  
+ gridview nạp tất cả danh sách đã nhập của bảng khoa.  
+ btnthem, btnsua, btnxoa có enable = true;  
+ ComboBox2.enable = false; lable3.Visible = false; lable1.text = “Mã khoa”;  
lable2.text = “Tên khoa”;  
+ Lấy thông tin về khoa của dòng tương ứng đưa vào các ô txt1, txt2.  
+ Nếu không có bản ghi nào trong danh sách thì btnsua, btnxoa, btnSave,  
btnCancel có enable = false; Nếu có bản ghi trong danh sách thì btnxoa, btnsua có  
enable = true;  
+ Khi click vào nút thêm:  
btnthem, btnsua, btnxoa có enable = false; btnCancel.enable = true;  
ComboBox.enable = false; txt1.text= “ ”, txt2.text = “ ”; btnSave.enable = true;  
-> Click nút Cancel thì trở về trạng thái trước khi click nút thêm.  
-> Khi txt1.text != “ ” & txt2.text != “” thì: btnSave.enable = true;  
Khi nhấn nút Save:  
/. mak trùng thì thông báo “trùng mã khoa”.  
/. nếu mak không trùng thì thêm bản ghi mới vào bảng khoa. Nạp lại danh sách  
khoa lên gridview. Chuyển btnthem, btnsua, btnxoa, ComboBox có enable = true;  
btnSave, btnCancel có enable = false;  
+ Khi click nút sửa: Xét một bản ghi trong danh sách  
ComboBox.enable = false; btnthem, btnsua, btnxoa có enable = false;  
btnCancel.enable = true; txt1.Readonly = true; btnSave.enable = true;  
Lấy thông tin về khoa của dòng đang xét đưa vào các ô txt1, txt2. Chuyển con  
trỏ về ô txt2;  
/. Khi click vào nút Cancel:  
Trở lại trạng thái trước khi click nút sửa.  
/. Khi click vào nút Save:  
-> Nếu người dùng sửa ô txt2.text = “ ” thì thông báo “tên khoa không để  
trống”. Ngược lại thì đẩy vào bảng khoa. Trở lại trạng thái trước khi click nút sửa.  
+ Khi click nút xoá: Xét một bản ghi trong danh sách  
-> Nếu có sự ràng buộc không xoá được thì thông báo “không thể xoá bản ghi”.  
-> Nếu không có sự ràng buộc với các bảng khác thì xoá bản ghi khỏi danh sách.  
-> Khi xoá hết bản ghi trong danh sách, btnxoa.enable = false;  
- Click ComboBox chọn dòng “4. Lớp”:  
+ gridview nạp tất cả danh sách đã nhập của bảng lop.  
+ btnthem, btnsua, btnxoa có enable = true;  
+ ComboBox2.enable = true; lable3.Visible = true; lable1.text = “Mã lớp”;  
lable2.text = “Tên lớp”; lable3.text = “Tên khoa”.  
+ ComboBox2: hiển thị tenk tương ứng với mak ở gridview;  
+ Lấy thông tin về lớp của dòng tương ứng đưa vào các ô txt1, txt2,  
ComboBox2;  
+ Nếu không có bản ghi nào trong danh sách thì btnsua, btnxoa, btnSave,  
btnCancel có enable = false; Nếu có bản ghi trong danh sách thì btnxoa, btnsua có  
enable = true;  
+ Khi click vào nút thêm:  
btnthem, btnsua, btnxoa có enable = false; btnCancel.enable = true;  
ComboBox.enable = false; txt1.text= “ ”, txt2.text = “ ”; btnSave.enable = true;  
-> Click nút Cancel thì trở về trạng thái trước khi click nút thêm.  
-> Khi txt1.text != “ ” & txt2.text != “” thì: btnSave.enable = true;  
Khi nhấn nút Save:  
/. mal trùng thì thông báo “trùng mã lớp”.  
/. nếu mal không trùng thì thêm bản ghi mới vào bảng lop. Nạp lại danh sách lop  
lên gridview. Chuyển btnthem, btnsua, btnxoa, ComboBox có enable = true; btnSave,  
btnCancel có enable = false;  
+ Khi click nút sửa: Xét một bản ghi trong danh sách  
ComboBox.enable = false; btnthem, btnsua, btnxoa có enable = false;  
btnCancel.enable = true; txt1.Readonly = true; btnSave.enable = true;  
Lấy thông tin về khoa của dòng đang xét đưa vào các ô txt1, txt2. Chuyển con  
trỏ về ô txt2;  
/. Khi click vào nút Cancel:  
Trở lại trạng thái trước khi click nút sửa.  
/. Khi click vào nút Save:  
-> Nếu người dùng sửa ô txt2.text = “ ” thì thông báo “tên lớp không để trống”.  
Ngược lại thì đẩy vào bảng lớp. Trở lại trạng thái trước khi click nút sửa.  
+ Khi click nút xoá: Xét một bản ghi trong danh sách  
-> Nếu có sự ràng buộc không xoá được thì thông báo “không thể xoá bản ghi”.  
-> Nếu không có sự ràng buộc với các bảng khác thì xoá bản ghi khỏi danh sách.  
-> Khi xoá hết bản ghi trong danh sách, btnxoa.enable = false;  
- Click ComboBox chọn dòng “2. Câu hỏi”:  
+ Hiển thị form frmcauhoi  
* Trạng thái khởi tạo  
- gridview nạp tất cả danh sách đã nhập của bảng cauhoi.  
- btnthoat.enable = true; Nếu không có bản ghi nào trong danh sách thì btnthem,  
btnsua, btnxoa, btnsave, btncancel có enable = false; Ngược lại thì btnthem, btnsua,  
btnxoa, btnsave, btncancel có enable = true;  
- Lấy thông tin về cauhoi của dòng tương ứng đưa vào các ô txtch, txtnd.  
- cboda lấy 1 trong 4 giá trị được lấy từ 4 ô text txtA, txtB, txtC, txtD.  
frmcauh  
oi  
Danh mục câu hỏi  
Cập nhật câu hỏi  
Thêm Sửa  
mã câu  
txtch size =  
txtnd size =  
cbomd size =  
nội dung  
mức độ  
Xoá Save  
Các lựa  
A
txtA size =  
txtB size =  
txtC size =  
txtD size =  
cboda size =  
Cance Thoát  
l
B
C
D
Đáp án  
mach noidung mucdo luachon1 luachon2 luachon3 luachon4 dapan  
gridvie  
- txtch, txtnd, txtA, txtB, txtC, txtD có multiline = true;  
- nút thêm có name: btnthem, Sửa -> name: btnsua; Xoá -> name: btnxoa; Save ->  
btnsave; Cancel -> btncancel; Thoát -> btnthoat.  
- cbomd: Items (collection):  
- 1. Khó  
- 2. Trung bình  
- 3. Dễ  
* Hành động:  
+ Khi click vào nút thoát: thoát khỏi frmcauhoi, trở về trạng thái khởi tạo của  
frmdanhmuc.  
+ Khi click vào nút thêm:  
btnthem, btnsua, btnxoa có enable = false; btnsave, btncancel có enable = true;  
txtch.text= “ ”, txtnd.text = “ ”; txtA.text = “ ”; txtB.text = “ ”; txtC.text =  
“ ”; txtD.text = “ ”.  
-> Click nút Cancel thì trở về trạng thái trước khi click nút thêm.  
-> Khi txtch.text != “ ” & txtnd.text != “ ” & txtA.text != “” & txtB.text != “” &  
txtC.text != “ ” & txtD.text != “ ” & cboda.text != “ ” thì: btnSave.enable = true;  
Khi nhấn nút Save:  
/. mach trùng thì thông báo “trùng mã câu hỏi”.  
/. nếu mach không trùng thì thêm bản ghi mới vào bảng cauhoi. Nạp lại danh  
sách cauhoi lên gridview. Chuyển btnthem, btnsua, btnxoa có enable = true; btnSave,  
btnCancel có enable = false;  
+ Khi click nút sửa: Xét một bản ghi trong danh sách  
btnthem, btnsua, btnxoa có enable = false;  
btnCancel.enable = true; txtch.Readonly = true; btnSave.enable = true;  
Lấy thông tin về cauhoi của dòng đang xét đưa vào các ô txtch, txtnd, cbomd,  
txtA, txtB, txtC, txtD. Chuyển con trỏ về ô txtnd;  
/. Khi click vào nút Cancel:  
Trở lại trạng thái trước khi click nút sửa.  
/. Khi click vào nút Save:  
-> Nếu người dùng sửa ô txtnd.text = “ ” hoặc txtA.text = “” hoặc txtB.text = “”  
hoặc txtC.text = “ ” hoặc txtD.text = “ ” hoặc cboda.text = “ ” thì thông báo “Nhập  
thiếu thông tin”. Ngược lại thì đẩy vào bảng cauhoi. Trở lại trạng thái trước khi click  
nút sửa.  
+ Khi click nút xoá: Xét một bản ghi trong danh sách  
-> Nếu có sự ràng buộc không xoá được thì thông báo “không thể xoá bản ghi”.  
-> Nếu không có sự ràng buộc với các bảng khác thì xoá bản ghi khỏi danh sách.  
-> Khi xoá hết bản ghi trong danh sách, btnxoa.enable = false;  
4. Đổi mật khẩu  
* Trạng thái khởi tạo:  
- txtuser.Readonly = true; txtuser.text = “Admin” hay “Teacher” tuỳ theo người dùng  
đăng nhập.  
frmdoimatk  
hau  
Đổi mật khẩu  
txtuser size  
User  
= 30  
name  
txtold size  
Password  
= 30  
txtnew size =  
30  
old  
Password  
new  
OK Exit  
pictureB  
ox1  
btnOK  
btnEx  
size =  
(70,40)  
size =  
(70,40)  
* Hành động:  
- Khi người dùng đã nhập thông tin vào 2 ô text txtold và txtnew:  
+ Nếu txtold không trùng mat_khau trong bảng dangnhap thì thông báo “Sai mật  
khẩu”. Ngược lại thì đẩy nội dung của ô txtnew vào bảng dangnhap thay cho mat_khau  
của tai_khoan tương ứng.  
5. Cập nhật danh sách sinh viên  
- gridview nạp tất cả danh sách đã nhập của bảng sinhvien.  
- btnthoat.enable = true; Nếu không có bản ghi nào trong danh sách thì btnthem,  
btnsua, btnxoa, btnsave, btncancel có enable = false; Ngược lại thì btnthem, btnsua,  
btnxoa, btnsave, btncancel có enable = true;  
- Lấy thông tin về sinhvien của dòng tương ứng đưa vào các ô txtmasv, txtten, cbol,  
cbok, txtns, txtgch.  
- cbol lấy tenl của mal tương ứng từ gridview; cbok nạp tất cả danh sách đã nhập từ  
bảng khoa.  
- Tương ứng một khoa sẽ có một loạt danh sách các lớp trong cbol;  
frmdanhsach  
sv  
Danh sách sinh viên  
Cập nhật danh sách sinh viên  
Thêm Sửa  
mã sinh  
Tên sinh  
Khoa  
txtmasv size =  
txtten size =  
cbok size =  
Xoá Save  
Lớp  
cbol size =  
Cance Thoát  
l
Ngày  
txtns size =  
txtgch size =  
Ghi chú  
mach noidung mucdo  
gridvie
+ Khi click vào nút thêm:  
btnthem, btnsua, btnxoa có enable = false; btnsave, btncancel có enable = true;  
txtmasv.text= “ ”, txtten.text = “ ”, txtns.text = “ ”, txtgch.text = “ ”;  
-> Click nút Cancel thì trở về trạng thái trước khi click nút thêm.  
-> Khi txtmasv.text != “ ” & txtten.text != “ ” & txtns.text!= “ ” & txtgch.text != “ ”  
thì: btnSave.enable = true;  
Khi nhấn nút Save:  
/. masv trùng thì thông báo “trùng mã sinh viên”.  
/. nếu masv không trùng thì thêm bản ghi mới vào bảng sinhvien. Nạp lại danh  
sách sinhvien lên gridview. Chuyển btnthem, btnsua, btnxoa có enable = true; btnSave,  
btnCancel có enable = false;  
+ Khi click nút sửa: Xét một bản ghi trong danh sách  
btnthem, btnsua, btnxoa có enable = false;  
btncancel.enable = true; txtmasv.Readonly = true; btnsave.enable = true;  
Lấy thông tin về sinhvien của dòng đang xét đưa vào các ô txtmasv, txtten, cbok,  
cbol, txtns, txtgch. Chuyển con trỏ về ô txtten;  
/. Khi click vào nút Cancel:  
Trở lại trạng thái trước khi click nút sửa.  
/. Khi click vào nút Save:  
-> Nếu người dùng sửa ô txtten.text = “ ” hoặc txtns.text = “ ” hoặc txtgch.text = “ ”thì  
thông báo “Nhập thiếu thông tin”. Ngược lại thì đẩy vào bảng sinhvien. Trở lại trạng  
thái trước khi click nút sửa.  
+ Khi click nút xoá: Xét một bản ghi trong danh sách  
-> Nếu có sự ràng buộc không xoá được thì thông báo “không thể xoá bản ghi”.  
-> Nếu không có sự ràng buộc với các bảng khác thì xoá bản ghi khỏi danh sách.  
-> Khi xoá hết bản ghi trong danh sách, btnxoa.enable = false;  
6. Cập nhật quy tắc ra đề  
- gridview nạp tất cả danh sách đã nhập của bảng quytac.  
- btnthoat.enable = true; Nếu không có bản ghi nào trong danh sách thì btnthem,  
btnsua, btnxoa, btnsave, btncancel có enable = false; Ngược lại thì btnthem, btnsua,  
btnxoa, btnsave, btncancel có enable = true;  
- Lấy thông tin về quytac của dòng tương ứng đưa vào các ô txtmaqt, txtsl, txtkho,  
txttb, txtde.  
frmquytacta  
ode  
Quy tắc tạo tạo đề  
Cập nhật quy tắc tạo đề  
Thêm Sửa  
mã quy  
txtmaqt size =  
txtsl size =  
Số lượng câu  
Xoá Save  

Tải về để xem bản đầy đủ

pdf 37 trang yennguyen 10/03/2025 210
Bạn đang xem 30 trang mẫu của tài liệu "Đồ án Phân tích và thiết kế hệ thống Quản lý ngân hàng câu hỏi và tổ chức thi trắc nghiệm trên mạng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfdo_an_phan_tich_va_thiet_ke_he_thong_quan_ly_ngan_hang_cau_h.pdf