Tải bản đầy đủ (.docx) (22 trang)

BÁO CÁO MÔN LẬP TRÌNH WINDOWS NÂNG CAO: CHƯƠNG TRÌNH THI TRẮC NGHIỆM TIẾNG ANH

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.66 MB, 22 trang )

MÔN:
LẬP TRÌNH WINDOWS NÂNG CAO
LỚP: NCTH4A
1. Lê Thành Sơn _10174881
2. Trần Văn Hồng Thuận_10184971
TP. HỒ CHÍ MINH THÁNG 11 NĂM 2012
2
MỤC LỤC

3
I. Giới Thiệu Sơ Lược Đề Tài
1. Mục đích của đề tài:
- Chương trình trắc nghiệm tiếng anh tạo ra nhằm giúp nhà trường, Giáo Viên có thể quản lý
thí sinh dự thi, và nhập các câu hỏi vào trong ngân hàng đề kỳ thi. Hoặc giáo viên có thể sửa,
bổ sung đề.
- Với giao diện dễ sử dụng, câu hỏi lấy cách ngẫu nhiên nhằm giúp thí sinh đạt được kết quả
trong kỳ thi chứng chỉ B tiếng anh, hơn hết là có thể củng cố lại kiến thức mà mình đã học
trong nhưng năm còn học ở phổ thông.
- Đề đưa ra hoàn toàn không theo ý của
- Tìm hiểu sâu hơn về mô hình 3 – tier, kết nối cơ sở dữ liệu, các chức năng thêm, cập nhật,
xóa, lưu trữ, tìm kiếm, … trong Microsoft Visual Studio 2010
2. Yêu cầu đặt ra:
- Thiết kế đề tài theo mô hình 3 –tier.
- Kết nối thành công với cơ sở dữ liệu.
- Chương trình có chức năng thêm mới, lưu trữ.
- Chương trình có chức năng cập nhật.
- Chương trình có chức năng xóa.
- Chương trình có chức năng tìm kiếm.
- Chương trình có chức năng sắp xếp.
- Chương trình có chức năng lọc dữ liệu.
- Chương trình đẹp mắt, dễ sử dụng


- Sau khi thi xong thí sinh có thể xem điểm của mình, và điểm có thể bao lưu.
4
II. Thực hiện
1. Phân tích Cơ Sở Dữ Liệu:
2. Diễn Giải Cở Sở Dữ Liệu
a. Bảng TB_CAUHOI
Chứa thông tin về các kết quả của bài thi thí sinh gồm: MACAUHOI, NOIDUNG,
MAMON, MANHANVIEN
STT Thuộc Tính Kiểu Dữ Liệu Diễn Giải
1 MACAUHOI (not null –
khóa chính)
nchar Quy định thông tin mã
câu hỏi.
2 MAMON (not null – khóa
chính, khóa ngoại
TB_MONTHI)
nchar Quy định Môn Thi của
đề thi do Giáo viên tạo
ra câu hỏi này.
5
3 NOIDUNG nvarchar Quy định thông tin nội
dung của câu hỏi.
4 MANHANVIEN (not null
– khóa chính, khóa ngoại
TB_NHANVIEN
nchar Quy định thông tin mã
Nhân Viên, giúp tìm dễ
dàng tìm thông tin nhân
viên
b. Bảng TB_DAPAN

Chứa thông tin về các kết quả của bài thi thí sinh gồm: MACAUHOI, MADAPAN,
NOIDUNGDAPAN, KIEUDAPAN
STT Thuộc Tính Kiểu Dữ Liệu Diễn Giải
1 MACAUHOI (not null –
khóa chính, Khóa ngoại
TB_CAUHOI )
nchar Quy định thông tin mã
câu hỏi.
2 MADAPAN (not null –
khóa chính)
nchar Quy định thông tin mã
đáp án
3 NOIDUNGDAPAN nchar Quy định thông tin nội
dung đáp án.
4 KIEUDAPAN nchar Quy định thông tin các
đáp án, và giúp chương
trình xuất ra đáp án
đúng.
c. Bảng TB_KETQUA
Chứa thông tin về các kết quả của bài thi thí sinh gồm: MAKQ, MATHISINH,
TENTHISINH, MAMON, DIEM, NGAYTHI
STT Thuộc Tính Kiểu Dữ Liệu Diễn Giải
1 MAKQ(not null – khóa
chính)
Int (not null –
khóa chính)
Quy định mã kết quả để
CSDL dễ lưu lại kết quả.
2 MATHISINH (not null –
khóa chính, Khóa ngoại

TB_THISINH )
nchar Quy định mã thí sinh, để
lấy thông tin thí sinh
trong bảng
TB_THISINH
3 TENTHISINH nvarchar Quy định thông tin tên
của thí sinh làm bài.
4 MAMON (not null – khóa
chính, Khóa ngoại
TB_MONTHI )
nchar Quy định mã moonthis
sinh đang thi, cũng như
giúp chương trình lấy
6
thông tin cần thiết từ
bảng TB_MONTHI.
5 DIEM real Quy định điểm do chính
thí sinh thi được.
6 NGAYTHI date Quy định ngày thí sinh
dự thi.
d. Bảng TB_MONTHI
Chứa thông tin về các kết quả của bài thi thí sinh gồm: MAMON, TENMON
STT Thuộc Tính Kiểu Dữ Liệu Diễn Giải
1 MAMON (not null – khóa
chính)
nchar Quy định mã môn
2 TENMON nvarchar Quy định tên môn
e. Bảng TB_NHANVIEN
Chứa thông tin về các kết quả của bài thi thí sinh gồm: MANHANVIEN, HOTEN, TENDN,
MATKHAU, CHUCVU, DIACHI, SODIENTHOAI

STT Thuộc Tính Kiểu Dữ Liệu Diễn Giải
1 MANHANVIEN (not null –
khóa chính)
nchar Quy định mã nhân viên
2 HOTEN nvarchar Quy định họ và tên nhân
viên
3 TENDN nvarchar Quy định thông tin tên
đăng nhập của nhân viên
4 MATKHAU nvarchar Quy định mật khẩu để
nhân viên có thể đăng
nhập, và mỗi nhân viên
sẽ có một tên đăng nhập
và một mật khẩu quy
định.
5 CHUCVU nchar Quy định thông tin chức
vụ của nhân viên ấy
6 DIACHI nvarchar Quy định thông tin địa
chỉ nơi sinh sống của
nhân viên ấy.
7 SODIENTHOAI nchar Quy định số điện thoại
7
f. Bảng TB_THISINH
Chứa thông tin về các kết quả của bài thi thí sinh gồm: MATHISINH, HOTEN, TENDN,
MATKHAU, DIACHI
STT Thuộc Tính Kiểu Dữ Liệu Diễn Giải
1 MATHISINH (not null –
khóa chính)
nchar Quy định mã nhân viên
2 HOTEN nvarchar Quy định họ và tên thí
sinh

3 TENDN nchar Quy định thông tin tên
đăng nhập của thí sinh
để thí sinh dự thi.
4 MATKHAU nchar Quy định mật khẩu để
thí sinh có thể đăng
nhập, và mỗi thí sinh sẽ
có một tên đăng nhập và
một mật khẩu quy định.
5 DIACHI nchar Quy định thông tin địa
chỉ nơi sinh sống của
nhân viên ấy.
3. Cài đặt chương trình
Màn hình khi chạy chương trình, tại đây cho biết thông tin Giáo Viên Hướng Dẫn,
cũng như các thành viên thực hiện.
Màn hình giao diện đăng nhập chính: có chức năng đăng nhập vào hệ thống của chương trình
và hệ thống tự động nhận biết user đăng nhập là thí sinh hay nhân viên
8
STT Tên Kiểu Ý Nghĩa Ghi Chú
1 Chọn quyền Group Giúp người dùng truy cập vào chương trình
với vai trò là gì.
+ Tại đây có 2radio nếu nhấn vào radio thí
sinh, người dùng có thể đăng nhập vào hệ
thống, hay đổi mật khẩu. Nhưng nếu đây là
lần đầu sử dụng thì người dùng có thể tạo
cho mình một tài khoản để sử dụng
+ Còn nếu nhấn vào radio nhân viên thì tại
đây form chỉ cho người dùng đăng nhập và
đổi mật khẩu, không có button đăng ký
2 Thông tin
đăng nhập thí

sinh (nhân
viên)
Group Tại đây người dùng đăng nhập tên và mật
khẩu tại đây
3 Đăng nhập Button Sau khi nhập thông tin đầy đủ trong bảng
thông tin, người dùng có thể nhấn phím
Enter để đăng nhập, hoặc nhấn nút Đăng
nhập để vào chương trình.
+ Nếu đăng nhập sai thì chương trình sẽ
xuất ra thông tin báo lỗi chưa nhập dữ liệu,
hoặc nhập thông tin không đúng
4 Đăng Ký Button Nếu đây là lần đầu sử dụng thì người dùng
có thể tạo cho mình một tài khoản để sử
dụng bằng cách nhấn vào nút đăng ký. Khi
đó chương trình sẽ đưa người dùng đến với
giao diện khác để người dùng đăng ký
5 Thoát Button Người dùng chuẩn bị sử dụng chương trình
nhưng đột xuất bận việc khác muốn thoát
chương trình thì nhấn nút Thoát để thoát
hẳn chương trình. Sau khi nhấn nút thoát
chương trình sẽ xuất hiện thông tin để hỏi
người dùng có chắc chắn thoát hay không.
9
Kết quả đăng nhập đúng
10
Form sẽ bắt lỗi nếu đăng nhập sai:
Form đăng ký người dùng sẽ nhìn thấy các thí sinh dự thi khác. Tuy nhiên password đã
được mã hóa nên người dùng ko thể đăng nhập với tài khoản khác được. Sau khi nhập
đầy đủ thông tin người dùng nhấn nút để đồng ý. Tiếp theo người dùng nhấn
nút để có thể đăng nhập lại với tên vừa đăng ký

11
Sử dụng thời gian đã lâu, hay bạn thích đổi password và nhiều lý do (vd: cho bạn mượn nick
để học, ) thì thay vì bạn đăng nhập thì bạn điền thông tin password và tên người dùng sau đó
chọn nút “đổi mật khẩu”. Tiếp đó chương trình sẽ đưa người dùng vào giao diện khác. Tại
đây người dùng sẽ nhập lại mật khẩu cũ,và để đổi mật khẩu thành công thì người dùng cần
nhập mật khẩu mới sau đó nhấn nút nút để đồng ý. Tiếp theo người dùng nhấn nút
để có thể đăng nhập lại với mật khẩu vừa đổi.
12
Màn hình menu chính
STT Tên Kiểu Ý Nghĩa Ghi Chú
1 Thi Trắc
Nghiệm
Butto
n
Nếu thí sinh hay nhân viên muốn thi thử thì
nhấn nút thi trắc nghiệm để chương trình
đưa người dùng vào giao diện thi trắc
nghiệm
2 Quản Lý Tài
Khoản
Butto
n
Nếu là thí sinh đăng nhập thì chương trình
không cấp quyền xem tài khoản. Ở phần
giao diện này giúp bảo mật câu hỏi cũng
như, tài khoản của người dùng khác.
Còn nếu là nhân Viên nếu đăng nhập sẽ cho
phép xem tài khoản của các nhân viên khác,
cũng như của thí sinh. Nhằm giúp người
dùng có thể lấy lại mật khẩu bằng cách gọi

cho nhân viên.
3 Quản Lý Câu
Hỏi
Butto
n
Nếu là thí sinh đăng nhập thì chương trình
không cấp quyền quản lý câu. Ở phần giao
diện này giúp bảo mật câu hỏi cũng như,
tài khoản của người dùng khác.
Còn nếu là nhân Viên nếu đăng nhập sẽ cho
phép chỉnh sửa câu hỏi, hay nhập thêm câu
hỏi.
4 Xem Điểm Butto
n
Nếu là thí sinh đăng nhập lần đầu thì
chương trình không cấp quyền xem điểm,
tại thí sinh ấy chưa thi nên không có điểm
bảo lưu.
Nhưng nếu thí sinh đã từng sử dụng
13
chương trình thì form sẽ load lên điểm của
thí sinh ấy
5 Đăng Nhập Lại Butto
n
Tại đây người dùng có thể quay lại giao
diện đăng nhập như trên, để có thể đăng
nhập với cái tên khác, hoặc để người dùng
khác thi thử.
6 Đăng Xuất Butto
n

Người dùng đang chạy chương trình nhưng
đột xuất bận việc khác muốn thoát chương
trình thì nhấn nút Đăng Xuất để thoát hẳn
chương trình. Sau khi nhấn nút Đăng Xuất
chương trình sẽ xuất hiện thông báo để hỏi
người dùng có chắc chắn thoát hay không.
Nếu thí sinh đã thi và có kết quả, thì kết quả ấy sẽ được lưu trong CSDL SQL khi đó
thí sinh có thể xem điểm của mình và có thể in điểm của mình. Bằng cách nhấn nút
để in kết quả. Trong phần này có cửa sổ cho phép thí sinh xem điểm của các thí
sinh khác, bằng cách Click vào nút “xem điểm tất cả thí sinh khác”. Sau khi xem điểm
thí sinh muốn thi trắc nghiệm tiếp thì nhấn vào nút để trở về form chính, sau
đó có thể thoát chương trình tại form chính này.
14
Màn hình form thi trắc nghiệm
STT Tên Kiểu Ý Nghĩa Ghi Chú
1 Thông Tin
người dùng
Group Trong group này thí sinh dự thi sẽ thấy
họ và tên của mình, môn thi, ngày thi.
Ngoài ra còn có Combobox số câu hỏi
để người chọn gói câu hỏi mà thi.
2 Quay về đầu Button Quay về câu hỏi đầu tiên của đề thi
3 Trở về câu hỏi
trước
Button Trở về câu hỏi trước đó
4 Tiếp tục Button Tiếp tục câu hỏi kế tiếp
5 Trở về câu hỏi
cuối cùng
Button Quay về câu hỏi cuối cùng của đề thi
15

6 Thời gian Progressbar Quy định thời gian làm bài thi
7 Câu hỏi và
đáp án
Label và
Radio
Nội dung câu hỏi và đáp án
8 Bắt đầu làm
bài thi
Button Nút bắt đầu bài thi, sau khi nhấn nút
chương trình sẽ load câu hỏi và đáp án
và đưa lên label
9 Nộp bài thi Button Nút nộp bài thi khi làm xong
10 Quay về trang
chủ
Button
Nhấn vào nút để trở về form
chính
Màn hình thi trắc nghiệm, khi vừa load lên
Tại form này thí sinh sẽ tự chọn móc câu hỏi để thi có 3 móc câu hỏi chính: móc 10
câu, 20 câu và 30 câu. Sau khi chọn móc câu hỏi thí sinh nhấn nút Start (nút màu xanh)
để bắt đầu thi.
16
Với móc 10 câu hỏi thí sinh có 500 giây để hoàn thành nó, tương tụ như vậy 20 câu thì
có 10000 giây thực hiện, 30 câu thì có 45000 giây để thực hiện bài thi đó. Sau hết giờ.
Nhưng ngược lại nếu thí sinh làm bài xong và muốn nộp bài sớm thì nhấn nút nộp bài
thi (nút nàu đỏ). Sau khi nhấn nút chương trình sẽ xuất ra tên người dùng và điểm thi
của họ.
Sau khi nhấn nút ok thí sinh muốn thi tiếp sẽ nhấn nút bắt đầu thi để nhận đề thi khác
để thi.
17

Quay lại giao diện chính, sau khi đăng nhập thành công nhưng người dùng chưa chọn
quyền thì form sẽ tự động bắt lỗi và xuất ra câu lệnh:
Sau khi chọn quyền quản lý, sau đó người dùng click vào button Quản Lý Tài Khoản
để xem thông tin các tài khoản:
STT Tên Kiểu Ý Nghĩa Ghi Chú
1 Tài khoản
nhân viên
DataGridView Sau khi nhân viên đăng nhập với tên
nhân viên và chon quyền Nhân Viên.
Tiếp đó nhân viên nhấn nút “Quản Lý
Tài khoản” thì chương trình sẽ xuất
hiện form quản lý nhân viên. Tại nơi
đây DataGridView sẽ hiển thị thông tin
tất cả các nhân viên.
2 Tài khoản Thí
Sinh
DataGridView Sau khi nhân viên đăng nhập với tên
nhân viên và chon quyền Thí Sinh.
Tiếp đó nhân viên nhấn nút “Quản Lý
18
Tài khoản” thì chương trình sẽ xuất
hiện form quản lý thí sinh. Tại nơi đây
DataGridView sẽ hiển thị thông tin tất
cả các thí sinh.
3 Thông tin cụ
thể
Group Người dùng nhấn vào bất cứ nơi đâu
trong bảng tài khoản thí sinh cũng như
nhân viên. Khi ấy dữ liệu sẽ được load
lên và cập nhập vào các textbox.

4 Thêm Button Cho phép người quản lý thêm nhân
viên hoặc thí sinh.
5 Sửa Button Cho phép người quản lý sửa thông tin
của nhân viên hoặc thí sinh.
6 Xóa Button Cho phép người quản lý xóa thông tin
của nhân viên hoặc thí sinh.
7 Lưu Button Cho phép người quản lý lưu thông tin
nhân viên hoặc thí sinh.
8 In Button Cho phép người quản lý in thông tin
nhân viên.
9 Quay về trang
chủ
Button Nhấn vào nút “trở về” để trở về form
chính
Đây là tài khoản của các nhân viên
Còn đây là tài khoản của các thí sinh
19
Người dùng là quản lý thì có thể quản lý câu hỏi, nơi đây có thể nhập câu hỏi, hay
chỉnh sửa câu hỏi tùy ý.
STT Tên Kiểu Ý Nghĩa Ghi Chú
1 Nội dung câu
hỏi
Textbox Nhập nội dung câu hỏi
2 Mã câu hỏi Textbox Nhập mã câu hỏi
3 Danh sách
câu hỏi
Listview Liệt kê danh sách tát cả các câu
hỏi có trong cơ sở dữ liệu
4 Mã đáp án Textbox Nhập mã đáp án
5 Nội dung đáp

án
Textbox Cho phép nhập các đáp án
6 Kiểu đáp án Radio Lick chọn vào radio nào thì bên
textbox kia sẽ là câu trả lời đúng
5 Thêm Button Thêm câu hỏi và đáp án vào cở dữ
liệu và xóa rỗng các textbox.
6 Sửa Button Cho phép sửa thông tin thành
công. Tại đây ko cho phép sửa mã
câu hỏi cũng như mã đáp án.
7 Xóa câu hỏi Button Xóa nội dung câu hỏi và đáp án
8 Trở về Button Thoát chương trình này để trở về
form menu chính
9 Xem hết Button Cho phép người dùng xem ngân
hàng câu hỏi của chương trình.
10 Mã Nhân
Viên
Textbox Cho phép nhân viên nhập mã cảu
mình để CSDL nhận ra nhân viên
nào chỉnh sửa, hay thêm mới câu
hỏi.
11 Môn Thi Combobo
x
Cho phép người quản lý chọn môn
thi để tạo đề thi.
20
Tại đây người dùng chỉ có thể đổi password chứ không thể đổi tên người dùng được. một
điều nữa là giao diện cho phép người dùng là nhân viên được in kết quả thi của thí sinh
Giới thiệu các Source:
Code1 :
21

public SqlConnection con = new SqlConnection(@"Data
Source=.\SQLEXPRESS;AttachDbFilename=" + @"|DataDirectory|
DB_TRACNGHIEM_SON_THUAN.mdf" + ";Integrated Security=True;Connect
Timeout=30;User Instance=True;");
so sánh
code2:
public SqlConnection con = new SqlConnection("Server=THANHSON-
PC;Database=DB_TRACNGHIEM_SON_THUAN;uid=sa;pwd=123456");
code 1 cho phép chương trình tìm cơ sở dữ liệu ở trong máy đang chạy giao diện mà
không cần phải chỉnh lại. Còn code 2 nếu đưa CSDL sang máy khác càn phải chỉnh sửa lại.
Chương trên dựa vào mô hình 3 lớp để thực thi:
Để có thể lấy dữ liệu vào trong mảng một cách ngẫu nhiên ta sử dụng hàm random
III. Kết luận:
1. Nhận xét đề tài:
a) Những gì làm được:
- Giao diện thân thiện, dễ sử dụng
- Các nút đóng,mở hoàn chỉnh
- Nếu nhập câu hỏi mà trùng mã câu hỏi hay mã đáp án thì chương trình sẽ không
cho thực thi.
- Xuất điểm cho thí sinh.
- Đã thêm xóa sửa được câu hỏi của mình tạo ra.
- có thể thêm xóa sửa người dùng.
b) Chưa làm được (so với yêu cầu ban đầu)
- Chưa đưa ra những màn gợi ý, hay diễn giải đáp án đó tại sao đúng.
- Cần có nơi để người dùng có thể thay đổi tên đăng nhập của mình, hay là thông
tin cá nhân của nguời dùng đó.
- Vẫn xuất điểm cho thí sinh dù thí sinh chỉ làm 1 câu hỏi hoặc thời gian còn sớm.
c) Hướng phát triễn
- Giao diện đạt cách tốt nhất để giúp các sinh viên có nơi tập thi thử.
- Đưa vào thực hiện trong các kỳ thi chứng chỉ B của trường Đại Học Công

Nghiệp Tp.HCM. Vì tất cả gói câu hỏi ở đây đều lấy từ các đề thi chứng chỉ của
trường.
- Tạo setup một cách chuyên nghiệp hơn.
22
//Lấy câu hỏi và lưu vào mảng

dt_CAUHOI = new B_CauHoi().RanDomCauHoi(cboSoCauHoi.Text,
cboMonThi.SelectedValue.ToString());
for (int i = 0; i < socauhoi; i++)
{
Array_Mach.Add(dt_CAUHOI.Rows[i][0].ToString());// mã câu hỏi ở
vị trí 0 trong bảng câu hỏi
Array_Cauhoi.Add(dt_CAUHOI.Rows[i][1].ToString());// nội dung
câu hỏi trong bảng
//Tạo đáp án ảo cho Thí Sinh
DapAn_ThiSinh.Add("5");
dt_DAPAN = new
B_DapAn().GetDapAn(Array_Mach[i].ToString()).Tables[0];

for (int j = 0; j < 4; j++)
{
Array_Dapan.Add(dt_DAPAN.Rows[j][0].ToString());// nôi dung các
đáp án
Array_Kieudapan.Add(dt_DAPAN.Rows[j][1].ToString());//
kiểu đáp án

if (dt_DAPAN.Rows[j][1].ToString().Trim().Equals("1"))// nếu
kiểu đáp án =1
{
//Đáp án lưu theo số thứ tự (Ví dụ A lưu thành 1 và B lưu

thành 2)
madapandung.Add(Convert.ToString(j + 1));// add đáp án
đúng và lưu vào mảng
}
}
}

×