Bối cảnh và vấn đề nghiên cứu
Báo cáo đề tài "Xây Dựng Game Caro" được thực hiện trong khuôn khổ học phần Lập trình mạng (Đồ án cơ sở 3) tại Khoa Khoa học Máy tính, Trường Đại học Công nghệ Thông tin và Truyền thông Việt – Hàn (Đại học Đà Nẵng) vào tháng 11 năm 2022. Đề tài do nhóm sinh viên gồm Nguyễn Minh Diện (20IT3), Nguyễn Bảo Tín (19IT3), Đặng Ngọc Thư và Đinh Đức Anh (20IT553) thực hiện dưới sự hướng dẫn của TS. Hoàng Hữu Đức.
Lý do chọn đề tài
Theo nhóm tác giả, công nghệ thông tin là ngành mũi nhọn trong tiến trình công nghiệp hóa, hiện đại hóa và tin học hóa mọi lĩnh vực đời sống. Sự phát triển mạnh mẽ của phần cứng máy tính và công nghệ số thúc đẩy các ứng dụng ngày càng đa dạng, đáp ứng tốt nhu cầu mô phỏng nghiệp vụ thực tế, tối ưu hóa thời gian xử lý và phục vụ giải trí. Nhóm tác giả lựa chọn đề tài dựa trên nền tảng kiến thức môn Lập trình mạng, nhận thấy việc áp dụng các cơ chế truyền thông mạng vào việc xây dựng trò chơi đối kháng trực tuyến là giải pháp phù hợp để kết nối người dùng qua mạng Internet.
Mục tiêu nghiên cứu
Văn bản xác định các mục tiêu nghiên cứu cụ thể sau:
- Xây dựng một ứng dụng hoàn thiện về giao diện và tối ưu về chức năng, giúp người dùng dễ dàng truy cập, kết nối giữa các máy tính với nhau và tiến hành chơi game.
- Phát triển các chức năng cơ bản gồm: tạo phòng chơi thường, tạo phòng có mật khẩu, hệ thống trao đổi tin nhắn (chat), tìm phòng chơi, xử lý tình huống đầu hàng và tính toán điểm số.
- Thiết lập hệ thống mới phù hợp, trực quan, dễ hiểu và dễ thao tác cho người sử dụng.
- Rèn luyện tư duy, tính sáng tạo thông qua thiết kế giao diện tương tác và vận dụng lý thuyết lập trình mạng vào thực tiễn.
Nhiệm vụ nghiên cứu
Nhiệm vụ trọng tâm của đồ án là xây dựng phần mềm phục vụ mục đích giải trí với trò chơi Caro, thiết lập môi trường giao tiếp tương tác giữa 2 hoặc nhiều máy tính thông qua mạng Internet.
Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Các kỹ thuật lập trình mạng (mô hình Client - Server, giao thức Socket, lập trình đa luồng), phân tích thiết kế hệ thống phần mềm và xây dựng ứng dụng client kết nối cơ sở dữ liệu.
- Không gian và thời gian: Đồ án được triển khai thực nghiệm tại Trường Đại học Công nghệ Thông tin và Truyền thông Việt – Hàn, hoàn thành vào tháng 11 năm 2022.
- Phương pháp thu thập: Nghiên cứu tài liệu kỹ thuật trên website, bài báo chuyên ngành; khảo cứu các đồ án khóa trước; quan sát và phân tích luật chơi Caro truyền thống để chuyển hóa thành logic hệ thống.
Cơ sở lý thuyết và phương pháp
Khung lý thuyết và công nghệ nền tảng
Tài liệu tổng hợp các cơ sở lý thuyết, mô hình kiến trúc và công nghệ được sử dụng trong quá trình phân tích, thiết kế và phát triển hệ thống:
- Mô hình kiến trúc Client – Server: Mô hình mạng phân tán gồm máy khách (Client) gửi yêu cầu và máy chủ (Server) lưu trữ tài nguyên, xử lý dịch vụ. Tài liệu phân tích rõ các ưu điểm nổi bật gồm tính quản lý tập trung dữ liệu, kiểm soát truy cập bảo mật cao qua tài khoản/mật khẩu, khả năng mở rộng linh hoạt tài nguyên và khả năng truy cập không phân biệt vị trí địa lý. Đồng thời, văn bản chỉ ra các hạn chế như nguy cơ tắc nghẽn lưu lượng khi nhiều client gửi request đồng thời, chi phí hạ tầng và yêu cầu bảo trì thường xuyên.
- Lập trình Socket và Đa luồng (Multi-thread):
- Socket được định nghĩa là điểm cuối (end-point) của liên kết truyền thông hai chiều sử dụng giao thức TCP. Trong môi trường Java, thư viện mạng cung cấp hai lớp cốt lõi:
java.net.Socket (dành cho Client) và java.net.ServerSocket (dành cho Server lắng nghe kết nối).
- Đa luồng cho phép thực thi đồng thời nhiều luồng xử lý trên máy ảo Java (JVM), giúp ứng dụng không bị nghẽn (non-blocking) giao diện, chia sẻ tài nguyên độc lập giữa các tiến trình. Nhóm tác giả cũng nêu rõ các thách thức khi lập trình đa luồng như xử lý tranh chấp bộ nhớ, đồng bộ hóa dữ liệu và phòng tránh hiện tượng khóa chết (deadlock).
- Ngôn ngữ lập trình Java: Ngôn ngữ hướng đối tượng hoàn toàn khởi xướng bởi James Gosling tại Sun Microsystems (1991), phát hành năm 1994 và được Oracle mua lại năm 2010. Java sở hữu nguyên lý "Viết một lần, thực thi khắp nơi" (WORA), cơ chế tự động thu gom rác bộ nhớ (Garbage Collection) trên vùng nhớ Heap và hỗ trợ đa tiến trình mạnh mẽ.
- Ngôn ngữ mô hình hóa UML (Unified Modeling Language): Công cụ chuẩn hóa đặc tả, trực quan hóa và tài liệu hóa cấu trúc, hành vi phần mềm thông qua hệ thống sơ đồ: Sơ đồ ca sử dụng (Use Case), Sơ đồ lớp (Class Diagram), Sơ đồ tuần tự (Sequence Diagram), Sơ đồ hoạt động (Activity Diagram), Sơ đồ triển khai (Deployment Diagram)...
- Công nghệ Web API và Định dạng JSON: Kiến trúc RESTful API cho ứng dụng di động, sử dụng định dạng JSON (JavaScript Object Notation) làm phương tiện tuần tự hóa và trao đổi dữ liệu giữa máy chủ PHP và ứng dụng di động.
- Hệ quản trị cơ sở dữ liệu MySQL: Hệ quản trị CSDL quan hệ nguồn mở, đa nền tảng (hỗ trợ Windows Win32, Linux, Mac OS X, Unix, FreeBSD...), cung cấp khả năng xử lý truy vấn nhanh, bảo mật và tương thích tốt với các ngôn ngữ lập trình.
Công cụ và phương tiện phát triển
- Môi trường lập trình (IDE): Eclipse (phát triển bởi IBM, hỗ trợ cơ chế plug-in PDE, mô hình MVC, thư viện giao diện SWT/JFace).
- Công cụ phân tích thiết kế: StarUML.
- Công cụ quản trị cơ sở dữ liệu: PhpMyAdmin và MySQL Server.
- Ngôn ngữ phát triển: Java, XML (thiết kế layout), PHP (xây dựng Web API).
Thiết kế và triển khai
Phân tích yêu cầu hệ thống
- Yêu cầu chức năng:
- Quản lý tài khoản người dùng: Đăng nhập, đăng ký tài khoản mới.
- Quản lý tương tác phòng chơi: Tạo phòng chơi thường, tạo phòng chơi có cài đặt mật khẩu.
- Cơ chế tự động hóa hoạt động hệ thống và phân quyền truy cập thông tin chính xác.
- Yêu cầu phi chức năng:
- Hạ tầng phần cứng: Máy tính cá nhân kết nối mạng Internet phục vụ trao đổi dữ liệu.
- Thiết kế giao diện: Bố cục trực quan, đơn giản, rõ ràng và dễ thao tác cho người dùng.
Phân tích các ca sử dụng (Use Case) và Tác nhân (Actors)
Phần phân tích thiết kế của tài liệu triển khai phân rã hệ thống với 3 tác nhân chính: Admin (Người quản trị), Giáo viên và Học sinh (hoặc Phụ huynh học sinh):
| Tác nhân |
Ca sử dụng đảm nhiệm |
Mô tả trách nhiệm |
| Admin |
Quản lý giáo viên |
Thực hiện các chức năng: Thêm mới giáo viên, Chỉnh sửa thông tin, Xóa tài khoản giáo viên, Tìm kiếm giáo viên theo từ khóa. |
| Giáo viên |
Quản lý học sinh, Quản lý môn học, Quản lý điểm, Quản lý tài khoản, Thống kê, Tra cứu |
Thực hiện thêm/sửa thông tin học sinh; thêm/sửa/xóa môn học; nhập điểm (thang điểm 1-10, làm tròn 2 chữ số thập phân), sửa điểm, tính điểm trung bình môn; thống kê danh sách. |
| Học sinh |
Đăng nhập, Tra cứu thông tin |
Đăng nhập vào hệ thống để tra cứu kết quả học tập, lịch học cá nhân và danh sách môn học. |
Đặc tả luồng xử lý các ca sử dụng tiêu biểu
- Đặc tả ca sử dụng Đăng nhập hệ thống: Hệ thống yêu cầu người dùng nhập tên đăng nhập và mật khẩu. Nếu hợp lệ, chuyển đến giao diện chính; nếu nhập sai thông tin (luồng rẽ nhánh A1), hệ thống hiển thị thông báo lỗi và cho phép nhập lại hoặc hủy bỏ.
- Đặc tả ca sử dụng Quản lý điểm: Sau khi đăng nhập, Giáo viên chọn môn học và danh sách lớp tương ứng. Giáo viên chọn chức năng Nhập điểm, Sửa điểm hoặc Tính điểm trung bình. Hệ thống kiểm tra ràng buộc dữ liệu: điểm số bắt buộc từ 1 đến 10, làm tròn 2 chữ số thập phân và không được để trống (luồng rẽ nhánh A1, A2 thông báo lỗi nếu nhập sai định dạng). Sau khi xử lý xong, quản lý có quyền khóa chức năng nhập điểm.
- Đặc tả ca sử dụng Quản lý môn học: Hỗ trợ Giáo viên thực hiện các thao tác Thêm môn mới, Sửa thông tin môn học hoặc Xóa môn học. Trong trường hợp xóa, hệ thống tiến hành kiểm tra ràng buộc toàn vẹn dữ liệu (luồng A5); nếu môn học đang có ràng buộc dữ liệu thì xuất thông báo "không thể xóa".
Thiết kế Cơ sở dữ liệu quan hệ
Hệ thống lưu trữ dữ liệu được thiết kế gồm 6 bảng thực thể chính trên MySQL:
1. Bảng user (Quản lý tài khoản người dùng)
Truy vấn mẫu: INSERT INTO user (id, email, password, name) VALUES ('1', 'oanh@gmail.com', '12345678', '12345678');
| Tên cột |
Kiểu dữ liệu |
Ràng buộc Null |
Khóa |
id |
int(11) |
Không |
Khóa chính (Primary Key) |
email |
varchar(100) |
Không |
|
password |
int(11) |
Không |
|
name |
int(11) |
Không |
|
2. Bảng giaovien (Thông tin giáo viên)
Truy vấn mẫu: INSERT INTO giaovien (id, name, magv, sdt, email, diachi) VALUES ('1', 'Nguyễn Mai Phương Anh', '103AB', '0300000002', 'phuonganh@gmail.com', '123 Lý Thường Kiệt, Bắc Lý, Đồng Hới');
| Tên cột |
Kiểu dữ liệu |
Ràng buộc Null |
Khóa |
id |
int(11) |
Không |
Khóa chính (Primary Key) |
name |
varchar(50) |
Không |
|
magv |
varchar(50) |
Không |
|
sdt |
int(11) |
Không |
|
email |
varchar(100) |
Không |
|
diachi |
varchar(255) |
Không |
|
3. Bảng hocsinh (Thông tin học sinh)
Truy vấn mẫu: INSERT INTO hocsinh (id, name, mahs, link, DTB) VALUES (7, 'Trần Thị Kim Oanh', '19it184', 'http://192.105/Web/Anhthe/anhthe4.jpg', '8');
| Tên cột |
Kiểu dữ liệu |
Ràng buộc Null |
Khóa |
id |
int(50) |
Không |
Khóa chính (Primary Key) |
name |
varchar(50) |
Không |
|
mahs |
varchar(50) |
Không |
|
link |
varchar(100) |
Không |
|
DTB |
double |
Không |
|
4. Bảng lop (Thông tin lớp học)
Truy vấn mẫu: INSERT INTO lop (id, name, mahs, link, DTB) VALUES ('1', 'Lop1A', '19it184', 'http://192.105/Web/Anhthe/anhthe4.jpg', '8');
| Tên cột |
Kiểu dữ liệu |
Ràng buộc Null |
Khóa |
id |
int(11) |
Không |
Khóa chính (Primary Key) |
name |
varchar(50) |
Không |
|
mahs |
varchar(50) |
Không |
|
link |
varchar(100) |
Không |
|
DTB |
double |
Không |
|
5. Bảng lichhoc (Thời khóa biểu/Lịch học)
Truy vấn mẫu: INSERT INTO lichhoc (thu, monhoc, giaovien) VALUES ('2', 'Toán', 'Nguyễn Mai Phương Anh');
| Tên cột |
Kiểu dữ liệu |
Ràng buộc Null |
Khóa |
thu |
int(11) |
Không |
Khóa chính (Primary Key) |
monhoc |
varchar(100) |
Không |
|
giaovien |
varchar(100) |
Không |
|
6. Bảng monhoc (Danh mục môn học)
Truy vấn mẫu: INSERT INTO monhoc (id, tenmon, thuocnganh, linkpdf) VALUES ('4', 'toan', 'toan hoc', 'https://docs.com/document/d/1_H04lyR0aiGzQTpzi3Ja2corSiqI-ByY4ezlSEHUKHU/edit');
| Tên cột |
Kiểu dữ liệu |
Ràng buộc Null |
Khóa |
id |
int(50) |
Không |
Khóa chính (Primary Key) |
tenmon |
varchar(50) |
Không |
|
thuocnganh |
varchar(50) |
Không |
|
linkpdf |
varchar(100) |
Không |
|
Triển khai hệ thống Web API và Ứng dụng Android
- Hệ thống Web API: Đóng vai trò máy chủ xử lý trung gian, thực hiện truy xuất dữ liệu từ MySQL và trả về dữ liệu chuẩn định dạng JSON. Giao diện quản lý hỗ trợ 4 phân hệ chính:
- Quản lý Lớp: Hiển thị danh sách học sinh theo từng lớp học, cho phép thêm mới, chỉnh sửa thông tin hoặc xóa học sinh.
- Quản lý Môn học: Hiển thị danh mục môn học, hỗ trợ thao tác thêm môn mới, hiệu chỉnh thông tin môn hoặc xóa khỏi hệ thống.
- Quản lý Lịch học: Hiển thị lịch học phân bổ theo ngày học trong tuần (thứ), cho phép cập nhật và tạo mới lịch.
- Phân hệ Khen thưởng: Tự động đánh giá danh sách học sinh dựa trên điểm trung bình (ĐTB) cập nhật từ lớp học; các học sinh có điểm trung bình từ 8.0 trở lên được xét duyệt học bổng.
- Ứng dụng Android: Xây dựng bằng ngôn ngữ Java và XML, kết nối trực tiếp với Web API để gửi nhận dữ liệu JSON. Ứng dụng bao gồm các giao diện:
- Giao diện Đăng nhập: Xác thực tài khoản người dùng từ cơ sở dữ liệu hệ thống.
- Giao diện Trang chủ: Hiển thị trực quan các phân mục chức năng chính.
- Giao diện Quản lý Học sinh: Xem danh sách phân lớp, màn hình thêm học sinh mới, màn hình chỉnh sửa/cập nhật thông tin học sinh và chức năng xóa học sinh.
- Giao diện Danh mục Môn học: Hiển thị danh sách môn học theo ngành học tương ứng.
Nội dung chính theo từng chương
CHƯƠNG 1. Tổng quan và xác định yêu cầu hệ thống
Chương 1 trình bày bối cảnh công nghệ thông tin, lý do lựa chọn đề tài xuất phát từ học phần Lập trình mạng. Nhóm tác giả xác định mục tiêu xây dựng ứng dụng tương tác đa người dùng, đề ra các nhiệm vụ nghiên cứu và phạm vi thực hiện. Chương này cũng phân loại cụ thể các yêu cầu hệ thống:
- Yêu cầu chức năng: Quản lý người dùng, đăng nhập/đăng ký, tạo phòng chơi có mật khẩu hoặc không có mật khẩu.
- Yêu cầu phi chức năng: Thiết bị phần cứng, mạng Internet, giao diện thân thiện, rõ ràng và dễ sử dụng.
CHƯƠNG 2. Cơ sở lý thuyết và công nghệ xây dựng ứng dụng
Chương 2 tập trung trình bày chi tiết các nền tảng công nghệ, công cụ và ngôn ngữ được áp dụng:
- Phân tích môi trường phát triển Eclipse (ưu điểm về tích hợp công cụ, đa nền tảng; nhược điểm về cài đặt phức tạp và chiếm dụng tài nguyên máy tính).
- Hệ quản trị CSDL MySQL và công cụ quản trị PhpMyAdmin.
- Đặc điểm ngôn ngữ Java (WORA, quản lý bộ nhớ heap qua Garbage Collection, hỗ trợ Multi-thread) và ngôn ngữ XML, PHP.
- Lý thuyết ngôn ngữ thiết kế hệ thống UML và danh mục các loại sơ đồ UML chuẩn.
- Khái niệm mô hình mạng Client – Server (nguyên tắc hoạt động, ưu điểm kiểm soát tập trung, bảo mật và nhược điểm nghẽn mạng).
- Cơ chế truyền thông mạng qua Socket TCP (
Socket, ServerSocket) và lập trình đa luồng (Multi-thread).
CHƯƠNG 3. Phân tích và thiết kế hệ thống
Chương 3 là phần thiết kế logic hệ thống thông tin với các nội dung:
- Xây dựng Biểu đồ Use Case tổng quát và các sơ đồ Use Case phân rã theo 3 tác nhân: Giáo viên, Học sinh, Admin.
- Mô hình hóa chi tiết 8 ca sử dụng nghiệp vụ: Quản lý danh sách học sinh, Quản lý điểm, Quản lý môn học, Quản lý lịch học, Quản lý và hiệu chỉnh tài khoản, Quản lý giáo viên, Thống kê, Tra cứu thông tin.
- Lập bảng đặc tả chi tiết cho từng ca sử dụng, xác định rõ: Tên UC, Mục đích, Tác nhân, Tiền điều kiện, Hậu điều kiện, Luồng sự kiện chính và Luồng rẽ nhánh/ngoại lệ.
- Xây dựng Sơ đồ lớp (Class Diagram) mô tả mối quan hệ giữa các thực thể trong hệ thống.
CHƯƠNG 4. Xây dựng ứng dụng
Chương 4 mô tả quá trình hiện thực hóa hệ thống phần mềm:
- Thiết kế hệ thống cơ sở dữ liệu quan hệ gồm 6 bảng thực thể (
user, giaovien, hocsinh, lop, lichhoc, monhoc) kèm theo câu lệnh SQL mẫu và cấu trúc kiểu dữ liệu cụ thể.
- Triển khai phân hệ Web API quản lý các chức năng: Lớp, Môn học, Lịch học và Khen thưởng (xét học bổng cho ĐTB $\ge$ 8.0).
- Xây dựng ứng dụng di động Android kết nối dữ liệu JSON từ Web API, triển khai các màn hình giao diện đăng nhập, trang chủ, danh sách học sinh phân theo lớp, thêm/sửa/xóa học sinh và danh sách môn học.
- Trình bày tổng kết kết quả đạt được (trang 65) và hướng phát triển của đề tài (trang 66).
Kết quả và đóng góp
Kết quả đạt được theo văn bản
- Phân tích thiết kế: Hoàn thành tài liệu phân tích hệ thống với đầy đủ sơ đồ ca sử dụng tổng quát, sơ đồ phân rã tác nhân, sơ đồ lớp và bảng đặc tả các luồng nghiệp vụ chính/rẽ nhánh.
- Thiết kế cơ sở dữ liệu: Xây dựng hoàn chỉnh lược đồ cơ sở dữ liệu gồm 6 bảng quan hệ trên MySQL, xác định rõ kiểu dữ liệu, khóa chính và câu lệnh truy vấn mẫu (
INSERT INTO).
- Phát triển giao diện và dịch vụ: Xây dựng hệ thống Web API phục vụ quản lý dữ liệu tập trung và ứng dụng Android hiển thị trực quan các danh mục dữ liệu thông qua cơ chế trao đổi JSON.
- Triển khai chức năng thực tế: Thực hiện các chức năng đăng nhập, quản lý học sinh theo lớp, quản lý danh mục môn học, quản lý lịch học và xét duyệt danh sách khen thưởng.
Đóng góp của đề tài
- Ứng dụng các kiến thức lý thuyết về lập trình mạng, mô hình Client – Server, giao tiếp Socket TCP và kỹ thuật đa luồng vào bài toán thiết kế phần mềm thực tế.
- Xây dựng tài liệu đặc tả ca sử dụng chi tiết, phân định rõ luồng xử lý chính và các trường hợp kiểm tra lỗi dữ liệu đầu vào.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế
- Nhóm tác giả tự đánh giá kiến thức về lập trình di động chưa thực sự sâu sắc, dẫn đến việc quá trình triển khai đồ án khó tránh khỏi những thiếu sót kỹ thuật.
- Có sự khác biệt lớn về mặt nội dung giữa tiêu đề, mục tiêu ban đầu của đồ án (xây dựng trò chơi Caro đối kháng qua Socket) và phần nội dung thiết kế, triển khai chi tiết ở Chương 3, Chương 4 (tập trung vào hệ thống quản lý học sinh, môn học, lịch học trên nền Web API và Android).
Hạn chế và hướng phát triển
- Tài liệu xác định việc hoàn thiện thêm các tính năng nâng cao tại mục "Hướng phát triển" (trang 66) nhằm tối ưu hóa hiệu năng và mở rộng phạm vi ứng dụng của hệ thống.
Giá trị tham khảo
Báo cáo là tài liệu học thuật tham khảo phù hợp cho:
- Sinh viên ngành Công nghệ thông tin, Khoa học máy tính, Kỹ thuật phần mềm: Tham khảo cấu trúc trình bày một báo cáo đồ án cơ sở / đồ án lập trình mạng hoàn chỉnh.
- Người học phân tích thiết kế hệ thống: Tham khảo phương pháp xây dựng sơ đồ Use Case, sơ đồ lớp UML và kỹ thuật viết bảng đặc tả ca sử dụng chi tiết (tiền điều kiện, hậu điều kiện, luồng sự kiện rẽ nhánh và kiểm tra tính hợp lệ của dữ liệu).
- Lập trình viên ứng dụng di động cơ bản: Tham khảo mô hình thiết kế cơ sở dữ liệu MySQL và phương thức liên kết giữa ứng dụng Android với máy chủ dữ liệu qua Web API và JSON.
Câu hỏi thường gặp
1. Đề tài này do ai thực hiện và thuộc đơn vị đào tạo nào?
Đề tài được thực hiện bởi nhóm sinh viên gồm Nguyễn Minh Diện (20IT3), Nguyễn Bảo Tín (19IT3), Đặng Ngọc Thư và Đinh Đức Anh (20IT553), dưới sự hướng dẫn của TS. Hoàng Hữu Đức tại Khoa Khoa học Máy tính, Trường Đại học Công nghệ Thông tin và Truyền thông Việt – Hàn (Đại học Đà Nẵng) vào tháng 11 năm 2022.
2. Các yêu cầu chức năng chính được xác định ban đầu cho hệ thống gồm những gì?
Hệ thống xác định các yêu cầu chức năng cốt lõi bao gồm: Quản lý tài khoản người dùng; Đăng nhập và đăng ký tài khoản; Tạo phòng chơi có mật khẩu và tạo phòng chơi không có mật khẩu; Đảm bảo thông tin cập nhật chính xác và hoạt động tự động.
3. Cơ sở dữ liệu của hệ thống gồm những bảng nào và có cấu trúc ra sao?
Cơ sở dữ liệu của hệ thống gồm 6 bảng chính:
user: gồm các trường id (int(11), PK), email (varchar(100)), password (int(11)), name (int(11)).
giaovien: gồm id (int(11), PK), name (varchar(50)), magv (varchar(50)), sdt (int(11)), email (varchar(100)), diachi (varchar(255)).
hocsinh: gồm id (int(50), PK), name (varchar(50)), mahs (varchar(50)), link (varchar(100)), DTB (double).
lop: gồm id (int(11), PK), name (varchar(50)), mahs (varchar(50)), link (varchar(100)), DTB (double).
lichhoc: gồm thu (int(11), PK), monhoc (varchar(100)), giaovien (varchar(100)).
monhoc: gồm id (int(50), PK), tenmon (varchar(50)), thuocnganh (varchar(50)), linkpdf (varchar(100)).
4. Quy tắc nghiệp vụ trong ca sử dụng "Quản lý Điểm" được quy định như thế nào?
Khi giáo viên thực hiện nhập điểm hoặc sửa điểm cho học sinh, hệ thống thực hiện kiểm tra định dạng dữ liệu đầu vào. Điểm số bắt buộc phải nằm trong thang điểm từ 1 đến 10, được làm tròn đến chữ số thập phân thứ 2 và không được để trống. Nếu vi phạm, hệ thống sẽ kích hoạt luồng rẽ nhánh (A1, A2) để gửi thông báo lỗi và yêu cầu giáo viên nhập lại.
5. Tiêu chí xét duyệt danh sách khen thưởng trong phân hệ Web API là gì?
Danh sách khen thưởng trong hệ thống Web API được đánh giá tự động dựa trên điểm trung bình (ĐTB) của học sinh được cập nhật theo danh sách lớp. Những học sinh có điểm trung bình đạt từ 8.0 trở lên sẽ được đưa vào diện xét duyệt học bổng.
Kết luận
Báo cáo Đồ án Lập trình mạng "Xây Dựng Game Caro" của nhóm sinh viên Trường Đại học CNTT & TT Việt – Hàn đã trình bày tổng quan về nền tảng công nghệ mạng Client – Server, kỹ thuật Socket TCP và lập trình đa luồng trong Java. Tài liệu cung cấp bản phân tích thiết kế chi tiết bằng ngôn ngữ UML, đặc tả các ca sử dụng quản lý và thiết lập hệ thống cơ sở dữ liệu quan hệ gồm 6 bảng trên MySQL. Sản phẩm được hiện thực hóa qua hệ thống Web API và ứng dụng di động Android trao đổi dữ liệu định dạng JSON, đáp ứng các yêu cầu cơ bản về giao diện và tương tác dữ liệu.