You are on page 1of 25

Khoa CNTT LTHĐT

Chƣơng 14
ỨNG DỤNG ĐA XẠ

ThS. Nguyễn Tấn


Chương 14 - 1
Trần Minh Khang
Khoa CNTT LTHĐT

2. BÀI TOÁN
TÍNH TIỀN LƢƠNG

 Bài toán: Công ty ABC là công ty sản xuất


kinh doanh thú nhồi bông. Công ty có nhiều
nhân viên làm việc trong ba bộ phận khác
nhau: bộ phận quản lý, bộ phận sản xuất, bộ
phận văn phòng. Việc tính lương cho nhân
viên dựa vào các yếu tố sau:
 Đối với nhân viên văn phòng
Lương = Lương Cơ Bản + Số ngày làm việc
*100.000 + Trợ Cấp
 Đối với nhân viên sản xuất
Lương = Lương Cơ Bản + Số Sản Phẩm * 2.000
 Đối với nhân viên quản lý
Lương = Lương Cơ Bản* Hệ số chức vụ +
Thưởng.

ThS. Nguyễn Tấn


Chương 14 - 2
Trần Minh Khang
Khoa CNTT LTHĐT

2. BÀI TOÁN
TÍNH TIỀN LƢƠNG

 Ngoài ra công ty cần quản lý các thông tin


về nhân viên của mình như: họ tên, ngày
sinh và các thông số trên để tính lương
cho từng nhân viên trong công ty.
 Yêu cầu: Thiết kế các lớp thích hợp để thực
hiện các yêu cầu sau:
 Nhập thông tin của các nhân viên để phục
vụ cho việc tính lương.
 Thực hiện việc tính lương cho từng nhân
viên.
 Xuất thông tin của các nhân viên.
 Tính tổng lương của công ty.
 Tìm kiếm một nhân viên theo họ tên.

ThS. Nguyễn Tấn


Chương 14 - 3
Trần Minh Khang
Khoa CNTT LTHĐT

2. BÀI TOÁN
TÍNH TIỀN LƢƠNG

 Sơ đồ lớp sơ bộ


CCongTy CNhanVien

CSanXuat CVanPhong CQuanLy

ThS. Nguyễn Tấn


Chương 14 - 4
Trần Minh Khang
Khoa CNTT LTHĐT
HoTen
 Sơ đồ lớp chi tiết NgaySinh
Luong
lcb
CCongTy CNhanVien void Nhap()
n void TinhLuong()
CNhanVien *ds [100] void Xuat()
void Nhap() float LayLuong()
void TinhLuong() CNhanVien*TimKiem
void Xuat() (char[]);
float TongLuong()
CNhanVien*TimKiem
(char[]);

CSanXuat CVanPhong CQuanLy hscv


Thuong
ssp snlv
TroCap

void Nhap() void Nhap()


void TinhLuong() void TinhLuong()
void Xuat() void Xuat()
float LayLuong() float LayLuong()
CNhanVien*TimKiem CNhanVien*TimKiem
(char[]); (char[]);

ThS. Nguyễn Tấn


Chương 14 - 5
Trần Minh Khang
Khoa CNTT LTHĐT

2. BÀI TOÁN
TÍNH TIỀN LƢƠNG

 Khai báo lớp


1. class CNhanVien
2. {
3. protected:
4. char hoten[31];
5. CNgay ngaysinh;
6. float luong;
7. float lcb;
8. public:
9. virtual void Nhap();
10. virtual void TinhLuong();
11. virtual void Xuat();
12. virtual float LayLuong();
13. virtual CNhanVien*TimKiem
(char []);
14. };

ThS. Nguyễn Tấn


Chương 14 - 6
Trần Minh Khang
Khoa CNTT LTHĐT

2. BÀI TOÁN
TÍNH TIỀN LƢƠNG

 Khai báo lớp


1. class CSanXuat:public CNhanVien
2. {
3. protected:
4. int ssp;
5. public:
6. void Nhap();
7. void TinhLuong();
8. void Xuat();
9. float LayLuong();
10. CNhanVien*TimKiem
(char []);
11. };

ThS. Nguyễn Tấn


Chương 14 - 7
Trần Minh Khang
Khoa CNTT LTHĐT

2. BÀI TOÁN
TÍNH TIỀN LƢƠNG

 Khai báo lớp


1. class CVanPhong:public CNhanVien
2. {
3. protected:
4. int snlv;
5. float trocap;
6. public:
7. void Nhap();
8. void TinhLuong();
9. void Xuat();
10. float LayLuong();
11. CNhanVien*TimKiem
(char []);
12. };

ThS. Nguyễn Tấn


Chương 14 - 8
Trần Minh Khang
Khoa CNTT LTHĐT

2. BÀI TOÁN
TÍNH TIỀN LƢƠNG

 Khai báo lớp


1. class CQuanLy:public CNhanVien
2. {
3. protected:
4. float hscv;
5. float thuong;
6. public:
7. void Nhap();
8. void TinhLuong();
9. void Xuat();
10. float LayLuong();
11. CNhanVien*TimKiem
(char []);
12. };

ThS. Nguyễn Tấn


Chương 14 - 9
Trần Minh Khang
Khoa CNTT LTHĐT

2. BÀI TOÁN
TÍNH TIỀN LƢƠNG

 Khai báo lớp


1. class CongTy
2. {
3. protected:
4. int n;
5. CNhanVien *ds[100];
6. public:
7. void Nhap();
8. void TinhLuong();
9. void Xuat();
10. float TongLuong();
11. CNhanVien*TimKiem
(char []);
12. };

ThS. Nguyễn Tấn


Chương 14 - 10
Trần Minh Khang
Khoa CNTT LTHĐT

2. BÀI TOÁN
TÍNH TIỀN LƢƠNG

1. float CNhanVien::LayLuong()
2. {
3. return luong;
4. }

ThS. Nguyễn Tấn


Chương 14 - 11
Trần Minh Khang
Khoa CNTT LTHĐT

2. BÀI TOÁN
TÍNH TIỀN LƢƠNG

1. float CSanXuat::LayLuong()
2. {
3. return luong;
4. }

ThS. Nguyễn Tấn


Chương 14 - 12
Trần Minh Khang
Khoa CNTT LTHĐT

2. BÀI TOÁN
TÍNH TIỀN LƢƠNG

1. float CQuanLy:LayLuong()
2. {
3. return luong;
4. }

ThS. Nguyễn Tấn


Chương 14 - 13
Trần Minh Khang
Khoa CNTT LTHĐT

2. BÀI TOÁN
TÍNH TIỀN LƢƠNG

1. float CVanPhong::LayLuong()
2. {
3. return luong;
4. }

ThS. Nguyễn Tấn


Chương 14 - 14
Trần Minh Khang
Khoa CNTT LTHĐT

2. BÀI TOÁN
TÍNH TIỀN LƢƠNG

1. CNhanVien* CNhanVien::
TimKiem(char ht[])
2. {
3. if(strcmp(hoten,ht)==0)
4. return this;
5. return NULL;
6. }

ThS. Nguyễn Tấn


Chương 14 - 15
Trần Minh Khang
Khoa CNTT LTHĐT

2. BÀI TOÁN
TÍNH TIỀN LƢƠNG

1. CNhanVien* CSanXuat::
TimKiem(char ht[])
2. {
3. if(strcmp(hoten,ht)==0)
4. return this;
5. return NULL;
6. }

ThS. Nguyễn Tấn


Chương 14 - 16
Trần Minh Khang
Khoa CNTT LTHĐT

2. BÀI TOÁN
TÍNH TIỀN LƢƠNG

1. CNhanVien* CVanPhong::
TimKiem(char ht[])
2. {
3. if(strcmp(hoten,ht)==0)
4. return this;
5. return NULL;
6. }

ThS. Nguyễn Tấn


Chương 14 - 17
Trần Minh Khang
Khoa CNTT LTHĐT

2. BÀI TOÁN
TÍNH TIỀN LƢƠNG

1. CNhanVien* CQuanLy::
TimKiem(char ht[])
2. {
3. if(strcmp(hoten,ht)==0)
4. return this;
5. return NULL;
6. }

ThS. Nguyễn Tấn


Chương 14 - 18
Trần Minh Khang
Khoa CNTT LTHĐT

2. BÀI TOÁN
TÍNH TIỀN LƢƠNG

1. CNhanVien* CCongTy::
TimKiem(char ht[])
2. {
3. for(int i=0;i<n;i++)
4. {
5. CNhanVien *kq;
6. kq=ds[i]->timkiem(ht);
7. if(kq!=NULL)
8. return kq;
9. }
10. return NULL;
11. }

ThS. Nguyễn Tấn


Chương 14 - 19
Trần Minh Khang
Khoa CNTT LTHĐT

2. BÀI TOÁN
TÍNH TIỀN LƢƠNG

1. float CCongTy::TongLuong()
2. {
3. float s =0;
4. for(int i=0;i<n;i++)
5. s=s+ds[i]->LayLuong();
6. return s;
7. }

ThS. Nguyễn Tấn


Chương 14 - 20
Trần Minh Khang
Khoa CNTT LTHĐT

2. BÀI TOÁN
TÍNH TIỀN LƢƠNG

1. void CNhanVien::TinhLuong()
2. {
3. return ;
4. }

ThS. Nguyễn Tấn


Chương 14 - 21
Trần Minh Khang
Khoa CNTT LTHĐT

2. BÀI TOÁN
TÍNH TIỀN LƢƠNG

1. void CSanXuat::TinhLuong()
2. {
3. luong = lcb+ssp*2000;
4. }

ThS. Nguyễn Tấn


Chương 14 - 22
Trần Minh Khang
Khoa CNTT LTHĐT

2. BÀI TOÁN
TÍNH TIỀN LƢƠNG

1. void CVanPhong::TinhLuong()
2. {
3. luong=lcb+sblv*100000+TroCap;

4. }

ThS. Nguyễn Tấn


Chương 14 - 23
Trần Minh Khang
Khoa CNTT LTHĐT

2. BÀI TOÁN
TÍNH TIỀN LƢƠNG

1. void CQuanLy::TinhLuong()
2. {
3. luong=lcb*hscv+thuong;
4. }

ThS. Nguyễn Tấn


Chương 14 - 24
Trần Minh Khang
Khoa CNTT LTHĐT

2. BÀI TOÁN
TÍNH TIỀN LƢƠNG

1. void CCongTy::TinhLuong()
2. {
3. for(int i=0;i<n;i++)
4. ds[i]->TinhLuong();
5. }

ThS. Nguyễn Tấn


Chương 14 - 25
Trần Minh Khang

You might also like