我自己用C语言变了个程序总出错,C++不会文件操作,谁能帮改成vc编的,最好有界面!
#include <stdio.h>#include <stdlib.h>
#define SIZE 256
struct oil_type
{double jiayou;
double danjia;
double lucheng;
double youhao;
}oil[SIZE];
void save(int k)
{FILE *fp;
int i;
if((fp=fopen("oil.dat","wb"))==NULL)
{printf("不能打开文件或文件不存在!");
return;
}
for(i=0;i==k;i++)
if(fwrite(&oil[i],sizeof(struct oil_type),1,fp)!=1)
printf("文件写入失败!");
fclose(fp);
}
void count(int k)
{FILE *fp;
int i;
printf("加油金额\t加油单价\t行驶路程\t百里油耗\n");
fp=fopen("oil.dat","wb");
for(i=0;i==k;i++)
{fread(&oil[i],sizeof(struct oil_type),1,fp);
printf("%f\t%f\t%f\t%f\t",oil[i].jiayou,oil[i].danjia,oil[i].lucheng,oil[i].youhao);
printf("\n");}
fclose(fp);
}
int main(int argc, char *argv[])
{int i,k=0;
char c;
double j;
for(i=0;i<SIZE;i++)
{printf("是否输入数据,是请输入”y/Y“,否请输入”n/N“:");
scanf("%s",&c);
if(c=='n'||c=='N')
goto end;
printf("请输入此次加油金额:");
scanf("%f",&oil[i].jiayou);
printf("请输入此次加油单价:");
scanf("%f",&oil[i].danjia);
printf("请输入此次行驶里程:");
scanf("%f",&oil[i].lucheng);
j=oil[i].jiayou/oil[i].danjia;
oil[i].youhao=(j/c)*100;
k++;
save(k);
}
end:
count(k);
system("PAUSE");
return 0;
}
这是题目:
汽车油耗计算: 对于家用经济型小轿车来说,统计油耗是经常做的一件事。本题目要求根据汽油单价、每次加油所用钱数,以及该次加的油所跑里程数计算出该车的百公里油耗,并进行保存,根据需要给出统计数据。
本次百公里油耗=【(本次加油总金额/本次加油单价)】/(本次行程公里)*100Km=本次百公里油耗(单位:升/100公里)
百公里油耗=(所有加油升数总和/所有行程公里)*100km