Bài giảng Lý thuyết hệ điều hành - Chương 14: Ứng dụng đa xạ - Nguyễn Tấn
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.
Chương 14 - 1
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
Chƣơng 14
ỨNG DỤNG ĐA XẠ
Chương 14 - 2
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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.
Chương 14 - 3
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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.
Chương 14 - 4
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
2. BÀI TOÁN
TÍNH TIỀN LƢƠNG
Sơ đồ lớp sơ bộ
CCongTy
CSanXuat CVanPhong CQuanLy
CNhanVien
Có
Chương 14 - 5
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
Sơ đồ lớp chi tiết
CCongTy
CSanXuat CVanPhong CQuanLy
CNhanVien
HoTen
NgaySinh
Luong
lcb
ssp snlv
TroCap
hscv
Thuong
n
CNhanVien *ds [100]
void Nhap()
void TinhLuong()
void Xuat()
float LayLuong()
CNhanVien*TimKiem
(char[]);
void Nhap()
void TinhLuong()
void Xuat()
float TongLuong()
CNhanVien*TimKiem
(char[]);
void Nhap()
void TinhLuong()
void Xuat()
float LayLuong()
CNhanVien*TimKiem
(char[]);
void Nhap()
void TinhLuong()
void Xuat()
float LayLuong()
CNhanVien*TimKiem
(char[]);
Chương 14 - 6
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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.};
Chương 14 - 7
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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.};
Chương 14 - 8
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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.};
Chương 14 - 9
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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.};
Chương 14 - 10
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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.};
Chương 14 - 11
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
2. BÀI TOÁN
TÍNH TIỀN LƢƠNG
1. float CNhanVien::LayLuong()
2. {
3. return luong;
4. }
Chương 14 - 12
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
2. BÀI TOÁN
TÍNH TIỀN LƢƠNG
1. float CSanXuat::LayLuong()
2. {
3. return luong;
4. }
Chương 14 - 13
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
2. BÀI TOÁN
TÍNH TIỀN LƢƠNG
1. float CQuanLy:LayLuong()
2. {
3. return luong;
4. }
Chương 14 - 14
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
2. BÀI TOÁN
TÍNH TIỀN LƢƠNG
1. float CVanPhong::LayLuong()
2. {
3. return luong;
4. }
Chương 14 - 15
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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. }
Chương 14 - 16
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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. }
Chương 14 - 17
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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. }
Chương 14 - 18
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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. }
Chương 14 - 19
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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.}
Chương 14 - 20
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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. }
Chương 14 - 21
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
2. BÀI TOÁN
TÍNH TIỀN LƢƠNG
1. void CNhanVien::TinhLuong()
2. {
3. return ;
4. }
Chương 14 - 22
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
2. BÀI TOÁN
TÍNH TIỀN LƢƠNG
1. void CSanXuat::TinhLuong()
2. {
3. luong = lcb+ssp*2000;
4. }
Chương 14 - 23
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
2. BÀI TOÁN
TÍNH TIỀN LƢƠNG
1. void CVanPhong::TinhLuong()
2. {
3. luong=lcb+sblv*100000+TroCap;
4. }
Chương 14 - 24
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
2. BÀI TOÁN
TÍNH TIỀN LƢƠNG
1. void CQuanLy::TinhLuong()
2. {
3. luong=lcb*hscv+thuong;
4. }
Chương 14 - 25
LTHĐTKhoa CNTT
ThS. Nguyễn Tấn
Trần Minh Khang
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. }
File đính kèm:
bai_giang_ly_thuyet_he_dieu_hanh_chuong_14_ung_dung_da_xa_ng.pdf

