C语言实训ATM机存取款机管理系统.docx
- 文档编号:24558082
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:16
- 大小:17.65KB
C语言实训ATM机存取款机管理系统.docx
《C语言实训ATM机存取款机管理系统.docx》由会员分享,可在线阅读,更多相关《C语言实训ATM机存取款机管理系统.docx(16页珍藏版)》请在冰豆网上搜索。
C语言实训ATM机存取款机管理系统
/***********************************************/
/*实训案例:
ATM存取款机管理系统*/
/***********************************************/
#include
#include
#include
#include
#include
#defineN3/*用户人数*/
structclients
{
longintcard_number,card_password;
charname[20];
floatmoney;
}yonghu[N];//结构体
FILE*fp;
inti;
voidfuction(float,int);//定义变量
main()//主函数
{
system("color8F");//界面颜色
intj,number,password,times1=3,times2=3,b;
charch;
fp=fopen("clients.txt","a+");//读写文本
if(getw(fp)==EOF)
{
/*欢迎界面进度条*/
inti=0,j=0,k=0;
for(i=0;i<80;i++)
{
printf(">");
for(j=0;j<3000;j++)
for(k=0;k<3000;k++);
}
printf("\n\n");
printf("\t\t\t欢迎使用中国银行\n");
printf("\n\n");
for(i=0;i<80;i++)
{
printf(">");
for(j=0;j<3000;j++)
for(k=0;k<3000;k++);
}
printf("\n");
printf("\n");
/*管理员操作新建用户*/
printf("\n\t\t管理员操作请按1,普通用户登入请按2继续:
");
scanf("%d",&b);
if(b==1)
{
printf("\n\t\t管理员操作中,添加新卡请继续(y/n):
");
ch=getch();
while(ch=='y'||ch=='Y')
{
printf("\n");
printf("\t\t\t银行卡号");
scanf("%d",&yonghu[i].card_number);
printf("\t\t\t密码");
scanf("%d",&yonghu[i].card_password);
printf("\t\t\t用户名");
scanf("%s",yonghu[i].name);
printf("\t\t\t卡内金额");
scanf("%f",&yonghu[i].money);
printf("\n");
fprintf(fp,"%d%d%s%f",yonghu[i].card_number,
yonghu[i].card_password,yonghu[i].name,
yonghu[i].money);
putc('\n',fp);
printf("\t\t你想继续添加新卡吗?
(y/n):
");
ch=getch();
}
}
}
fclose(fp);
/*登录系统,输入卡号和密码*/
system("cls");
printf("\n\t\t\t||====================================||");
printf("\n\t\t\t||------------------------------------||");
printf("\n\t\t\t||---欢迎使用中国银行自助ATM机---||");
printf("\n\t\t\t||------------------------------------||");
printf("\n\t\t\t||====================================||");
printf("\n\n");
printf("\t\t\t请输入您的银行卡号:
");
scanf("%d",&number);
printf("\t\t\t请输入您的密码:
");
scanf("%d",&password);
fp=fopen("clients.txt","r+");
for(i=0;i { fscanf(fp,"%d%d%s%f",&yonghu[i].card_number, &yonghu[i].card_password,yonghu[i].name, &yonghu[i].money); } fclose(fp); /*判断卡号及密码是否匹配*/ for(i=0;i { if((number! =yonghu[0].card_number)&&(number! =yonghu[1].card_number)&&(number! =yonghu[2].card_number)) { if((times1-1)! =0) { printf("\t\t\t该用户不存在! 您还有%d次尝试机会\n",times1-1); printf("\t\t\t请重新输入您的银行卡号: "); scanf("%d",&number); printf("\t\t\t请输入您的密码: "); scanf("%d",&password); i=-1; } else { printf("您的磁卡已被冻结请到银行解除: \n"); exit(0); } times1--; } else { if(number==yonghu[i].card_number) { if(password==yonghu[i].card_password) {system("cls"); printf("\n\n"); printf("\t\t\t%s登陆成功! 请继续您的操作\n",yonghu[i].name); j=i; i=5;/*登陆成功,退出循环*/ } else { if((times2-1)! =0) { printf("密码输入错误! 您还有%d次尝试机会\n",times2-1); printf("\t\t\t请输入您的密码: \n"); scanf("%d",&password); i=-1; } else { printf("尝试失败! 请按任意键退出: \n"); exit(0); } times2--; } } } } fuction(yonghu[j].money,j); } voidsave(void)//文件文本保存 { inti; fp=fopen("clients.txt","w"); for(i=0;i { fprintf(fp,"%d%d%s%f",yonghu[i].card_number, yonghu[i].card_password,yonghu[i].name, yonghu[i].money); putc('\n',fp); } puts("保存成功! "); fclose(fp); } voidfuction(floatm,intk)//功能界面 { floatsaved_money,fetched_money,payment; intbank_num,x,old_password,new_password,b,h; while (1) { system("cls"); printf("\n\t\t请选择操作: "); printf("\n\t\t||===================================||"); printf("\n\t\t||1.查询2.取款||"); printf("\n\t\t||||"); printf("\n\t\t||3.存款4.修改密码||"); printf("\n\t\t||||"); printf("\n\t\t||5.转帐6.取卡||"); printf("\n\t\t||===================================||"); printf("\n\n"); /******功能实现*********/ scanf("%d",&x); switch(x) { //查询余额 case1: printf("卡内金额: %f\n",m); printf("返回请按1,取卡请按0\n"); scanf("%d",&b); for(h=1;;h++) { if(b! =1&&b! =0) {system("cls"); printf("输入有误请重新输入! \n"); printf("返回请按1,取卡请按0\n"); scanf("%d",&b); } if(b==1) { break; } else exit(0); } break; //取款 case2: printf("卡内金额: %f\n",m); printf("请输入取款金额: \n"); scanf("%f",&fetched_money); m-=fetched_money; while((fetched_money<0)||(m<0)) { system("cls"); printf("输入有误! 请重新输入! \n"); m+=fetched_money; printf("输入1重新输入,输入0返回! \n"); scanf("%d",&h); if(h==0) break; if(h==1) { printf("请输入取款金额: \n"); scanf("%f",&fetched_money); m-=fetched_money; if(fetched_money>0) break; else { printf("输入1重新输入,输入0返回! \n"); scanf("%d",&h); } } } while(fetched_money>0) { printf("操作成功! 卡内余额为: %f\n",m); yonghu[k].money=m; save(); printf("请输入1继续,0取卡\n"); scanf("%d",&b); if(b==0) { exit(0); } else break; } break; //存款 case3: printf("卡内金额: %f\n",m); printf("请输入存款金额: \n"); scanf("%f",&saved_money); while(saved_money<0) {system("cls"); printf("输入有误! ! \n"); printf("重新输入请按1,返回请按0\n"); scanf("%d",&h); getchar(); while(h==1) { printf("请输入存款金额: \n"); scanf("%f",&saved_money); if(saved_money>0) { break; } else { printf("输入有误! ! \n"); printf("重新输入请按1,返回请按0\n"); scanf("%d",&h); if(h==1) { break; } } } if(h==0) break; } while(saved_money>0) { m+=saved_money; printf("操作成功! 卡内余额为: %f\n",m); yonghu[k].money=m; save(); printf("继续请按1,取卡请按0\n"); scanf("%d",&b); if(b==0) { exit(0); break; } else break; } break; //改密码 case4: while (1) { printf("继续请按1,返回请按0\n"); scanf("%d",&h); if(h==1) { printf("请输入原密码: \n"); scanf("%d",&old_password); if(old_password==yonghu[k].card_password) { printf("请输入新密码: \n"); scanf("%d",&new_password); printf("密码修改成功! \n"); yonghu[k].card_password=new_password; fp=fopen("clients.txt","w+"); for(i=0;i { fprintf(fp,"%d%d%s%f",yonghu[i].card_number, yonghu[i].card_password,yonghu[i].name,yonghu[i].money); putc('\n',fp); } fclose(fp); printf("请输入1继续,0取卡"); scanf("%d",&b); if(b==0) { save(); exit(0); } else break; } else printf("密码输入错误! \n"); } elseif(h==0) { break; } } break; //转帐 case5: printf("卡内金额: %f\n",m); printf("请输入银行帐号: \n"); scanf("%d",&bank_num); printf("继续请输入1,返回请输入0的数;\n"); scanf("%d",&h); if(h==1) { printf("请输入转帐金额: "); scanf("%f",&payment); m-=payment; while((payment<0)||(m<0)) { printf("输入有误! 请重新输入! \n"); m+=payment; printf("请输入转帐金额: \n"); scanf("%f",&payment); m-=payment; } yonghu[k].money=m; save(); printf("操作成功! 卡内余额为: %f\n",m); printf("继续请按1,取卡请按0\n"); scanf("%d",&b); getchar(); while(b==1) { break; } while(b==0) { exit(0); } yonghu[k].money=m; fp=fopen("clients.txt","w+"); for(i=0;i { fprintf(fp,"%d%d%s%f",yonghu[i].card_number,yonghu[i].card_password,yonghu[i].name,yonghu[i].money); putc('\n',fp); } fclose(fp); } break; //取卡 case6: system("color2B"); printf("请收好您的磁卡! ");exit(0);break; default: printf("输入有误! 请重新输入! \n"); break; } } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 ATM 取款 管理 系统