<< Chapter < Page Chapter >> Page >

3: #include<iomanip.h>

4: #include<string.h>

5: #include "person.h"

6:

7: Nguoi::Nguoi()

8: {

9: strcpy(HoTen,"");

10: strcpy(MaSo,"");

11: Luong=0;

12: }

13:

14: void Nguoi::Xuat() const

15: {

16: cout<<"Ma so:"<<MaSo<<",Ho va ten:"<<HoTen

17:       #9;<<",Luong:"<<setiosflags(ios::fixed)<<setprecision(0)<<Luong<<endl;

18: }

19:

20: void Nguoi::Nhap()

21: {

22: cout<<"Ma so:";

23: cin>>MaSo;

24: cin.ignore();

25: cout<<"Ho va ten:";

26: cin.getline(HoTen,MAX_TEN);

27: }

File STAFF.H

1: //STAFF.H

2 Định nghĩa lớp BienChe

3: #ifndef STAFF_H

4: #define STAFF_H

5:

5: #include "person.h"

6:

7: class BienChe: public Nguoi

8: {

9: protected:

10: float HeSoLuong;

11: float HeSoPhuCap;

12: public:

13: BienChe();

14: virtual void TinhLuong();

15: virtual void Nhap();

16: };

17:

18: #endif

File STAFF.CPP

1: //STAFF.CPP

2: Định nghĩa hàm thành viên cho lớp BienChe

3: #include "staff.h"

4:

5: BienChe::BienChe()

6: {

7: HeSoLuong=HeSoPhuCap=0;

8: }

9:

10: void BienChe::Nhap()

11: {

12: Nguoi::Nhap();

13: cout<<"He so luong:";

14: cin>>HeSoLuong;

15: cout<<"He so phu cap chu vu:";

16: cin>>HeSoPhuCap;

17: }

18:

19: void BienChe::TinhLuong()

20: {

21: Luong=MUC_CO_BAN*(1.0+HeSoLuong+HeSoPhuCap);

22: }

File CONTRACT.H

1: //CONTRACT.H

2: Định nghĩa lớp HopDong

3: #ifndef CONTRACT_H

4: #define CONTRACT_H

5:

6: #include "person.h"

7:

8: class HopDong : public Nguoi

9: {

10: protected:

11: float TienCong;

12: float NgayCong;

13: float HeSoVuotGio;

14: public:

15: HopDong();

16: virtual void TinhLuong();

17: virtual void Nhap();

18: };

19:

20: #endif

File CONTRACT.CPP:

1: //CONTRACT.CPP

2: Định nghĩa hàm thành viên cho lớp HopDong

3: #include "contract.h"

4:

5: HopDong::HopDong()

6: {

7: TienCong=NgayCong=HeSoVuotGio=0;

8: }

9:

10: void HopDong::Nhap()

11: {

12: Nguoi::Nhap();

13: cout<<"Tien cong:";

14: cin>>TienCong;

15: cout<<"Ngay cong:";

16: cin>>NgayCong;

17: cout<<"He so vuot gio:";

18: cin>>HeSoVuotGio;

19: }

20:

21: void HopDong::TinhLuong()

22: {

23: Luong=TienCong*NgayCong*(1+HeSoVuotGio);

24: }

File CT7_1.CPP:

1: //CT7_1.CPP

2: //Chương trình 7.1

3: #include<iostream.h>

4: #include<ctype.h>

5: #include "person.h"

6: #include "staff.h"

7: #include "contract.h"

8:

9: int main()

10: {

11: Nguoi *Ng[100];

12: int N=0;

13: char Chon,Loai;

14: do

15: {

16: cout<<"Bien che hay Hop dong (B/H)? ";

17: cin>>Loai;

18: Loai=toupper(Loai);

19: if (Loai=='B')

20: Ng[N]=new BienChe;

21: else

22: Ng[N]=new HopDong;

23: Ng[N++]->Nhap();

24: cout<<"Tiep tuc (C/K)? ";

25: cin>>Chon;

26: Chon=toupper(Chon);

27: if ((N==100)||(Chon=='K'))

28: break;

29: }

30: while (1);

31: for(int I=0;I<N;++I)

32: {

33: Ng[I]->TinhLuong();

34: Ng[I]->Xuat();

35: }

36: return 0;

37: }

Chúng ta chạy ví dụ 7.1 , kết quả ở hình 7.4

Hình 7.4: Kết quả của ví dụ 7.1

Ví dụ 7.2: Giả sử cuối năm học cần trao giải thưởng cho các sinh viên xuất sắc và các giảng viên có nhiều công trình khoa học được công bố trên tạp chí. Các lớp trong cây phả hệ như hình 7.5: lớp Nguoi để quản lý hồ sơ cá nhân, lớp SinhVien quản lý về sinh viên và lớp GiangVien quản lý giảng viên.

Lớp Nguoi:

Dữ liệu họ và tên.

Phương thức kiểm tra khả năng được khen thưởng. Đây là phương thức thuần ảo.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Lập trình hướng đối tượng. OpenStax CNX. Jul 29, 2009 Download for free at http://cnx.org/content/col10794/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Lập trình hướng đối tượng' conversation and receive update notifications?

Ask