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 (1.34 MB, 48 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
<small>BỘ GIÁO DỤC VÀ ĐÀO TẠO</small>
<b><small>TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP</small></b>
<b><small>ĐỀ CƯƠNG HẾT MƠN HỌC</small></b>
<b><small>NGÀNH: MẠNG MÁY TÍNH VÀ TRUYỀN THƠNG DỮ LIỆU</small></b>
Hà Nội, ngày … tháng … năm 2023
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">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 q 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.
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">II. 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
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="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
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">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.
- 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
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="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 -> Thốt.
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:
<b>- Độc lập nền tảng (Platform Independence): Mã nguồn Java được</b>
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.
<b>- Đối tượng hóa (Object-Oriented): Java là một ngơn ngữ lập trình</b>
hướng đối tượng, nghĩa là nó hỗ trợ các khái niệm như lớp, đối tượng,
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">kế 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>- Bảo mật (Security): Java có mơ hình bảo mật mạnh mẽ. Mã bytecode</b>
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 tồn vào bộ nhớ và mã nguồnđộc hại.
<b>- Thu gọn rác (Garbage Collection): Java tự động quản lý bộ nhớ</b>
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ớ.
<b>- Phong cách cú pháp (Syntax): Cú pháp của Java tương đối dễ đọc và</b>
viết, giúp làm giảm lỗi và tăng tính nhất quán của mã nguồn.
<b>- Thư viện và API phong phú (Rich Standard Library): Java đi kèm</b>
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.
<b>- Hỗ trợ đa luồng (Multithreading): Java hỗ trợ lập trình đa luồng,</b>
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.
<b>- Nhập và xuất (Input/Output): Java cung cấp một số lượng lớn các</b>
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ẽ.
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.
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">Dưới đây là một số điểm quan trọng về Java Swing:
<b>- Độc lập nền tảng (Platform Independence): Như Java, Swing được</b>
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.
<b>- Linh hoạt và đa dạng: Swing cung cấp một loạt các thành phần giao</b>
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ú.
<b>- Lập trình hướng sự kiện (Event-Driven): Swing sử dụng mơ hình</b>
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 đó.
<b>- Look and Feel tùy chỉnh (Customizable Look and Feel): Swing cho</b>
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.
<b>- Đa luồng (Multithreading): Swing hỗ trợ lập trình đa luồng, giúp xử</b>
lý các tác vụ đồng thời mà khơng làm đóng băng giao diện ngườidùng.
<b>- Hỗ trợ Accessibility: Swing tích hợp các tính năng hỗ trợ truy cập</b>
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.
<b>- Phong cách cú pháp (Syntax): Sử dụng Java, cú pháp của Swing là</b>
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.
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9"><b>SQL (Structured Query Language) là một ngơn ngữ lập trình được thiết kế</b>
để 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:
<b>Định nghĩa:</b>
<b>- Cơ sở dữ liệu (Database): Một cơ sở dữ liệu là một tập hợp có tổ</b>
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.
<b>- Hệ thống quản lý cơ sở dữ liệu (DBMS): Là một phần mềm quản lý</b>
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.
<b>Kiểu dữ liệu:</b>
- 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>Bảng và quan hệ:</b>
- 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.
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="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.
- 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
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">sứ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.
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:
<b>Tài khoản Admin </b>
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="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.
<b>- Trong trường hợp người dùng quên mật khẩu, có thể sử dụng tính năng</b>
qn 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 :
<b>- Người dùng có thể kiểm tra các thơng tin cá nhân như : Họ tên , mã</b>
sinh viên, ngày sinh, địa chỉ, số điện thoại, giới tính.Lựa chọn đề thi :
<b>- Người dùng có thể lựa chọn các mơn thi đã có để tham gia làm bài thi</b>
trắc nghiệm.
Kiểm tra lịch sử làm bài :
<b>- 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>
bài, số điểm, số câu làm đúng, môn thi và mã đề.
Bảo mật
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="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
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14"><small>1Chức năng Đăng Nhập, Đăng ký, Quên mật khẩu</small>
<small>Cập nhật các thông tin người dùng </small>
<small>2Chức năng Admin:- Quản lý đề thi- Quản lý Users</small>
<small>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….</small>
<small>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 </small>
<small>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</small>
<small>sử dụng</small>
<small>2Bảo đảm tính tồ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ố</small>
<small>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</small>
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15"><small>4Khả 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</small>
<i>Hình 2.2.4 UC quản lý người dùng</i>
<i>Hình 2.2.5 UC Quản lý bài thi</i>
<b>- Cập nhật thơng tin</b>
<b>Sự kiện kích hoạt</b> Đăng nhập phân quyền với admin hoặc users, nhập tài khoản mật khẩu => login
<b>Hậu điều kiện</b> Điền đầy đủ thông tin và ấn vào login
<b>Luồng sự kiện chính</b> -Hiển thị ơ để nhập username-Hiển thị ô để nhập password
<b>Luồng sự kiện phụ</b> -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 ô
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18"><i>Bảng 2.3.1: UC Cập nhật thông tin</i>
<b><small>-</small>Quản lý đề thi</b>
<b>Sự kiện kích hoạt</b> Sau khi đăng nhập vào được admin => chọn quản lý đề thi
<b>Luồng sự kiện chính</b> - 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
<b>Luồng sự kiện phụ</b> -Khơng có.
<i>Bảng 2.3.2: UC quản đề thi</i>
<b>- Quản lý người dùng :</b>
<b>Tên Use-Case</b> Quản lý người dùng
<b>Sự kiện kích hoạt</b> Sau khi đăng nhập vào được admin => chọn quản lý người dùng
<b>Luồng sự kiện chính</b> -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
<b>Luồng sự kiện phụ</b> -Khơng có.
</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19"><i>Bảng 2.3.3: Quản lý người dùng</i>
<b>- Quản lý bài thi: </b>
<b>Sự kiện kích hoạt</b>
Chọn chức năng đăng nhập vào hệ thống => Users => Login
<b>Tiền điều kiện</b>
-Tiến hành chọn môn thi, chọn đề thi-Làm bài test
-Ấn nộp bài:
<b>Hậu điều kiện</b>
-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
<b>Luồng sự kiện chính</b>
-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
<b>Luồng sự kiện phụ</b> <sup>-Khơng có.</sup>
<i>Bảng 2.3.4: UC quản lí bài thi</i>
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">Hình 2.4.1 Sơ đồ hoạt động Đăng nhập
</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22"><i>Hình 2.4.2 Sơ đồ hoạt động Đăng Kí</i>
</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">Hình 2.4.3 Sơ đồ hoạt động Users
</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">Hình 2.4.5 Sơ đồ hoạt động Admin
</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">Hình 2.4.7 Sơ đồ Lớp
</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">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
</div>