Chào mọi người. Em có 1 bài tập mà chưa tìm được cách giải quyết. Mong được mọi người chỉ giáo.
a) Xây dựng lớp các nhân viên gồm các thuộc tính dữ liệu họ tên, hệ số lương, phụ cấp với các phương thức nhập, xuất và tính lương (lương = hệ số lương * 1310 + phụ cấp). Kế thừa lớp nhân viên xây dựng lớp cán bộ có thêm 1 thuộc tính hệ số chức vụ với các phương thức như lớp nhân viên biết lương cán bộ = (hệ số lương + hệ số chức vụ) * 1310 + phụ cấp.
b) Viết hàm main nhập vào một mảng n Nhân viên và cán bộ sau đó:
- In ra danh sách vừa nhập.
- In ra danh sách tối đa 10% nhân viên hoặc có thu nhập thấp nhất và có hệ số lương nhỏ hơn 3.0 để nhận trợ cấp khó khăn cuối năm.
Em hỏi về ý 2 của phần b. Em chưa có hướng đi.
#include<iostream>
#include<math.h>
using namespace std;
class NV{
string ten;
float hsl;
int pc;
public:
NV(){
ten=" ";
hsl=0.0;
pc=0;
}
virtual float lg(){
return (hsl*1310+pc);
}
virtual void nhap();
virtual void in();
int min(int a[], int n){
int min=a[i];
for(i=1;i<n;i++){
if(a[min].lg() > a[i].lg()){
min=a[i];
}
}
return min;
}
};
void NV::nhap(){
cout << "Nhap ten nv: "; cin >> ten;
cout << "Nhap he so luong : "; cin >> hsl;
cout << "Phu cap: "; cin >> pc;
}
void NV::in(){
cout << ten << " " << hsl << " " << pc << " " << NV::lg() << endl;
}
int NV::vitri()
{
int x=0;
float min=ds[0].dtb();
for(int i=1;i<spt;i++)
if (max < ds[i].dtb()) x=i;
return (int)x+1;
}
class CB : public NV{
float hscv;
public:
CB(){
hscv=0.0;
}
float lg(){
return (NV::lg() + hscv*1310);
}
void nhap();
void in();
};
void CB::nhap(){
NV::nhap();
cout << "Nhap he so chuc vu: "; cin >> hscv;
}
void CB::in(){
NV::in();
cout << "he so chuc vu: "; cout << hscv << endl;
}
int main(){
NV a[100];
CB b[100];
int n,i;
cout << "Nhap vao so nhan vien: ";
cin >> n;
for(i=0;i<n;i++){
a[i].nhap();
b[i].nhap();
}
cout << "Danh sach vua nhap: \n";
for(i=0;i<n;i++){
a[i].in();
b[i].in();
}
int t=NV::min(a,n);
}