ATMC语言编程源代码.docx
- 文档编号:16160270
- 上传时间:2023-07-11
- 格式:DOCX
- 页数:24
- 大小:19.29KB
ATMC语言编程源代码.docx
《ATMC语言编程源代码.docx》由会员分享,可在线阅读,更多相关《ATMC语言编程源代码.docx(24页珍藏版)》请在冰点文库上搜索。
ATMC语言编程源代码
#include
#include
#include
#include
#include
#defineZHANGHUSHU10
#defineJIAOYISHU20
intcaidan();/*登录注册菜单*/
voidzhuce();
voiddenglu();
voidbaocunshuju();
intmenu();/*主菜单*/
voidcunkuan();
voidqukuan();
voidzhuanzhang();
voidchaxun();
voidxiugaimima();
structJiaoYi/*定义交易结构体*/
{
charshijian[50];/*时间*/
charleixing[3];/*类型*/
floatjine;/*金额*/
floatyue;/*余额*/
};
structZhangHu/*定义账户结构体*/
{
charxingming[17];/*姓名*/
charzhanghao[12];/*账号*/
charshenfenzheng[19];/*身份证*/
charmima[7];/*密码*/
floatyue;/*余额*/
structJiaoYijiaoyi[JIAOYISHU];/*在账户的结构体中在定义交易的结构体*/
intjiaoyishu;
};
structZhangHuzhanghu[ZHANGHUSHU];/*定义账户数来确定账户这一结构体中有多少个体*/
intj;/*当前账户*/
intzhanghushu;
intk;/*交易帐号*/
intjiaoyishu;
voidxianshizhanghu();
intcaidan()/*菜单函数*/
{
charc;
do
{
system("cls");/*每次选择运行前清屏*/
printf("\t\t=================欢迎使用ATM系统===============\n\n");/*菜单选择*/
printf("\t\t*1.注册**\n");
printf("\t\t*2.登录*\n");
printf("\t\t*3.保存数据*\n");
printf("\t\t*0.退出*\n");
printf("\t\t===============================================\n");
printf("\t\t\t请作出选择(0-3):
");
c=getchar();/*读入选择*/
}
while(c<'0'||c>'3');
return(c-'0');/*c变为空后返回重新选择*/
}/*根据主菜单的返回值来确定主函数的值*/
voidzhuce()
{
printf("\n\t\t请输入姓名:
");
scanf("%s",zhanghu[zhanghushu].xingming);
printf("\n\t\t请输入帐号:
");
scanf("%s",zhanghu[zhanghushu].zhanghao);
do
{
printf("\n\t\t请输入身份证:
");
scanf("%s",zhanghu[zhanghushu].shenfenzheng);
if(strlen(zhanghu[zhanghushu].shenfenzheng)==18)
break;
else
printf("\n\t\t身份证必须是18,请重新输入!
");
}
while
(1);
do
{printf("\n\t\t请输入密码:
");
scanf("%s",zhanghu[zhanghushu].mima);
if(strlen(zhanghu[zhanghushu].mima)==6)
break;
else
printf("\n\t\t密码必须是6位,请重新输入!
");
}
while
(1);
zhanghu[zhanghushu].yue=0;
zhanghu[zhanghushu].jiaoyishu=0;
zhanghushu++;
xianshizhanghu();
}
voidxianshizhanghu()/*显示账户函数来显示所输入的账户*/
{
inti;
for(i=0;i { printf("\n\n\t帐号\t姓名\t身份证\t\t密码\t余额\n"); printf("\t%s\t%s\t%s\t%s\t%.2f\n",zhanghu[i].zhanghao,zhanghu[i].xingming,zhanghu[i].shenfenzheng,zhanghu[i].mima,zhanghu[i].yue); system("pause"); } } voiddenglu()/*登录函数*/ { charzhanghao[12],mima[7]; inti=0; intmimacishu=1; printf("\n\t\t请输入帐号: "); scanf("%s",zhanghao); while(strcmp(zhanghao,zhanghu[i].zhanghao)! =0&&i i++;/**/ if(i==zhanghushu) return; do { printf("\n\t\t请输入密码: "); 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())/*选择判断*/ { case1: cunkuan(); break; case2: qukuan(); break; case3: zhuanzhang(); break; case4: chaxun(); break; case5: xiugaimima(); break; case0: return; } } } voidbaocunshuju()/*保存数据*/ { inti,j; FILE*fp; charfilename[20]; printf("\t\t\t将数据保存到一个文本文件中\n");/*输入文件名*/ printf("\t\t\t请输入文件名"); fflush(stdin); scanf("%s",filename); if((fp=fopen(filename,"w"))==NULL)/*打开文件*/ { printf("无法创建此文件\n"); system("pause"); return; } fprintf(fp,"%d\n",zhanghushu);/*循环写入数据*/ printf("\t帐号\t\t姓名\t\t身份证\t\t密码\t余额\t交易数"); for(i=0;i { fprintf(fp,"\t%15s%10s%20s%10s\t%10.2f\t%5d\n",zhanghu[i].zhanghao,zhanghu[i].xingming,zhanghu[i].shenfenzheng,zhanghu[i].mima,zhanghu[i].yue,zhanghu[i].jiaoyishu); for(j=0;j fprintf(fp,"%30s%10s%10.2f%10.2f\n",zhanghu[i].jiaoyi[j].shijian,zhanghu[i].jiaoyi[j].leixing,zhanghu[i].jiaoyi[j].jine,zhanghu[i].jiaoyi[j].yue); } fclose(fp); } voidduqushuju() { inti,j; FILE*fp; charfilename[20]; printf("\n\n\n\t请输入欲读入数据的文件名: \n"); fflush(stdin); gets(filename); if(strlen(filename)==0) return; else if((fp=fopen(filename,"r"))==NULL)/*打开文件*/ { printf("无法打开此文件\n"); system("pause"); return; } else { printf("\t\t成功打开文件.\n"); getch(); } fscanf(fp,"%d\n",zhanghushu); for(i=0;i { fscanf(fp,"%15s%10s%20s%10f\t%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\t%10f\n",zhanghu[i].jiaoyi[j].leixing, &(zhanghu[i].jiaoyi[j].jine), &(zhanghu[i].jiaoyi[j].yue)); } } fclose(fp); } intmenu() { charc; do { system("cls"); printf("\n\n\t=================欢迎使用XXX银行ATM==================\n\n"); printf("\t=====================请选择服务=====================\n"); printf("\t**\n"); printf("\t*1实时存款2取款服务*\n"); printf("\t**\n"); printf("\t*3转账服务4查询*\n"); printf("\t**\n"); printf("\t*5修改密码6退出*\n"); printf("\t**\n"); printf("\t====================================================\n"); printf("\t\t\t请作出选择(1-7): "); c=getchar();/*读入选择*/ system("pause"); } while(c<'1'||c>'7'); return(c-'0');/*c变为空后返回重新选择*/ } voidcunkuan()/*存款函数*/ { floatcunkuanjine;/*输入的存款金额*/ intk; inti; chart[30]; time_trawtime; structtm*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\\t\t\t您本次存了%.2f元\n",cunkuanjine); printf("\n\\t\t\t您的余额为%.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"); } } voidqukuan()/*取款函数*/ { intk;/*交易下标*/ floatqukuanjine; inti; chart[30]; time_trawtime; structtm*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("\t=====================请选择服务=====================\n"); printf("\t**\n"); printf("\t*11002200*\n"); printf("\t**\n"); printf("\t*350041000*\n"); printf("\t**\n"); printf("\t*5其他金额6返回主菜单*\n"); printf("\t**\n"); printf("\t====================================================\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\\t\t\t您本次取款%.2f元\n",qukuanjine); printf("\n\\t\t\t您的余额为%.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"); } } voidzhuanzhang() { floatzhuanzhangjine; inti; intl=0; chart[30],zhuanzhangzhanghao[12]; charsign='n'; time_trawtime; structtm*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 l++; if(l==zhanghushu) { printf("你输入的用户不存在! \n"); system("pause"); return; } printf("\n该账户户主姓名为%s\n,是否确认转账Y/N? ",zhanghu[j].xingming); scanf("\t\t%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; zhanghu[j].jiaoyishu++; printf("\n\t\t你本次转了%0.2f元\n",zhuanzhangjine); printf("\n\t\t你的余额为%0.2f元\n",zhanghu[j].yue); printf("\n\t\t时间为: %s\n",zhanghu[j].jiaoyi[k].shijian); printf("\n\t\t类型为: %s\n",zhanghu[j].jiaoyi[k].leixing); system("pause"); } }while(0); } printf("\n\n\t\t转账成功\n\n"); system("pause"); } voidxiugaimima()/*修改密码函数*/ { charmima1[7],mima2[7]; do { do { printf("\n\n\n\t\t请输入密码: "); scanf("%s",mima1); if(strlen(mima1)==6) break; else printf("\n\n\t\t密码必须是6位,请重新输入! "); }while (1); do { printf("\n\n\n\t\t请确认密码: "); scanf("%s",mima2); if(strlen(mima2)==6) break; else printf("输入密码必须是6位请输入密码: "); }while (1); if(strcmp(mima1,mima2)==0)/*判断第二次输入的密码是否与第一次的一致*/ break; else printf("\n\n\t\t*|两次密码不相等请重新输入: \n\n"); }while (1); strcpy(zhanghu[j].mima,mima1); printf("\n\n\t\t修改密码成功\n\n"); getch(); system("pause"); } intchaxuncaidan();/*查询菜单*/ voidchaxunyue(); voidchaxuncunkun(); voidchaxunqukun(); voidchaxunzhuangzhan(); voidchaxunjiaoyi(); voidduqushuju(); voidchaxun()/*查询函数*/ { for(;;) { switch(chaxuncaidan())/*选择判断*/ { case1: chaxunyue(); break; case2: chaxuncunk
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ATMC 语言 编程 源代码