Đáp Án Bài 4.6





Bài 4.6Viết chương trình tạo tệp dữ liệu “HANG.DAT” chứa bảng Thống kê hàng nhập của n mặt hàng và in kết quả ra màn hình. Bảng Thống kê hàng nhập gồm các cột:
Tên, Số lượng, Đơn giá, Tiền, Loại.
Nhập vào: Tên, Số lượng, Đơn giá.
Tính Tiền, Loại:        Tiền = Số lượng x Đơn giá.
Loại = “Cao”       nếu     Tiền  >   500000.
Loại = “THAP”   nếu     Tiền  <= 500000.


//Câu 4.6:
#include <stdio.h>
#include <stdio_ext.h>
int main(void)
{
    struct
    {
        char tenMH[30], loai;
        int soLuong;
        float donGia, tien;
    }mh;

    FILE *fp;
    int n, i;

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

        printf("Nhap vao danh sach mat hang:");
        for(i=0;i<n;i++)
        {
            printf("\nNhap mat hang thu %d:\n", i+1);
            printf("\tTen mat hang: ");__fpurge(stdin); gets(mh.tenMH);
            printf("\tSo luong: ");scanf("%d", &mh.soLuong);
            printf("\tDon gia: ");scanf("%f", &mh.donGia);

            //tinh tien, loai
            mh.tien = mh.soLuong*mh.donGia;

            if(mh.tien>500000)
                mh.loai = "CAO";
            else
                mh.loai = "THAP";

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

    //doc tep
    fp = fopen("HANG.DAT","rb");
    if(fp==NULL)
        perror("Khong mo duoc tep HANG.DAT!\n");
    else
    {
        printf("\n\n---------------BANG THONG KE HANG NHAP-----------------\n\n");
        printf("Ten mat hang                   So luong  Don gia      Tien      Loai\n");
        while(fread(&mh, sizeof(mh), 1, fp)>0)
        printf("%-30s %-9d %-12.2f %-9.2f %-s\n",mh.tenMH,mh.soLuong, mh.donGia, mh.tien, mh.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