要求:
从文件IN.dat读数据到一个数据结构数组
IN.dat文件如下:
代码如下:请填写read()函数内容,
#include<stdio.h>
#include<stdlib.h>
#define SIZE 100
//销售记录
struct sellrecord
{
char PID[4]; /*产品代码*/
char Name[10]; /*产品名称*/
float Price; /*单价*/
int Num; /*数量*/
float sum ; /*金额*/
};
//定义结构体数组 100条销售记录
struct sellrecord recod[SIZE] ;
//系统菜单
void menu()
{
printf("\n");
printf("\n");
printf("*************商业管理系统客户端************************\n");
printf("\n");
printf(" 功能菜单:\n");
printf("\n");
printf(" S.查看销售记录\n");
printf(" A.销售记录排序\n");
printf(" B.销售记录统计(价格、销售数量、销售金额)\n");
printf(" C.计算总销售金额\n");
printf(" D.形成简单的报表\n");
printf(" E.输出报表到控制台和文件OUT.DAT中\n");
printf(" F.传送报表到服务器端\n");
}
//查看销售记录,从文件中读并防到数组当中
void read()
{
char ch;
FILE *fp;
int i=0;
if((fp=fopen("IN.dat","r"))==NULL) /* 打开一个由argv[1]所指的文件*/
{
printf("not open");
exit(0);
}
printf("产品 单价 数量 金额\n");
while(!feof(fp))
{
fscanf(fp,"PID=%s,Name=%s,Price=%f,Num=%d,sum=%f;\n",recod[i].PID,recod[i].Name,&recod [i].Price,&recod[i].Num,&recod[i].sum);
printf("%s,%s,%f,%d,%f\n",recod[i].PID,recod[i].Name,recod[i].Price,recod[i].Num,recod[i].sum);
i++;
}
for(i=0;i<SIZE;i++)
{
printf("%s,%s,%f,%d,%f\n",recod[i].PID,recod[i].Name,recod[i].Price,recod[i].Num,recod[i].sum);
}
fclose(fp);
printf("\n");
getchar();
}
//主函数
void main()
{
menu();
char order;
while( order!='Q') /*接受命令*/
{
order=getchar();
switch(order)
{
case 'S':read();break;
case 'A':sort();break;
case 'T':testread();break;
}
}
}