BÁO CÁO TIỂU LUẬN MÔN LẬP TRÌNH C# 2 ĐỀ TÀI : Chương trình trắc nghiệm Thi giấy phép lái xe 2 bánh - Pdf 95

BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM
Khoa Công Nghệ Thông Tin

BÁO CÁO TIỂU LUẬN MÔN LẬP TRÌNH C# 2
ĐỀ TÀI : Chương trình trắc nghiệm
Thi giấy phép lái xe 2 bánh
GVHD : Trần Thị Anh Thi
SVTH : Phan Thế Tuấn – 10147611
TP.HCM Ngày 18 tháng 11 năm 2012
GV : Trần Thị Anh Thi Môn : Lập Trình Window 2
MỤC LỤC
Trang 2
GV : Trần Thị Anh Thi Môn : Lập Trình Window 2
CHƯƠNG 1 : GIỚI THIỆU SƠ LƯỢC
ĐỀ TÀI
1. Mục đích đề tài
Tạo phần mềm thi trắc nghiệm thi giấy phép lái xe 2 bánh, giúp người dùng tạo đề thi, nhập
câu hỏi, quản lý các tài khoản và phân quyền cho tài khoản, tùy theo quyền hạn mà tài khoản sẽ
được hạn chế các thao tác mình thực hiện trong phần mềm như là thêm, xóa, sửa. Phần mềm còn
thực hiện các thao tác in ấn và xuất ra các tập tin của dữ liệu của các câu hỏi, đáp án, danh sách
người dùng hoặc thí sinh ở dạng file Excel, PDF, Word … Phần mềm còn giúp cho người dùng
đánh trắc nghiệm trên máy, mỗi câu hỏi có thể có 2 đến 4 đáp án, người dùng có thể thi thật hoặc
thi thử, nếu thi thật thì người dùng đó phải có mã thí sinh mới vào thi được, khi thi xong điểm sẽ
được lưu vào database, nếu là thi lần 2 thì điểm của thí sinh đó sẽ được update lại. Thi thử thì thí
sinh nhập 1 mã số tùy ý và đc thi thử nhưng dữ liệu không lưu vào databse, thi xong thì thí sinh
sẽ đc biết kết quả .
2. Yêu cầu đặt ra
• Tạo đề thi, xóa đề thi
• Thêm, xóa, sửa người dùng, thay đổi mật khẩu
• Thêm, xóa, sửa thí sinh

VD :
1.2. Bảng kết quả
Chứa các thông tin kết quả thi của thí sinh gồm mã kết quả, điểm, kết quả, mã thí sinh, mã
đề. Mã thí sinh và mã đề là khóa phụ tham chiếu tới bảng tbthisinh và bảng tbdethi
STT Tên cột Kiểu dữ liều Ghi chú
1 maketqua nchar (20) Là khóa chính để phân biệt các KQ khác
2 diem numeric Số điểm của thí sinh
3 ketqua nvarchar(10) Kết quả của thí sinh “Rớt” hoặc “Đậu”
4 mathisinh nchar(20) Mã của thí sinh
5 made nchar(20) Mã đề thi
VD :
1.3.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 Ghi chú
1 madethi nchar (20) Là khóa chính để phân biệt các DT khác
2 noidungdethi ntext Nội dung của đề thi
VD :
1.4.Bảng câu hỏi
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.
Trang 5
GV : Trần Thị Anh Thi Môn : Lập Trình Window 2
STT Tên cột Kiểu dữ liều Ghi chú
1 macauhoi nchar (20) Là khóa chính để phân biệt các CH khác
2 noidungcauhoi ntext Nội dung của câu hỏi
3 madethi nchar (20) Mã đề thi tham chiếu đến tbdethi
VD :
1.5.Bảng đáp án
Chứa các thông tin của các đáp án gồm mã đáp án, nội dung đáp án, đáp án đúng, mã câu hỏi
STT Tên cột Kiểu dữ liều Ghi chú
1 madapan nchar (20) Là khóa chính để phân biệt các DA khác

foreign key bên bảng tbthisinh 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
2.4.Bảng đề thi và bảng kết quả
Bảng tbdethi liên kết với bảng tbketqua theo madethi, made bên bảng tbketqua là foreign
key madethi bên bảng tbdethi là primary key mối quan hệ 1 nhiều, một đề thi có thể có nhiều
đáp án
Trang 8
GV : Trần Thị Anh Thi Môn : Lập Trình Window 2
CHƯƠNG 3 : CÀI ĐẶT CHƯƠNG
TRÌNH
1. Màn Hình Chính
- Màn hình chi phép người dùng chọn vào quyền admin, thi hoặc thi thử
2. Màn hình đăng nhập
Khi 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
Trang 9
GV : Trần Thị Anh Thi Môn : Lập Trình Window 2
Người dùng phải nhập đúng mật khẩu mới cho truy xuất vào bên trong, nếu sai tài khoản thì
form sẽ báo sai tà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)
{
if (txtTendangnhap.Text == "")
{
MessageBox.Show("Bạn Chưa Nhập Vào Tên Tài Khoản");
txtTendangnhap.Focus();
return;
}
DataTable tbNguoiDung =
objNguoiDung.LayBangNguoiDung_TheoID(txtTendangnhap.Text).Tables["tbnguoidung"];
//đểm số dòng bảng đã lấy được, nếu ==0 thì thông báo sai tài khoản

}
3. Màn hình nhập thông tin
Khi nhấn vào button thi và thi thử sẽ hiển thị form nhập thông tin và chọn đề thi để thi
Nếu là thi thì form sẽ kiểm tra xem có thí sinh này trong danh sách hay không, nếu thì thư
thử thì người dùng có thể nhập tùy ý 1 mã số nào đó
4. Màn hình Admin
 Màn hình có 6 chức năng chính là:
 xem thông tin người dùng hiện tại
 thay đổi mật khẩu khẩu
 tạo đề thi
 vào form thí sinh
 vào form user
 vào form xem và sửa đề thi
Trang 11
GV : Trần Thị Anh Thi Môn : Lập Trình Window 2
• Khi nhấn vào linklabel Xin chào :… thì sẽ xuất hiện thông tin của 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
• Khi người dùng nhần vào linklabel thay đổi mật khẩu : cho phép nhập vào mật khẩu mới
và cập nhật mật khẩu
Trang 12
GV : Trần Thị Anh Thi Môn : Lập Trình Window 2
5. Form Xem và sửa đề thi
 Có 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
 xóa đề thi
 in danh sách các đề thi gồm câu hỏi và đáp án của đề thi
 Tìm kiếm theo mã câu hỏi
Trang 13

DataRow r_C = tbDapAn.NewRow();
DataRow r_D = tbDapAn.NewRow();
r_C["madapan"] = tbDapAn.Rows[0]
["madapan"].ToString().Replace("_A_", "_C_");
r_C["noidungdapan"] = txtdapanC.Text;
r_C["macauhoi"] = macauhoi;
r_D["madapan"] = tbDapAn.Rows[0]
["madapan"].ToString().Replace("_A_", "_D_");
r_D["noidungdapan"] = txtdapanD.Text;
r_D["macauhoi"] = macauhoi;
tbDapAn.Rows.Add(r_C);
tbDapAn.Rows.Add(r_D);
}
else if (dongthem == 1)
{
//nếu có 1 dòng thì ta kiểm tra xem đó là đáp C hay D, để thêm
vào cho đúng
if (txtdapanD.Enabled == true)
{
DataRow r_D = tbDapAn.NewRow();
r_D["madapan"] = tbDapAn.Rows[0]
["madapan"].ToString().Replace("_A_", "_D_");
r_D["noidungdapan"] = txtdapanD.Text;
r_D["macauhoi"] = macauhoi;
tbDapAn.Rows.Add(r_D);
}
if (txtdapanC.Enabled == true && txtdapanD.Enabled==false)
{
DataRow r_C = tbDapAn.NewRow();
r_C["madapan"] = tbDapAn.Rows[0]

for (int i = 0; i < dem; i++)
{
tbDapAn.Rows[i]["dapandung"] = dung[i];
}
//thực hiện update 2 bảng câu hỏi và đáp án
objDapAn.Update_DapAn(tbDapAn);
objCauHoi.Update_CauHoi(tbcauhoi);
MessageBox.Show("Lưu thành công");
}
catch (Exception)
{
MessageBox.Show("Lưu thất bại");
}
this.Close();
}
}
• Khi nhần vào button xóa thì sẽ xuất hiện danh sách các đề thi để người dùng xóa
Code khi nhấn vào nút xóa :
private void btnXoa_Click(object sender, EventArgs e)
{
DialogResult result= MessageBox.Show("Bạn có muốn xóa hay không","Thông
báo",MessageBoxButtons.OKCancel,MessageBoxIcon.Question);
try
{
if (result == DialogResult.OK)
{
tbDeThi.Rows[comboBox1.SelectedIndex].Delete();
objDeThi.Update_DeThi(tbDeThi);
Trang 17
GV : Trần Thị Anh Thi Môn : Lập Trình Window 2

vào CSDL
Trang 20
GV : Trần Thị Anh Thi Môn : Lập Trình Window 2
7. Form thí sinh
 Form có 8 chức năng :
 Thêm, xóa, sửa thí sinh
 Xem kết quả 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 các thí sinh
 Tìm kiếm
Trang 21
GV : Trần Thị Anh Thi Môn : Lập Trình Window 2
• Form còn có các menucontext cho việc xóa, sửa và xem kết quả thí sinh
• Form khi nhấn vào button thêm
Trang 22
GV : Trần Thị Anh Thi Môn : Lập Trình Window 2
code khi nhấn vào nút thêm
private void btnthem_Click(object sender, EventArgs e)
{
if(kiemtrarong())
{
try
{
tbThiSinh = objThiSinh.LayBangThiSinh_Rong().Tables["tbthisinh"];
DataRow r_new = tbThiSinh.NewRow();
r_new["mathisinh"] = txtmathisinh.Text;
r_new["tenthisinh"] = txttenthisinh.Text;
r_new["sodienthoai"] = txtsodienthoai.Text;
r_new["ngaysinh"] =

GV : Trần Thị Anh Thi Môn : Lập Trình Window 2
}
MessageBox.Show("Lưu thành công");
}
catch (Exception)
{
MessageBox.Show("Lưu thất bại");
}
this.Close();
• Form khi nhấn vào nút xem KQ
• Form In danh sách thí sinh khi nhấn vào nút In DS
• Form In danh sách các kết quả khi nhấn vào nút In KQ
Trang 25


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status