





Preview text:
#include #include using namespace std;
// ==================== KHỐI 1: KHAI BÁO LỚP ====================
// Lớp SV - Sinh viên cơ bản class SV { protected: string Lop; string Hoten; public: SV(); SV(string lop, string ten); virtual ~SV(); virtual void nhapDuLieu();
virtual void hienThiThongTin(); };
// Lớp SVSP - Sinh viên Sư phạm class SVSP : public SV { protected: double Dtb; double Hocbong; public: SVSP();
SVSP(string lop, string ten, double dtb, double hb); virtual ~SVSP(); void nhapDuLieu() override;
void hienThiThongTin() override; };
// Lớp SVCN - Sinh viên Cử nhân class SVCN : public SVSP { private: double Hocphi; public: SVCN();
SVCN(string lop, string ten, double dtb, double hb, double hp); ~SVCN(); void nhapDuLieu() override;
void hienThiThongTin() override; };
// ==================== KHỐI 2: ĐỊNH NGHĨA HÀM ====================
// Định nghĩa các hàm của lớp SV SV::SV() { Lop = ""; Hoten = ""; }
SV::SV(string lop, string ten) : Lop(lop), Hoten(ten) {} SV::~SV() {} void SV::nhapDuLieu() { cout << "Nhap lop: "; cin.ignore(); getline(cin, Lop);
cout << "Nhap ho ten: "; getline(cin, Hoten); } void SV::hienThiThongTin() {
cout << "Lop: " << Lop << endl;
cout << "Ho ten: " << Hoten << endl; }
// Định nghĩa các hàm của lớp SVSP SVSP::SVSP() : SV() { Dtb = 0.0; Hocbong = 0.0; }
SVSP::SVSP(string lop, string ten, double dtb, double hb)
: SV(lop, ten), Dtb(dtb), Hocbong(hb) {} SVSP::~SVSP() {} void SVSP::nhapDuLieu() { SV::nhapDuLieu();
cout << "Nhap diem trung binh: "; cin >> Dtb;
cout << "Nhap hoc bong: "; cin >> Hocbong; }
void SVSP::hienThiThongTin() { SV::hienThiThongTin();
cout << "Diem trung binh: " << Dtb << endl;
cout << "Hoc bong: " << Hocbong << endl; }
// Định nghĩa các hàm của lớp SVCN SVCN::SVCN() : SVSP() { Hocphi = 0.0; }
SVCN::SVCN(string lop, string ten, double dtb, double hb, double hp)
: SVSP(lop, ten, dtb, hb), Hocphi(hp) {} SVCN::~SVCN() {} void SVCN::nhapDuLieu() { SVSP::nhapDuLieu();
cout << "Nhap hoc phi: "; cin >> Hocphi; }
void SVCN::hienThiThongTin() { SVSP::hienThiThongTin();
cout << "Hoc phi: " << Hocphi << endl; }
// ==================== KHỐI 3: HÀM MAIN ==================== int main() { SVCN* danhSachSinhVien[3];
cout << "========================================" << endl;
cout << " NHAP THONG TIN 3 SINH VIEN CU NHAN " << endl;
cout << "========================================" << endl << endl;
for (int i = 0; i < 3; i++) {
cout << "------- Sinh vien thu " << i + 1 << " -------" << endl;
danhSachSinhVien[i] = new SVCN();
danhSachSinhVien[i]->nhapDuLieu(); cout << endl; }
cout << "========================================" << endl;
cout << " DANH SACH SINH VIEN CU NHAN " << endl;
cout << "========================================" << endl << endl;
for (int i = 0; i < 3; i++) {
cout << "------- Sinh vien thu " << i + 1 << " -------" << endl;
danhSachSinhVien[i]->hienThiThongTin(); cout << endl; } // Giải phóng bộ nhớ
for (int i = 0; i < 3; i++) { delete danhSachSinhVien[i]; } return 0; }