1、(word完整版)c语言饭卡管理系统代码档c语言饭卡管理系统代码档includestdio.h#includeincludenum,p-name,&pmoney,pg); p+; n+; fclose(fp); if(n=0) (n 文件中无记录!n”);return; printf(”n请输入要买饭的学号:); gets(temp。num); for(p=record;pnum)=0) find=p;break; if(p=record+n) printf(”n 无此卡!n”);return; if(p-g=1) printf(此卡已挂失n”); return; else if(pmoney
2、money5.0) printf(请输入金额”); scanf(”f,mtemp); if(pmoneymtemp) printf(”Before:f元n,(pmoney); (p-money)=(pmoney)-mtemp; printf(”After:%f元n,(p-money); if(p-moneynum,p-name,p-money,pg); fclose(fp);void mysave() /定义续钱的函数*/ char c=0; int n=0;float mtemp; struct card*find=NULL,temp=0,record100=0,*p=NULL; FILE*
3、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%15f15dn”,pnum,pname,&p-money,&p-g); p+; n+; fclose(fp); printf(n请输入要续费的卡号:); gets(temp。num); for(p=record;pnum)=0) find=p;break; if(p=record+n) printf(n 无此卡!n);retu
4、rn; if(p-g=1) printf(”此卡已挂失n”); return; printf(”请输入金额:”); scanf(%f,&mtemp); printf(Before:%f元n”,(pmoney)); (p-money)=(pmoney)+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%15dn”,pnum,pname,p
5、-money,p-g); fclose(fp);void myadd() /*定义添加新饭卡的函数/ char c=0; int n=0; struct card temp=0,recordN=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,%15s15s15f%15dn”,pnum,p-name,&(p-money),&(pg); p+; n+; fclose(fp);
6、 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
7、=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%15s15f15dn,p-num,p-name,(p-money),(p-g)); fclose(fp);void mydel() /*定义注销饭卡的函数*/ cha
8、r tempnum8=”; int n=0; struct card recordN=0,*p=NULL,k=NULL; FILEfp=NULL; fflush(stdin); fp=fopen(”d:JiLu。dat,r”); if(fp=NULL) printf(n 打开文件失败!n”);return; p=record; while(feof(fp)=0) fscanf(fp,15s15s15f15dn,p-num,pname,p-money,p-g); p+; n+; fclose(fp); printf(n 请输入要注销的卡号:); gets(tempnum); p=record;
9、for(k=record;knum)=0) break; if(krecord+n) for(p=k;pk+n1;p+) *p=*(p+1); else printf(”n 无此卡!n”); fp=fopen(”d:JiLu。dat”,”w”); if(fp=NULL) printf(n 打开文件失败!n);return; for(p=record;pnum,p-name,pmoney,pg); fclose(fp);void mylost() /* 定义修改挂失信息的函数*/ char c=0; int n=0; struct card find=NULL,temp=0,record100=
10、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%15dn”,p-num,p-name,pmoney,&p-g); p+; n+; fclose(fp); if(n=0) printf(n 文件中无记录!n”);return; printf(n 请输入要修改挂失信息的卡号:); gets(temp.num); for(p=record;p
11、record+n;p+) if(strcmp(temp。num,p-num)=0) find=p;break; if(p=record+n) printf(n 无此卡!n”);return; printf( 请输入挂失信息:”); scanf(%d,&p-g); fp=fopen(d:JiLu。dat”,”w”); if(fp=NULL) printf(n 打开文件失败!n”);return; for(p=record;precord+n;p+) fprintf(fp,”%15s15s%15f%15dn”,pnum,p-name,p-money,pg); fclose(fp);void myd
12、isplayall() /定义显示全部信息的函数/ int n=0; struct card temp=0; FILE*fp=NULL; fp=fopen(”d:JiLu。dat,”r); if(fp=NULL) printf(n 打开文件失败!n); return; system(”cls”); printf( 卡号 姓名 金额 挂失信息n”); while(feof(fp)=0) fscanf(fp,”15s%15s%15f%15dn,temp.num,temp.name,temp.money,temp.g); printf(15s%15s15f15dn,temp.num,temp。name,temp。money,temp。g); n+; if(n=0) printf(n 文件中无记录!n); else printf(n 文件中共有%d个记录!n”,n); fclose(fp);