Đáp Án Bài 3.6





Bài 3.6Viết chương trình tạo tệp dữ liệu “LUONG.DAT” chứa bảng lương của n nhân viên và in kết quả ra màn hình.
Bảng lương gồm các cột: Họ tên, Ngày công, Lương chính, Thưởng, Tổng.
Nhập vào: Họ tên, Ngày công, Lương chính.
Tính Thưởng, Tổng theo nguyên tắc:
Thưởng = Lương chính  x  2       nếu Ngày công > 25
Thưởng = Lương chính               nếu Ngày công <= 25
Tổng = Lương chính + Thưởng


//Câu 3.6:
#include <stdio.h>
#include <stdio_ext.h>

int main(void)
{
    struct
    {
        char hoTen[30];
        int ngayCong;
        float luongChinh, thuong, tong;
    }nv;

    FILE *fp;
    int n, i;

    printf("Nhap so luong nhanh vien: ");
    scanf("%d", &n);

    //Tao tep
    fp = fopen("LUONG.DAT","wb");
    if(fp==NULL)
        perror("Khong tao duoc tep LUONG.DAT\n");
    else
    {
        printf("Nhap vao danh sach nhan vien:");
        for(i=0;i<n;i++)
        {
            printf("\nNhap nhan vien thu %d:\n", i+1);
            printf("\tHo ten: ");scanf(" "); gets(nv.hoTen);
            printf("\tNgay cong: ");scanf("%d", &nv.ngayCong);
            printf("\tLuong chinh: ");scanf("%f", &nv.luongChinh);

            //tinh thuong, tong
            if(nv.ngayCong>25)
                nv.thuong = nv.luongChinh*2;
            else
                nv.thuong = nv.luongChinh;
            nv.tong = nv.luongChinh + nv.thuong;

            //Ghi du lieu vao tep
            fwrite(&nv, sizeof(nv), 1, fp);
        }
        fclose(fp);
    }

    //doc tep
    fp = fopen("LUONG.DAT", "rb");
    if(fp==NULL)
        perror("Khong mo duoc tep LUONG.DAT!\n");
    else
    {
        printf("\n\n---------------BANG LUONG DA NHAPla:-----------------\n\n");
        printf("Ho ten                         Ngay cong    Luong chinh    Thuong    Tong\n");
        while(fread(&nv, sizeof(nv), 1, fp)>0)
        printf("%-30s %-12d %-14.2f %-9.2f %-.2f\n",nv.hoTen,nv.ngayCong,nv.luongChinh,nv.thuong,nv.tong);

        fclose(fp);
    }

    return 0;
}
//===dinh nghia ham===
Coding: Hải Dớ



Đăng nhận xét

Cảm Ơn Bạn Đã Để Lại Bình Luận

 

Quản Trị Viên

Lượt xem

Lên Trên