Tổng quan 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 liệu Tổng quan quản lý ngân hàng câu hỏi và tổ chức thi trắc nghiệm trên mạng: Kế hoạch làm việc Tên thành viên Modul Trương Công Hiếu hieubaba@gmail.com - Quản lý danh mục hệ thống. Hoàng Thị Dương - Quản lý đề thi. Nguyễn Đại Dương - Tổ chức thi. Hà Thị Hồng Duyên - Tìm kiếm, thống kê. 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ạ...

doc40 trang | Chia sẻ: hunglv | Lượt xem: 1152 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Tổng quan 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 bạn click vào nút DOWNLOAD ở trên
Kế hoạch làm việc Tên thành viên Modul Trương Công Hiếu hieubaba@gmail.com - Quản lý danh mục hệ thống. Hoàng Thị Dương - Quản lý đề thi. Nguyễn Đại Dương - Tổ chức thi. Hà Thị Hồng Duyên - Tìm kiếm, thống kê. 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 Ban giám hiệu - Cơ cấu tổ chức: Bộ môn khác Bộ môn ANH VĂN Trưởng bộ môn Các giáo viên - 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:................... Tổ bộ môn: ........... cộng hoà xã hội chủ nghĩa việt nam Độc lập – Tự do – Hạnh phúc -------***-------- 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 ............ Lần: .... Thời gian làm bài: 100’ Chủ nhiệm bộ môn ........... Chọn phương án trả lời đúng: Câu số: 001 ....................................... O A. ............... O B. ................... O C. ................ O D. ............... ......................... Câu số: 100 ....................................... O A. ............... O B. ................... O C. ................ O D. ............... 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 Trường ĐHHHVN Khoa:....... Lớp:........ Kết quả học phần lần... -------------------- Năm học:....... Môn:....... Học kỳ: ..... ... Ngày.... tháng ... năm ... TT Họ và tên Ngày sinh số đề kết quả Điểm Z (bằng chữ) Ghi chú X 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 QL đề thi QL Danh mục Tổ chức thi Thi Tìm kiếm Thống kê Câu hỏi Môn Khoa Lớp Quy tắc ra đề Tạo đề Phát hành đề QLDS SV QL DS bài thi 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 dl QLngân hàng câu hỏi và HT thi trắcnghiệm Dữ liệu Nhân viên câu hỏi 2. Tìm kiếm, thống kê Kết quả tìm kiếm KQ Đề thi Đăng ký, làm bài Sinh viên 2. Sơ đồ mức đỉnh: Kỳ thi 1. Nhập DM QL Danh mục DLDM Danh mục quy tắc đề Câu hỏi 2. Nhập T2 đề thi Nhân viên DL ĐT QL Đề thi Đề thi DL ĐT Kỳ thi Lớp Môn Khoa 3. Nhập DS SV, số lượng đề thi DL SV Sinh vien Tổ chức Thi Làm bài DL SV DL BT Bài thi Kết quả Sinh viên DL BT 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: 1.Nhập, sửa ds câu hỏi QL DS câu hỏi Dl câu hỏi Câu hỏi Nhân viên Dl môn thi 2.Nhập, sửa ds môn thi QL DS Môn thi Dl môn thi Môn thi Kỳ thi Dl kỳ thi 3.Nhập, sửa ds khoa QL DS Khoa Dl khoa Khoa Dl khoa 4.Nhập, sửa ds lớp QL DS Lớp Dl lớp Lớp 3.2 Quản lý đề thi: Nhân viên Tạo đề 1.Nhập,sửa số lượng đề Câu hỏi Đề thi Dl câu hỏi Dl đề thi Quy tắc ra đề 2.Nhập,sửa quy tắc ra đề quy tắc đề Dl quy tắc đề Môn Khoa Dl môn Dl khoa Sinh viên QL DS bài thi Dl bài thi QL DS SV Đề thi Dl đề thi Sinh viên 3. Làm bài thi Dl SV 1. Đăng ký Khoa Phát hành đề Lớp môn 2. Ra đề thi 3.3. Tổ chức thi: bài thi 3.4. Thi: Môn Sinh viên bài thi Dl sv Dl môn Chấm điểm Sinh viên Sinh viên 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) tổ chức thi có có * Sơ đồ tập thực thể ban đầu: 1 kỳ thi - makt - diengiai - namhoc - hocky - lanthi - thoigian n 1 1 n n Môn - mam - tenm quy tắc ra đề - maqt - soluongcau - socaukho - socautrungbinh - socaude thuộc Đề - made - tende 1 n n thuộc Bài thi - mabt - ngaythi - socaudung - diem 1 Câu hỏi - mach - noidung - luachon1 - luachon2 - luachon3 - luachon4 - dapan - mucdo n thuộc làm n n 1 lớp - mal - tenl Sinh viên - masv - tensv - ngsinh - ghichu - traloi n 1 có n 1 có khoa - mak - tenk * Sơ đồ tập thực thể liên kết mức hạn chế chi tiết đề thi - stt - made - mach quy tắc ra đề - maqt - soluongcau - socaukho - socautrungbinh - socaude đề thi - maqt - made - tendethi - mam bài thi - made - mabt - masv - ngaythi - socaudung - diem môn - makt - mam - tenm kỳ thi - makt - diengiai - namhoc - hocky - lanthi - thoigian sinh viên - masv - mal - tensv - ngsinh - ghichu câu hỏi - mach - noidung - luachon1 - luachon2 - luachon3 - luachon4 - dapan - mucdo chi tiết bài thi - mabt - mach - traloi lớp - mal - mak - tenl khoa - mak - tenk 2. Sơ đồ dữ liệu quan hệ 2.1. Các bảng dữ liệu: - 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 Data type Size Nulls Diễn giải mam varchar 10 mã môn makt varchar 10 mã kỳ thi tenm nvarchar 50 tên môn * Bảng kỳ thi: Name Data type Size Nulls Diễn giải makt varchar 10 mã kỳ thi diengiai nvarchar 30 diễn giải namhoc varchar 12 năm học hocky smallint 2 học kỳ lanthi smallint 2 lần thi thoigian int 4 thời gian * Bảng câu hỏi: Name Data type Size Nulls Diễn giải mach varchar 10 mã câu hỏi noidung nvarchar 255 nội dung luachon1 nvarchar 30 lựa chọn 1 luachon2 nvarchar 30 lựa chọn 2 luachon3 nvarchar 30 lựa chọn 3 luachon4 nvarchar 30 lựa chọn 4 dapan nvarchar 30 đáp án mucdo char 10 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 số lượng câu hỏi kho int 4 số câu hỏi khó tb int 4 số câu hỏi trung bình de int 4 số câu hỏi dễ * Bảng đề thi: Name Data type Size Nulls Diễn giải made varchar 10 mã đề maqt varchar 10 mã quy tắc mam varchar 10 mã môn tende nvarchar 30 tên đề * Bảng chi tiết đề thi Name Data type Size Nulls Diễn giải stt int 4 số thứ tự made varchar 10 mã đề mach varchar 10 mã quy tắc * Bảng bài thi: Name Data type Size Nulls Diễn giải mabt varchar 10 mã bài thi made varchar 10 mã đề masv varchar 10 mã sinh viên ngaythi datetime 8 ngày thi socaudung int 4 số câu đúng diem smallint 2 điểm * Bảng chi tiết bài thi: Name Data type Size Nulls Diễn giải mabt varchar 10 mã bài thi mach varchar 10 mã câu hỏi traloi nvarchar 30 trả lời * Bảng khoa: Name Data type Size Nulls Diễn giải mak varchar 10 mã khoa tenk nvarchar 50 tên khoa * Bảng lớp: Name Data type Size Nulls Diễn giải mal varchar 10 mã lớp mak varchar 10 mã khoa tenl nvarchar 50 tên lớp * Bảng sinh viên: Name Data type Size Nulls Diễn giải masv varchar 10 mã sinh viên mal varchar 10 mã lớp tensv nvarchar 50 tên sinh viên ngaysinh datetime 8 ngày sinh ghichu nvarchar 50 + ghi chú 3.2.2. Sơ đồ mô hình quan hệ PHầN III: Thiết kế giao diện frmdangnhap Đăng nhập người dùng 1. Đăng nhập txtuser size = 30 User name txtpass size = 30 Password pictureBox1 Exit OK btnOK btnExit size = (70,40) size = (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. Frmmain 2. Formmain: 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 Danh mục hệ thống Danh sách sinh viên Tổng hợp Help Đổi mật khẩu Thông tin kỳ thi Exit Sign out Quy tắc đề 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 frmdanhmuc Danh mục hệ thống Cập nhật danh mục Thông tin cập nhật Chức năng: txt1 Danh mục dùng chung Label1 txt2 Label2 ComboBox2 size 120,25 Label3 ComboBox size 120,25 gridview Save Thoát btnSave Cancel Xoá Sửa Thêm btnCancel btnthoat btnthem btnsua btnxoa - 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. frmcauhoi Danh mục câu hỏi Cập nhật câu hỏi mach noidung mucdo luachon1 luachon2 luachon3 luachon4 dapan Thêm Sửa txtch size = 120,30 mã câu hỏi Các lựa chọn cbomd size = 120,30 txtnd size = 120,30 mức độ nội dung Save Xoá txtA size = 120,30 A Thoát Cancel txtB size = 120,30 B txtC size = 120,30 C txtD size = 120,30 D cboda size = 120,30 Đáp án gridview - 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. frmdoimatkhau Đổi mật khẩu size = (70,40) size = (70,40) btnExit btnOK Exit OK txtuser size = 30 User name txtold size = 30 Password old txtnew size = 30 Password new pictureBox1 * 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; frmdanhsachsv Thoát Cancel Save Xoá Sửa cbol size = 120,30 Thêm gridview txtns size = 120,30 cbok size = 120,30 txtten size = 120,30 txtmasv size = 120,30 Danh sách sinh viên Cập nhật danh sách sinh viên mach noidung mucdo Tên sinh viên txtgch size = 120,30 Khoa mã sinh viên Lớp Ngày sinh Ghi chú - txtmasv, txtten, txtns, txtgch, có multiline = true; - nút thêm có name: btnthem, Sửa -> name: btnsua; Xoá -> name: btnxoa; Save -> btnsave; Cancel -> btncancel; Thoát -> btnthoat. * Hành động: + Khi click vào nút thoát: thoát khỏi frmdanhsachsv, trở về trạng thái khởi tạo của frmmain. + 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. frmquytactaode Quy tắc tạo tạo đề Cập nhật quy tắc tạo đề maqt soluongcauhoi kho trungbinh de txtmaqt size = 120,30 mã quy tắc Sửa Thêm Số lượng câu hỏi txtsl size = 120,30 Save Xoá txtkho size = 120,30 Khó txttb size = 120,30 Trung bình Thoát Cancel txtde size = 120,30 Dễ gridview - txtmaqt, txtsl, txtkho, txttb,txtde, có multiline = true; - nút thêm có name: btnthem, Sửa -> name: btnsua; Xoá -> name: btnxoa; Save -> btnsave; Cancel -> btncancel; Thoát -> btnthoat. * Hành động: + Khi click vào nút thoát: thoát khỏi frmquytactaode, trở về trạng thái khởi tạo của frmmain. + Khi click vào nút thêm: btnthem, btnsua, btnxoa có enable = false; btnsave, btncancel có enable = true; txtmaqt.text= “ ”, txtsl.text = “ ”, txtkho.text = “ ”, txttb.text = “ ”, txtde.text = “ ”; -> Click nút Cancel thì trở về trạng thái trước khi click nút thêm. -> Khi txtmaqt.text != “ ” & txtsl.text != “ ” & txtkho.text!= “ ” & txttb.text != “ ” & txttb.text != “ ” thì: btnSave.enable = true; Khi nhấn nút Save: /. maqt trùng thì thông báo “trùng mã quy tắc”. /. nếu maqt không trùng thì thêm bản ghi mới vào bảng quytac. Nạp lại danh sách quytac 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; txtmaqt.Readonly = true; btnsave.enable = true; Lấy thông tin về quytac của dòng đang xét đưa vào các ô txtmaqt, txtsl, txtkho, txttb, txtde. 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 ô txtsl.text = “ ” hoặc txtkho.text = “ ” hoặc txttb.text = “ ” hoặc txtde.text = “ ” thì thông báo “Nhập thiếu thông tin”. Ngược lại thì đẩy vào bảng quytac. 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; 7. Cập nhật thông tin kỳ thi - gridview nạp tất cả danh sách đã nhập của bảng kythi. - 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ề kythi của dòng tương ứng đưa vào các ô txtmakt, txtdg, txtnh, cbohk, txtlanthi, txtthoigian. frmthongtinkythi txtlanthi size = 120,30 cbohk size = 120,30 Lần thi Học kỳ gridview txtnh size = 120,30 txtdg size = 120,30 txtmakt size = 120,30 Năm học Tên kỳ thi Mã kt Thoát Cancel Save Xoá Sửa Thêm Thông tin kỳ thi Cập nhật thông tin kỳ thi makt diengiai namhoc hocky lanthi thoigian Thời gian txtthoigian size = 120,30 - txtmakt, txtdg, txtnho, txtlanthi, txtthoigian, có multiline = true; - nút thêm có name: btnthem, Sửa -> name: btnsua; Xoá -> name: btnxoa; Save -> btnsave; Cancel -> btncancel; Thoát -> btnthoat. - cbohk : Items (collection) + 1 + 2 * Hành động: + Khi click vào nút thoát: thoát khỏi frmthongtinkythi, trở về trạng thái khởi tạo của frmmain. + Khi click vào nút thêm: btnthem, btnsua, btnxoa có enable = false; btnsave, btncancel có enable = true; txtmakt.text= “ ”, txtdg.text = “ ”, txtnh.text = “ ”, txtlanthi.text = “ ”, txtthoigian.text = “ ”; -> Click nút Cancel thì trở về trạng thái trước khi click nút thêm. -> Khi txtmakt.text != “ ” & txtdg.text != “ ” & txtnh.text!= “ ” & txtlanthi.text != “ ” & txtthoigian.text != “ ” thì: btnSave.enable = true; Khi nhấn nút Save: /. makt trùng thì thông báo “trùng mã kỳ thi”. /. nếu makt không trùng thì thêm bản ghi mới vào bảng kythi. Nạp lại danh sách kythi 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; txtmakt.Readonly = true; btnsave.enable = true; Lấy thông tin về kythi của dòng đang xét đưa vào các ô txtmakt, txtdg, txtnh, cbohk, txtlanthi, txtthoigian. Chuyển con trỏ về ô txtdg; /. 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 ô txtdg.text = “ ” hoặc txtnh.text = “ ” hoặc txtlanthi.text = “ ” hoặc txtthoigian.text = “ ” thì thông báo “Nhập thiếu thông tin”. Ngược lại thì đẩy vào bảng kythi. 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; 8. Tạo đề thi - gridview nạp tất cả danh sách đã nhập của bảng dethi. - 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ề đề thi của dòng tương ứng đưa vào các ô txtmade, cboqt, cbomon, txttendt. - cboqt hiển thị tên quy tắc nhưng có giá trị là maqt. - cbomon hiển thị tên môn nhưng giá trị trả về mam. txttendt size = 120,30 cbomon size = 120,30 Tên đề thi Tên môn gridview cboqt size = 120,30 txtmade size = 120,30 txtsl size = 120,30 Tên quy tắc Số lượng Thoát Cancel Save Xoá Thêm frmtaode tạo đề thi Cập nhật đề thi makt diengiai namhoc hocky lanthi thoigian Mã đề - txtsl, txtmade, txttendt có multiline = true; txtmade.Readonly = true; txttendt.Readonly = true; - nút thêm có name: btnthem; Xoá -> name: btnxoa; Save -> btnsave; Cancel -> btncancel; Thoát -> btnthoat. + Khi click vào nút thêm: btnthem, btnsua, btnxoa có enable = false; btnsave, btncancel có enable = true; txtmasl.text= “ ”, cboqt.text = “ ”, cbomon.text = “ ”, txttendt.text = “ ” -> Click nút Cancel thì trở về trạng thái trước khi click nút thêm. -> Khi txtmasl.text!= “ ” & cboqt.text!= “ ” cbomon.text.text!= “ ” & txttendt.text.text != “ ” thì: btnSave.enable = true; Khi nhấn nút Save: /. txtsl.value<=0 thì thông báo “Nhập lại số lượng đề”. /. nếu txtsl.value >0 thì thêm txtsl.value bản ghi mới vào bảng dethi. made, tende được cập nhật một cách tự động. made= “dt” + số thứ tự bản ghi tende = “Đề số ” + số thứ tự bản ghi. Nạp lại danh sách dethi lên gridview. Chuyển btnthem, btnxoa có enable = true; btnSave, btnCancel có enable = false; + 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; 9. Tra cứu/ thống kê txtlop size = 120,30 cbokhoa size = 120,30 Thoát In Tìm frmtracuutonghop Tra cứu & Thống kê tổng hợp O Danh sách điểm sinh viên optdssv Tên lớp Tên khoa optdsv txtmasv size = 120,30 Mã sv O Danh sách điểm sinh viên gridview * Hành động: - Khi người dùng click optdssv: cbokhoa và cbolop có enable = true; Các comboBox và text còn lại có enable = false hoặc Readonly = true; + cbokhoa nạp tất cả danh sách đã nhập của bảng khoa. ứng với một 1 danh sách của cbokhoa là một danh sách lớp được nạp vào cbolop. + Khi click vào nút tìm: cbolop != “ ” nạp toàn bộ danh sách đã nhập của bảng lop lên gridview. + Click nút In: reportdssv được hiển thị theo mẫu III.5 - Khi người dùng click optdsv: txtmasv.enable = true; txtmasv.Readonly = false; + Khi người dùng click vào nút tìm: -> Nếu txtmasv.text != “ ” tìm trong bảng sinhvien xem có masv nào thoả mãn không. Nếu có thì nạp lên gridview. Click nút In : hiển thị report người dùng có thể in như mẫu III.4; 10. Đăng nhập sinh viên Đăng nhập sinh viên frmdangnhapsv txtmasv size = 30 Mã sinh viên txtten size = 30 Họ và tên pictureBox1 OK Exit btnOK btnExit size = (70,40) size = (70,40) * Hành động: - Khi người dùng click vào nút OK. + Nếu txtmasv.text != “ ” & txtten.text != “ ” & txtlop.text != “ ” thì so sánh giá trị của 2 ô txtmasv & txtten với masv & tensv trong bảng sinhvien. Nếu trùng thì hiển thị frmthi. Ngược lại thông báo “Đăng nhập không thành công”. 11. Thi - Khi các đề thi được tạo xong thì bảng chitietdethi được cập nhật một cách tự động. - Tạo bảng view trong cơ sở dữ liệu có tên là viewthi từ các bảng: cauhoi, chitietdethi, kythi, dethi, mon; sao cho viewthi chỉ lấy từ một đề thi bất kỳ; Các cột của viewthi tương ứng với 10 textbox trên frmthi * Trạng thái khởi tạo: - Tất cả các textbox đều có Readonly = true; - Nạp viewthi lên frmthi; txt10 size = (70,40) txt9 size = (70,40) frmthi SInh viên thi Đề thi môn Đề số: txt8 size = (70,40) Thời gian Lần txt1 size = (70,40) txt3 size = (70,40) txt2 size = (70,40) Nội dung Câu số Exit OK txt4 size = (70,40) OA txt5 size = (70,40) OB btnOK btnExit txt6 size = (70,40) OC size = (70,40) size = (70,40) txt7 size = (70,40) >> << OD btnback btnnext * Hành động: - Khi người dùng click btnnext: chuyển tới bản ghi tiếp theo; btnback: lùi lại bản ghi trước; - Click btnOK, nếu người dùng click chọn một option thì nội dung của text box tương ứng sẽ được lưu lại. Quá trình kiểm tra việc trả lời đúng của sinh viên diễn ra tự động; Điểm được tính tự động bằng cách: (số câu đúng/ tổng số câu) * 10; - Click Exit: thông báo “Bạn muốn dừng thi (Yes/No)”; Yes thì dừng, thông báo kết quả cho sinh viên. Click tiếp vào nút Exit thì thoát khỏi frmthi, trở về trạng thái ban đầu của frmdangnhapsv; ---------------------------------------------------------------------------------------------------------

Các file đính kèm theo tài liệu này:

  • docDE6_Qu7843n l ngn hng cc cu h7887i tr7855c nghi7879m.doc