Hiện nay, công nghệ thông tin được xem là một ngành mũi nhọn của các quốc gia, đặc biệt là các quốc gia đang phát triển, tiến hành công nghiệp hóa và hiện đại hóa. Sự bùng nổ thông tin và sự phát triển mạnh mẽ của công nghệ kỹ thuật số, yêu cầu muốn phát triển thì phải tin học hóa vào tất cả các ngành, các lĩnh vực.
Cùng với sự phát triển nhanh chóng về phần cứng máy tính, các phần mềm ngày càng trở nên đa dạng,phong phú, hoàn thiện hơn và hỗ trợ hiệu quả cho con người. Các phần mềm hiện nay ngày càng mô phỏng được rất nhiều nghiệp vụ khó khăn, hỗ trợ cho người dùng thuận tiện sử dụng, thời gian xử lý nhanh chóng, và một số nghiệp vụ được tự động hóa cao.
Sự phát triển phần mềm đang trên đà mạnh, việc nghiên cứu và tiếp thu sự phát triển này là mục tiêu của những người làm về công nghệ thông tin nói chung và lập trình phần mềm nói riêng.
Với mục tiêu nâng cao trình độ phát triển phần mềm, cũng như mong muốn đóp góp cho xã hội, giáo dục thì đề tài Xây dựng phần mềm thi trắc nghiệm trực tuyến được ra đời. Đây là một đề tài được nghiên cứu nghiêm túc, chỉnh chu, áp dụng những công nghệ hiệu quả với thiết kế.
MỤC LỤC
LỜI NÓI ĐẦU
DANH SÁCH
CÁC KÝ TỰ, CÁC CHỮ VIẾT TẮT
DANH MỤC
CÁC BẢNG BIỂU, HÌNH VẼ
CHƯƠNG I:
KHẢO SÁT
1. Tính cấp thiết của đề tài:
2. Mục đích và phạm vi:
3. Khảo sát về phần mềm thi trắc nghiệm trực tuyến:
4. Xác định yêu cầu:
CHƯƠNG II:
PHÂN TÍCH THIẾT KẾ CƠ SỞ DỮ LIỆU
1. Mô hình dữ liệu quan hệ:
2. Từ điển dữ liệu:
3. Code tao CSDL bằng SQL:
CHƯƠNG III:
PHÂN TÍCH THIẾT KẾ HỆ THỐNG
1. Công nghệ, công cụ, môi trường phát triển:
1.1. Yêu cầu
nền tảng:
1.2. Mô
hình 3 lớp:
1.3. Trực
tuyến:
2. Sơ đồ phân cấp chức năng:
3. Một số thuật toán xử lý hành động:
CHƯƠNG IV:
THIẾT KẾ GIAO DIỆN VÀ CÀI ĐẶT
1. Công nghệ, lý thuyết sử dụng:
1.1. Ngôn
ngữ lập trình C Sharp:
1.2. Phần
mềm soạn thảo lập trình Microsoft Visual Studio 2015:
1.3. Hệ
thống thư viện DevExpress 15.2.07:
1.4. Lý
thuyết thiết kế giao diện người dùng:
2. Đăng nhập:
3. Giao diện thí sinh:
3.4. Thông
tin kỳ thi:
3.5. Kết
quả đã thi:
3.6. Thông
tin cá nhân:
3.7. Thi
trắc nghiệm:
3.8. Xem
điểm:
3.9. Xem
lại bài thi:
4. Giao diện giáo viên:
4.1. Giao
diện chính:
4.2. Quản
lý kỳ thi và đề thi:
4.3. Tạo
câu hỏi trắc nghiệm chỉ một đáp án:
4.4. Tạo
câu hỏi trắc nghiệm nhiều đáp án:
4.5. Tạo
câu hỏi trắc nghiệm điền từ:
4.6. Quản
lý kỳ thi đang diễn ra (xử lý thời gian thực):
4.7. Xem
điểm của thí sinh
4.8. Quản
lý thông tin người dùng là giáo viên:
4.9. Quản
lý thông tin người dùng là thí sinh:
4.10. Quản
lý thông tin khác:
5. Giao diện khác:
3.1. Kết
nối Server để chạy trực tuyến:
3.2. Thông
tin tác giả:
KẾT LUẬN
PHỤ LỤC
TÀI LIỆU THAM KHẢO
CHƯƠNG I: KHẢO SÁT
1.1. Tính cấp thiết của đề tài:
Hiện nay thì việc đẩy mạnh ứng dụng khoa công nghệ vào việc giảng dạy và học tập là yêu cầu tất yếu phù hợp nhu cầu phát triển của xã hội, văn hóa, giáo dục. Các trường trên khắp cả nước đã ứng dụng giảng dạy điện tử từ lâu, tiếp theo đây sẽ là đổi mới cách thức thi, áp dụng công nghệ vào việc kiểm tra thi cử.
Chính vì nhu cầu đó mà nhu cầu có những phần mềm hỗ trợ thi trên máy tính ra đời. Cụ thể ơ đây là phần mềm thi trắc nghiệm trực tuyến.
Mục đích và phạm vi:
Mục đích nghiên cứu trước hết là trao dồi kỹ năng lập trình, tiếp cận công nghệ. Tiếp theo là đóng góp ý tưởng, sản phẩm, nghiên cứu cho sự phát triển giáo dục nước nhà.Chính vì nhu cầu đó mà nhu cầu có những phần mềm hỗ trợ thi trên máy tính ra đời. Cụ thể ơ đây là phần mềm thi trắc nghiệm trực tuyến.
Mục đích và phạm vi:
Phạm vi sẽ xoay quanh vấn đề thi trắc nghiệm, quản lý thi trắc nghiệm trên máy tính đơn hoặc máy tính trong mạng nội bộ.
Khảo sát về phần mềm thi trắc nghiệm trực tuyến:
Những người liên quan là : người thi (thí sinh), người giám sát (giám thị), người ra đề (giáo viên).
Để có thể thi thì cần có: đề thi, câu hỏi, đáp án. Và có thể sẽ có đa dạng loại câu hỏi, cấp độ khó khác nhau, cách trả lời khác nhau. Hết thời gian làm bài thị phải nộp lại.
Với việc giám sát thì có thể nhắc nhở thí sinh, đánh dấu bài, cưỡng chế thí sinh nộp bài trước thời gian.
Thi xong thì cần chấm điểm, lưu lại điểm.
Xác định yêu cầu:
Từ những khảo sát trên thì có thể xác định phần mềm cần có những phần sau:
· Tạo đề thi
· Tạo câu hỏi và đáp án
· Có nhiều loại câu hỏi
· Phân biệt 2 loại người sử dụng là “Thí sinh” và “Giáo viên”
· Có thể thi trực tiếp trên máy tính, máy đơn hoặc mạng
· Giám sát được “thí sinh” khi đang thi.
· Tự động trộn đề, câu hỏi, đáp án.
· Thi xong tự động chấm điểm và lưu lại kết quả.
Đây là những yêu cầu cơ bản sau khi khảo sát. Phần mềm sẽ được theo hướng đáp ứng những yêu cầu này.
CHƯƠNG II: PHÂNTÍCH THIẾT KẾ CƠ SỞ DỮ LIỆU
1. Mô hình dữ liệu quan hệ:
![]() |
Mô hình dữ liệu quan hệ phần mềm thi trắc nghiệm trường đại học thông tin liên lạc |
2. Từ điển dữ liệu:
KyThi
Tên trường
|
Kiểu dữ liệu
|
Ghi chú
|
MaKyThi
|
Int
|
Mã kỳ thi, khoa chính
|
MaMon
|
Nvarchar(10)
|
Mã môn, khóa ngoại
|
TenKT
|
Nvarchar(20)
|
Tên kỳ thi
|
DoiTuong
|
Nvarchar(10)
|
|
MaNV
|
Varchar(10)
|
Mã nhân viên (giáo viên), khóa ngoại
|
TGLamBai
|
Int
|
|
TGMoDe
|
Smalldatetime
|
|
TGDongDe
|
Smalldatetime
|
|
TongSoCau
|
Int
|
|
TLDe
|
Int
|
Tỉ lệ câu hỏi dễ
|
TLKho
|
Int
|
Tỉ lệ câu hỏi khó
|
CauMDA
|
Bit
|
Cho phép dùng câu hỏi 1 đáp án
|
CauNDA
|
Bit
|
Cho phép dùng câu hỏi nhiều đáp án
|
CauDT
|
Bit
|
Cho phép dùng câu điền đáp án
|
Chat
|
Bit
|
Cho phép chat nội bộ khi thi
|
TienLui
|
Bit
|
Cho phép trả lời lại
|
Mat
|
Bit
|
Mật – Không hiển thị với thí sinh
|
MatKhau
|
Nvarchar(20)
|
Mật khẩu cho đề thi.
|
KyThi
Tên trường
|
Kiểu dữ liệu
|
Ghi chú
|
MaLop
|
Varchar(10)
|
Mã lớp, khóa chinh
|
TenLop
|
Nvarchar(50)
|
Tên lớp
|
MaKhoa
|
Varchar(10)
|
Khóa ngoại
|
Khoa
Tên trường
|
Kiểu dữ liệu
|
Ghi chú
|
MaKhoa
|
Varchar(10)
|
Mã khoa, khóa chinh
|
TenKhoa
|
Nvarchar(50)
|
Tên khoa
|
Mon
Tên trường
|
Kiểu dữ liệu
|
Ghi chú
|
MaMon
|
Nvarchar(10)
|
Mã môn, khóa chính
|
Ten
|
Nvarchar(30)
|
CauHoi
Tên trường
|
Kiểu dữ liệu
|
Ghi chú
|
MaCH
|
Int
|
Mã câu hỏi
|
HinhThucCH
|
Char(2)
|
Hình thức câu hỏi
|
NoiDung
|
Nvarchar(300)
|
|
Hinh
|
Image
|
Hình minh họa
|
MaMon
|
Nvarchar(10)
|
Khóa ngoại
|
DoKho
|
Char(1)
|
Độ khó
|
DapAn
Tên trường
|
Kiểu dữ liệu
|
Ghi chú
|
MaDA
|
Int
|
Mã đáp án, khóa chính
|
MaCH
|
Int
|
Khóa ngoại
|
NoiDung
|
Nvarchar(300)
|
|
DungSai
|
Bit
|
Là câu trả lời đúng hay sai
|
KetQua
Tên trường
|
Kiểu dữ liệu
|
Ghi chú
|
MaKQ
|
Int
|
Mã kết quả, khóa ngoại
|
MaTS
|
Varchar(10)
|
Mã thí sinh, khóa ngoại
|
MaKyThi
|
Int
|
Mã kỳ thi, khóa ngoại
|
Ngaythi
|
Datetime
|
|
Diem
|
Float
|
|
TongTGThi
|
Int
|
Tổng thời gian thi (tính bằng giây)
|
TGTraLoiDe
|
Int
|
Thời gian trả lời tất cả câu dễ
|
TGTraLoiTrungBinh
|
Int
|
Thời gian trả lời tất cả câu trùng bình
|
Loai
|
Bit
|
1: thi chính thức; 0: thi thử
|
ThiSinh
Tên trường
|
Kiểu dữ liệu
|
Ghi chú
|
MaTS
|
Varchar(10)
|
Khóa chính
|
Ten
|
Nvarchar(40)
|
Họ tên đầy đủ
|
DN
|
Nvarchar(40)
|
Tên đăng nhập
|
MK
|
Nvarchar(40)
|
Mật khẩu
|
Lop
|
Varchar(10)
|
Khóa ngoại
|
Khoa
|
Varchar(10)
|
Khóa ngoại
|
HinhAnh
|
Image
|
Hình đại diện
|
TrangThai
|
Bit
|
Trực tuyến hay ngoại tuyến
|
Quyen
|
Bit
|
Quyền truy cập kỳ thi
|
Mess
|
Nvarchar(200)
|
Ghi chú cá nhân
|
ThiSinh
Tên trường
|
Kiểu dữ liệu
|
Ghi chú
|
MaNV
|
Varchar(10)
|
Khóa chính
|
Ten
|
Nvarchar(40)
|
Họ tên đầy đủ
|
DN
|
Nvarchar(40)
|
Tên đăng nhập
|
MK
|
Nvarchar(40)
|
Mật khẩu
|
NgaySinh
|
Datetime
|
|
DonViCongTac
|
Nvarchar(30)
|
|
Quyen
|
Bit
|
Cho phép truy cập phần mềm
|
PhanQuyen
|
Char(1)
|
Quyền hạng trong phần mềm
|
HinhAnh
|
Image
|
Hình đại diện
|
BaoCaoLoi
Tên trường
|
Kiểu dữ liệu
|
Ghi chú
|
MaSo
|
Int
|
Khóa chính
|
Loai
|
Nvarchar(30)
|
Phân loại lỗi
|
MoTa
|
Nvarchar(300)
|
Mô tả lỗi
|
MaTS
|
Varchar(10)
|
Khóa ngoại
|
TinhTrang
|
Nvarchar(20)
|
2.
Code tao CSDL bằng SQL:
------------------------ Tạo database ----------------------------
create database Quiz_v3
use
Quiz_v3
------------------------ Tạo bảng ----------------------------
create table ThiSinh(
MaTS varchar(10) not null, -- mã sinh
viên
Ten nvarchar(40), -- Họ
tên thí sinh
DN nvarchar(40), --
Tên đăng nhập
MK nvarchar(50), -- Mật
khẩu
NgaySinh varchar(22), -- Ngày
sinh
Lop varchar(10), -- Lớp
Khoa varchar(10), --
Khoa
HinhAnh image, -- ảnh thẻ chuẩn 4:3
TrangThai bit, -- 0: offline; 1: online
Quyen bit, -- 0: cấm đăng nhập, đình chỉ;
Mess nvarchar(200), -- dùng
khi thông báo đình chỉ
primary key clustered (MaTS)
)
create table Khoa(
MaKhoa varchar(10),
TenKhoa nvarchar(50),
primary key clustered(MaKhoa)
)
create table Lop(
MaLop varchar(10),
TenLop nvarchar(50),
MaKhoa varchar(10),
primary key clustered(MaLop)
)
create table NhanVien(
MaNV varchar(10) not null, -- mã giảng
viên
Ten nvarchar(50),
DN nvarchar(40),
MK nvarchar(40),
NgaySinh varchar(20),
DonViCongTac nvarchar(30), --
Phòng/khoa/chức vụ
Quyen bit, -- 0: cấm đăng nhập, đình chỉ; 1: Được phép đăng nhập
PhanQuyen char(1), -- 1: Sếp
lơn; 2: giám thị; 3: giáo viên
HinhAnh image, --
Ảnh thẻ
primary key clustered (MaNV)
)
create table CauHoi(
MaCH int identity not null, -- tự động tạo id
HinhThucCH char(2), -- Hình
thức câu hỏi: M(4 da, chọn 1); N(nhiều DA, nhiều TL); D(điền đáp án)
NoiDung nvarchar(300), -- Nội
dung câu hỏi
Hinh image, -- Hình ảnh minh họa
MaMon nvarchar(10), -- Mã
môn học
DoKho char(1), --
3 độ khó, 1(dễ), 2(trung bình), 3(khó)
primary key clustered (MaCH)
)
create table DapAn(
MaDA int identity not null, -- tự động tạo id
MaCH int, -- Mã câu hỏi
NoiDung nvarchar(300), -- Nội
dung đáp án
DungSai bit, -- Đáp án đúng hay sai: 0 sai, 1 đúng
primary key clustered (MaDA)
)
create table Mon(
MaMon nvarchar(10) not null,
Ten nvarchar(30),
primary key clustered(MaMon)
)
create table KyThi(
MaKyThi int
identity not null, -- tự động tạo id
MaMon nvarchar(10) not null, -- Mã môn học
TenKT nvarchar(20), -- Tên
của kỳ thi
DoiTuong nvarchar(10), -- Đối tượng
thi đề này
MaNV varchar(10), -- Mã
nhân viên tạo kỳ thi này
TGLamBai int, --
Thời gian làm bài (tính bằng phút)
TGMoDe smalldatetime, -- Thời gian mở đề
TGDongDe smalldatetime, -- Thời gian đóng đề
TongSoCau int, -- Tổng số câu hỏi
TLDe int, -- Tỉ lệ câu dễ
TLKho int, -- Tỉ lệ câu khó
-- TLTB = [100
- (TLDe + TLTKho)]
TDDe int, -- Tính điểm dễ -- thang điểm 10
TDKho int, -- Tính điểm khó
CauMDA bit, -- Câu hỏi một đáp án
CauNDA bit, -- Câu hỏi nhiều đáp án
CauDT bit, -- Câu hỏi điền đáp án
Chat bit, -- Cho phép chat khi thi: 0(không cho)
TienLui bit, -- Chặn quay lại câu hỏi trước: 0 (không cho)
Mat bit, -- Cho phép thi
thử trước giờ thi: 0(không cho)
MatKhau nvarchar(20), --
Phòng khi yêu cầu password
primary key clustered (MaKyThi)
)
create table KetQua(
MaKQ int identity not null, -- tự động tạo id
MaTS varchar(10) not null,
MaKyThi int
not null,
NgayThi varchar(25), --12/12/1212 12:12:12.0 PM
Diem float,
TongTGThi int, -- Tổng thời gian thi,
tính bằng giây.
TGTraLoiDe int, -- Tổng thời gian trả lời
các câu hỏi đễ, tính bằng giây.
TGTraLoiTrungBinh int, --
Tổng thời gian trả lời các câu hỏi trung bình.
Loai bit, --0: thi thử, 1: thi
chính thức
primary key clustered (MaKQ)
)
create table BaoCaoLoi(
MaSo int identity not null, -- tự động tạo id
Loai nvarchar(30), -- quên mk/ câu hỏi bị lỗi/ phát hiện gian lận/ ....
MoTa nvarchar(300),
MaTS varchar(10), -- Người báo lỗi
TinhTrang nvarchar
(20),
primary key clustered (MaSo)
)
create table ChatBox(
IDBox int
identity not null,
Loai char(1), -- 3 loại: 1(ts - ts) 2(nv - ts) 3(nv - nv)
MaN1 varchar(10),
MaN2 varchar(10),
primary key clustered (IDBox)
)
create table ChatMess(
IDBox int,
IDMess int
identity,
MaN nvarchar(10),
NoiDung nvarchar(200),
primary key clustered (IDMess)
)
create table PhieuTraLoi(
MaKQ int,
STT int,
HinhThucCH char(2),
MaCH int,
DapAn nvarchar(100),
ChuoiDapAn nvarchar(200),
primary key clustered (MaKQ, STT)
)
create table LogThi(
MaTS varchar(10),
MaKyThi varchar(10),
Thi bit, -- 0: cấm thi, 1: được tiếp
tục thi.
)
------------------------ Quan hệ ----------------------------
alter table Lop add constraint FK_L_K foreign
key (MaKhoa) references Khoa
alter table ThiSinh add constraint FK_TS_K foreign
key (Khoa) references Khoa
alter table ThiSinh add constraint FK_TS_L foreign
key (Lop) references Lop
alter table DapAn add constraint FK_DA_CH foreign
key (MaCH) references CauHoi
alter table CauHoi add constraint FK_CH_M foreign
key (MaMon) references Mon
alter table KyThi add constraint FK_KT_M foreign
key (MaMon) references Mon
alter table KyThi add constraint FK_KT_NV foreign
key (MaNV) references NhanVien
alter table KetQua add constraint FK_KQ_TS foreign
key (MaTS) references ThiSinh
alter table KetQua add constraint FK_KQ_KT foreignkey (MaKyThi) references KyThi
CHƯƠNG IV: THIẾT KẾGIAO DIỆN VÀ CÀI ĐẶT
4.1.Công nghệ, lý thuyết sử dụng:
4.1.1. Ngôn ngữ lập trình C Sharp:
C Sharp là một ngôn ngữ rất mạnh mẻ và trực quan để lập trình Win Form. Với ưu điểm là tương đối dễ học, tạo giao diện một cách trực quan, có nhiều thư viện. Và được phát triển bởi hãng Microsoft nên hiển nhiên tương thích với hệ điều hành Windowns cũng do hãng này phát hành.
Xét thấy những ưu điểm trên rất thích hợp để thực hiện xây dựng phần mềm này.
4.1.2. Phần mềm soạn thảo lập trình Microsoft Visual Studio 2015:
Để lập trình C Sharp thì Microsoft Visual Studio 2015 là công cụ tốt nhất hiện nay.
Microsoft Visual Studio là một môi trường phát triển tích hợp (IDE) từ Microsoft. Nó được sử dụng để phát triển chương trình máy tính cho Microsoft Windows, cũng như các trang web, các ứng dụng web và các dịch vụ web. Visual Studio sử dụng nền tảng phát triển phần mềm của Microsoft như Windows API, Windows Forms, Windows Presentation Foundation, Windows Store. Nó có thể sản xuất cả hai ngôn ngữ máy và mã số quản lý.
Visual Studio bao gồm một trình soạn thảo mã hỗ trợ IntelliSense cũng như cải tiến mã nguồn. Trình gỡ lỗi tích hợp hoạt động cả về trình gỡ lỗi mức độ mã nguồn và gỡ lỗi mức độ máy. Công cụ tích hợp khác bao gồm một mẫu thiết kế các hình thức xây dựng giao diện ứng dụng, thiết kế web, thiết kế lớp và thiết kế giản đồ cơ sở dữ liệu. Nó chấp nhận các plug-in nâng cao các chức năng ở hầu hết các cấp bao gồm thêm hỗ trợ cho các hệ thống quản lý phiên bản (như Subversion) và bổ sung thêm bộ công cụ mới như biên tập và thiết kế trực quan cho các miền ngôn ngữ cụ thể hoặc bộ công cụ dành cho các khía cạnh khác trong quy trình phát triển phần mềm.
Visual Studio hỗ trợ nhiều ngôn ngữ lập trình khác nhau và cho phép trình biên tập mã và gỡ lỗi để hỗ trợ (mức độ khác nhau) hầu như mọi ngôn ngữ lập trình. Các ngôn ngữ tích hợp gồm có C, C++ và C++/CLI (thông qua Visual C++), VB.NET (thông qua Visual Basic.NET), C# (thông qua Visual C#) và F# (như của Visual Studio 2010). Hỗ trợ cho các ngôn ngữ khác nhưJ++/J#, Python và Ruby thông qua dịch vụ cài đặt riêng rẽ. Nó cũng hỗ trợ XML/XSLT, HTML/XHTML, JavaScript và CSS.
4.1.3 Hệ thống thư viện DevExpress 15.2.07:
DevExpress là 1 hệ thống thư viện lập trình cực hữu ích cho việc thiết kế, lập trình form 1 cách đơn giản, chuyên nghiệp.
DevExpress bao gồm rất nhiều Control (gần như có thể thay thế hoàn toàn các Control của .NET) và còn nhiều Control ghép, mở rộng mà .NET không có. Nó chứa từ các điều khiển cơ bản như TextEdit, Button, MessageBox, PictureBox, GridView... đến các điều khiển mở rộng, nâng cao như SearchLookupEdit, RibbonBar, SpreadSheet Control... Các điều khiển tích hợp nhiều chức năng, tùy chỉnh giúp người lập trình bớt phải code.
4.1.4. Lý thuyết thiết kế giao diện người dùng:
Một nguyên tắc quan trọng khi xây dựng một hệ thống phần mềm, đó là: người sử dụng không quan tâm đến cấu trúc bên trong của hệ thống, đơn giản hay phức tạp; cái mà họ có thể đánh giá được và cảm nhận được chính là giao diện tương tác giữa hệ thống và người sử dụng. Nếu người sử dụng cảm thấy giao diện không thích hợp, khó sử dụng thì rất có thể họ sẽ không sử dụng cả hệ thống; cho dù hệ thống đó có đáp ứng tất cả các chức năng nghiệp vụ mà họ muốn. Và như vậy, dự án sẽ thất bại.
Do đó việc nghiên cứu về thiết kế giao diện cũng là một phần rất quan trọng trong đề tài xây dựng phần mềm thi trắc nghiệm trực tuyến.
1. Đăng nhập:
![]() |
Giao diện đăng nhập phần mềm thi trắc nghiệm trường đại học thông tin liên lạc |
![]() |
Giao diện thông tin kỳ thi |
![]() |
Giao diện kết quả kỳ thì phần mềm thi trắc nghiệm |
![]() |
Giao diện thi trắc nghiệm |
![]() |
Giao diện quản lý kỳ thi và đề thi
Liên hệ ngay để được hỗ trợ:
Điện thoại: 0976 148 368 – 0974.248.842
Email: citechnhatrang@gmail.com
Đăng ký trực tiếp tại:
Trung Tâm Đào Tạo CNTT CITECH
|
0 nhận xét:
Post a Comment