Một trong những bộ phận ứng dụngcông nghệ thông tin chính là thay đổi và giúp đỡ việc sinh hoạt hàng ngàycủa mọi người trong cuộc sống.Vì vậy nhóm 6 đã lựa chọn đề tài “ Chươngtrình quản
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP
ĐỀ CƯƠNG HẾT MÔN HỌC
NGÀNH: MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG DỮ LIỆU
Xây dựng chương trình quản lý đề thi trắc nghiệm chomột trường Đại Học
Sinh viên thực hiện:
- Hoàng Tuấn Anh - 21103200010
- Đào Quang Anh - - Nguyễn Việt Anh Phạm Đình Hưởng -
Lớp: DHMT15A1HN Giáo viên hướng dẫn:
Nguyễn Thùy Dung
Hà Nội, ngày … tháng … năm 2023
Trang 2Lời nói đầu
Ngày nay với sự phát triển về mọi mặt đời sống, văn hóa, giáo dục cho đếncông nghệ và đặc biệt là lĩnh vực công nghệ thông tin đang có bước phát triểnchóng mặt Việc áp dụng công nghệ thông tin vào việc học tập và làm việc cũngkhông còn quá mới mẻ Có rất nhiều các hãng công nghệ lớn tham gia vào việcsản xuất các ứng dụng công nghệ nhằm giúp đỡ cho công việc, cũng như họctập.
Việc áp dụng công nghệ vào học tập mang lại nhiều tiện tích và cơ hội nângcao trải nghiệm giáo dục Công nghệ tạo điều kiện cho môi trường học tậptương tác hơn Học viên có thể tham gia vào các hoạt động trực tuyến như diễnđàn, thảo luận, và bình luận trên các nền tảng giáo dục Điều này tăng cường sựtương tác giữa học viên và giảng viên cũng như giữa các học viên.
Công nghệ cho phép học viên tiếp cận tài liệu học mọi lúc, mọi nơi thông quacác nền tảng trực tuyến Điều này giúp họ có thể tự quản lý thời gian học tập vàtiếp cận nguồn thông tin phong phú từ nhiều nguồn khác nhau.
Ứng dụng và nền tảng học trực tuyến giúp học viên tự quản lý quá trình họctập của mình Họ có thể chọn lựa tài liệu, bài giảng, và phương pháp học phùhợp với phong cách học cá nhân.
Công nghệ giúp tự động hóa quá trình đánh giá hiệu suất học viên thông quacác bài kiểm tra trực tuyến, bài tập tự động chấm điểm và phản hồi tức thì Điềunày giúp học viên nhanh chóng đo lường tiến độ và hiệu suất của mình.
Việc tích hợp công nghệ vào học tập mang lại nhiều ưu điểm, tạo ra môi trườnghọc tập đa dạng, linh hoạt và thú vị cho học viên.
Trang 3II Cơ sở lý thuyết 6
1 Giới thiệu về ngôn ngữ lập trình được sử dụng 6
2 Giới thiệu về chương trình quản lý đề thi 11
Phần 2: Phân tích thiết kế chương trình 14
II Kỹ thuật chuyển sang câu hỏi tiếp theo 27
2.1 Kỹ thuật tính thời gian trắc nghiệm 29
2.2 Kỹ thuật tính điểm trắc nghiệm 32
CHƯƠNG 4: THIẾT KẾ GIAO DIỆN 35
Giao diện màn hình chính: 35
Giao diện đăng nhập Admin 35
Giao diện đăng nhập User 36
Giao diện chọn môn thi 36
Trang 4 Giao diện làm bài: 37
Giao diện hoàn thành bài thi: 38
Giao diện quản lý đê thi: 38
Giao diện thêm đề thi: 39
Giao diện quản lý người dùng: 39
Giao diện đăng ký 40
Giao diện xác nhận tài khoản 41
Giao diện cấp lại mật khẩu: 41
Giao diện thông tin cá nhân 42
Giao diện lịch sử làm bài: 43
CHƯƠNG 5: KIỂM THỬ BẢO TRÌ 44
Trang 5Phần 1: Tổng quan về đề tài và cơ sở lý thuyết
I.Tổng quan về đề tài
1 Lý do chọn đề tài.
Những năm gần đây, hình thức thi trắc nghiệm rất phổ biến và ngàycàng được ưa chuộng hơn Nó giúp kiểm tra được kiến thức tổng quát thuộcnhiều khía cạnh, cũng như thời gian chấm thi nhanh hơn Bởi vậy nhu cầucủa mọi người về ôn luyện trắc nghiệm cũng tăng cao, ngày càng có nhiềungười tìm đến những phần mền thi trắc nghiệm Đó chính là lý do chúng emchọn đề tài này.
Với sự phát triển nhanh chóng của khoa học công nghệ và đặc biệt làngành công nghệ thông tin, làm từng bước thay đổi cuộc sống của con ngườibởi các ứng dụng sản phẩm của công nghệ Đi cùng với sự phát triển củangành công nghệ thông tin là sự ra đời ngày càng nhiều thiết bị điện thoại diđộng Nhu cầu của con người về việc sử dụng và giải trí trên các thiết bị diđộng cũng ngày càng cao và đa dạng Một trong những bộ phận ứng dụngcông nghệ thông tin chính là thay đổi và giúp đỡ việc sinh hoạt hàng ngàycủa mọi người trong cuộc sống.Vì vậy nhóm 6 đã lựa chọn đề tài “ Chươngtrình quản lý đề thi và luyện thi trắc nghiệm ” với mong muốn giúp chongười dùng có thể quản lý cũng như luyện thi các đề trắc nghiệm một cácnhanh chóng, mọi lúc mọi nơi vừa tiết kiệm thời gian cũng như chi phí thựchiện.
2 Các chức năng cần xây dựng
- Xây dựng giao diện đăng nhập chính
- Thiết kế giao diện cho phép xử lý các chức năng chính.
- Thiết kế giao diện chương trình chính thực hiện các công việc:• Sửa, xóa, tìm kiếm, kiểm tra thông tin người dùng
Trang 6• Sửa, xóa, thêm mới đề thi từ các file exe hoặc nhập tay• Tự chấm điểm khi thời gian kết thúc -> Hiển thị kết quả
• Người làm bài xem bài mình làm-> Xem kết quả -> Lưu điểm ->Xóa điểm -> Thoát.
II Cơ sở lý thuyết
1 Giới thiệu về ngôn ngữ lập trình được sử dụng1.1 Ngôn ngữ lập trình java
Java là một ngôn ngữ lập trình thông dụng và mạnh mẽ, đượcthiết kế để có thể chạy trên nền tảng đa dạng, từ thiết bị diđộng cho đến máy chủ và máy tính cá nhân Dưới đây là mộtsố điểm quan trọng về Java:
- Độc lập nền tảng (Platform Independence): Mã nguồn Java được
biên dịch thành bytecode, một dạng ngôn ngữ trung gian không phụthuộc vào nền tảng Bytecode này sau đó có thể chạy trên bất kỳ máyảo Java (JVM - Java Virtual Machine) nào Điều này giúp ứng dụngJava có khả năng chạy trên nhiều hệ điều hành khác nhau mà khôngcần sửa đổi.
- Đối tượng hóa (Object-Oriented): Java là một ngôn ngữ lập trình
hướng đối tượng, nghĩa là nó hỗ trợ các khái niệm như lớp, đối tượng,
Trang 7kế thừa, đóng gói, và đa hình Điều này giúp xây dựng mã nguồn dễduy trì, mở rộng và tái sử dụng.
- Bảo mật (Security): Java có mô hình bảo mật mạnh mẽ Mã bytecode
chạy trên JVM được kiểm tra tại thời điểm chạy, giúp ngăn chặn nhiềuvấn đề bảo mật, như truy cập không an toàn vào bộ nhớ và mã nguồnđộc hại.
- Thu gọn rác (Garbage Collection): Java tự động quản lý bộ nhớ
thông qua thu gom rác, giúp giảm bớt gánh nặng cho lập trình viên khiquản lý bộ nhớ.
- Phong cách cú pháp (Syntax): Cú pháp của Java tương đối dễ đọc và
viết, giúp làm giảm lỗi và tăng tính nhất quán của mã nguồn.
- Thư viện và API phong phú (Rich Standard Library): Java đi kèm
với một bộ thư viện và API phong phú, cung cấp nhiều chức năng tiệních, từ xử lý chuỗi đến mạng và đồ họa.
- Hỗ trợ đa luồng (Multithreading): Java hỗ trợ lập trình đa luồng,
giúp tận dụng hiệu suất của hệ thống trong khi xử lý nhiều tác vụ đồngthời.
- Nhập và xuất (Input/Output): Java cung cấp một số lượng lớn các
công cụ và thư viện để xử lý nhập và xuất dữ liệu, từ đọc và ghi tệpđến tương tác với các luồng đầu vào và đầu ra.
Java được sử dụng rộng rãi trong nhiều lĩnh vực, bao gồmphát triển ứng dụng di động (Android), phát triển ứng dụngmáy tính cá nhân, phát triển ứng dụng web và xây dựng cáchệ thống máy chủ mạnh mẽ.
1.2 Giới thiệu về Java swing.
Java Swing là một bộ công cụ phát triển giao diện người dùng (GUI) chongôn ngữ lập trình Java Được giới thiệu từ Java 2 (JDK 1.2) trở đi, Swingthay thế Abstract Window Toolkit (AWT) cũ, mang lại nhiều tính năng vàlinh hoạt hơn trong việc xây dựng các ứng dụng giao diện đồ họa.
Trang 8Dưới đây là một số điểm quan trọng về Java Swing:
- Độc lập nền tảng (Platform Independence): Như Java, Swing được
thiết kế để làm cho ứng dụng GUI có thể chạy trên nhiều nền tảngkhác nhau mà không cần sửa đổi mã nguồn.
- Linh hoạt và đa dạng: Swing cung cấp một loạt các thành phần giao
diện người dùng như JButton, JTextField, JTable, và JTree, giúp pháttriển giao diện đa dạng và phong phú.
- Lập trình hướng sự kiện (Event-Driven): Swing sử dụng mô hình
lập trình hướng sự kiện, nghĩa là các sự kiện như nhấn nút, di chuyểnchuột, hay nhập liệu từ bàn phím kích thích việc thực thi các đoạn mãnguồn đã được định nghĩa trước đó.
- Look and Feel tùy chỉnh (Customizable Look and Feel): Swing cho
phép bạn tùy chỉnh giao diện của ứng dụng bằng cách sử dụng cácgiao diện người dùng khác nhau, gọi là "Look and Feel." Bạn có thểchọn giữa các gói Look and Feel có sẵn hoặc tạo ra một giao diệnngười dùng riêng của mình.
- Đa luồng (Multithreading): Swing hỗ trợ lập trình đa luồng, giúp xử
lý các tác vụ đồng thời mà không làm đóng băng giao diện ngườidùng.
- Hỗ trợ Accessibility: Swing tích hợp các tính năng hỗ trợ truy cập
cho người dùng có khuyết tật, giúp đảm bảo rằng ứng dụng của bạn cóthể được sử dụng một cách thuận tiện cho mọi người.
- Phong cách cú pháp (Syntax): Sử dụng Java, cú pháp của Swing là
rất dễ đọc và hiểu, giúp lập trình viên tạo và duy trì mã nguồn mộtcách dễ dàng.
Java Swing thường được sử dụng để phát triển ứng dụng desktop, từ ứngdụng quản lý dữ liệu đơn giản đến các ứng dụng đồ họa phức tạp.
Trang 91.3 Giới thiệu về cơ sở dữ liệu SQL.
SQL (Structured Query Language) là một ngôn ngữ lập trình được thiết kế
để quản lý và tương tác với các hệ thống quản lý cơ sở dữ liệu (DatabaseManagement Systems - DBMS) Dưới đây là một giới thiệu về cơ sở dữ liệuSQL:
Định nghĩa:
- Cơ sở dữ liệu (Database): Một cơ sở dữ liệu là một tập hợp có tổ
chức của dữ liệu, thường được tổ chức theo các bảng để lưu trữ vàquản lý thông tin.
- Hệ thống quản lý cơ sở dữ liệu (DBMS): Là một phần mềm quản lý
và tương tác với cơ sở dữ liệu Nó cung cấp các chức năng như lưutrữ, truy xuất, cập nhật và quản lý dữ liệu.
Kiểu dữ liệu:
- SQL hỗ trợ nhiều kiểu dữ liệu, bao gồm INTEGER (số nguyên),VARCHAR (chuỗi kí tự biến đổi), DATE (ngày tháng), và nhiều kiểudữ liệu khác.
Bảng và quan hệ:
- Dữ liệu trong SQL được tổ chức thành các bảng, trong đó mỗi hàngcủa bảng tương ứng với một bản ghi và mỗi cột tương ứng với mộttrường dữ liệu.
Trang 10- Mối quan hệ giữa các bảng có thể được thiết lập thông qua các khóachính (primary key) và khóa ngoại (foreign key).
- Chức năng tự động (Functions) và thủ tục lưu trữ (Stored Procedures):- SQL hỗ trợ các hàm như AVG, SUM, MAX, MIN để thực hiện các
phép toán trên dữ liệu.
- Stored Procedures là các đoạn mã lưu trữ có thể được thực thi từ xa vàgiúp tối ưu hóa và bảo mật quy trình xử lý dữ liệu.
1.4 Giới thiệu về Apache NetBean
- NetBeans, một môi trường phát triển tích hợp (IDE) nổi tiếng,đứng đầu trong việc hỗ trợ phát triển ứng dụng Java và nhiều ngônngữ lập trình khác Với sự linh hoạt và đa nhiệm, NetBeans khôngchỉ giới hạn trong việc xây dựng mã nguồn Java mà còn mở rộng
Trang 11sức mạnh đến C, C++, HTML, JavaScript, và PHP thông qua việctích hợp các plugin mở rộng.
- NetBeans đồng hành với lập trình viên bằng một môi trường pháttriển tích hợp đầy đủ, cung cấp trình soạn thảo mã nguồn thôngminh, trình biên dịch mạnh mẽ, và gỡ lỗi hiệu quả Quản lý dự ántrở nên dễ dàng với tính năng tổ chức mã nguồn và tài nguyên dựán một cách có tổ chức.
- Khác biệt của NetBeans không chỉ là ở sự đa ngôn ngữ và môitrường phát triển tích hợp mạnh mẽ IDE này còn chú trọng đếnviệc thiết kế giao diện người dùng, với trình thiết kế giao diện đồhọa giúp lập trình viên tạo ra giao diện thân thiện, mang lại trảinghiệm người dùng tốt nhất.
- Hỗ trợ cho Apache Maven là một điểm mạnh khác của NetBeans,giúp quản lý dependencies và xây dựng dự án trở nên hiệu quả vàthuận tiện Bên cạnh đó, khả năng mở rộng của NetBeans thôngqua plugin làm cho IDE trở thành một công cụ linh hoạt, có thể đápứng mọi nhu cầu của nhà phát triển trên nhiều nền tảng và ngônngữ lập trình khác nhau NetBeans không chỉ là một công cụ, mà làmột đối tác đáng tin cậy trên hành trình sáng tạo ứng dụng.
2 Giới thiệu về chương trình quản lý đề thi II.1 Yêu cầu chức năng
Chương trình quản lý đề thi và luyện thi trắc nghiệm được xây dựngnhững chức năng như sau:
Tài khoản Admin
Trang 12- Admin có thể xem thông tin cá nhân của các tài khoản người dùng.- Có thể chỉnh sửa, tìm kiếm và xóa thông tin của các tài khoản ngườidùng.
- Trong trường hợp người dùng quên mật khẩu, có thể sử dụng tính năng
quên mật khẩu để có thể được cấp lại mật khẩu thông qua việc xácminh số điện thoại.
Kiểm tra thông tin :
- Người dùng có thể kiểm tra các thông tin cá nhân như : Họ tên , mã
sinh viên, ngày sinh, địa chỉ, số điện thoại, giới tính.Lựa chọn đề thi :
- Người dùng có thể lựa chọn các môn thi đã có để tham gia làm bài thi
trắc nghiệm.
Kiểm tra lịch sử làm bài :
- Người dùng có thể kiểm tra lại lịch sử các bài đã làm về: thời gian làm
bài, số điểm, số câu làm đúng, môn thi và mã đề.
II.2 Yêu cầu phi chức năng
Bảo mật
Trang 13- Thông tin được bảo mât.- Phần quyền người dùngMàn hình hiển thị
- Hiển thị nhanh chóng.- Sửa đổi nhanh chóng.- Đơn giản, dễ quản lý.Khả năng bảo trì
- Sao lưu thường xuyên- Theo dõi , ghi lỗiĐộ tin cậy
- Hệ thống luôn sẵn sàng hoạt động
Trang 14Phần 2: Phân tích thiết kế chương trình
Yêu cầu chức năng
1Chức năng Đăng Nhập, Đăng ký, Quên mật khẩu
Cập nhật các thông tin người dùng
2Chức năng Admin:- Quản lý đề thi- Quản lý Users
Quản lý đề thi cũng như người dùng, có các chức năng cơ bản như them, sửa, xóa, tìm kiếm….
3Chức năng UsersLàm bài kiểm tra, xem lại thông tin cá nhân, lịch sử làm bài
Bảng 2.1.1: Yêu cầu chức năng
Yêu cầu phi chức năng
1Giao diện thân thiện với người dùngMàu sắc tươi tắn tạo cảm giác thoải mái cho người
sử dụng
2Bảo đảm tính toàn vẹn cho dữ liệuDữ liệu hóa đơn sẽ được khôi phục nguyên vẹn khi xảy ra sự cố
3Khả năng xử lý phản hồi nhanhĐộ chậm trễ phải thấp từ khi sự kiện được sinh ra từ cú click chuột của người dùng
Trang 154Khả năng cập nhật dữ liệu nhanh chóngDữ liệu được chỉnh sửa/thêm mới phải được cập nhật nhanhchóng
Bảng 2.1.2: Yêu cầu phi chức năng
II.Biểu đồ Use case
Trang 17Hình 2.2.4 UC quản lý người dùng
Use case quản lý bài thi
Hình 2.2.5 UC Quản lý bài thi
1.1 Đặc tả UC cho một số chức năng chính :
- Cập nhật thông tin
Sự kiện kích hoạt Đăng nhập phân quyền với admin hoặc users, nhập tài khoản mật khẩu => login
Hậu điều kiện Điền đầy đủ thông tin và ấn vào login
Luồng sự kiện chính -Hiển thị ô để nhập username-Hiển thị ô để nhập password
Luồng sự kiện phụ -Nếu nhập sai thông tin hiện ra thông báosai tài khoản hoặc mật khẩu
-Nếu không nhập đầy đủ thông tin sẽ in ra thông báo không được để trống các ô
Trang 18Bảng 2.3.1: UC Cập nhật thông tin
-Quản lý đề thi
Sự kiện kích hoạt Sau khi đăng nhập vào được admin => chọn quản lý đề thi
Luồng sự kiện chính - Hiện thị list đề thi ra bảng dữ liệu- Thêm đề thi
- Xóa đề thi
- Tìm kiếm theo tên đề thi và đề số- Sửa đề thi(double click vào đề cần sửa)- Import đề thi từ file txt
Luồng sự kiện phụ -Không có.
Bảng 2.3.2: UC quản đề thi
- Quản lý người dùng :
Tên Use-Case Quản lý người dùng
Sự kiện kích hoạt Sau khi đăng nhập vào được admin => chọn quản lý người dùng
Luồng sự kiện chính -Hiển thị màn hình bảng dữ liệu về thông tin người dùng
-Tìm kiếm người dùng theo tên người dùng
- Sửa thông tin người dùng-Xóa thông tin người dùng
Luồng sự kiện phụ -Không có.
Trang 19Bảng 2.3.3: Quản lý người dùng
- Quản lý bài thi:
Sự kiện kích hoạt
Chọn chức năng đăng nhập vào hệ thống => Users => Login
Tiền điều kiện
-Tiến hành chọn môn thi, chọn đề thi-Làm bài test
-Ấn nộp bài:
Hậu điều kiện
-Nhấn nút Thoát để thoát ra ngoài
-Nhấn nút Làm lại để làm lại bài kiểm tra-Nhấn nút xem đáp án để xem lại bài làm
Luồng sự kiện chính
-Hiển thị màn hình Kết quả-Hiển thị số câu đúng, sai
-Hiển thị thời gian làm bài và Tổng điểm
Luồng sự kiện phụ -Không có.
Bảng 2.3.4: UC quản lí bài thi
Trang 201.2Vẽ sơ đồ đặc tả cho từng chức năng
Hình 2.4.1 Sơ đồ hoạt động Đăng nhập
Trang 22Hình 2.4.2 Sơ đồ hoạt động Đăng Kí
Trang 23Hình 2.4.3 Sơ đồ hoạt động Users
Trang 24Hình 2.4.5 Sơ đồ hoạt động Admin
Trang 251.3 Các bảng thực thể sử dụng
Hình 2.4.7 Sơ đồ Lớp
Trang 26Chương 3: KỸ THUẬT XÂY DỰNG BỘ ĐỀ TRẮC NGHIỆMI Xây dựng bộ đề trắc nghiệm
MySQL
MySQL là một hệ quản trị cơ sở dữ liệu (Database Management System - DBMS) mã nguồn mở, phổ biến và mạnh mẽ Nó được sử dụng để lưu trữ và quản lý dữ liệu trong các ứng dụng web và nhiều hệ thống khác.
MySQL thường được sử dụng trong các dự án phát triển web để lưu trữ thông tin như thông tin người dùng, dữ liệu sản phẩm, và nhiều loại dữ liệu khác Được phát triển bởi Oracle Corporation, MySQL có nhiều phiên bản và đã trở thành một trong những hệ quản trị cơ sở dữ liệu phổ biến nhất trên thế giới, đặc biệt là trong cộng đồng phần mềm mã nguồn mở.
MySQL hỗ trợ nhiều tính năng như truy vấn SQL, quản lý giao dịch, cơ sở dữ liệu phân tán, và nhiều tính năng khác giúp người phát triển xây dựng và duy trì các ứng dụng web hiệu quả và ổn định
Ta sử dụng công cụ là Xampp, PHP admin để xây dựng cơ sở dữ liệu cho bộ đề trắc nghiệm
Trong cấu trúc bộ đề gồm có 10 cột, mỗi cột chứa một thông tin khác nhau:+ id: Định danh cho câu hỏi
+NameExam: Tên kỳ thi+NumberExam: Đề số+question: câu hỏi
+AnswerA,B,C,D: các đáp án+Answer correct : đáp án đúng+Status: trạng thái