01/10/2018, 00:57

Bài tập C về thông tin nhân viên

Viết các CTC thực hiện công việc sau:
o Nhập danh sách nhân viên gồm các thông tin: Mã nhân viên, Họ tên, ngày sinh, giới tính, hệ số lương;
o Hiện danh sách ra màn hình;
o Sắp xếp danh sách nhân viên theo thứ tự giảm dần hệ số lương và ghi vào file NHANVIEN.DAT;
o Cập nhật hệ số lương của nhân viên có mã là x được nhập từ bàn phím.
Áp dụng CTC trên

#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
struct NhanVien
{
	int MaNhanVien;
	char HoTen[50],NgaySinh[10],GioiTinh[5];
	float HsLuong;
};
FILE *f;
void Nhap(NhanVien a[], int sl)
{
	int i;
	for(i=0;i<sl; i++)
	{
		printf("Nhap ma nhan vien: ");
		scanf("%d",&a[i].MaNhanVien);
		printf("Ho va ten: ");
		fflush(stdin);gets(a[i].HoTen);
		printf("Ngay sinh: ");
		fflush(stdin);gets(a[i].NgaySinh);
		printf("Gioi tinh (nam/nu): ");
		fflush(stdin);gets(a[i].GioiTinh);
		printf("He so luong: ");
		scanf("%f",&a[i].HsLuong);
	}
}
void Xuat(NhanVien a[], int sl)
{
	int i;
	printf("
----------------THONG TIN NHAN VIEN--------------------
");
	printf("%5s%20s%12s%5s%15s", "MaNV","HoTen","NS","GT","HsLuong");
	for(i=0;i<sl;i++)
	{
		printf("
%5d%20s%12s%5s%15.2f",a[i].MaNhanVien,a[i].HoTen,a[i].NgaySinh,a[i].GioiTinh,a[i].HsLuong);
	}
}
void SapXep( NhanVien a[], int sl)
{
    int i,j;
    for(i=0; i<sl-1; i++)
        for(j=i+1; j<sl; j++)
        if(a[i].HsLuong < a[j].HsLuong)
        {
            NhanVien tam = a[i];
            a[i]= a[j];
            a[j]= tam;
        }
    f=fopen("NHANVIEN.DAT","rt");
    for(i = 0 ; i < sl; i ++)
        {
            fprintf(f,"
%5d%20s%12s%5s%15.2f",a[i].MaNhanVien,a[i].HoTen,a[i].NgaySinh,a[i].GioiTinh,a[i].HsLuong);
        }
        fclose(f);
}
int main()
{
	int n;
	NhanVien nv[100];
	printf("Nhap so nhan vien: ");
	scanf("%d",&n);
	Nhap(nv,n);
	Xuat(nv,n);
	SapXep(nv,n);
	Xuat(nv,n);
	getch();
	return 0;
}

mong mọi người xem giúp ý cuối

ptit viết 03:02 ngày 01/10/2018

#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
struct NhanVien
{
int MaNhanVien;
char HoTen[50],NgaySinh[10],GioiTinh[5];
float HsLuong;
};
FILE *f;
void Nhap(NhanVien a[], int sl)
{
int i;
for(i=0;i<sl; i++)
{
printf(“Nhap ma nhan vien: “);
scanf(”%d”,&a[i].MaNhanVien);
printf(“Ho va ten: “);
fflush(stdin);gets(a[i].HoTen);
printf(“Ngay sinh: “);
fflush(stdin);gets(a[i].NgaySinh);
printf(“Gioi tinh (nam/nu): “);
fflush(stdin);gets(a[i].GioiTinh);
printf(“He so luong: “);
scanf(”%f”,&a[i].HsLuong);
}
}
void Xuat(NhanVien a[], int sl)
{
int i;
printf(”\n----------------THONG TIN NHAN VIEN--------------------\n”);
printf(”%5s%20s%12s%5s%15s”, “MaNV”,“HoTen”,“NS”,“GT”,“HsLuong”);
for(i=0;i<sl;i++)
{
printf(”\n%5d%20s%12s%5s%15.2f”,a[i].MaNhanVien,a[i].HoTen,a[i].NgaySinh,a[i].GioiTinh,a[i].HsLuong);
}
}
void SapXep( NhanVien a[], int sl)
{
int i,j;
for(i=0; i<sl-1; i++)
for(j=i+1; j<sl; j++)
if(a[i].HsLuong < a[j].HsLuong)
{
NhanVien tam = a[i];
a[i]= a[j];
a[j]= tam;
}
f=fopen(“NHANVIEN.DAT”,“rt”);
for(i = 0 ; i < sl; i ++)
{
fprintf(f,"\n%5d%20s%12s%5s%15.2f",a[i].MaNhanVien,a[i].HoTen,a[i].NgaySinh,a[i].GioiTinh,a[i].HsLuong);
}
fclose(f);
}
int capnhap(NhanVien a[],int n){
float hs,ma;
printf(“nhap ma “); scanf(”%f”,&ma);
for(int i=0;i<n;i++)
{
if(a[i].MaNhanVien== ma){
printf(“nhap hs luong moi : “); scanf(”%f”,&hs);
a[i].HsLuong = hs;
system(“cls”);
return 1;
}
}
}
int main()
{
int n;
NhanVien nv[100];
printf(“Nhap so nhan vien: “);
scanf(”%d”,&n);
Nhap(nv,n);
SapXep(nv,n);
Xuat(nv,n);
printf("\n\n");
capnhap(nv,n);
Xuat(nv,n);
getch();
return 0;
}
cai bài này thiếu vào ra fille mk quên mất bên C thế nào rùi

Bài liên quan
0