BMSVNCKH-22 BCTK
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC PHENIKAA _________________
BÁO CÁO BÀI TẬP LỚN KẾT THÚC HỌC PHẦN LẬP
TRÌNH HƯỚNG ĐỐI TƯỢNG TÊN ĐỀ TÀI:
“Xây dựng website giúp học sinh cấp 3 lựa chọn trường đại học”
Tên học phần: Lập trình hướng đối tượng.
Sinh viên : Nguyễn Văn Hiệp. Mã Sinh Viên: 23010859.
Lớp: Lập trình hướng đối tương-1-1-25(N03). Nhóm: 12.
Người hướng dẫn chính: Cô Nguyên Lệ Thu.
Hà Nội, tháng năm 2022 BMSVNCKH-22 BCTK MỤC LỤC
CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI
1. Link github. 2. Lý do chọn đề tài. 3. Mục tiêu hệ thống.
CHƯƠNG 2. PHÁT BIỂU BÀI TOÁN.

1. Xác định rõ đầu vào, xử lý, đầu ra.
2. Ràng buộc của hệ thống.
CHƯƠNG 3: PHÂN TÍCH HỆ THÔNG.
1. Mô tả nghiệp vụ.
2. Sơ đồ UML kế thừa giữa các lớp.
CHƯƠNG 4. ĐÓNG GÓP CHO PROJECT
1. Sơ đồ. 2. menu giao diện. 3. Test kiễm thử CHƯƠNG 5. TỔNG KẾT. BMSVNCKH-22 BCTK
GIỚI THIỆU: Dự án OOP - Trang web tư vấn hướng nghiệp cho học sinh cấp 3.
• Trong bối cảnh giáo dục hiện đại, việc lựa chọn trường đại học và ngành học phù hợp là
một quyết định quan trọng đối với học sinh cấp 3. Để hỗ trợ quá trình này trở nên hiệu
quả và dựa trên cơ sở khoa học, bài tập lớn này giới thiệu về một ứng dụng Trang web
tư vấn hướng nghiệp
được phát triển bằng ngôn ngữ lập trình Java và các công nghệ web.
• Dự án này được xây dựng với mục tiêu cung cấp một nền tảng trực tuyến giúp học sinh
cấp 3 có thể dựa vào điểm số và sở thích cá nhân để nhận được gợi ý về các trường đại
học và ngành học phù hợp
. Ứng dụng cho phép quản lý thông tin về học sinh, điểm số,
sở thích (ví dụ: các bài trắc nghiệm tính cách/hướng nghiệp), các trường đại học
các ngành học cùng với yêu cầu tuyển sinh và mô tả chi tiết.
• Trong quá trình phát triển, nhóm chúng em đã tập trung vào việc áp dụng các nguyên lý
lập trình Hướng đối tượng (OOP) để đảm bảo tính linh hoạt, khả năng mở rộng và dễ
bảo trì của hệ thống. Cụ thể, chúng em đã sử dụng các Design Pattern như DAO (Data
Access Object)
để tách biệt logic truy cập dữ liệu và Factory hoặc Builder (tùy theo cấu
trúc dự án) để quản lý việc tạo đối tượng. Mô hình MVC (Model-View-Controller) cũng
được triển khai triệt để để tổ chức mã nguồn, phân tách rõ ràng giữa xử lý nghiệp vụ
(Model), giao diện (View) và logic điều khiển (Controller).
• Báo cáo này sẽ đi vào chi tiết về cấu trúc Hướng đối tượng của dự án, các Lớp (Classes)
chính và chức năng của chúng, cũng như giải thích về cách triển khai các Design Pattern
và mô hình MVC. Cuối cùng, báo cáo sẽ đề xuất một số cải tiến và hướng phát triển tiềm
năng cho hệ thống tư vấn hướng nghiệp này trong tương lai.
Chi tiết quá trình xây dựng bài toán
Quá trình xây dựng hệ thống tư vấn hướng nghiệp này bao gồm các bước thiết kế phần mềm quan trọng sau:
Xác định yêu cầu:
o Mục tiêu: Xây dựng trang web gợi ý trường và ngành học dựa trên điểm số và sở thích.
o Đối tượng sử dụng: Học sinh cấp 3, phụ huynh, chuyên viên tư vấn.
o Ràng buộc: Tính bảo mật dữ liệu cá nhân, tốc độ xử lý nhanh, tính chính xác và
cập nhật của dữ liệu tuyển sinh.
Phân tích hệ thống:
o Chức năng: Đăng ký/Đăng nhập, Nhập/Cập nhật điểm số, Thực hiện trắc nghiệm
sở thích, Xem danh sách gợi ý trường/ngành, Tìm kiếm nâng cao. BMSVNCKH-22 BCTK
o Luồng dữ liệu: Dữ liệu đầu vào (Điểm, Sở thích) $\rightarrow$ Hệ thống xử
lý/Đối sánh $\rightarrow$ Dữ liệu đầu ra (Danh sách gợi ý).
o Nghiệp vụ xử lý: Thuật toán đối sánh điểm chuẩn/yêu cầu tuyển sinh, thuật toán
phân tích sở thích để gợi ý nhóm ngành phù hợp.
Thiết kế kiến trúc (OOP & MVC):
o Mô hình 3 lớp: Giao diện (Presentation/View), Logic nghiệp vụ (Business
Logic/Controller), Truy cập dữ liệu (Data Access/Model).
o Phân chia thành phần: Các package/module cho User Management, Admission
Data, Recommendation Engine.
Thiết kế giao diện (UI/UX):
o Giao diện người dùng: Giao diện thân thiện, dễ sử dụng cho học sinh (ví dụ: sử
dụng biểu đồ, thẻ thông tin trực quan).
o Bố cục: Bố cục rõ ràng cho trang chủ, trang kết quả tư vấn, trang chi tiết ngành học/trường.
Thiết kế Cơ sở dữ liệu:
o Cấu trúc bảng dữ liệu: Bảng HOCSINH, DIEMSO, SOTHICH, TRUONGDAIHOC, NGANHHOC, YEUCAUTUYENSINH.
o Kiểu dữ liệu: Sử dụng các kiểu dữ liệu phù hợp (chuỗi, số thực, khóa ngoại).
o Ràng buộc dữ liệu: Khóa chính, khóa ngoại, tính toàn vẹn dữ liệu (ví dụ: điểm số
phải nằm trong khoảng hợp lệ). Link github:
https://github.com/MrBeef09/OOP_N03_25_2
6_NGOCLINH_HUNGTHANH_VANHIEP
• Khung Framrwork: