if(fclose(fp2)){
printf(\ exit(0); }
return 0; }
7.(选做) 账户余额管理: 创建一个随机文件,用来存储银行账户和余额信息,程序要求能够查询某个账户的余额,当客户发生交易额时(正表示存入,负表示取出)能够更新余额。账户信息包括账号、账号名和余额三个数据项。试编写相应程序。
文件部分内容如下:
AcctNo AcctName Balance 1 zhangsan 1 000.00 2 lisi 1 300.00 3 wangwu -100.00 …… 解答:
#include
struct account{ char no[10];
char acctname[50]; double balance; };
FILE *openfile(char *openmode){ FILE *fp;
if((fp=fopen(\ printf(\ exit(0); }
return fp; }
double userbalance(FILE *fp,char *name); void pay(FILE *fp,char *name,double count); int main() {
FILE *fp; int choice; char name[50]; double balance;
double count;
printf(\请输入选择类型:\\n\ printf(\查账户余额\\n\ printf(\账户交易\\n\ printf(\退出按exit\\n\ printf(\选择类型:\ scanf(\ switch(choice){ case 1:
printf(\输入名字\ scanf(\ fp=openfile(\
balance=userbalance(fp,name); printf(\ break; case 2:
printf(\输入名字\ scanf(\ fp=openfile(\
printf(\输入交易金额\ scanf(\ pay(fp,name,count); break; }
default: exit(0); break; }
return 0; }
double userbalance(FILE *fp,char *name){ struct account user; double balance;
rewind(fp);
while(!feof(fp)){
fscanf(fp,\ if(strcmp(user.acctname,name)==0){ balance=user.balance; break; } }
return balance; }
void pay(FILE *fp,char *name,double count){
FILE *fpout;
struct account user; double balance;
balance=userbalance(fp,name); balance=balance+count; rewind(fp);
fpout=fopen(\ while(!feof(fp)){
fscanf(fp,\ if(strcmp(user.acctname,name)==0){ user.balance=balance;
fprintf(fpout,\ } else
fprintf(fpout,\ }
if(fclose(fp)){
printf(\ exit(0); }
if(fclose(fpout)){ printf(\ exit(0); }
unlink(\都是删除文件的函数 rename(\}
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C语言程序设计(第3版)何钦铭 颜 晖 第12章 文件(4)在线全文阅读。
相关推荐: