Đề Bài :
Cho tệp Văn bản chứa dữ liệu của n nhân viên . Mỗi nhân viên là một bản ghi gồm các trường : MaNV ( Mã nhân viên ) , HT ( Họ Tên ) , HS ( Hệ số lương ) , LCB ( Lương cơ bản ) và Luong ( Lương = Hệ số lương nhân Lương cơ bản ) . Tệp có cấu trúc như sau :
Dòng đầu chứa số nguyên n . Dòng thứ i+1 ( i = 2,3,4...) chứa Mã nhân viên , Học Tên , HS , LCB .
Hãy đọc danh sách n nhân viên từ tệp . Sau đó :
1 . In ra màn hình danh sách nhân viên gồm 5 trường theo số lương giảm dần .
2 . In 1 nhân viên có số lương cao nhất .
3 . Tìm kiếm nhân viên theo mã nhân viên ( nhập từ bàn phím ) .
4 . In danh sách nhân viên có số lương > 700000000 VND:V
--------------------------------------BG ------------------------------------------
=> Kết Quả CT :
Cho tệp Văn bản chứa dữ liệu của n nhân viên . Mỗi nhân viên là một bản ghi gồm các trường : MaNV ( Mã nhân viên ) , HT ( Họ Tên ) , HS ( Hệ số lương ) , LCB ( Lương cơ bản ) và Luong ( Lương = Hệ số lương nhân Lương cơ bản ) . Tệp có cấu trúc như sau :
Dòng đầu chứa số nguyên n . Dòng thứ i+1 ( i = 2,3,4...) chứa Mã nhân viên , Học Tên , HS , LCB .
Hãy đọc danh sách n nhân viên từ tệp . Sau đó :
1 . In ra màn hình danh sách nhân viên gồm 5 trường theo số lương giảm dần .
2 . In 1 nhân viên có số lương cao nhất .
3 . Tìm kiếm nhân viên theo mã nhân viên ( nhập từ bàn phím ) .
4 . In danh sách nhân viên có số lương > 700000000 VND:V
--------------------------------------BG ------------------------------------------
Mã:
#include<stdio.h>#include<conio.h>
#include<string.h>
#include<stdlib.h>
typedef struct Luong{
char MaNV[10];
char HT[30];
float HS;
int LCB ;
int Luong ; // He so luong , Luong co ban //
};
int main()
{
char Mnvtim[10];
Luong*a , t ;
int n , i, j ;
FILE*f ;
f = fopen("input_ql_luong.txt","rt");
fscanf(f,"%d\n",&n);
a = new Luong[n+1];
for( i = 1 ; i<= n ; i++)
{
fgets(a[i].MaNV,10,f);
j = strlen(a[i].MaNV);
a[i].MaNV[j-1]='\0';
fgets(a[i].HT,30,f);
j = strlen(a[i].HT);
a[i].HT[j-1]='\0';
fscanf(f,"%f\n",&a[i].HS);
fscanf(f,"%d\n",&a[i].LCB);
}
fclose(f);
// Tinh luong NV , sap xep theo chieu giam dan //
for( i = 1 ; i<= n ; i++)
{
a[i].Luong = a[i].HS * a[i].LCB ;
}
for( i =1 ; i<=n ; i++)
for( j = i+1 ; j<= n ; j++)
{
if(a[i].Luong < a[j].Luong)
{
t = a[i] ;
a[i] = a[j] ;
a[j] = t ;
}
}
printf("\n\t ----------- * CHUONG TRINH QUAN LI NHAN VIEN * -----------");
printf("\n\n\t\t\t DANH SACH LUONG NHAN VIEN \n ");
printf("\n STT || MA NV || Ho & Ten || HS luong || Luong CB || Luong ");
for( i = 1 ; i<=n ; i++)
{
printf("\n\n %d%10s%20s %4.2f %15d %15d ",i,a[i].MaNV,a[i].HT,a[i].HS,a[i].LCB,a[i].Luong);
}
// In thong tin nhan vien co so luong cao nhat //
printf("\n\n Nhan vien co so luong cao nhat la : ");
printf("\n\n 1. %10s%20s %4.2f %15d %15d ",a[1].MaNV,a[1].HT,a[1].HS,a[1].LCB,a[1].Luong);
// Tim kiem 1 NV theo Ma Nhan Vien //
printf("\n\n Nhap Ma nhan vien can tim kiem : ");
fflush(stdin);
gets(Mnvtim);
for( i = 1 ; i<= n ; i++)
{
if ( strcmp(a[i].MaNV,Mnvtim)== 0)
{
printf("\n\n Ket qua tim la : %10s %30s %15d ",a[i].MaNV,a[i].HT,a[i].Luong);
break ;
}
}
if( i > n )
printf("\n\n Khong tim thay nhan vien tren ! ");
// In cac NV co so luong > 7000000 //
printf("\n\n Danh sach nhan vien co so luong > 7 tr la : ");
for( i= 1 ; i<= n ; i++)
{
if( a[i].Luong > 7000000)
printf("\n\n%d %10s %30s %15d ",i,a[i].MaNV,a[i].HT,a[i].Luong);
}
}

Sửa lần cuối bởi điều hành viên: