---
# System prepended metadata

title: ĐỀ BÀI AP (1)

---


**Đề Bài: Quản Lý Sinh Viên và Sử Dụng Abstract Class**

**Phần 1: Lớp SinhVien và Lớp Abstract**

I. Tạo một lớp abstract `SinhVien` với các thuộc tính chung cho tất cả các loại sinh viên, chẳng hạn như `MaSinhVien`, `HoTen`, `NgaySinh`, `GioiTinh`, và `DiemTrungBinh`.

II. Tạo các lớp con kế thừa từ lớp `SinhVien` để biểu diễn các loại sinh viên cụ thể như `SinhVienDaiHoc` và `SinhVienCaoDang`. Các lớp con này sẽ bổ sung các thuộc tính và phương thức riêng cho từng loại sinh viên.

III. Trong lớp `SinhVienDaiHoc`, bạn có thể thêm thuộc tính như `NganhHoc` và `KhoaHoc` để biểu diễn thông tin đặc trưng cho sinh viên đại học.

IV. Trong lớp `SinhVienCaoDang`, bạn có thể thêm thuộc tính như `NganhHoc` và `ChuyenNganh` để biểu diễn thông tin đặc trưng cho sinh viên cao đẳng.

**Phần 2: Bài Tập Liên Quan Đến Override**

**SinhVienDaiHoc:**

1. Xếp loại:
   - Điểm trung bình từ 9.0 trở lên: "Xuất sắc"
   - Điểm trung bình từ 8.0 đến 8.9: "Giỏi"
   - Điểm trung bình từ 7.0 đến 7.9: "Khá"
   - Điểm trung bình từ 5.0 đến 6.9: "Trung bình"
   - Điểm trung bình dưới 5.0: "Yếu"

**SinhVienCaoDang:**

1. Tính học phí:
   - Ngành học "Kỹ thuật": 5,000,000 VND
   - Ngành học "Kinh tế": 4,500,000 VND
   - Ngành học khác: 4,000,000 VND

2. Xếp loại:
   - Điểm trung bình từ 8.0 trở lên: "Xuất sắc"
   - Điểm trung bình từ 7.0 đến 7.9: "Giỏi"
   - Điểm trung bình từ 6.0 đến 6.9: "Khá"
   - Điểm trung bình từ 4.0 đến 5.9: "Trung bình"
   - Điểm trung bình dưới 4.0: "Yếu"

**Phần 3: Chương Trình Quản Lý Sinh Viên**

I. Trong chương trình chính, tạo một đối tượng của lớp `QuanLySinhVien` và khởi tạo danh sách sinh viên với một sức chứa ban đầu.

II. Cho phép người dùng thực hiện các thao tác sau thông qua menu:
   1. Thêm sinh viên mới vào danh sách.
   2. Tìm sinh viên theo mã số sinh viên và hiển thị thông tin.
   3. Xóa sinh viên khỏi danh sách theo mã số sinh viên.
   4. Hiển thị danh sách tất cả sinh viên.
   5. Thoát chương trình.

III. Đảm bảo rằng kiểm tra các yêu cầu về mã số sinh viên, họ tên, ngày sinh và điểm trung bình khi người dùng thêm hoặc cập nhật thông tin sinh viên. Nếu dữ liệu không hợp lệ, hiển thị thông báo lỗi cho người dùng.

IV. Sử dụng các câu lệnh try-catch để xử lý ngoại lệ nếu có.

V. Sử dụng override để tính toán học phí và xếp loại cho từng loại sinh viên, và hiển thị thông tin tương ứng.