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