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ớ