#include #include #include int X=0; int time=3; int super_1=1; struct message{ char name[25]; int money; int mima; int sign; }; struct message person[50]; int big_menu(){ int n;char nn[25]; printf("----------------------------\n"); printf("|1.登陆账号 2.注册账号 |\n"); printf("|3.管理员入口 4.*忘记密码 |\n"); printf("|5.退出程序 |\n"); printf("|(╯°口°)╯(┴—┴ |\n"); printf("----------------------------\n"); printf("请输入您的选择\n"); //scanf("%d",&n); system("cls"); return n; char a[5]={'1'};char b[5]={'2'};char c[5]={'3'}; char d[5]={'4'};char e[5]={'5'};char f[5]={'6'}; if(time==0) printf("您错误输入次数过多,更多事务请咨询大堂经理\n"); for(;;) { scanf("%s",nn); if(strcmp(a,nn)==0) {n=1;break;} else if(strcmp(b,nn)==0) {n=2;break;} else if(strcmp(c,nn)==0) {n=3;break;} else if(strcmp(d,nn)==0) {n=4;break;} else if(strcmp(e,nn)==0) {n=5;break;} else if(strcmp(f,nn)==0) {n=6;break;} else printf("小老弟,别乱输入\n"); } system("cls");time=3;return n; } //主菜单,返回值为选择哪个项目的数 int small_menu(){ int n; printf("----------------------------\n"); printf("|1.存款 2.取款 |\n"); printf("|3.查看余额 4.信息修改 |\n"); printf("|5.销户 6.退出 |\n"); printf("|_(:3」∠)_ |\n"); printf("----------------------------\n"); printf("亲爱的用户 %s\n",person[X].name); printf("请输入您的选择\n");char nn[25]; //scanf("%d",&n); return n; char a[5]={'1'};char b[5]={'2'};char c[5]={'3'}; char d[5]={'4'};char e[5]={'5'};char f[5]={'6'}; if(time==0||time==-1) n=6; else for(;;) { scanf("%s",nn); if(strcmp(a,nn)==0) {n=1;break;} else if(strcmp(b,nn)==0) {n=2;break;} else if(strcmp(c,nn)==0) {n=3;break;} else if(strcmp(d,nn)==0) {n=4;break;} else if(strcmp(e,nn)==0) {n=5;break;} else if(strcmp(f,nn)==0) {n=6;break;} else printf("小老弟 %s ,请不要乱输入\n",person[X].name); } return n; }//小菜单,功能同上 int go(){ int A=15,i=0; FILE *fp_go; if((fp_go=fopen("register.txt","a+"))==NULL){ printf("File open error!\n"); exit(0); } while(A){ fread(&person[i],sizeof(message),1,fp_go); i++;A--; } rewind(fp_go);fclose(fp_go); }//初始化模块,将文件中的数据写入结构体后关闭文件。 void New(){ static int number=0; for(int i=0;i<15;i++) { if(person[i].sign!=1) { number=i;break;} } FILE *fp; if((fp=fopen("register.txt","a+"))==NULL){ printf("File open error!\n"); exit(0); } char NEW[20]; char Q[10]={'o','u','t'};int nn=1; printf("请输入姓名\n输入out退出注册\n进入设置密码的时候就⑧能退出啦\n\n"); scanf("%s",NEW);//person[number].name if(strcmp(NEW,Q)==0) nn=0; else if(nn!=0) { strcpy(person[number].name,NEW); printf("设置您的六位数密码(数字)\n"); int n; for(;;) { scanf("%d",&n); if(n>=100000&&n<=999999) { person[number].mima=n;break;} else printf("您的输入有误,请重新输入六位数密码\n"); } person[number].money=0; person[number].sign=1; fseek(fp,0,SEEK_END); //fprintf(fp,"%s,%d,%d,%d",person[number].name,person[number].mima,person[number].note=ID,person[number].money); fwrite(&person[number],sizeof(message),1,fp); fclose(fp); number++; } }//注册账号并将此元素信息写入文件 int enter(){ int i=1; time=3; while(i){ int I=0,p,a=1,b; printf("输入您的账号姓名\n(输入out退出登录)\n\n"); char N[15]; char NN[15]={'o','u','t'}; scanf("%s",N);if(strcmp(N,NN)==0) {time=-1;i=0;break;} else for(I=0;I<20;I++) { if(strcmp(N,person[I].name)==0) { printf("请务必输入数字,请不要输入字符\n"); p=I;printf("请输入密码\n输入 10086 退出\n"); int Q=10086; for(int a=0;;a++) { int T=time+1; printf("您还剩 %d 次机会哦\n",T); int command;scanf("%d",&command);//break; if(command==Q) { i=0;time=-1;break; } else if(command==person[p].mima) { i=0;X=p;break;} else if(time>0) { printf("密码错误,请再次输入\n");time--; } else if(time==0) { i=0;break; } } break; } } if(I>=20) { printf("没有这个账号耶弟弟\n");} } }//进入账户之前的步骤 ,利用循环完成对姓名和密码的多次试错,还有统计次数模块,错误过多将会返回主菜单 int remainder() { printf("您的余额为: %d 元 嗷\n",person[X].money); printf("按任意键加回车继续\n\n");char nn[25]; char a[5]={'1'}; for(;;) { scanf("%s",nn); if(strcmp(a,nn)==0) break; else break; } system("cls"); }//看余额 int earn() { int M;while(1) { printf("请务必输入数字,请不要输入字符\n"); printf("请输入您想存入的金额\n"); scanf("%d",&M); if(M>0) { FILE *fp_earn; if((fp_earn=fopen("register.txt","w"))==NULL){ printf("File open error!\n"); exit(0); } person[X].money+=M; for(int i=0;i<15;i++) { fwrite(&person[i],sizeof(message),1,fp_earn); } fclose(fp_earn); printf("好的,钱已经存入银行\n"); printf("\n现在您的余额为 %d 元\n\n",person[X].money);break; } else printf("你究竟想存多少钱?\n"); } }//存款 int take() { int M;while(1) { printf("请务必输入数字,请不要输入字符\n"); printf("请输入您想取出的金额\n"); scanf("%d",&M); if(M>0&&Mperson[X].money) printf("亲,您的余额没这么多钱嗷\n您的余额只有 %d 元\n\n",person[X].money); else printf("你究竟想取多少钱?\n"); } }//取款 int change() { int a;char nn[25]; printf("请问您想改什么信息?\n请输入阿拉伯数字来选择\n"); printf("\n1.改姓名 2.改密码 3.退出 \n"); //scanf("%d",&a); char e[5]={'1'};char b[5]={'2'};char c[5]={'3'}; char d[5]={'4'}; for(;;) { scanf("%s",nn); if(strcmp(e,nn)==0) {a=1;break;} else if(strcmp(b,nn)==0) {a=2;break;} else if(strcmp(c,nn)==0) {a=3;break;} else if(strcmp(d,nn)==0) {a=4;break;} else printf("小老弟,别乱输入\n"); }system("cls"); switch(a) { case 1: { char h[15]; printf("这是你原来的姓名:%s\n",person[X].name); printf("请输入你准备修改的姓名\n"); scanf("%s",h); strcpy(person[X].name,h); FILE *fp_change; if((fp_change=fopen("register.txt","w"))==NULL){ printf("File open error!\n"); exit(0); } for(int i=0;i<15;i++) { fwrite(&person[i],sizeof(message),1,fp_change); } fclose(fp_change); printf("修改完毕\n"); break; } case 2: { int h; printf("这是你原来的密码:%d\n",person[X].mima); printf("请输入你准备修改的密码\n"); printf("请务必输入数字,请不要输入字符\n"); int n; for(;;) { scanf("%d",&h); if(h>=100000&&h<=999999) { person[X].mima=h;break;} else printf("您的输入有误,请重新输入六位数密码\n"); } FILE *fp_change; if((fp_change=fopen("register.txt","w"))==NULL){ printf("File open error!\n"); exit(0); } for(int i=0;i<15;i++) { fwrite(&person[i],sizeof(message),1,fp_change); } fclose(fp_change); printf("修改完毕\n"); break; } case 3:break; case 4: { int h; printf(" 嚯嚯嚯,现在我们都是法外狂徒了\n"); printf(" 这是你原来的余额:%d\n",person[X].money); printf(" 请输入你准备修改后的余额\n"); scanf("%d",&h); person[X].money=h; FILE *fp_change; if((fp_change=fopen("register.txt","w"))==NULL){ printf("File open error!\n"); exit(0); } for(int i=0;i<15;i++) { fwrite(&person[i],sizeof(message),1,fp_change); } fclose(fp_change); printf(" 作弊成功\n"); printf("按任意键加回车继续\n\n");char nn[25]; char a[5]={'1'}; for(;;) { scanf("%s",nn); if(strcmp(a,nn)==0) break; else break; } system("cls"); break; } } system("cls"); }//可以修改姓名和密码,甚至可以修改余额 int destroy() { printf("确定要销毁这个账户吗?\n"); printf("1.确定 2.取消\n"); int i;//scanf("%d",&i); char a[5]={'1'};char b[5]={'2'};char nn[25]; for(;;) { scanf("%s",nn); if(strcmp(a,nn)==0) {i=1;break;} else if(strcmp(b,nn)==0) {i=2;break;} else printf("臭弟弟,别乱输入\n"); }system("cls"); switch(i) { case 1: { for(int h=X;h<20;h++) { if(person[h+1].sign!=1){ person[h].sign=0; break; } strcpy(person[h].name,person[h+1].name); person[h].mima=person[h+1].mima; person[h].money=person[h+1].money; } FILE *fp_destroy; if((fp_destroy=fopen("register.txt","w"))==NULL){ printf("File open error!\n"); exit(0); } for(int i=0;i<15;i++) { fwrite(&person[i],sizeof(message),1,fp_destroy); } fclose(fp_destroy); printf("修改完毕\n"); break; } case 2:break; } }//就是将结构体元素互相覆盖后写入文件并完成覆盖信息。 int super1() { super_1=1; int i=1; while(i) { int I; printf("输入密令\n"); char N[15],M[15]={'I','G','N','B'}; char MM[10]={'n','m','s','l'}; for(I=0;;I++) { scanf("%s",N);if(strcmp(N,MM)==0) { super_1=0;break; } else if(strcmp(N,M)==0) break; else printf("不对啊,再输入一次\n"); } i=0; if(I>=5) { printf("怎么回事小老弟?\n想这么久\n");} } } int super2() { if(super_1==0) { printf("┻━┻︵╰(‵□′)╯︵┻━┻\n\n明天买菜必定加倍\n"); } else { printf("姓名 密码 余额/元\n"); for(int A=0;A<15;A++) { if(person[A].sign!=1) break; printf("%s ",person[A].name); printf("%d ",person[A].mima); printf("%d\n",person[A].money); //printf("%d\n",person[A].sign); } } //int aa=0;scanf("%d",&aa);if(aa=1) aa=2;else aa=3; printf("看够了吗,看够了就按任意键加回车继续\n\n");char nn[25]; char a[5]={'1'}; for(;;) { scanf("%s",nn); if(strcmp(a,nn)==0) break; else break; } } int main() { go(); int S,s=1; while(s) { S=big_menu(); switch(S) { case 1:{int W,w=1; printf(" 1.登陆账号\n"); enter();system("cls"); while(w) { W=small_menu(); switch(W) { case 1:printf(" 1.存款\n");system("cls");earn();break; case 2:printf(" 2.取款\n");system("cls");take();break; case 3:printf(" 3.查看余额\n");system("cls");remainder();break; case 4:printf(" 4.信息修改\n");system("cls");change();break; case 5:printf(" 5.销户\n");system("cls");destroy(); case 6:w=0;system("cls");break; default :printf(" 输入错误,请再次输入\n");break; } } } break; case 2:printf(" 2.注册账号\n");New();system("cls");break; case 3:super1();super2();system("cls");break; case 4:printf(" 拜拜了您嘞,你怎么不忘记恰饭,嗯?\n 更多事务请咨询大堂经理\n");break; case 5:s=0;break; default :printf(" 输入错误,请再次输入\n");break; } } return 0; }