36
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THỰC PHẨM TP. HỒ CHÍ MINH KHOA CÔNG NGHỆ THÔNG TIN Đồ án môn: LẬP TRÌNH WINDOW Đề tài: XÂY DỰNG CHƯƠNG TRÌNH THI GIẤY PHÉP LÁI XE 2 BÁNH GVHD : Bùi Công Danh

PHAN MEM THI GIAY PHEP LAI XE 2 BANH

Embed Size (px)

Citation preview

BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THỰC PHẨM TP. HỒ CHÍ MINH

KHOA CÔNG NGHỆ THÔNG TIN

Đồ án môn: LẬP TRÌNH WINDOW

Đề tài: XÂY DỰNG CHƯƠNG TRÌNH THI GIẤY PHÉP LÁI XE 2 BÁNH

GVHD: Bùi Công Danh

TP. Hồ Chí Minh, ngày 09 tháng 12 năm 2014

MỤC LỤC

CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI..............................11.1....................................Giới thiệu đồ án

11.1.1. Giới thiệu vấn đề...................................11.1.2. Phạm vi đồ án.....................................11.1.3. Mục tiêu, sự cần thiết của đề tài........................1

CHƯƠNG 2: PHÂN TÍCH ĐỀ TÀI..............................32. 1....................................Sơ đồ tổng quát

32. 2...................................Quản lí thí sinh

42.2.1. Kế hoạch tiếp nhận hồ sơ.............................42.2.2. Thông báo tiếp nhận hồ sơ:............................42.2.3. Lên kế hoạch thi cho thí sinh...........................42.2.4. Tổ chức thi cho thí sinh...............................42.2.5. Đánh giá kết quả thi của thí sinh........................5

2. 3.....................................Quản lí đề thi5

2.3.1. Địa điểm hội đồng thi................................72.3.2. Hình thức đề thi lý thuyết.............................7

2.3.3. Phần thi thực hành..................................72.3.4. Thời gian sau thi....................................7

2. 4.................................Tổ chức phân quyền8

2.4.1. Thí sinh..........................................82.4.2. Giám khảo........................................82.4.3. Ban hội đồng thi các cơ quan có thẩm quyền liên quan.......8

CHƯƠNG 3: PHÂN TÍCH CƠ SỞ DỮ LIỆU......................103.1..........................................Mô hình ER

103.2............................SƠ ĐỒ DỮ LIỆU SQL SERVER

103.2.1. Bảng câu hỏi.....................................113.2.2. Bảng đề thi......................................123.2.3. Bảng đáp án.....................................123.2.4. Bảng người dùng..................................133.2.5. Bảng thí sinh.....................................133.2.6. Bảng kết quả.....................................14

3.3..............................Các ràng buộc toàn vẹn14

3.3.1. Bảng câu hỏi và bảng đáp án..........................143.3.2. Bảng đề thi và bảng câu hỏi...........................14

3.3.3. Bảng kết quả và bảng thí sinh.........................153.3.4. Bảng đề thi và bảng kết quả..........................15

CHƯƠNG 4: CÀI ĐẶT CHƯƠNG TRÌNH.........................174.1......................................Màn hình chính

17

4.2..................................Màn hình đăng nhập17

4.3......................................Màn hình Admin19

4.4.................................Màn hình tạo đề thi20

4.5...................Màn hình xem đề thi và sửa đề thi22

4.6...................................Màn hình Thí sinh23

4.7.............................Màn hình thi và thi thử26

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

2. 1. TỔNG QUAN ĐỀ TÀI

1.1. Giới thiệu đồ án

1.1.1.Giới thiệu vấn đềDân số nước ta hiện nay đã đạt cột mốc 90 triệu

người điều này đồng nghĩa với số lượng phương tiệngiao thông cá nhân cũng tăng theo và đặc biệt là vớiphương tiện cơ giới 2 bánh (một phương tiện di chuyểnphổ biến của người Việt Nam). Chỉ tính riêng ở TPHCMđã có tới 5,206,692 phương tiện mô tô di chuyển trongthành phố (tháng 5/ 2012), cũng vào thời gian này cótới 19,641 phương tiện giao thông mô tô đăng ký mới.Theo thống kê cứ mỗi năm thì có vài chục nghìn lượtđăng ký mới ở TPHCM. Với số lượng khổng lồ như thế,TPHCM cần phần mềm thi giấy phép lái xe 2 bánh đápứng lượng thí sinh đồng thời để dễ quản lý, tiết kiệmthời gian thi cử và các việc liên quan sau thi mộtcách nhanh chóng cho lượng thí sinh đông đảo này, bêncạnh đó hạn chế thấp nhất sai sót trong quá trìnhchấm điểm cũng như thể hiện sự công bằng cho mọi thísinh

1.1.2.Phạm vi đồ ánPhần mềm cho phép khả năng in ấn kết quả cũng

như xuất danh sách thi, Nhưng chức năng đặc biệt làphần mềm cho phép thí sinh thi thử để thí sinh tậplàm quen với phần mềm cũng như các dạng câu hỏi của

1

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

đề ra (gồm hình và một câu có thể có 3 hoặc 4 đápán).

1.1.3.Mục tiêu, sự cần thiết của đề tài Sự cần thiết

Tin học hoá việc thi trắc nghiệm giấy phép láixe mang lại nhiều lợi ích hơn so với việc thitruyền thống như trước đây. Việc quản lí đề thi,thông tin thí sinh là một bài toán quan trọngtrong quá trình cấp giấy phép lái xe.

Để đáp ứng nhu cầu quản lý việc cấp giấy phéplái xe 2 bánh cho các thí sinh, với giao diện trựcquan, phần mềm giúp cho các thí sinh, cũng nhưngười quản lý được thuận lợi và tiết kiệm đượcnhiều thời gian hơn, phần mềm có khả năng nâng cấpđể đáp ứng được nhu cầu của các tổ chức, đơn vịnơi thực hiện việc cấp giấy phép lái xe cho thísinh.

Ngày nay, nước ta đang trong quá trình côngnghiệp hóa – hiện đại hóa đất nước. Với xu hướngphát triển nền kinh tế đa dạng, dân số tăng cao,đồng nghĩa với việc phương tiện tham gia giaothông cũng tăng nhanh. Vì vậy cần một phần mềm thigiấy phép lái xe 2 bánh là một nhu cầu thiết yếucho các đơn vị có thẩm quyền cấp giấy phép lái xenhư hiện nay.

Mục tiêu Quản lý thí sinh Quản lý đề thi Thi trắc nghiệm

2

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

Quản lý phân quyền

3

Đánh giá kết quả

Kế hoạch tuyển dụng

Thông báo tiếp nhận hồ sơĐăng ký dự thi

Xét dự thi

Không duyệt

Lên kế hoạch dự thi

Tổ chức thi

Đậu

Rớt

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

2. 2. PHÂN TÍCH ĐỀ TÀI2. 3. Sơ đồ tổng quát

4

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

2. 4. Quản lí thí sinh

2. 5. Kế hoạch tiếp nhận hồ sơCứ mỗi tuần, trung tâm sát hạch có tổ chức các

đợt thi để đáp ứng nhu cầu ngày càng lớn của các thísinh. Các bộ phận có nhiệm vụ lựa chọn, sắp xếp, điềuphối những nhân viên sát hạch cho việc tổ chức chuẩnbị thi sát hạch.

2. 6. Thông báo tiếp nhận hồ sơ:Các cơ sở đào tạo được phép đào tạo lái xe dùng

phương tiện thông tin đại chúng (báo, đài...). Nộidung thông báo gồm: Các yêu cầu, điều kiện, các thủtục khi làm hồ sơ, thời gian nhận hồ sơ... Nhận vàxét duyệt hồ sơ thí sinh:

Cán bộ tiếp nhận hồ sơ tại cơ sở đào tạo đượcphép đào tạo lái xe. Nếu hồ sơ hợp lệ sẽ được tiếpnhận, nếu hồ sơ không hợp lệ sẽ được trả lại và hướngdẫn bằng phiếu để hoàn thiện hồ sơ.

2. 7. Lên kế hoạch thi cho thí sinhBộ phận hướng dẫn trong trung tâm có trách nhiệm

chỉ dẫn, trình bày và phổ biến rõ hơn về các quyđịnh, cách thức thi cho các thí sinh còn vướng mắt.

Thí sinh nộp hồ sơ trong tuần nào sẽ được thôngbáo đi học lý thuyết ngay trong tuần đó, thông thườnghọc lý thuyết vào chiều chủ nhật hàng tuần. Trung tâmkhông bắt buộc các thí sinh phải đi học lý thuyết.

5

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

Thí sinh sẽ được thông báo về thời gian cũng nhưđịa điểm thi trước ngày thi 2 đến 3 ngày qua điệnthoại, muộn nhất là trước ngày thi.

2. 8. Tổ chức thi cho thí sinhSát hạch viên goi tên thí sinh theo danh sách,

kiểm tra nhận dạng, đối chiếu giấy chứng minh nhândân. Sau đó sắp xếp chỗ ngồi cho các thí sinh, ký xácnhận vào biên bản tổng hợp kết quả sát hạch lý thuyếtcủa thí sinh.

Sát hạch viên công bố thời gian bắt đầu, kếtthúc sát hạch cho các thí sinh. Giám sát thí sinhtrong suốt quá trình làm bài sát hạch.

2. 9. Đánh giá kết quả thi của thí sinhSau khi hoàn thành bài thi hoặc hết thời gian

quy định, các câu trả lời của thí sinh (kể cả các câuchưa trả lời) sẽ được máy tính chấm điểm và thông báokết quả ngay trên màn hinh.

Thang điểm 20, thí sinh được phép sai tối đa 4câu. Những thí sính có kết quả đạt yêu cầu sẽ đượcthi phần sát hạch thực hành.

6

Quản Lý Thí Sính

Kế hoạch tiếp nhận hồ sơ

Thông báo tiếp nhận hồ sơ

Tổ chức thi cho thí sinh

Đánh giá kết quả thi cho thí sinh

Lên kế hoạch thi cho thí sinh

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

2. 10. Quản lí đề thi

7

Địa điểm hội đồng thi

Hình thức đề thi lý thuyết

Rớt

Hình thức thi thực hành

Đậu

Rớt

Chờ thông báo tổ thức thi lần sau

Đậu

Thời gian sau thi

Thi lí thuyết

Thi thực hành 

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

8

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

2.3.1. Địa điểm hội đồng thi

Sau khi thông qua hướng dẫn của Bộ GTVT, vàquyết dịnh tổ chức thi tại địa điểm cố định từng vùngkhông di chuyển để nhằm giúp cho các thi sinh biế chỗvà tiết kiệm thời gian cũng như chi phí cho thí sinh.Ngoại trừ những trường hợp bất khả kháng mới thay đổiđia điểm thi. Dù có thay đổi hay không thì địa điểmthi sẽ được người hướng dẫn thông báo trước kì thi.

2.3.2. Hình thức đề thi lý thuyết

Đề thi sẽ có hình thức thi trắc nghiệm vì thếcâu hỏi sẽ hỏi rất chi tiết nên các thi sinh se phảiổn bài rất nhiều điều này giúp cho thí sinh nắm vữngnguyên tắc luật khi tham gia giao thông, cộng hìnhảnh các biển báo , tình huống giao thông cho thísinh giúp cho thí sinh có cái nhìn rõ nhất và thực tếhóa hơn cho thí sinh dự thi để có cái nhìn rõ ràng vềtình hình giao thông

2.3.3. Phần thi thực hành

Bên cạnh kì thi lý thuyết quyết định 50% điểm còn cóphần thi thực hành chiếm 50% điểm. Phần thi thực hành baogồm :

Chạy hình số 8

Các địa hình do hội đồng thi đặt ra .

Phương tiện thi sẽ được hội đồng thi cung cấp.

9

Quản lý đề thi

Địa điểm hội đồng thi

Hình thức đề thi lý thuyết

Phần thi thực hành

Thời gian sau thi

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

2.3.4. Thời gian sau thi

Nếu sau khi thi biết được kết quả là đậu , từ 5 tới7 ngày , thí sinh cần quay trở lại chỗ đăng ký thi để lấychứng nhận đạt được sau khi thi cộng bằng lái và nhữngthứ liên quan. Nếu rớt thí sinh sẽ đợi cho thông báo chokế hoạch tổ chức thi lần sau và đăng ký.

10

Tổ chức phân quyền

Thí sinh

Giám khảo

Ban hội đồng thi và các quan có thẩm quyền liên quan

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

2. 11. Tổ chức phân quyền2.4.1. Thí sinh

Thí sinh sẽ được giới hạn chỉ được truy cập vào phầnlàm bài thi của mình.

2.4.2. Giám khảo Giám khảo sẽ chỉ xem được phần làm bài và kết quả củathí sinh để thông báo thí sinh kết quả.

2.4.3. Ban hội đồng thi các cơ quan có thẩm quyền liên quanĐược truy cập vào cơ sở dữ liệu về thông tin thí sinh

cũng như bài làm ngoài ra có thể tác động tới dữ liệu đềthi nếu đề thi không đúng như ý muốn.

11

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

2. 12. PHÂN TÍCH CƠ SỞ DỮ LIỆU

3.1. Mô hình ER

NGUOIDUNG(TenNguoiDung, MatKhau, QuyenAdmin, XemNguoiDung, Them, Xoa, Sua)

DETHI(MaDeThi, NoiDungDeThi)

CAUHOI(MaCauHoi, NoiDungCauHoi, MaDeThi)

DAPAN(MaDapAn, NoiDungDapAn, DapAnDung, MaCauHoi)

KETQUA(MaKetQua, Diem, KetQua, MaThiSinh, MaDe)

THISINH(MaThiSinh, TenThiSinh, SoDienThoai, NgaySinh, DiaChi, QueQuan)

12

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

3.2. SƠ ĐỒ DỮ LIỆU SQL SERVER

Cơ sở dữ liệu gồm 6 bảng:

- Bảng câu hỏi (CauHoi)- Bảng đề thi (DeThi)- Bảng người dùng (NguoiDung)- Bảng đáp án (DapAn)- Bảng kết quả (KetQua)- Bảng thí sinh (ThiSinh)

3.2.1. Bảng câu hỏi

13

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

Chứa thông tin của câu hỏi gồm mã câu hỏi, nội dung câu hỏi, mã đề thi.

STT Tên cột Kiểu dữ liệu Chú thích

1 MaCauHoi nchar(20) Là khoá chính phân biệt các câu hỏi khác

2 NoiDungCauHoi ntext Nội dung câu hỏi3 MaDeThi nchar(20) Mã đề thi tham chiếu đến DeThi

3.2.2. Bảng đề thi

Chứa thông tin của đề thi gồm mã đề thi và nội dung thi.

STT Tên cột Kiểu dữ liệu Chú thích

1 MaDeThi nchar(20) Là khoá chính phân biệt các đềthi khác

2 NoiDungDeThi ntext Nội dung đề thi

14

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

3.2.3. Bảng đáp án

Chứa thông tin của các đáp án gồm mã thí sinh, tên thí sinh, số điện thoại, ngày sinh, địa chỉ.

STT Tên cột Kiểu dữ liệu Chú thích

1 MaDapAn nchar(20) Là khoá chính phân biệt các đáp án khác

2 NoiDungDapAn ntext Nội dung đáp án3 DapAnDung bit Đáp án đúng hoặc sai (1,0)

4 MaCauHoi nchar(20) Mã câu hỏi tham chiếu đến CauHoi

3.2.4. Bảng người dùng

Chứa thông tin của người dung gồm ID, mật khẩu và cácquyền hạn của người dùng.

15

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

STT Tên cột Kiểu dữ liệu Chú thích

1 TenNguoiDung nchar(20) Là khoá chính phân biệt các người dùng khác

2 Pass ntext Password của người dùng3 QuyenAdmin bit Quyền Admin4 XemNguoiDung bit Admin xem người dùng khác5 Them bit Admin thêm người dùng mới6 Xoa bit Admin xoá người dùng7 Sua bit Admin sửa người dùng

3.2.5. Bảng thí sinh

Chứa các thông tin về thí sinh gồm mã thí sinh, tên thí sinh, số điện thoại, ngày sinh, địa chỉ, quê quán.

STT Tên cột Kiểu dữ liệu Chú thích

1 MaThiSinh nchar(20) Là khoá chính phân biệt các thí sinh khác

2 TenThiSinh nvarchar(50) Họ tên của thí sinh

3 SoDienThoai nchar(20) Số điện thoại của thí sinh nếucó

4 NgaySinh date Ngày tháng năm sinh của thí sinh

5 DiaChi nvarchar(50) Địa chỉ của thí sinh

6 QueQuan nvarchar(100) Quê quán của thí sinh

16

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

3.2.6. Bảng kết quả

Chứa các thông tin đến kết quả thí sinh bao gồm mã kết quả, điểm, kết quả, mã thí sinh. Mã thí sinh và mã đềlà khoá phụ tham chiếu tới bảng ThiSinh và bảng DeThi.

STT Tên cột Kiểu dữ liệu Chú thích

1 MaDapAn nchar(20) Là khoá chính phân biệt các đáp án khác

2 NoiDungDapAn ntext Nội dung đáp án3 DapAnDung bit Đáp án đúng hoặc sai (1,0)

4 MaCauHoi nchar(20) Mã câu hỏi tham chiếu đến CauHoi

3.3. Các ràng buộc toàn vẹn3.3.1. Bảng câu hỏi và bảng đáp án

Bảng CauHoi liên kết với bảng DapAn theo MaCauHoi bênbảng DapAn là foreign key bên bảng câu hỏi là primary key, mối quan hệ 1 nhiều, một câu hỏi có thể có nhiều đápán.

17

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

3.3.2. Bảng đề thi và bảng câu hỏi

Bảng DeThi liên kết với bảng CauHoi theo MaDeThi, MaDeThi bên bảng câu hỏi là foreign key bên bảng đề thi là primary key, mối quan hệ 1 nhiều, một đề thi có thể có nhiều câu hỏi.

3.3.3. Bảng kết quả và bảng thí sinh

Bảng ThiSinh lien kết với bảng KetQua theo MaThiSinh,MaThiSinh bên bảng kết quả là foreign key, bên bảng ThiSinh là primary key, mối quan hệ này là 1-1, một thí sinh chỉ có một kết quả, hoặc là rớt, hoặc là đậu.

3.3.4. Bảng đề thi và bảng kết quả

18

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

Bảng DeThi liên kết với bảng KetQua theo MaDeThi, MaDeThi bên bảng KetQua là foreign key, bên bảng DeThi làprimary key, mối quan hệ 1 nhiều, một đề thi có thể có nhiều đáp án.

19

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

2. 13. CÀI ĐẶT CHƯƠNG TRÌNH

4.1.Màn hình chínhMàn hình chỉ cho phép người dùng chọn vào quyền

Admin, thi hoặc thi thử.

4.2.Màn hình đăng nhậpKhi nhấn vào button Admin sẽ xuất hiện form đăng nhập

để người dùng nhập tài khoản và mật khẩu.

20

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

Người dùng phải nhập đúng ID và mật khẩu mới cho đăngnhập vào bên trong, nếu tài khoản sai thì form sẽ báo saitài khoản, nếu sai mật khẩu thì form sẽ báo sai mật khẩu.

private void btnDangNhap_Click(object sender, EventArgs e) { tbNguoiDung = new DataTable(); nd = new NguoiDung(); nd.TenNguoiDung = txtTenDangNhap.Text; nd.Password = MaHoa.Encrypt( txtMatKhau.Text, "03DHTH1"); tbNguoiDung = _busNguoiDung.getByKey(nd);

if (tbNguoiDung.Rows.Count > 0 && tbNguoiDung.Rows[0]["Password"].ToString() == nd.Password) { DataRow dr = tbNguoiDung.Rows[0]; User = new NguoiDung(dr); frmAdmin.label = dr["TenNguoiDung"].ToString(); frmAdmin _frmAdmin = new frmAdmin(); this.Hide(); _frmAdmin.Show(); }

21

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

else { if (txtTenDangNhap.Text == string.Empty || txtMatKhau.Text == string.Empty) { MessageBox.Show("Bạn chưa nhập đủ thông tin", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { MessageBox.Show("Tài khoản không tồn tại", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error); txtTenDangNhap.Clear(); txtMatKhau.Clear(); txtTenDangNhap.Focus(); } } }

4.3.Màn hình AdminMàn hình có 6 chức năng chính:

Tạo đề thi. Vào xem và sửa đề thi Quản lí thí sinh Quản lí người dùng Xem thông tin người dùng hiện tại Thay đổi mật khẩu.

Khi nhấn vào label Xin chào: thì sẽ xuất hiện thông tin người dùng, form này chỉ cho người dùng xem chứ không chỉnh sửa gì về quyền của người dùng.

22

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

Khi người dùng nhấn vào linklabel thay đổi mật khẩu: cho phép nhập mật khẩu mới và cập nhật mậtkhẩu.

4.4.Màn hình tạo đề thi Khi load lên giao diện sẽ xuất hiện như sau Form cho phép người dùng tạo đề thi mới với các

câu hỏi và đáp án nhập vào.

23

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

Khi nhấn vào nút tạo đề thi form sẽ tự động xuất hiệncác control tự động.

private void frmTaoDeThi_Load(object sender, EventArgs e) { int sodong = busDeThi.laySoSong(); if (sodong > 999) { MessageBox.Show("Vượt quá số lượng đề thi cho phép", "Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (sodong < 9) txtMaDe.Text = "DT00" + (sodong + 1); else if (sodong < 99) txtMaDe.Text = "DT0" + (sodong + 1); else txtMaDe.Text = "DT" + (sodong + 1); txtNoiDungDe.Focus(); }

24

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

Sau khi nhập vào đề thi xong thì nhấn vào tạo đềthi.

Người dùng không cần nhập mã câu hỏi, mà mã câu hỏi sẽ tự phát sinh theo mã đề và thứ tự câu hỏi, khi người dùng nhập xong và quay lại thì vẫn giữ nội dung câu hỏi và đáp án cho người dùng, sau khi quay lại người dùng bỏ check vào đáp án thì đáp án đó được xoá và không cập nhật vào cơ sở dữ liệu.

Code:private void frmNhapCauHoi_Load(object sender, EventArgs e)

{ //thiết lập mã đề và mã câu hỏi tự động txtMaDe.Text = MaDe; txtMaCauHoi.Text = "CH_" + (dem + 1) + "_" + MaDe;

25

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

//hien thi so thu tu cau hoi lblSTT.Text = (dem + 1) + "/15";

//khoi tao danh sach cau hoi ThemCauHoi();

//thiet lap checkbox chk1.Checked = chk2.Checked = true; //câu hỏi bắt buộcluôn có 2 đáp án A B txtDA3.Enabled = chk3.Checked; rad3.Enabled = chk3.Checked; txtDA4.Enabled = chk4.Checked; rad4.Enabled = chk4.Checked;

//thiet lap nut Luu //btnLuu.Enabled = false;

}

4.5.Màn hình xem đề thi và sửa đề thiCó 6 chức năng chính là:

Xem tất cả các câu hỏi của tất cả các đề thi Xem theo đề thi Sửa câu hỏi Xoá đề thi Tìm kiếm theo mã câu hỏi

26

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

- Mỗi User sẽ có các quyền khác nhau, nếu không có quyền thêm thì nút thêm sẽ không có hiệu lực.

- Ngoài ra còn có các contextmenu cho việc sửa câu hỏi.- Để sửa câu hỏi người dùng phải chọn câu hỏi trước khi

sửa, sau khi nhấn vào sửa sẽ xuất hiện form: để loại bỏ đáp án cần bỏ check vào đáp án và chỉ được loại bỏ2 đáp án cuối cùng.

4.6.Màn hình Thí sinhCó 8 chức năng chính là:

Thêm , xoá, sửa thí sinh Xem kết quả thi của thí sinh Nạp lại danh sách In danh sách thí sinh In danh sách kết quả của thí sinh Tìm kiếm thí sinh

27

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

- Ngoài ra còn có các contextmenu cho việc xoá, sửa và xem kết quả thí sinh.

- Khi nhấn vào nút Thêm, màn hình sau hiện ra

28

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

Code:frmThemThiSinh _frmThemThiSinh = null; private void btnThem_Click(object sender, EventArgs e) { if (_frmThemThiSinh == null || _frmThemThiSinh.IsDisposed) { _frmThemThiSinh = new frmThemThiSinh(); } _frmThemThiSinh.MdiParent = this.MdiParent; _frmThemThiSinh.Show(); }

private void btnDong_Click(object sender, EventArgs e) { this.Close(); }

frmSuaThiSinh _frmSuaThiSinh = null;29

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

private void btnSua_Click(object sender, EventArgs e) { if (_frmSuaThiSinh == null || _frmSuaThiSinh.IsDisposed) { _frmSuaThiSinh = new frmSuaThiSinh(); } _frmSuaThiSinh.MdiParent = this.MdiParent; _frmSuaThiSinh.Show(); dgvThiSinh.ReadOnly = false; }

4.7.Màn hình thi và thi thử

- Thời gian mặc định cho thí sinh thi là 10 phút, và sốđểm để thí sinh đậu là 10 điểm.

30

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

- Khi nhấn vào chọn câu thì sẽ xuất hiện form chọn câu,form cho phép người dủng chọn câu bất kì để di chuyểntời câu đó, form còn cho phép người dùng biết câu chưa làm và đã làm.

Code:private void frmThi_Load(object sender, EventArgs e) { dem = 0; pgressThoiGian.Maximum = 600; btnPre.Enabled = !(dem == 0); int n = tbCauHoi.Rows.Count;//so luong cau hoi if (n == 15) { for (int i = 0; i < n; i++) { lst.Add(new CauHoiThi()); lst[i].NoiDungCauHoi = tbCauHoi.Rows[i]["NoiDungCauHoi"].ToString(); tbDapAn = _busDapAn.getByMaCauHoi(tbCauHoi.Rows[i]["MaCauHoi"].ToString()); for (int j = 0; j < tbDapAn.Rows.Count; j++) { if (j == 0) { lst[i].DapAnA = tbDapAn.Rows[j]["NoiDungDapAn"].ToString(); lst[i].DungA = Convert.ToBoolean(tbDapAn.Rows[j]["DapAnDung"]); } if (j == 1) { lst[i].DapAnB = tbDapAn.Rows[j]["NoiDungDapAn"].ToString(); lst[i].DungB = Convert.ToBoolean(tbDapAn.Rows[j]["DapAnDung"]); }

31

GVHD: BÙI CÔNG DANH Môn: LẬP TRÌNH WINDOW

if (j == 2) { lst[i].DapAnC = tbDapAn.Rows[j]["NoiDungDapAn"].ToString(); lst[i].DungC = Convert.ToBoolean(tbDapAn.Rows[j]["DapAnDung"]); } if (j == 3) { lst[i].DapAnD = tbDapAn.Rows[j]["NoiDungDapAn"].ToString(); lst[i].DungD = Convert.ToBoolean(tbDapAn.Rows[j]["DapAnDung"]); } } } loadCauHoi(); tmrThoiGianThi.Enabled = true; tmrThoiGianThi.Start(); } else { MessageBox.Show("Đề thi chưa chuẩn bị xong. Vui lòng chọn đề thi khác", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); frmChonDeThi _frmChonDeThi = new frmChonDeThi(); _frmChonDeThi.Show(); this.Close(); } }

32