
C语言数据的更新问题,大侠们,我C语言的期末大作业占考试成绩的一半,求高手帮忙编一段编程,题目如下
我的是羊城通系统,帮我简单编就行了,A模式是充值,B模式是消费,C模式是查询,然后要求能数据更新(就是每次打开源文件的时候数据都会是上一次结束时的最新数据),求帮忙啊,全...
我的是羊城通系统,帮我简单编就行了,A模式是充值,B模式是消费,C模式是查询,然后要求能数据更新(就是每次打开源文件的时候数据都会是上一次结束时的最新数据),求帮忙啊,全部分都给你了
其实不同写的那么复杂,越简单越好,求帮助 展开
其实不同写的那么复杂,越简单越好,求帮助 展开
1个回答
展开全部
#define src_file "SourceFile"
void main(){
FILE* fp;
float remain; // 余额
float money; // 操作金额
typedef enum {Charge, Expense, Query} MODE;
MODE mode;
fp=fopen(sr_file, "rt"); // 打开文件读
if(fp==NULL) { // 文件不存在,则表明之前没有余额
remain=0;
}
else {
fscanf(fp, "%f", &remain);
fclose(fp); // 读出后立即关闭文件,在程序退出时再打开写,则始终保持一个最新记录。
}
prinft("You still have [%f] yuan.\n", remain); // 输出当前余额
printf("Please type in your operation (A for Charge, B for Expense, C for Query):");
switch(getchar()){
case 'A': case 'a': mode=Charge; break;
case 'B': case 'b': mode=Expense; break;
case 'C': case 'c': mode=Query; break;
}
switch(mode){
case Charge:
//添加充值代码:比如输出提示充值多少钱?如下:
printf("Please input how much you want to recharge:")
scanf("%f", &money);
if(money <= 0) {
printf("Please try again.\nQuit now.");
}
else {
remain += money;
prinft("You have [%f] yuan now.\n", remain); // 输出当前余额
}
break;
case Expense:
//添加消费代码:比如输出提示消费多少钱?得到输入(scanf)后,检查是否小于余额,是则减掉消费额后存盘();
break;
case Query:
//添加查询代码:输出余额。
break;
}
fp=fopen(src_file, "wt");
if(fp != NULL) {
fprintf(fp, "%f", remain);
fclose(fp);
}
else {
printf("Cannot update record. Please check your file system that the [%s] is write enabled.\n", src_file);
}
}
void main(){
FILE* fp;
float remain; // 余额
float money; // 操作金额
typedef enum {Charge, Expense, Query} MODE;
MODE mode;
fp=fopen(sr_file, "rt"); // 打开文件读
if(fp==NULL) { // 文件不存在,则表明之前没有余额
remain=0;
}
else {
fscanf(fp, "%f", &remain);
fclose(fp); // 读出后立即关闭文件,在程序退出时再打开写,则始终保持一个最新记录。
}
prinft("You still have [%f] yuan.\n", remain); // 输出当前余额
printf("Please type in your operation (A for Charge, B for Expense, C for Query):");
switch(getchar()){
case 'A': case 'a': mode=Charge; break;
case 'B': case 'b': mode=Expense; break;
case 'C': case 'c': mode=Query; break;
}
switch(mode){
case Charge:
//添加充值代码:比如输出提示充值多少钱?如下:
printf("Please input how much you want to recharge:")
scanf("%f", &money);
if(money <= 0) {
printf("Please try again.\nQuit now.");
}
else {
remain += money;
prinft("You have [%f] yuan now.\n", remain); // 输出当前余额
}
break;
case Expense:
//添加消费代码:比如输出提示消费多少钱?得到输入(scanf)后,检查是否小于余额,是则减掉消费额后存盘();
break;
case Query:
//添加查询代码:输出余额。
break;
}
fp=fopen(src_file, "wt");
if(fp != NULL) {
fprintf(fp, "%f", remain);
fclose(fp);
}
else {
printf("Cannot update record. Please check your file system that the [%s] is write enabled.\n", src_file);
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询