文件求解问题,高手来解答一下
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 8
struct LIST//结构体
{
char SPM[20];
char FL[10];
float DJ;
int KC;
}list[N];
void tongji()//统计
{
int i,j,k;
float all_sum=0,self_sum=0;
printf("\n所有物品总价:\n");
for(i=0;i<N;i++)
{
all_sum+=list[i].DJ*list[i].KC;
}
printf("all_sum=%0.2f\n",all_sum);
printf("\n不同分类物品总价:\n");
printf("\t生活用品 食品 学习用品 饮料\n");
for(i=0;i<N-1;i++)
{
for(j=i+1;j<N;j++)
{
k=i;
if(strcmp(list[k].FL,list[j].FL)==0)
{
self_sum=list[k].DJ*list[k].KC+list[j].DJ*list[j].KC;
printf("\t%-0.2f\t",self_sum);
}
}
}
}
void menu()//菜单
{
printf("\n ================>>>>仓库管理系统<<<<==================\n\n");
printf(" 1.实现查询和显示功能:\n");
printf(" 2.实现排序功能:\n");
printf(" 3.统计仓库所有物品的总价,每种不同分类的物品\n");
printf(" 4.实现物品出仓\n");
printf(" 5.实现物品库存信息和修改功能\n");
printf(" 6.退出\n\n");
printf(" ======================================================\n\n");
}
void main()//主函数
{
int i;
char head[300];
FILE *fp;
if((fp=fopen("jsj0202_store.txt","r"))==NULL)
{
printf("打开文件失败,请检查路径设置\n\n");
exit(0);
}
printf("\n");
fgets(head,200,fp);
printf("\t%s\n",head);
for(i=0;i<N;i++)
{
fscanf(fp,"%s%s%f%d",list[i].SPM,list[i].FL,&list[i].DJ,&list[i].KC);
printf("\t%-10s\t%-10s\t%-10.2f\t%-10d\n ",list[i].SPM,list[i].FL,list[i].DJ,list[i].KC);
}
fclose(fp);
printf("\n");
while(i!=6)
{
menu();
printf(" ************ 请选择操作序号 : **********************\n");
scanf("%d",&i);
switch(i)
{
case 1:
printf("实现查询和显示功能:\n");
break;
case 2:
printf("实现排序功能:\n");
break;
case 3:
printf("统计仓库所有物品的总价,每种不同分类的物品\n");
tongji();
break;
case 4:
printf("实现物品出仓\n");
//chuku();
break;
case 5:
printf("实现物品库存信息和修改功能\n");
break;
case 6:
printf("退出\n");
break;
}
}
}商品名 分类 单价 库存数量
雀巢咖啡 饮料 10.00 100
康师傅方便面 食品 3.50 100
统一矿泉水 饮料 1.00 1000
红叶台灯 学习用品 15.00 20
江明饼干 食品 2.30 20
作业本 学习用品 1.00 185
光明酸奶 饮料 6.00 100
富光杯 生活用品 7.00 50
我想把不同分类的物品总价求出来,我的tongji()函数怎么修改?#include <string.h>
#include <stdlib.h>
#define N 8
struct LIST//结构体
{
char SPM[20];
char FL[10];
float DJ;
int KC;
}list[N];
void tongji()//统计
{
int i,j,k;
float all_sum=0,self_sum=0;
printf("\n所有物品总价:\n");
for(i=0;i<N;i++)
{
all_sum+=list[i].DJ*list[i].KC;
}
printf("all_sum=%0.2f\n",all_sum);
printf("\n不同分类物品总价:\n");
printf("\t生活用品 食品 学习用品 饮料\n");
for(i=0;i<N-1;i++)
{
for(j=i+1;j<N;j++)
{
k=i;
if(strcmp(list[k].FL,list[j].FL)==0)
{
self_sum=list[k].DJ*list[k].KC+list[j].DJ*list[j].KC;
printf("\t%-0.2f\t",self_sum);
}
}
}
}
void menu()//菜单
{
printf("\n ================>>>>仓库管理系统<<<<==================\n\n");
printf(" 1.实现查询和显示功能:\n");
printf(" 2.实现排序功能:\n");
printf(" 3.统计仓库所有物品的总价,每种不同分类的物品\n");
printf(" 4.实现物品出仓\n");
printf(" 5.实现物品库存信息和修改功能\n");
printf(" 6.退出\n\n");
printf(" ======================================================\n\n");
}
void main()//主函数
{
int i;
char head[300];
FILE *fp;
if((fp=fopen("jsj0202_store.txt","r"))==NULL)
{
printf("打开文件失败,请检查路径设置\n\n");
exit(0);
}
printf("\n");
fgets(head,200,fp);
printf("\t%s\n",head);
for(i=0;i<N;i++)
{
fscanf(fp,"%s%s%f%d",list[i].SPM,list[i].FL,&list[i].DJ,&list[i].KC);
printf("\t%-10s\t%-10s\t%-10.2f\t%-10d\n ",list[i].SPM,list[i].FL,list[i].DJ,list[i].KC);
}
fclose(fp);
printf("\n");
while(i!=6)
{
menu();
printf(" ************ 请选择操作序号 : **********************\n");
scanf("%d",&i);
switch(i)
{
case 1:
printf("实现查询和显示功能:\n");
break;
case 2:
printf("实现排序功能:\n");
break;
case 3:
printf("统计仓库所有物品的总价,每种不同分类的物品\n");
tongji();
break;
case 4:
printf("实现物品出仓\n");
//chuku();
break;
case 5:
printf("实现物品库存信息和修改功能\n");
break;
case 6:
printf("退出\n");
break;
}
}
}商品名 分类 单价 库存数量
雀巢咖啡 饮料 10.00 100
康师傅方便面 食品 3.50 100
统一矿泉水 饮料 1.00 1000
红叶台灯 学习用品 15.00 20
江明饼干 食品 2.30 20
作业本 学习用品 1.00 185
光明酸奶 饮料 6.00 100
富光杯 生活用品 7.00 50