Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

benhNhan.

h http://localhost:49839/5369dcd7-5be0-4ecf-9506-381e9d3ef851/

c++\inheritance\co-so-benh-nhan\benhNhan.h

1 #include <string>
2 using namespace std;
3 #pragma once
4
5 class benhNhan
6 {
7 protected:
8 string hoTen;
9 string queQuan;
10 int namSinh;
11 public:
12 benhNhan(string, string, int);
13 void display();
14 friend ostream& operator<<(ostream& os, const benhNhan& b);
15 friend istream& operator>>(istream& is, benhNhan& b);
16 };
17

1 trong 1 25/01/2024, 23:04


benhNhan.cpp http://localhost:49839/ab34e112-25db-4b70-8229-c1b1ca8d2cdd/

c++\inheritance\co-so-benh-nhan\benhNhan.cpp

1 #include "benhNhan.h"
2 #include <string>
3 #include <iostream>
4
5 benhNhan::benhNhan(string _n = "000", string _q = "000", int _y = 0)
6 {
7 hoTen = _n;
8 queQuan = _q;
9 namSinh = _y;
10 }
11 ostream& operator<<(ostream& os, const benhNhan& b)
12 {
13 os<<"Ho va ten: " << b.hoTen << "\n";
14 os<<"Nam sinh: " << b.namSinh << "\n";
15 os<<"Que quan: " << b.queQuan << "\n";
16 return os;
17 }
18 istream& operator>>(istream& is, benhNhan& b)
19 {
20 cout << "Nhap ten: ";
21 getline(is, b.hoTen);
22 cout << "Nhap nam sinh: ";
23 is >> b.namSinh;
24 cout << "Nhap que quan: ";
25 is.ignore();
26 getline(is,b.queQuan);
27 return is;
28 }
29

1 trong 1 25/01/2024, 23:05


benhAn.h http://localhost:49839/a94379b5-b873-4a7d-b396-cd5fbefae4ea/

c++\inheritance\co-so-benh-nhan\benhAn.h

1 #include "benhNhan.h"
2 #include <string>
3
4 class benhAn: public benhNhan
5 {
6 string tenBenhAn;
7 double vienPhi;
8 public:
9 benhAn(string, string, int, string, double);
10 friend ostream& operator<<(ostream& os, const benhAn& b);
11 friend istream& operator>>(istream& is, benhAn& b);
12 int tinhTuoi();
13 float getVienPhi();
14
15 };

1 trong 1 25/01/2024, 23:04


benhAn.cpp http://localhost:49839/2ae18419-5601-4daf-83a9-da9a41842394/

c++\inheritance\co-so-benh-nhan\benhAn.cpp

1 #include <string>
2 #include "benhAn.h"
3 #include <iostream>
4 int namHienTai = 2023;
5
6 benhAn::benhAn(string _n = "000", string _q = "000", int _y = 0, string _b = "000", double
_p = 0):benhNhan(_n,_q,_y)
7 {
8 hoTen = _n;
9 queQuan = _q;
10 namSinh = _y;
11 tenBenhAn = _b;
12 vienPhi = _p;
13 }
14 int benhAn::tinhTuoi()
15 {
16 int tuoi;
17 tuoi = namHienTai - namSinh;
18 return tuoi;
19 }
20 float benhAn::getVienPhi()
21 {
22 return vienPhi;
23 }
24 ostream& operator<<(ostream& os, const benhAn& b)
25 {
26 os<<"Ho va ten: " << b.hoTen << "\n";
27 os<<"Nam sinh: " << b.namSinh << "\n";
28 os<<"Que quan: " << b.queQuan << "\n";
29 os<<"Ten benh an: " << b.tenBenhAn << "\n";
30 os<<"Vien phi: " << b.vienPhi << "\n";
31 return os;
32 }
33 istream& operator>>(istream& is, benhAn& b)
34 {
35 cout << "Nhap ten: ";
36 getline(is, b.hoTen);
37 cout << "Nhap nam sinh: ";
38 is >> b.namSinh;
39 cout << "Nhap que quan: ";
40 is.ignore();
41 getline(is,b.queQuan);
42 cout << "Nhap ten benh an: ";
43 getline(is,b.tenBenhAn);
44 cout << "Nhap vien phi: ";
45 is >> b.vienPhi;
46 is.ignore();
47 return is;
48
49 }
50

1 trong 1 25/01/2024, 23:05


main.cpp http://localhost:49839/3dfa988c-9ad0-4a2a-86b9-1373e12c594a/

c++\inheritance\co-so-benh-nhan\main.cpp

1 /*
2 Xây dựng lớp cơ sở bệnh nhân gồm
3 ·Cácthuộctính:họtên(string), quêquán(string), nămsinh(int)
4 ·Cáchàm:Tạo,nhập,xuấtthôngtin
5 Xây dựng lớp bệnh án kế thừa public từ lớp bệnh nhân, có thêm:
6 ·Cácthuộctính:tênbệnhán(string), sốtiềnviệnphí(double)
7 ·Cáchàm: Tạo,nhập,xuấtthôngtin, tínhtuổihiệntại.
8 Viết chương trình chính thực hiện:
9 ·NhậpdanhsáchN bệnhán
10 ·Sắpxếpdanhsáchtheotuổigiảmdầncủacácbệnhnhân
11 ·Hiệnra mànhìnhdanhsáchcácbệnhnhâncótuổi<=10
12 Cho biết thông tin củacácbệnh nhân có tiền viện phí cao nhất
13 */
14
15 #include "benhAn.cpp"//dang le chi can benhAn.h
16 #include "benhNhan.cpp"//dang le chi can benhNhan.h
17
18 int main()
19 {
20 /*
21 benhAn a, b;
22 cin >> a >> b;
23 cout << a << "\n" << b << "\n";
24 cout << "Tuoi cua a la: " << a.tinhTuoi();
25 */
26
27 cout << "Nhap so benh an: ";
28 int n;
29 cin >> n;
30 cin.ignore();
31 benhAn *a = new benhAn[n];
32
33 for (int i = 0; i < n; i++)
34 {
35 cout << " Nhap benh an thu " << i + 1 << ": \n";
36 cin >> a[i];
37 }
38
39 //·Sắpxếpdanhsáchtheotuổigiảmdầncủacácbệnhnhân
40 //Dùng selection sort
41
42 for (int j = 0; j < n-1; j++)
43 {
44 int iMax = j;
45 for (int i = j + 1; i < n; i++)
46 {
47 if (a[i].tinhTuoi() > a[iMax].tinhTuoi())
48 {
49 iMax = i;
50 }
51 }
52 if (iMax != j)

1 trong 2 25/01/2024, 23:05


main.cpp http://localhost:49839/3dfa988c-9ad0-4a2a-86b9-1373e12c594a/

53 {
54 swap(a[j], a[iMax]);
55 }
56 }
57 cout << "Sap xep benh an theo tuoi giam dan cua cac benh nhan \n";
58 for (int i = 0; i < n; i++)
59 {
60 cout << " Benh an thu " << i+1 << " la: \n";
61 cout << a[i];
62 }
63
64 //Nhung benh nhan co tuoi duoi 10
65 cout << "\nBenh nhan co tuoi duoi 10: \n";
66 for (int i = 0; i < n; i++)
67 {
68 if (a[i].tinhTuoi() <= 10)
69 {
70 cout << a[i] << "\n";
71 }
72 }
73
74 //Nhung benh nhan co tien vien phi cao nhat
75 cout << "\nNhung benh nhan co vien phi cao nhat: \n" ;
76 float maxMoney = a[0].getVienPhi();
77 for (int i = 0; i < n; i++)
78 {
79 if (a[i].getVienPhi() > maxMoney)
80 maxMoney = a[i].getVienPhi();
81 }
82 for (int i = 0; i < n; i++)
83 {
84 if (a[i].getVienPhi() == maxMoney)
85 cout << a[i] << "\n";
86 }
87
88
89 }

2 trong 2 25/01/2024, 23:05

You might also like