Top Banner
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 20090333 CNTT1-K54
43

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

Jul 29, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Xây dựng phần mềm đảo để, chấm thi trắc nghiệm

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ớpNguyễn Bảo Chung 20090333 CNTT1-K54Trần Quang Chiến 2009 CNTT1-K54Đỗ Khắc Trụ 2009 CNTT1-K54Sơn 2009 CNTT1-K54

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

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ớpPhần 3:THIẾT KẾ CHI TIẾT

Phần 4:KẾT LUẬN VÀ ĐÁNH GIÁ

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

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

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

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.

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

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

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

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

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

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

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

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:

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

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:

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

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

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

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

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

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

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

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

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

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:

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

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ênThông tin vào Môn thi, mã đề, mã số thí sinh, thời gianHệ 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

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

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ênThông tin vào Các yêu cầu của người dùngHệ 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:

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

Mô tả Giáo viên quản lý đề thi trong ngân hàng đề thi.Đối tượng Giáo viênThông tin vào Yêu cầu của giáo viênHệ 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:

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

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ênThông tin vào Môn thi, mã đề, mã thí sinh, thời gian thiHệ 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í sinhThô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

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

2.3 Biểu đồ tuần tự

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

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

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:

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

Quản lý đề thi:

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

Chấm thi:

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

Thi trắc nghiệm

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

2.4 Biểu đồ lớp

bailam-msbailam-msthisinh-msdethi-diem

Phần 3:THIẾT KẾ CHI TIẾT

dapan-maso-thutu-noidung-dungsai-giaithich

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

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

Thisinh

+lambaithi(dethi)

admin

+duytri(CSDL)

monhoc-ten+nhapten()+them(phanmonhoc)+sua(phanmonhoc)+xoa(phanmonhoc)+nhaplistphanmonhoc()

dethi-maso-msmonhoc-socauhoi-msnguoitao-thoigianthi+nhapmonhoc()+nhapthoigian()+nhapdokho()+nhapnguoitao()+nhapsocauhoi()+them(cauhoi)+sua(cauhoi)+xoa(cauhoi)+nhapdanhsachcauhoi()

phanmonhoc-ten-msphanmonhoc+nhapten()

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

CLASS nguoidung

Tên Kiểu truy cập

Ý Nghĩa

Thuộc tính maso Private int Mã số người sử dụng

taikhoan Private string

ID người dùng để đăng nhập

matkhau Private string

Mật khẩu của người sử dụng

ten Private string

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 thức

dangky Public bool Đăng ký thành viên

dangnhap Public bool Đăng nhập

dangxuat Public bool Đăng xuất

suahoso Public bool Cập nhật hồ sơ

nhapten Public string Lấy tên người dùng

nhapquyendangnhap Public byte Trả về quyền đăng nhập (thí sinh, giáo viên, admin, guest)

xemketqua(bailam) Public int Xem kết quả bài thi

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

CLASS thisinh : nguoidung

Tên Kiểu truy cập Ý Nghĩa

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

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

CLASS Admin : NguoiSuDung, QuanLyCauHoi, QuanLyDeThi, QuanLyMonHoc

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…

CLASS BaiLam

Tên Kiểu truy cập Ý Nghĩa

Thuộc tính msbailam Private int MS bài làm

msthisinh Private int MS Thí sinh làm bài thi

msdethi Private int MS đề thi thuộc bài làm

diem Private int Điểm được chấm

Phương thức nhapdiem Public int Trả về điểm (-1 : chưa chấm)

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

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

CLASS PhanMonHoc

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

Tên Kiểu truy cập Ý Nghĩa

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 List<string>

Lấy danh sánh phần môn học

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

CLASS DapAn

Tên Kiểu truy cập Ý Nghĩa

Thuộc tính maso Private int ID đáp án

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

Tên Kiểu truy cập Ý Nghĩa

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

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

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

CLASS DeThi

Tên Kiểu truy cập Ý Nghĩa

Thuộc tính maso Private int Mã số đề thi

Msmonhoc Private int MS môn học của đề thi

socauhoi Private int Số câu hỏi của đề thi

diemtoida Private int Điểm tối đa

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

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

INTERFACE QuanLyMonHoc

Tên Kiểu truy cập Ý Nghĩa

Thuộc tính

Phương thức

them(monhoc) Public static void

Thêm môn học

sua(monhoc) Public static void

Sửa thông tin môn học

xoa (monhoc) Public static void

Xóa môn học

INTERFACE QuanLyCauHoi

Tên Kiểu truy cập Ý Nghĩa

Thuộc tính

Phương thức

them(cauhoi) Public static void Thêm câu hỏi

sua (cauhoi) Public static void Sửa thông tin câu hỏi

xoa (cauhoi) Public static void Xóa câu hỏi

INTERFACE QuanLyDeThi

Tên Kiểu truy cập Ý Nghĩa

Thuộc tính

Phương thức

them(dethi) Public static void Thêm đề thi

sua(dethi) Public static void Sửa thông tin đề thi

xoa(dethi) Public static void Xóa đề thi

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

Phần 4:KẾT LUẬN VÀ ĐÁNH GIÁ

I, Đánh giá chương trình

Sau 2 tháng tìm hiểu và nghiên cứu, chúng em đã hoàn thành đồ án môn học Lập trình hướng đối tượng. Trong quá trình nghiên cứu, chúng em đã học được rất nhiều về phương thức thiết kế hướng đối tượng, công nghệ MVC.

1. Ưu điểm

2. Nhược điểm

II Phân chia công việc nhóm

Họ tên Công việc Ghi chúTrần Quang Chiến(nhóm trưởng)Nguyễn Bảo ChungTrần Nam SơnĐỗ Khắc Trụ