Đáp Án Bài 5.6





Bài 5.6: Viết chương trình tạo tệp dữ liệu “SACH.DAT” chứa bảng danh mục của n quyển sách và in kết quả ra màn hình. Bảng danh mục sách bao gồm các cột:
Tên, Năm, Tác giả, Giá, Loại.
Nhập vào: Tên, Năm, Tác giả, Giá.
Tính Loại theo công thức sau:
                        Loại = Cao       nếu     Tiền  >  50000
Loại = “TB”         nếu     20000<= Tiền <= 50000
Loại = “THAP”    nếu     Tiền < 20000.


//Câu 5.6:
#include <stdio.h>
#include <stdio_ext.h>
int main(void)
{
    struct
    {
        char tenSach[30], tacGia[30], *loai;
        int nam;
        float gia;
    }sach;

    FILE *fp;
    int n, i;

    //Tao tep
    fp = fopen("SACH.DAT","wb");
    if(fp==NULL)
        perror("Khong tao duoc tep SACH.DAT\n");
    else
    {
        printf("Nhap so luong sach: ");
        scanf("%d", &n);

        printf("Nhap vao danh muc sach:");
        for(i=0;i<n;i++)
        {
            printf("\nNhap danh muc sahc thu %d:\n", i+1);
            printf("\tTen sach: ");__fpurge(stdin); gets(sach.tenSach);
            printf("\tNam(yyyy): ");scanf("%d", &sach.nam);
            printf("\tTac gia: "); __fpurge(stdin); gets(sach.tacGia);
            printf("\tGia: ");scanf("%f", &sach.gia);

            //tinh loai
            if(sach.gia>50000)
                sach.loai = "CAO";
            else if(sach.gia>=20000)
                sach.loai = "TB";
            else
                sach.loai ="THAP";

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

    //doc tep
    fp = fopen("SACH.DAT","rb");
    if(fp==NULL)
        perror("Khong mo duoc tep SACH.DAT!\n");
    else
    {
        printf("\n\n---------------BANG DANH MUC SACH-----------------\n\n");
        printf("Ten sach                       Nam  Tac gia                        Gia       Loai\n");
        while(fread(&sach, sizeof(sach), 1, fp)>0)
        printf("%-30s %-4d %-30s %-9.2f %-s\n",sach.tenSach,sach.nam, sach.tacGia,sach.gia, sach.loai);

        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