1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

34 1,7K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 34
Dung lượng 824,33 KB

Nội dung

- 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ã đ

Trang 1

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:

Trang 2

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Á

Trang 4

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 trongcá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ìnhthứ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ântí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ỏinhiề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

Trang 5

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

Trang 6

- Đề 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:

Trang 7

-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ườidù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ụnglạ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

Trang 8

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:

Trang 9

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)

Trang 10

- 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)

Trang 11

- 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 đề

Trang 12

* 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

=> 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:

Trang 13

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

Trang 15

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:

Trang 16

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áoThô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

Trang 17

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:

Trang 18

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:

Trang 19

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í sinhTrả 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

Trang 20

2.3 Biểu đồ tuần tự

Chức năng quản lý người dùng:

Trang 21

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:

Trang 22

Quản lý đề thi:

Trang 24

Chấm thi:

2.3.3.Các chức năng liên quan đến thí sinh

Thi trắc nghiệm

Trang 26

-maso -taikhoan -matkhau -ten -quyendangnhap +dangky() +dangnhap() +dangxuat() +suahoso() +nhapten() +nhapquyendangnhap()

-noidung -sodapan -dokho -msmonhoc -msnguoitao

+nhapnoidung()

+nhapdokho() +nhapmonhoc() +nhapphanmonhoc() +them(dapan) +xoa(dapan) +sua(dapan) +nhapnguoitao() +nhapsodapan() +nhapdapan()

giaovien

+chamdiem(bailam) +them(monhoc) +them(dethi) +them(cauhoi) +sua(monhoc) +sua(dethi) +sua(cauhoi) +xoa(dethi) +xoa(cauhoi) +xoa(monhoc)

admin +duytri(CSDL)

+nhapmonhoc()

+nhapthoigian() +nhapdokho() +nhapnguoitao() +nhapsocauhoi() +them(cauhoi) +sua(cauhoi) +xoa(cauhoi) +nhapdanhsachcauhoi()

phanmonhoc

-ten

-msphanmonhoc

+nhapten()

Trang 27

Tên Kiểu truy

Tên thật của người sử dụng

quyendangnhap Private byte Quyền đăng nhập (Thí Sinh, Giáo

Viên, Admin) Phương

viên, admin, guest) xemketqua(bailam) Public int Xem kết quả bài thi

Trang 28

CLASS thisinh : nguoidung

Thuộc tính

Phương thức lambaithi(dethi) Public BaiLam Thực hiện thi trên máy

CLASS GiaoVien: nguoidung QuanLyCauHoi, QuanLyDeThi, QuanLyMonHoc

Tên Kiểu truy cập Ý Nghĩa Thuộc tính

Phương thức

chamdiem(bailam) Publiic int Chấm điểm bài làm của thí sinh them(cauhoi) Public void Thêm câu hỏi vào ngân hàng câu hỏi them(monhoc) Public void Thêm môn học vào ngân hàng môn học them(dethi) Public void Thêm đề thi vào ngân hàng đề thi sua(cauhoi) Public void Sửa câu hỏi trong ngân hàng câu hỏi sua(monhoc) Public void Sửa môn học trong ngân hàng môn học sua(dethi) Public void Sửa đề thi trong ngân hàng đề thi xoa(cauhoi) Public void Xóa câu hỏi trong ngân hàng câu hỏi xoa(monhoc) Public void Xóa môn học trong ngân hàng môn học xoa(dethi) Public void Xóa đề thi trong ngân hàng đề thi

CLASS Admin : NguoiSuDung, QuanLyCauHoi, QuanLyDeThi, QuanLyMonHoc

Trang 29

Tên Kiểu truy cập Ý Nghĩa Thuộc tính

Phương

thức

xemThanhVien() Public void Thống kê thành viên đang truy

cập xoaThanhVien(taikhoan) Public void Xóa thành viên khỏi CSDL,các dữ

liệu của người này sẽ do Admin quản lí

xemCSDL() Public void Đưa ra các thống kê về website

như số lượng câu hỏi,môn học,đề thi…

nhapthisinh Public ThiSinh Trả về đối tượng thí sinh làm bài thi này nhapdethi Public DeThi Trả về đối tượng đề thi của bài làm này

CLASS PhanMonHoc

Trang 30

Tên Kiểu truy cập Ý Nghĩa Thuộc tính maso Private int Mã số phần môn học

ten Public string Tên của phần môn học Phương thức Nhapten() Public string Lấy mô tả phần môn học

CLASS MonHoc

Thuộc tính maso Private int Mã số môn học

ten Private string Tên môn học Phương

thức

nhapten() Public string Trả về tên môn học them(phanmonhoc) Public void Thêm một phần môn học vào môn

học xoa(phanmonhoc) Public void Xóa một phần môn học ra khỏi môn

học sua(phanmonhoc) Public void Chỉnh sửa một phần môn học trong

môn học nhaplistphanmonhoc() Public

Trang 31

thutu Private byte Thứ tự đáp án trong câu hỏi Noidung Private string Nội dung đáp án

dungsai Private bool Đúng / Sai giaithich Private string Giải thích cho đáp án Phương thức

CLASS CauHoi

Thuộc tính maso Private int Mã số câu hỏi

noidung Private string Nội dung câu hỏi sodapan Private byte Số đáp án của câu hỏi dokho Private byte Độ khó (1->6)

msmonhoc Private int Mã số môn học của câu hỏi msphanmonhoc Private int Mã số phần môn học của câu hỏi msnguoitao Private int Mã số người tạo ra câu hỏi Phương thức nhapnoidung Public string Lấy nội dung câu hỏi

nhapsodapan Public byte Lấy số đáp án nhapdanhsachdapan Public DapAn[] Lấy danh sách đối tượng đáp án nhapdokho Public byte Lấy độ khó của câu hỏi

nhapmonhoc Public MonHoc Trả về đối tượng môn học của câu

hỏi nhapphanmonhoc Public PhanMonHoc Trả về đối tượng phần môn học nhapnguoitao Public GiaoVien Trả về đối tượng giáo viên tạo đề them(dapan) Public void Thêm đáp án vào câu hỏi

sua(dapan) Public void Sửa đáp án khỏi câu hỏi xoa(dapan) Public void Xóa đáp án trong câu hỏi

Trang 32

thoigianthi Private int Thời gian thi (phút) msnguoitao Private int MS người ra đề Phương thức Nhapmonhoc Public MonHoc Trả về đối tượng môn học

nhapsocauhoi Public int Trả về số câu hỏi của đề thi nhapdanhsachcauhoi Public CauHoi[] Trả về danh sách đối tượng câu hỏi của đề nhapdokho Public byte Tính toán trả về dộ khó TB của đề thi nhapthoigian Public int Lấy thời gian thi

nhapnguoitao Public int Lấy mã số người tạo them(cauhoi) Public void Thêm câu hỏi vào đề thi xoa(cauhoi) Public void Xóa câu hỏi khỏi đề thi sua (cauhoi) Public void Sửa câu hỏi trong đề thi

Ngày đăng: 11/08/2015, 18:52

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w