Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

#include <iostream>

using namespace std;

class Nhanvien {
protected:
string maNhanVien;
string hoTen;
string queQuan;

public:
void NhapThongTin() {
cout << "Nhap ma nhan vien: ";
cin >> maNhanVien;
cout << "Nhap ho ten: ";
cin >> hoTen;
cout << "Nhap que quan: ";
cin >> queQuan;
}

void HienThiThongTin() const {


cout << "Ma nhan vien: " << maNhanVien << "\n";
cout << "Ho ten: " << hoTen << "\n";
cout << "Que quan: " << queQuan << "\n";
}
};

class Giangday {
protected:
string maHocPhan;
string tenHocPhan;

public:
void NhapThongTin() {
cout << "Nhap ma hoc phan: ";
cin >> maHocPhan;
cout << "Nhap ten hoc phan: ";
cin >> tenHocPhan;
}
};

class Giangvien : public Nhanvien, public Giangday {


protected:
string boMon;
string khoa;

public:
void NhapThongTinGiangVien() {
Nhanvien::NhapThongTin();
Giangday::NhapThongTin();
cout << "Nhap bo mon: ";
cin >> boMon;
cout << "Nhap khoa: ";
cin >> khoa;
}

void HienThiThongTinGiangVien() const {


Nhanvien::HienThiThongTin();
cout << "Ten hoc phan giang day: " << tenHocPhan << "\n";
cout << "Bo mon: " << boMon << "\n";
cout << "Khoa: " << khoa << "\n";
}

string LayBoMon() const {


return boMon;
}

string LayKhoa() const {


return khoa;
}

string LayTenHocPhan() const {


return tenHocPhan;
}
};

int main() {
int n;
cout << "Nhap so luong Giangvien (n>=2): ";
cin >> n;

if (n < 2) {
cout << "So luong Giangvien khong hop le.\n";
return 1;
}

Giangvien *danhSachGiangVien = new Giangvien[n];

for (int i = 0; i < n; ++i) {


cout << "Nhap thong tin Giangvien thu " << i + 1 << ":\n";
danhSachGiangVien[i].NhapThongTinGiangVien();
}

cout << "\nDanh sach Giangvien vua nhap:\n";


for (int i = 0; i < n; ++i) {
danhSachGiangVien[i].HienThiThongTinGiangVien();
cout << "\n";
}

int countKTCN = 0;
for (int i = 0; i < n; ++i) {
if (danhSachGiangVien[i].LayKhoa() == "KTCN") {
countKTCN++;
}
}
cout << "So luong Giangvien cua khoa KTCN: " << countKTCN << "\n";

int countCNPM = 0;
for (int i = 0; i < n; ++i) {
if (danhSachGiangVien[i].LayBoMon() == "CNPM") {
countCNPM++;
}
}
cout << "So luong Giangvien cua bo mon CNPM: " << countCNPM << "\n";

cout << "\nDanh sach Giangvien giang day hoc phan Lap trinh huong doi tuong:\n";
for (int i = 0; i < n; ++i) {
if (danhSachGiangVien[i].LayTenHocPhan() == "Laptrinhhuongdoituong") {
danhSachGiangVien[i].HienThiThongTinGiangVien();
cout << "\n";
}
}

int countToanRoiRac = 0;
for (int i = 0; i < n; ++i) {
if (danhSachGiangVien[i].LayTenHocPhan() == "Toanroirac") {
countToanRoiRac++;
}
}
cout << "So luong Giangvien giang day hoc phan Toan roi rac: " << countToanRoiRac << "\n";

delete[] danhSachGiangVien;
return 0;
}

You might also like