#include #include #include #include #include #define ZHANGHUSHU 10 #define JIAOYISHU 20 int caidan();/*登录注册菜单*/ void zhuce(); void denglu(); void baocunshuju(); int menu();/*主菜单*/ void cunkuan(); void qukuan(); void zhuanzhang(); void chaxun(); void xiugaimima(); struct JiaoYi /*定义交易结构体*/ { char shijian[50];/*时间*/ char leixing[3];/*类型*/ float jine; /*金额*/ float yue;/*余额*/ }; struct ZhangHu /*定义账户结构体*/ { char xingming[17];/*姓名*/ char zhanghao[12];/*账号*/ char shenfenzheng[19]; /*身份证*/ char mima[7]; /*密码*/ float yue; /*余额*/ struct JiaoYi jiaoyi[JIAOYISHU]; /*在账户的结构体中在定义交易的结构体*/ int jiaoyishu; }; struct ZhangHu zhanghu[ZHANGHUSHU]; /*定义账户数来确定账户这一结构体中有多少个体*/ int j; /*当前账户*/ int zhanghushu; int k;/*交易帐号*/ int jiaoyishu; void xianshizhanghu(); int caidan()/*菜单函数*/ { char c; do { system(\"cls\"); /*每次选择运行前清屏*/ printf(\"\\ =================); /*菜单选择*/ printf(\"\\ * 1. 注册* printf(\"\\ * 2. 登录 printf(\"\\ * 3. 保存数据 printf(\"\\ * 0. 退出 printf(\"\\ 欢迎 使用ATM *\\n\"); *\\n\"); *\\n\"); *\\n\"); 系统 ===============\\n\\n\" ===============================================\\n\"); printf(\"\\\请作出选择(0-3):\"); c=getchar(); /*读入选择*/ } while(c<'0'||c>'3'); return(c-'0'); /*c变为空后返回重新选择*/ }/*根据主菜单的返回值来确定主函数的值*/ void zhuce() { printf(\"\\n\\请输入姓名:\"); scanf(\"%s\",zhanghu[zhanghushu].xingming); printf(\"\\n\\请输入帐号:\"); scanf(\"%s\",zhanghu[zhanghushu].zhanghao); do { printf(\"\\n\\请输入身份证:\"); scanf(\"%s\",zhanghu[zhanghushu].shenfenzheng); if(strlen(zhanghu[zhanghushu].shenfenzheng)==18) break; else printf(\"\\n\\身份证必须是18,请重新输入!\"); } while(1); do { printf(\"\\n\\请输入密码:\"); scanf(\"%s\",zhanghu[zhanghushu].mima); if(strlen(zhanghu[zhanghushu].mima)==6) break; else printf(\"\\n\\密码必须是6位,请重新输入!\"); } while(1); zhanghu[zhanghushu].yue=0; zhanghu[zhanghushu].jiaoyishu=0; zhanghushu++; xianshizhanghu(); } void xianshizhanghu() /*显示账户函数来显示所输入的账户*/ { int i; for(i=0;i printf(\"\\n\\n\帐号\姓名\身份证\\密码\余额\\n\"); printf(\"\%s\%s\%s\%s\%.2f\\n\",zhanghu[i].zhanghao,zhanghu[i].xingming,zhanghu[i].shenfenzheng,zhanghu[i].mima,zhanghu[i].yue); system(\"pause\"); } } void denglu() /*登录函数*/ { char zhanghao[12],mima[7]; int i=0; int mimacishu=1; printf(\"\\n\\请输入帐号:\"); scanf(\"%s\",zhanghao); while(strcmp(zhanghao,zhanghu[i].zhanghao)!=0&&i if(i==zhanghushu) return; do { printf(\"\\n\\请输入密码:\"); scanf(\"%s\",mima); if(strcmp(mima,zhanghu[i].mima)!=0) { if(mimacishu==3) { printf(\"你已输入错误三次,你不能在输.\"); system(\"pause\"); return; } else { printf(\"密码错误请重新输入:\"); mimacishu++; } } else break; } while(1); for(;;) { switch(menu()) /*选择判断*/ { case 1: cunkuan(); break; case 2: qukuan(); break; case 3: zhuanzhang(); break; case 4: chaxun(); break; case 5: xiugaimima(); break; case 0: return; } } } void baocunshuju()/*保存数据*/ { int i,j; FILE *fp; char filename[20]; printf(\"\\\将数据保存到一个文本文件中\\n\");/*输入文件名*/ printf(\"\\\请输入文件名\"); fflush(stdin); scanf(\"%s\",filename); if((fp=fopen(filename,\"w\"))==NULL)/*打开文件*/ { printf(\"无法创建此文件\\n\"); system(\"pause\"); return; } fprintf(fp,\"%d\\n\",zhanghushu);/*循环写入数据*/ printf(\"\帐号\\姓名\\身份证\\密码\余额\交易数\"); for(i=0;i fprintf(fp,\"\%15s%10s%20s%10s\%10.2f\%5d\\n\",zhanghu[i].zhanghao,zhanghu[i].xingming,zhanghu[i].shenfenzheng,zhanghu[i].mima,zhanghu[i].yue,zhanghu[i].jiaoyishu); for(j=0;j ].leixing,zhanghu[i].jiaoyi[j].jine,zhanghu[i].jiaoyi[j].yue); } fclose(fp); } void duqushuju() { int i,j; FILE *fp; char filename[20]; printf(\"\\n\\n\\n\请输入欲读入数据的文件名:\\n\"); fflush(stdin); gets(filename); if(strlen(filename)==0) return; else if((fp=fopen(filename,\"r\"))==NULL)/*打开文件*/ { printf(\"无法打开此文件\\n\"); system(\"pause\"); return; } else { printf(\"\\成功打开文件.\\n\"); getch(); } fscanf(fp,\"%d\\n\",zhanghushu); for(i=0;i fscanf(fp,\"%15s%10s%20s%10f\%10f%5d\\n\", zhanghu[i].zhanghao, zhanghu[i].xingming, zhanghu[i].shenfenzheng, zhanghu[i].mima, &zhanghu[i].yue, &zhanghu[i].jiaoyishu); for(j=0;j fgets(zhanghu[i].jiaoyi[j].shijian,30,fp); fscanf(fp,\"%5s%10f\%10f\\n\",zhanghu[i].jiaoyi[j].leixing, &(zhanghu[i].jiaoyi[j].jine), &(zhanghu[i].jiaoyi[j].yue)); } } fclose(fp); } int menu() { char c; do { system(\"cls\"); printf(\"\\n\\n\================= 欢迎使用 XXX银行ATM ==================\\n\\n\"); printf(\"\==========================================\\n\"); 请选择服务 printf(\"\* *\\n\"); printf(\"\* 1 实时存款 2 取款服务 *\\n\"); printf(\"\* *\\n\"); printf(\"\* 3 转账服务 4 查询 *\\n\"); printf(\"\* *\\n\"); printf(\"\* 5 修改密码 6 退出 *\\n\"); printf(\"\* *\\n\"); printf(\"\====================================================\\n\"); printf(\"\\\请作出选择(1-7):\"); c=getchar(); /*读入选择*/ system(\"pause\"); } while(c<'1'||c>'7'); return(c-'0'); /*c变为空后返回重新选择*/ } void cunkuan() /*存款函数*/ { float cunkuanjine;/*输入的存款金额*/ int k; int i; char t[30]; time_t rawtime; struct tm *timeinfo; time(&rawtime); timeinfo=localtime(&rawtime); strcpy(t,asctime(timeinfo)); for(i=0;t[i]!='\\0';i++) if(t[i]=='\\n') { t[i]='\\0'; break; } printf(\"请输入存款金额(存款金额必须大于0,不超过10000,必须是100元的面额\\n\"); scanf(\"%f\",&cunkuanjine); if(cunkuanjine<=0||cunkuanjine>1000||(int)cunkuanjine%100!=0) { printf(\"金额不符合要求,请重新选择\"); return; } else { k=zhanghu[j].jiaoyishu; strcpy(zhanghu[j].jiaoyi[k].shijian,t); strcpy(zhanghu[j].jiaoyi[k].leixing,\"存\"); zhanghu[j].jiaoyi[k].jine=cunkuanjine; zhanghu[j].yue+=cunkuanjine; zhanghu[j].jiaoyi[k].yue=zhanghu[j].yue; zhanghu[j].jiaoyishu++; printf(\"\\n\\\\\您本次存了%.2f元\\n\",cunkuanjine); printf(\"\\n\\\\\您的余额为%.2f元\\n\",zhanghu[j].yue); printf(\"\\n时间为:%s\\n\",zhanghu[j].jiaoyi[k].shijian); printf(\"\\n类型为:%s\\n\",zhanghu[j].jiaoyi[k].leixing); system(\"pause\"); } } void qukuan() /*取款函数*/ { int k;/*交易下标*/ float qukuanjine; int i; char t[30]; time_t rawtime; struct tm *timeinfo; time(&rawtime); timeinfo=localtime(&rawtime); strcpy(t,asctime(timeinfo)); for(i=0;t[i]!='\\0';i++) if(t[i]=='\\n') { t[i]='\\0'; break; } printf(\" 取款服务 \\n\"); printf(\"\=====================); 请选择服务 =====================\\n\" printf(\"\* *\\n\"); printf(\"\* 1 100 2 200 *\\n\"); printf(\"\* *\\n\"); printf(\"\* 3 500 4 1000 *\\n\"); printf(\"\* *\\n\"); printf(\"\* 5 其他金额 6 返回主菜单 *\\n\"); printf(\"\* *\\n\"); printf(\"\====================================================\\n\"); scanf(\"%f\",&qukuanjine); if(qukuanjine<=0||qukuanjine>10000||(int)qukuanjine%100!=0) { printf(\"金额不符合要求,请重新选择\"); return; } else if(zhanghu[j].yue printf(\"你的账户余额不足,不能完成这项操作。 return; } { k=zhanghu[j].jiaoyishu; strcpy(zhanghu[j].jiaoyi[k].shijian,t); strcpy(zhanghu[j].jiaoyi[k].leixing,\"取\"); zhanghu[j].jiaoyi[k].jine=qukuanjine; ); \" zhanghu[j].yue-=qukuanjine; zhanghu[j].jiaoyi[k].yue=zhanghu[j].yue; zhanghu[j].jiaoyishu++; printf(\"\\n\\\\\您本次取款%.2f元\\n\",qukuanjine); printf(\"\\n\\\\\您的余额为%.2f元\\n\",zhanghu[j].yue); printf(\"\\n时间为:%s\\n\",zhanghu[j].jiaoyi[k].shijian); printf(\"\\n类型为:%s\\n\",zhanghu[j].jiaoyi[k].leixing); system(\"pause\"); } } void zhuanzhang() { float zhuanzhangjine; int i; int l=0; char t[30],zhuanzhangzhanghao[12]; char sign='n'; time_t rawtime; struct tm *timeinfo; time(&rawtime); timeinfo=localtime(&rawtime); strcpy(t,asctime(timeinfo)); for(i=0;t[i]!='\\0';i++) if(t[i]=='\\n') { t[i]='\\0'; } printf(\"请输入你要转入的帐号:\"); scanf(\"%s\",zhuanzhangzhanghao); while(strcmp(zhanghu[l].zhanghao,zhuanzhangzhanghao)!=0&&l if(l==zhanghushu) { printf(\"你输入的用户不存在!\\n\"); system(\"pause\"); return; } printf(\"\\n该账户户主姓名为%s\\n,是否确认转账Y/N?\",zhanghu[j].xingming); scanf(\"\\%c\",&sign); /*输入判断*/ if(sign!='y'&&sign!='Y') /*判断*/ return; else { do { printf(\"\\n请输入转账金额(大于100不超过5000):\"); scanf(\"%f\",&zhuanzhangjine); if(zhuanzhangjine<100||zhuanzhangjine>5000) { printf(\"输入金额不对,请重新输入!\"); system(\"pause\"); return; } if(zhanghu[j].yue<=0||zhanghu[j].yue printf(\"账户余额不足\\n\"); system(\"pause\"); return; } else { k=zhanghu[j].jiaoyishu; strcpy(zhanghu[j].jiaoyi[k].shijian,t); strcpy(zhanghu[j].jiaoyi[k].leixing,\"转账\"); zhanghu[j].jiaoyi[k].jine=zhuanzhangjine; zhanghu[j].yue-=zhuanzhangjine; zhanghu[j].jiaoyi[k].yue=zhanghu[j].yue; } }while(0); } zhanghu[j].jiaoyishu++; printf(\"\\n\\你本次转了%0.2f元\\n\",zhuanzhangjine); printf(\"\\n\\你的余额为%0.2f元\\n\",zhanghu[j].yue); printf(\"\\n\\时间为:%s\\n\",zhanghu[j].jiaoyi[k].shijian); printf(\"\\n\\类型为:%s\\n\",zhanghu[j].jiaoyi[k].leixing); system(\"pause\"); printf(\"\\n\\n\\转账成功\\n\\n\"); system(\"pause\"); } void xiugaimima() /*修改密码函数*/ { char mima1[7],mima2[7]; do { do { printf(\"\\n\\n\\n\\请输入密码:\"); scanf(\"%s\",mima1); if(strlen(mima1)==6) break; else printf(\"\\n\\n\\密码必须是6位,请重新输入!\"); }while(1); do { printf(\"\\n\\n\\n\\请确认密码:\"); scanf(\"%s\",mima2); if(strlen(mima2)==6) break; else printf(\"输入密码必须是6位请输入密码:\"); } while(1); if(strcmp(mima1,mima2)==0 ) /*判断第二次输入的密码是否与第一次的一致*/ break; else printf(\"\\n\\n\\*|两次密码不相等请重新输入:\\n\\n\"); } while(1); strcpy(zhanghu[j].mima,mima1); printf(\"\\n\\n\\修改密码成功\\n\\n\"); getch(); system(\"pause\"); } int chaxuncaidan();/*查询菜单*/ void chaxunyue(); void chaxuncunkun(); void chaxunqukun(); void chaxunzhuangzhan(); void chaxunjiaoyi(); void duqushuju(); void chaxun() /*查询函数*/ { for(;;) { switch(chaxuncaidan()) /*选择判断*/ { case 1: chaxunyue(); break; case 2: chaxuncunkun(); break; case 3: chaxunqukun(); break; case 4: chaxunzhuangzhan(); break; case 5: chaxunjiaoyi(); break; case 0: return; } } } int chaxuncaidan()/*菜单函数*/ { char c; do { system(\"cls\"); /*每次选择运行前清屏*/ printf(\"\\ *********************查询菜单*******************\\n\\n\"); /*菜单选择*/ printf(\"\\ *| 1. 查询余额|\\n\"); printf(\"\\ *| 2. 查询存款记录|\\n\"); printf(\"\\ *| 3. 查询取款记录|\\n\"); printf(\"\\ *| 4. 查询转账记录|\\n\"); printf(\"\\ *| 5. 查询交易情况|\\n\"); printf(\"\\ *| 0. 退出 |\\n\"); printf(\"\\ ************************************************\\n\"); printf(\"\\\请作出选择(0-5):\"); c=getchar(); /*读入选择*/ } while(c<'0'||c>'5'); return(c-'0'); /*c变为空后返回重新选择*/ } void chaxunyue()/*查询余额函数*/ { printf(\"\\n\您的余额为%.2f元\\n\",zhanghu[j].yue); system(\"pause\"); } void chaxuncunkun() /*查询存款函数*/ { int i; printf(\"\\ *************存款查询记录****************\\n\\n\"); printf(\"\帐号\姓名\交易类型\交易时间\\金额\余额\\n\"); for(i=0;i if(strcmp(zhanghu[j].jiaoyi[i].leixing,\"存\")==0) printf(\"\%s\%s\%s\%s\%.2f\%.2f\\n\\n\",zhanghu[j].zhanghao, zhanghu[j].xingming,zhanghu[j].jiaoyi[i].leixing, zhanghu[j].jiaoyi[i].shijian,zhanghu[j].jiaoyi[i].jine, zhanghu[j].jiaoyi[i].yue); else; } system(\"pause\"); } void chaxunqukun() /*查询取款函数*/ { int i; printf(\"\\ *************取款查询记录****************\\n\\n\"); printf(\"\帐号\姓名\交易类型\交易时间\\金额\余额\\n\"); for(i=0;i if(strcmp(zhanghu[j].jiaoyi[i].leixing,\"取\")==0) printf(\"\%s\%s\%s\%s\%.2f\%.2f\\n\\n\",zhanghu[j].zhanghao, zhanghu[j].xingming,zhanghu[j].jiaoyi[i].leixing, zhanghu[j].jiaoyi[i].shijian,zhanghu[j].jiaoyi[i].jine, zhanghu[j].jiaoyi[i].yue); else; } system(\"pause\"); } void chaxunzhuangzhan()/*查询转账函数*/ { int i; printf(\"\\ *************取款查询记录****************\\n\\n\"); printf(\"\帐号\姓名\交易类型\交易时间\\金额\余额\\n\"); for(i=0;i if(strcmp(zhanghu[j].jiaoyi[i].leixing,\"转\")==0) printf(\"\%s\%s\%s\%s\%.2f\%.2f\\n\\n\",zhanghu[j].zhanghao, zhanghu[j].xingming,zhanghu[j].jiaoyi[i].leixing, zhanghu[j].jiaoyi[i].shijian,zhanghu[j].jiaoyi[i].jine, zhanghu[j].jiaoyi[i].yue); else; } system(\"pause\"); } void chaxunjiaoyi() /*查询交易函数*/ { int i; printf(\"\\ *************取款查询记录****************\\n\\n\"); printf(\"\帐号\姓名\交易类型\交易时间\\金额\余额\\n\"); for(i=0;i printf(\"\%s\%s\%s\%s\%.2f\%.2f\\n\\n\",zhanghu[j].zhanghao, zhanghu[j].xingming,zhanghu[j].jiaoyi[i].leixing, zhanghu[j].jiaoyi[i].shijian,zhanghu[j].jiaoyi[i].jine, zhanghu[j].jiaoyi[i].yue); } system(\"pause\"); } void main() /*主函数*/ { duqushuju(); for(;;) { switch(caidan()) /*调用主菜单根据主菜单的返回值来做选择*/ { case 1: zhuce(); break; case 2: denglu(); break; case 3: baocunshuju(); break; case 0: printf(\"\\\欢迎使用ATM!\\n\"); /*结束程序*/ printf(\"\\\\"); system(\"pause\"); /*使程序暂停*/ exit(0); } } } 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- dfix.cn 版权所有 湘ICP备2024080961号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务