C语言饭卡管理系统代码

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

#includestdio.h#includestring.h#includeconio.h#includestdlib.h#defineN100structcard{charnum[10];charname[10];floatmoney;intg;};voidmyprint();voidmycreate();voidmybuy();voidmysave();voidmyadd();voidmydel();voidmylost();voidmydisplayall();voidmain(){charchoose='\0',yes_no='\0';do{myprint();printf();choose=getch();switch(choose){case'1':mycreate();break;/*创建*/case'2':mybuy();break;/*买饭*/case'3':mysave();break;/*续钱*/case'4':myadd();break;/*添加*/case'5':mydel();break;/*注销*/case'6':mylost();break;/*挂失*/case'7':mydisplayall();break;/*显示全部*/case'0':exit(0);default:printf(\n%c为非法选项!\n,choose);}printf(\n要继续选择吗(Y/N)?\n);do{yes_no=getche();}while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');}while(yes_no=='Y'||yes_no=='y');}voidmyprint()/*显示菜单界面*/{system(cls);/*调用清屏函数。若在TC下运行,改用clrscr()*/printf(|-------------------------------------------|\n);printf(|请输入选项编号(0-7):|\n);printf(|-------------------------------------------|\n);printf(|1----创建饭卡|\n);printf(|2----买饭|\n);printf(|3----续钱|\n);printf(|4----添加新饭卡|\n);printf(|5----注销旧饭卡|\n);printf(|6----设置与解除挂失|\n);printf(|7----显示全部信息|\n);printf(|0----退出|\n);printf(|-------------------------------------------|\n);}voidmycreate()/*定义创建饭卡的函数*/{inti=1;structcardtemp={0};FILE*fp=NULL;fp=fopen(d:\\JiLu.dat,w);if(fp==NULL){printf(\n打开文件夹失败!\n);return;}system(cls);/*调用清屏函数。若在TC下运行,改用clrscr()*/printf(\n请输入第一个记录:\n);printf(卡号(用#结束输入):);do{gets(temp.num);}while(strcmp(temp.num,)==0);printf(姓名(用#结束输入):);gets(temp.name);printf(金额(用#结束输入):);scanf(%f,&temp.money);printf(挂失信息(1有,-1无)(用#结束输入):);scanf(%d,&temp.g);while(temp.num[0]!='#'){fprintf(fp,%15s%15s%15f%15d\n,temp.num,temp.name,temp.money,temp.g);i++;printf(\n请输入第%d个记录:\n,i);printf(卡号(用#结束输入):);do{gets(temp.num);}while(strcmp(temp.num,)==0);printf(姓名(用#结束输入):);gets(temp.name);printf(金额(用#结束输入):);scanf(%f,&temp.money);printf(挂失信息(1有,-1无)(用#结束输入):);scanf(%d,&temp.g);}fclose(fp);}voidmybuy()/*定义买饭的函数*/{charc='\0';intn=0;floatmtemp;structcard*find=NULL,temp={0},record[100]={0},*p=NULL;FILE*fp=NULL;fflush(stdin);fp=fopen(d:\\JiLu.dat,r);if(fp==NULL){printf(\n打开文件失败!\n);return;}p=record;while(feof(fp)==0){fscanf(fp,%15s%15s%15f%15d\n,p-num,p-name,&p-money,&p-g);p++;n++;}fclose(fp);if(n==0){(\n文件中无记录!\n);return;}printf(\n请输入要买饭的学号:);gets(temp.num);for(p=record;precord+n;p++)if(strcmp(temp.num,p-num)==0){find=p;break;}if(p==record+n){printf(\n无此卡!\n);return;}if(p-g==-1){printf(此卡已挂失\n);return;}else{if(p-money5.0){printf(不足5元,请续钱\n);return;}if(p-money5.0){printf(请输入金额);scanf(%f,&mtemp);if(p-moneymtemp){printf(Before:%f元\n,(p-money));(p-money)=(p-money)-mtemp;printf(After:%f元\n,(p-money));}if(p-moneymtemp){printf(金额不足,请续钱\n);return;}}}fp=fopen(d:\\JiLu.dat,w);if(fp==NULL){printf(\n打开文件失败!\n);return;}for(p=record;precord+n;p++)fprintf(fp,%15s%15s%15f%15d\n,p-num,p-name,p-money,p-g);fclose(fp);}voidmysave()/*定义续钱的函数*/{charc='\0';intn=0;floatmtemp;structcard*find=NULL,temp={0},record[100]={0},*p=NULL;FILE*fp=NULL;fflush(stdin);fp=fopen(d:\\JiLu.dat,r);if(fp==NULL){printf(\n打开文件失败!\n);return;}p=record;while(feof(fp)==0){fscanf(fp,%15s%15s%15f%15d\n,p-num,p-name,&p-money,&p-g);p++;n++;}fclose(fp);printf(\n请输入要续费的卡号:);gets(temp.num);for(p=record;precord+n;p++)if(strcmp(temp.num,p-num)==0){find=p;break;}if(p==record+n){printf(\n无此卡!\n);return;}if(p-g==-1){printf(此卡已挂失\n);return;}printf(请输入金额:);scanf(%f,&mtemp);printf(Before:%f元\n,(p-money));(p-money)=(p-money)+mtemp;printf(After:%f元\n,(p-money));fp=fopen(d:\\JiLu.dat,w);if(fp==NULL){printf(\n打开文件失败!\n);return;}for(p=record;precord+n;p++)fprintf(fp,%15s%15s%15f%15d\n,p-num,p-name,p-money,p-g);fclose(fp);}voidmyadd()/*定义添加新饭卡的函数*/{charc='\0';intn=0;structcardtemp={0},record[N]={0},*p=NULL;FILE*fp=NULL;fflush(stdin);fp=fopen(d:\\JiLu.dat,r);if(fp==NULL){printf(\n打开文件失败!\n);}p=record;while(feof(fp)==0){fscanf(fp,%15s%15s%15f%15d\n,p-num,p-name,&(p-money),&(p-g));p++;n++;}fclose(fp);do{printf(\n请输入新添加的卡号:);do{gets(temp.num);}while(strcmp(temp.num,)==0);printf(\n请输入新添加的姓名:);gets(temp.name);printf(\n请输入新添加的金额:);scanf(%f,&temp.money);printf(\n请输入新添加的挂失信息:);scanf(%d,&temp.g);for(p=record;precord+n;p++)if(strcmp(temp.num,p-num)==0){printf(\n卡号重复,要重新输入吗(Y/N)?);do{c=getche();}while(c!='Y'&&c!='y'&&c!='N'&&c!='n');putchar('\n');break;}if(p==record+n){*p=temp;break;}}while(c=='y'||c=='Y');fp=fopen(d:\\JiLu.dat,w);if(fp==NULL){printf(\n打开文件失败!\n);return;}for(p=record;precord+n+1;p++)fprintf(fp,%15s%15s%15f%15d\n,p-num,p-name,(p-money),(p-g));fclose(fp);}voidmydel()/*定义注销饭卡的函数*/{chartempnum[8]=;intn=0;structcardrecord[N]={0},*p=NULL,*k=NULL;FILE*fp=NULL;fflush(stdin);fp=fopen(d:\\JiLu.dat,r);if(fp==NULL){printf(\n打开文件失败!\n);return;}p=record;while(feof(fp)==0){fscanf(fp,%15s%15s%15f%15d\n,p-num,p-name,&p-money,&p-g);p++;n++;}fclose(fp);printf(\n请输入要注销的卡号:);gets(tempnum);p=record;for(k=record;krecord+n;k++)if(strcmp(tempnum,k-num)==0)break;if(krecord+n)for(p=k;pk+n-1;p++)*p=*(p+1);elseprintf(\n无此卡!\n);fp=fopen(d:\\JiLu.dat,w);if(fp==NULL){printf(\n打开文件失

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功