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

Xây dựng phần mềm đảo để, chấm thi trắc nghiệm

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 (867.41 KB, 34 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
Viện Công nghệ Thông tin và Truyền thông
BÀI TẬP LỚN
Môn học: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
ĐỀ TÀI: Xây dựng chương trình Windows-based hỗ trợ tạo đề,đảo đề,thi và
chấm thi trắc nghiệm
Mã đề tài: De07A
Số hiệu nhóm:
Giảng viên hướng dẫn: TS Cao Tuấn Dũng
Sinh viên thực hiện:
Họ tên SHSV Lớp
Nguyễn Bảo Chung 20090333 CNTT1-K54
Trần Quang Chiến 2009 CNTT1-K54
Đỗ Khắc Trụ 2009 CNTT1-K54
Sơn 2009 CNTT1-K54
MỤC LỤC
Lời nói đầu
Phần 1: TỔNG QUAN VỀ CÁC VẤN ĐỀ LIÊN QUAN
1.1.Đề tài
1.2.Giới thiệu về các kiến thức nền tảng và mô hình MVC
1.2.1.Kiến thức nền tảng
1.2.1.1.Xây dựng cơ sở dữ liệu
1.2.1.2.Thiết kế chương trình
1.2.2.Giới thiệu về mô hình mvc
Phần 2:PHÂN TÍCH THIẾT KẾ MỨC KIẾN TRÚC
2.1.Thiết kế cơ sở dữ liệu
2.2. Biểu đồ Use Case
2.2.1 Các tác nhân của hệ thống
2.2.2.Các Use case với tác nhân Admin
2.2.2.Các Use case với tác nhân giáo viên
2.2.2.Các Use case với tác nhân thí sinh


2.3.Biểu đồ tuần tự
2.3.1.Các chức năng liên quan đến Admin
2.3.2.Các chức năng liên quan đến giáo viên
2.3.3.Các chức năng liên quan đến thí sinh
2.4.Biểu đồ lớp
Phần 3:THIẾT KẾ CHI TIẾT
Phần 4:KẾT LUẬN VÀ ĐÁNH GIÁ
4.1. Đánh giá chương trình
4.2. Kế hoạch thực hiện công việc của nhóm
Tổng hợp hình vẽ trong báo cáo
Tài liệu tham khảo
LỜI NÓI ĐẦU
Như chúng ta đã biết, thi trắc nghiệm hiện nay là một hình thức thi phổ biến trong
các kỳ thi. Việc có một công cụ để giúp học sinh làm quen và thành thạo với hình
thức thi này, cũng như để cho giáo viên thuận tiện trong việc soạn đề và chấm thi
là hết sức cần thiết.
Nhận thấy điều đó, cộng với những kiến thức học được từ môn “Lập trình hướng
đối tượng”, chúng em đã cùng nhau thực hiện đề tài “Xây dựng chương trình
Windows-based hỗ trợ tạo đề, đảo đề, thi và chấm thi trắc nghiệm”. Trong quá
trình thực hiện đề tài, chúng em đã có cơ hội thực hành những kiến thức về phân
tích, thiết kế đối tượng, về cách xây dựng một chương trình hướng đối tượng có
tương tác với cơ sở dữ liệu theo mô hình MVC. Bên cạnh đó, chúng em cũng thu
được những kĩ năng quý báu trong làm việc nhóm.
Chúng em xin chân thành cảm ơn sự hướng dẫn tận tình của thầy Cao Tuấn Dũng,
cả về chuyên môn cũng như định hướng trong quá trình chúng em thực hiện đề
tài.Vì kiến thức còn hạn hẹp, nên chương trình của chúng em không thể tránh khỏi
nhiều thiếu sót. Rất mong được sự góp ý của thầy giáo cũng như các bạn trong lớp
để chúng em có thể cải tiến được chất lượng của chương trình.
Phần 1: TỔNG QUAN VỀ CÁC VẤN ĐỀ LIÊN QUAN
1.1.Đề tài

Xây dựng một công cụ Windows-based ( sử dụng Java/C#.NET… với một hệ
quản trị CSDL nào đó) với các tính năng sau:
- Cho phép quản lý các câu hỏi thi trắc nghiệm theo từng phần của một
môn học (thêm mới, sửa xóa, tìm kiếm).
- Cho phép tiến hành tạo đề thi cho một môn học nào đó, trong đó, cho
phép chọn số lượng câu trắc nghiệm (cho phép chọn mức độ khó dễ, hoặc
số điểm các câu) cho từng phần trong môn học đó. Hệ thống sẽ tự động
lấy ngẫu nhiên trong ngân hàng câu hỏi.
o Lưu đề thi trong CSDL để khi cần cho sinh viên thi
o Cho phép xuất ra file .doc theo khuôn dạng một đề thi
- Cung cấp chức năng thi cho sinh viên để sinh viên có thể tham gia thi
trực tiếp (sinh các câu hỏi thi một cách ngẫu nhiên) sau đó đưa ra
kết quả (theo từng phần và đưa ra kết quả cuối cùng) thi khi hết giờ thi
hoặc thí sinh chọn kết thúc thi. Khi sinh viên tham gia thi, cần đăng nhập
và chọn một đề thi đã được tạo ra trong phần trên.
- Hỗ trợ việc chấm thi trắc nghiệm một đề thi nào đó, giáo viên chỉ cần
chọn môn thi và nhập kết quả sinh viên đã chọn, sau đó hệ thống hiển thị
kết quả tương ứng (theo từng phần và đưa ra kết quả cuối cùng)
1.2.Giới thiệu về các kiến thức nền tảng và công nghệ MVC framework
1.2.1.Kiến thức nền tảng
1.2.1.1.Xây dựng cơ sở dữ liệu
- Cơ sở dữ liệu của bài toán được thiết kế theo mô hình cơ sở dữ liệu quan hệ.
- Yêu cầu quan trọng nhất trong một bài toán thực tế là CSDL phải được thiết kế
một cách tối ưu nhất.Ở đây chúng ta sẽ sử dụng các phương pháp chuẩn hóa,bảo
toàn tập phụ thuộc hàm,tách không mất mát thông tin… để xây dựng CSDL.
- Hệ quản trị cơ sở dữ liệu được sử dụng là MySQL.
1.2.1.2.Thiết kế chương trình
- Đề tài được thực hiện với cách tiếp cận là hướng đối tượng
- Việc thiết kế chương trình được dựa theo các lý thuyết cơ bản về thiết kế hướng
đối tượng và ngôn ngữ mô hình hóa UML.

- Quá trình thiết kế chương trình thực hiện theo các giai đoạn : Thiết kế biểu đồ
Use Case, thiết kế biểu đồ tuần tự, thiết kế biểu đồ lớp.
- Phần mềm thiết kế được sử dụng là Visio 2007.
1.2.2.Giới thiệu về mô hình MVC
Phương pháp thiết kế MVC bắt nguồn từ việc phát triển giao diện người dùng
trong ngôn ngữ lập trình Smalltalk, đây là một trong những phương pháp thiết kế
thành công nhất trong các phương pháp thiết kế hướng đối tượng. Hiện nay, MVC
được dùng rộng rãi trong nhiều hệ thống phần mềm hướng đối tượng, bất kể được
viết bằng ngôn ngữ hướng đối tượng nào.
Các thành phần của MVC:
-Model (tạm dịch là phần “Mô hình” ): Là một đối tượng hoặc tập hợp các đối
tượng biểu diễn cho phần dữ liệu của chương trình, ví dụ các dữ liệu được lưu
trong cơ sở dữ liệu (CSDL) hay từ các hệ thống ứng dụng khác (như mail )
-View (tạm dịch là phần “Hiển thị”): Là phần giao diện với người dùng, bao gồm
việc hiện dữ liệu ra màn hình, cung cấp các menu, nút bấm, hộp đối thoại, chọn
lựa , để người dùng có thể thêm, xóa, sửa, tìm kiếm và làm các thao tác khác đối
với dữ liệu trong hệ thống.
-Controller (tạm dịch là phần “Điều khiển”): Là phần điều khiển toàn bộ logic về
hoạt động của giao diện, tương tác với thao tác của người dùng (từ chuột, bàn phím
và các thiết bị ngoại vi khác) và cập nhật, thao tác trên dữ liệu theo đầu vào nhận
được và điều khiển việc chọn phần “Hiển thị” thích hợp để truyền dữ liệu tới người
dùng.
Ưu điểm của chương trình dựa theo mô hình MVC:
-Tách biệt rõ ràng nhiệm vụ của từng phần: model-view-controller => giúp cho
việc phân công công việc trong nhóm được dễ dàng.
- Mang lại hiệu quả cao trong việc tổ chức và tái sử dụng lại code. Chẳng hạn như
với kiến trúc tổ chức của model thì kết quả trả về là trung lập => có thể tái sử dụng
lại cho các tầng View ở ứng dụng khác ).
- Tính dễ thay đổi tầng View hay tầng Model nếu có nhu cầu vì mỗi tầng nay hoàn
toàn tách biệt và không có mối ảnh hưởng ràng buộc với nhau.

- Hỗ trợ kết hợp rất tốt giữa người lập trình và người thiết kế giao diện.
Phần 2:PHÂN TÍCH THIẾT KẾ MỨC KIẾN TRÚC
2.1.Thiết kế cơ sở dữ liệu
Sơ đồ thực thể liên kết:
Chuyển sang sơ đồ quan hệ được các bảng:
* Các mã số (MS ) của các bảng kiểu int, là khóa chính, được tạo ra tự động
* Bảng cauhoi:
- noidung: nội dung câu hỏi
- sodapan: số đáp án của câu hỏi
- dokho: độ khó câu hỏi (giá trị nguyên: 1 4)
- msmonhoc: mã số môn học (khóa ngoài đến bảng monhoc)
- mphanmonhoc: mã số phần môn học (khóa ngoài đến bảng phanmonhoc)
- msnguoitao: MS người tạo câu hỏi (khóa ngoài đến bảng nguoidung)
* Bảng dapan:
- mscauhoi: mã số câu hỏi chứa đáp án (khóa ngoài đến bảng đáp án)
- thutudapan: thứ tự đáp án (1, 2, )
- noidung: nội dung đáp án
- dungsai: đúng hoặc sai (TRUE/FALSE)
- giaithich: giải thích cho mỗi đáp án (tại sao đúng / sai)
* Bảng monhoc
- tenmonhoc: tên môn học
* Bảng phanmonhoc:
- ten: Tên của phần môn học (chương, phần )
* Bảng nguoidung:
- taikhoan: nick name để đăng nhập
- matkhau: mật khẩu đăng nhập (dộ dài >=6, đã mã hóa MD5)
- ten: tên người dùng
- quyendangnhap: quyền đăng nhập (Admin / GV /TS)
* Bảng dethi:
- made: mã đề do người ra đề đặt (phân biệt với msdethi)

- msmonhoc: mã số môn học có kiến thức thuộc đề thi (khóa
ngoài đền bảng monhoc)
- socauhoi: số câu hỏi của đề thi
- diemtoida: điểm tối đa
-> Điểm 1 câu của đề = DiemToiDa / SoCauHoi
- thoigian: thời gian làm đề thi (theo phút)
- msnguoitao: mã số người ra đề (khóa ngoài đến bảng nguoidung)
* Bảng đề thi gồm câu hỏi:
- msdethi: mã số đề thi (khóa ngoài đến bảng dethi)
- thutu: thứ tự câu hỏi (1,2 ), đảm bảo biết đúng thứ tự câu hỏi phòng
khi các hàng câu hỏi của đề thi bị đảo lộn)
- thutudapandung: thứ tự xếp đáp án (vd: 2*341, dấu * trước thứ tự của đáp
án đúng)
* Bảng bailam:
- msthisinh: MS thí sinh làm bài thi (khóa ngoài đến bảng NguoiSuDung)
- msdethi: MS đề thi của bài làm (khóa ngoài đến bảng DeThi)
- diem: điểm thi (do GV chấm hoặc chấm tự động)
* Bảng lambaithi:
- msbailam: Mã số bài làm (khóa ngoài đến bảng BaiLam)
- thutu: Thứ tự câu hỏi trong bài làm (1,2, )
- thutudapanchon: Thứ tự đáp án chọn (1,2, )
Thuật toán đảo đề
* Lựa chọn 1 số lượng câu hỏi ngẫu nhiên
- Với mỗi hàng câu hỏi trong ngân hàng, gán thêm 1 trường newid ngẫu nhiên
- Sắp xếp lại các hàng câu hỏi theo trường newid
- Chọn ra một số câu hỏi xếp hàng đầu sau khi sắp xếp
=> Viết dưới dạng SQL
SELECT top(@SoCauHoi) [MSCauHoi] , [SoDapAn]
FROM [OOP8B].[DBO].[CauHoi]
WHERE MSMonHoc = @MSMonHoc

order by newid()
* Làm tương tự với mỗi đáp án thuộc từng câu hỏi.
select top(@@SoDapAn)
[ThuTuDapAn], [DungSai]
from [OOP8B].[DBO].[DapAn]
where[MSCauHoi] = @@MSCauHoi
order by newid()
=> Lựa chọn được các câu hỏi ngẫu nhiên, với thứ tự đáp án ngẫu nhiên
2.2. Biểu đồ Use Case
Các chức năng chính của hệ thống:
2.2.1 Các tác nhân của hệ thống
- Admin: quản lí các thành viên và các hoạt động chung trong hệ thống.
- Giáo viên : Là các giáo viên có các chức năng : Tạo và quản lý câu hỏi, tạo đề
thi, chấm thi
- Thí sinh : Là sinh viên hay là thí sinh
Sơ đồ tổng quan về các use case trong hệ thống
Use case quản lý người dùng:
Mô tả Người dùng thực hiện đăng ký, đăng nhập, sửa thông tin cá
nhân.
Đôi tượng Thí sinh, giáo viên.
Thông tin đưa vào Tài khoản, mật khẩu, họ tên, quyền đăng nhập(giáo viên hay
thí sinh )
Hệ thống xử lý Đăng ký : kiểm tra thông tin đăng nhập, nếu đúng lưu vào
CSDL, nếu sai yêu cầu nhập lại.
Đăng nhập: kiểm tra thông tin đăng nhập, nếu đúng chuyển
sang trạng thái đã đăng nhập, nếu sai y/c nhập lại.
Sửa hồ sơ: ghi lại sự thay đổi của người dùng và lưu vào
CSDL
Thông tin trả về

Use case quản lý kết quả thi:
Phân tích:
Mô tả Thí sinh quản lý kết quả của mình hoặc giáo viên quản lý
kết quả của thí sinh
Đối tượng Thí sinh, giáo viên
Thông tin vào Môn thi, mã đề, mã số thí sinh, thời gian
Hệ thống xử lý Tìm bài thi rồi đưa ra kết quả cho người dùng, nếu không
thấy hoặc có lỗi thì đưa ra thông báo
Thông tin trả về Điểm thi, đáp án cho từng câu hỏi.
2.2.2.Các Use case với tác nhân Admin
2.2.3.Các Use case với tác nhân giáo viên
use case quản lý câu hỏi:
Mô tả Giáo viên quản lý các câu hỏi trong ngân hàng câu hỏi
Đối tượng Giáo viên
Thông tin vào Các yêu cầu của người dùng
Hệ thống xử lý Tìm kiếm, cập nhật CSDL, đưa ra câu hỏi theo yêu cầu của
người dùng.
Thông tin trả về Đưa ra câu hỏi theo yêu cầu. Nếu có lỗi hoặc không tìm thấy,
đưa ra thông báo.
Use case quản lý đề thi:
Mô tả Giáo viên quản lý đề thi trong ngân hàng đề thi.
Đối tượng Giáo viên
Thông tin vào Yêu cầu của giáo viên
Hệ thống xử lý Tạo đề, tìm, sửa, xóa đề, lưu vào CSDL, xuất ra file .doc
Trả về Đưa ra đề thi được tạo, thông báo thành công nếu thực hiện
xong yêu cầu hoặc thông báo lỗi nếu không tìn thấy hoặc có
lỗi.
Use case chấm thi:
Mô tả Giáo viên lấy bài làm của sinh viên để hệ thống chấm.
Đối tượng Giáo viên

Thông tin vào Môn thi, mã đề, mã thí sinh, thời gian thi
Hệ thống xử lý So sánh đáp án với bài làm của thí sinh để đưa ra kết quả thi
cho thí sinh
Trả về Điểm thi của thí sinh. Số câu sai đúng và vị trí của chúng.
2.2.4.Các Use case với tác nhân sinh viên
Use case thi trắc nghiệm:
Mô tả Thí sinh làm bài trực tiếp
Đối tượng Thí sinh
Thông tin vào Mã số thí sinh, môn thi, thời gian,
Hệ thống xử lý Tạo đề thi và đưa ra kết quả thi khi hết giờ.
Trả về Kết quả thi, số lượng câu đúng sai, đáp án chi tiết từng câu hỏi
2.3 Biểu đồ tuần tự
Chức năng quản lý người dùng:
Các chức năng liên quan đến admin:
2.3.2.Các chức năng liên quan đến giáo viên
Quản lý câu hỏi:
Quản lý đề thi:
Chấm thi:
2.3.3.Các chức năng liên quan đến thí sinh
Thi trắc nghiệm

×