em cho mảng làm tham số ấy &nhanvien[]
em tham khảo bài này
// Nguyen Huu Ca
// Lop DCT-1081
#include <stdio.h>
#include <string.h>
#include <conio.h>
typedef struct NhanVien
{
char mnv[8];
char hoTen[20];
int namSinh;
char phongBan[10];
int luongCoBan;
int thuong;
int thucLanh;
};
typedef struct list
{
NhanVien nv[100];
int sl;
};
void Nhap(list &l);
void Xuat(list l);
void XuatNhanVien(NhanVien a);
int TongThucLanh(list l);
void ThucLanh(list &l);
void NhanVienLuongThap(list l);
int DemNhanvien(list l);
int MinLuong(list l);
void SapXep(list &l);
void CapNhatLuong(list &l);
void HoanVi(NhanVien &a,NhanVien &b);
main()
{
list l;
Nhap(l);
printf("--DANH SACH NHAN VIEN DA NHAP--\n\n");
Xuat(l);
printf("nhan vien luong thap:\n\n");
NhanVienLuongThap(l);
printf("tong tien phai tra cho nhan vien:%d\n\n",TongThucLanh(l));
printf("so luong nhan vien co luong >12000 la %d\n\n",DemNhanvien(l));
printf("--CAP NHAP LUONG TANG 5%%--\n\n");
CapNhatLuong(l);
Xuat(l);
printf("--SAP XEP--\n\n");
SapXep(l);
Xuat(l);
getch();
}
int TongThucLanh(list l)
{
int i;
int tongTien=0;
for(i=0;i<l.sl;i++)
tongTien=tongTien+l.nv[i].thucLanh;
return tongTien;
}
void ThucLanh(list &l)
{
int i;
for(i=0;i<l.sl;i++)
l.nv[i].thucLanh=l.nv[i].luongCoBan+l.nv[i].thuong;
}
int MinLuong(list l)
{
int i;
int min=l.nv[0].luongCoBan;
for(i=1;i<l.sl;i++)
if(l.nv[i].luongCoBan<min)
min=l.nv[i].luongCoBan;
return min;
}
void XuatNhanVien(NhanVien a)
{
printf("%-6s %-10s %-10d %-8s %-8d %-8d %8d",a.mnv,a.hoTen,a.namSinh,a.phongBan,a.luongCoBan,a.thuong,a.thucLanh) ;
printf("\n\n");
}
void NhanVienLuongThap(list l)
{
int i;
int kq=MinLuong(l);
printf("MNV-----HT---------NS-------PB--------LCB-------Thuong---------TL\n\n");
for(i=0;i<l.sl;i++)
if(l.nv[i].luongCoBan==kq)
XuatNhanVien(l.nv[i]);
}
int DemNhanvien(list l)
{
int dem=0;
int i;
for(i=0;i<l.sl;i++)
if(l.nv[i].thuong>12000)
dem++;
return dem;
}
void HoanVi(NhanVien &a,NhanVien &b)
{
NhanVien tam;
tam=a;
a=b;
b=tam;
}
void SapXep(list &l)
{
int i,j;
for(i=0;i<l.sl-1;i++)
for(j=i+1;j<l.sl;j++)
if(stricmp(l.nv[i].phongBan,l.nv[j].phongBan)>0)
HoanVi(l.nv[i],l.nv[j]);
else
if(stricmp(l.nv[i].phongBan,l.nv[j].phongBan)==0)
if(stricmp(l.nv[i].mnv,l.nv[j].mnv)<0)
HoanVi(l.nv[i],l.nv[j]);
}
void CapNhatLuong(list &l)
{
int i;
for(i=0;i<l.sl;i++)
l.nv[i].luongCoBan=(int)(l.nv[i].luongCoBan*(1+0.05));
ThucLanh(l);
}
void Nhap(list &l)
{
int i;
printf("nhap so luong:");
scanf("%d",&l.sl);
fflush(stdin);
for(i=0;i<l.sl;i++)
{
printf("nhap ma nhan vien:");
gets(l.nv[i].mnv);
printf("nhap ho ten:");
gets(l.nv[i].hoTen);
printf("nhap phong ban:");
gets(l.nv[i].phongBan);
fflush(stdin);
printf("nam sinh:");
scanf("%d",&l.nv[i].namSinh);
printf("luong co bang:");
scanf("%d",&l.nv[i].luongCoBan);
printf("thuong :");
scanf("%d",&l.nv[i].thuong);
fflush(stdin);
}
ThucLanh(l);
printf("\n");
}
void Xuat(list l)
{
int i;
printf("MNV-----HT---------NS-------PB--------LCB-------Thuong---------TL\n\n");
for(i=0;i<l.sl;i++)
XuatNhanVien(l.nv[i]);
printf("\n");
}