C语言课程设计ATM机模拟操作附源码.docx
- 文档编号:28008271
- 上传时间:2023-07-07
- 格式:DOCX
- 页数:14
- 大小:144.08KB
C语言课程设计ATM机模拟操作附源码.docx
《C语言课程设计ATM机模拟操作附源码.docx》由会员分享,可在线阅读,更多相关《C语言课程设计ATM机模拟操作附源码.docx(14页珍藏版)》请在冰豆网上搜索。
C语言课程设计ATM机模拟操作附源码
C语言-ATM机模拟操作
程序实现功能点:
a.查询:
查询帐户的存款余额。
按任意键返回主菜单;
b.取款:
输入100、500、1000、2000、5000、其它金额为取款金额,取款金额不超过帐户余额,操作后帐户余额应相应减少,之后可返回主菜单;
c.存款:
输入100、500、1000、2000、5000、其它金额为存款金额,存款金额不超过20000元,操作后帐户余额应相应增加。
之后可返回主菜单;
d.转帐:
输入一个帐户号,程序判断与文件信息是否相符,储户确认无误后,再输入100、500、1000、2000、5000、其它金额为转帐金额,转帐金额不得超过帐户余额,操作后帐户余额应相应减少。
之后可返回主菜单;
e.修改密码:
连续输入两次新密码(两次输入结果完全相同)后,新密码取代旧密码,并存放到帐户信息文件中。
之后可返回主菜单;
f.退出:
退出系统;
g.帮助:
增加趣味性;
h.存款时,可正可负,正表示存款,负表示取款;
i.帐户信息存放在文件,储户存取款记录保存在中;(在目录下创建这两个文件)
j.采用模块化程序设计方法来实现,即main()显示主菜单、调用相关函数实现相应功能,起主控作用;
k.储户一天内输错密码的次数不能超过3次,否则无法进入系统;
l.有效避免输入存款金额、取款金额为负数等异常情况的出现。
较为突出的功能是注册、登录时账号密码的核对验证;存款转出转入金额的核对。
是否超过余额,是否不符合格式,是否为冲突操作。
(2)程序运行截图及说明(每图限50到100字);
进入程序,menu1可选择登录、注册功能。
选择登录,输入账号密码,通过输入内容与文件的匹配,判断是否成功登录。
若登录失败,则重新选择。
选择注册,输入账号密码,写入文件中。
进入menu2,有五大功能选择,输入对应的序列号进入。
余额查询功能输出账号所对应的余额。
取款功能,需要安装要求取出格式化的金额。
存款功能,选择金额,若超过存款,自动报错。
存储成功后,在屏幕上显示余额并可在txt中看到对应数目的增加。
修改密码功能,输入当前密码,输入新密码,并进行确认。
即修改成功。
转账功能,输入对方卡号,核程序核对卡号是否存在,选择金额转账,对应存款的减少会反映在屏幕的余额上。
退出功能,任意键退出程序。
帮助功能,介绍了本程序的相关信息。
(3)采用的主要技术(限150到200字);
答:
主要采用模块化管理代码。
使用结构体对文本信息进行操作、运用文件操作相关函数如fwrite()、fread()、fgets()、fputs()、fgetc()、fputc()、fopen()、fclose()......
并使用指针操作数值。
附:
程序代码
#include<>
#include<>
#include<>
#include<>
#include<>
#defineN3
voidenterzhanghao();um))
{
for(k=1;k { if(user==(ATM[k].num)) inputmima(); } system("cls"); printf("\t\t\t\t\t*账户不存在,请从新输入*\t\t\t\t\t\n"); enterzhanghao(); } else inputmima(); } voidflesh() { system("cls"); printf("\t\t\t\t\t请输入账号: "); scanf("%f",&ATM[k].num); printf("\t\t\t\t\t请输入密码: "); scanf("%f",&ATM[k].password); write(); } assword) { temp--; system("cls"); printf("\t\t\t\t\t*密码错误,请重新输入*\t\t\t\t\n"); printf("\t\t\t\t\t*您还有: "); printf("%d",temp); printf("次机会*\n"); scanf("%d",&code); if(temp==1) { system("cls"); printf("\t\t\t\t\t*您已经3次输入密码错误*\t\t\t\t\n"); printf("\t\t\t\t\t*系统将退出操作*\t\t\t\t\n"); daly(); enterzhanghao(); } } menu(); } ccounte&&i! =0) { ATM[k].accounte=ATM[k].accounte-i; printf("\t\t\t\t\t取款成功! 你的余额为: "); printf("%f",ATM[k].accounte); i=i*(-1); write2(i); } else printf("\t\t\t\t\t余额不足! "); write(); } lf\n\n\n\n\n",ATM[k].num,ATM[k].accounte); } ccounte=i+ATM[k].accounte; printf("%f",ATM[k].accounte); write(); write2(i); } assword) { loop: printf("\t\t\t\t\t请输入新的密码: "); scanf("%d",&password2); printf("\n"); printf("\t\t\t\t\t请再次输入新的密码: "); scanf("%d",&password3); if(password2==password3) { ATM[k].password=password2; printf("\t\t\t\t\t\n密码修改成功! \n"); } else { printf("\t\t\t\t\t\n密码不一致! \n"); printf("\t\t\t\t\t请重新输入! ! \n"); gotoloop; } } else { printf("\t\t\t\t\t输入错误\n"); change(); } write(); } um)); fscanf(fp,"%d",&(ATM[i].password)); fscanf(fp,"%lf\n",&(ATM[i].accounte)); } fclose(fp); } um); fprintf(fp,"%-8d",ATM[i].password); fprintf(fp,"%lf\n",ATM[i].accounte); } fclose(fp); } 回菜单"); printf("\n\n\n\n\n\n\t\t\t请输要对方的账号: "); scanf("%d",other_num[10]);um)um)um);回菜单\t\t\t9.确认"); scanf("%d",&c);回菜单"); printf("\n\n\n\n\n\n\t\t请输入转账金额(整百数): "); scanf("%d",&q);getchar(); if(q)ccounte)ccounte-=tran; ATM[k].accounte+=tran; menu();回菜单\t\t\t9.继续转账"); c=_getch(); if(c=='9')//输入9就行转账 { system("CLS"); } else if(c=='0')//c为0返回菜单 { system("CLS"); menu(); } else { printf("输入错误,请重新输入! \n"); system("CLS"); } } else { system("CLS"); printf("\n\n\n\n\n\n\t\t对不起,一次最多能转账3000元,请重新输入! "); printf("\n\n\n\n\n按任意键返回! \n"); _getch(); system("CLS"); } } else { system("CLS"); printf("\n\n\n\n\n\n\t\t\t您的余额不足,请重新输入! "); printf("\n\n\n\n\n按任意键返回! \n"); _getch(); system("CLS"); } } else { system("CLS"); printf("\n\n\n\n\n\n\t\t\t请输入正确的金额! 请重新输入! "); printf("\n\n\n\n\n按任意键返回! \n"); _getch(); system("CLS"); } } else { system("CLS"); menu(); } }while (1); } else if(c=='0') menu(); } } } { system("CLS"); printf("\n\n\n\n\n\n\t\t\t用户不存在! 请重新输入! "); printf("\n\n\n\n\n按任意键返回! \n"); _getch(); system("CLS"); tran_account();//递归调用 } } } //帮助 voidhelp() { system("CLS"); printf("\t\t\t\t\t**************************************\n"); printf("\t\t\t\t\t->码字不易,我可以在你心里跑一圈吗<-\n"); printf("\t\t\t\t\t->1、可以<-\n"); printf("\t\t\t\t\t->2、当然可以<-\n"); printf("\t\t\t\t\t**************************************\n"); printf("\t\t\t\t\t->你要选哪个<-\n"); intk; scanf("%d",&k); switch(k){ case1: {printf("蟹蟹你~~~! \n");_getch();menu(); };break; case2: {printf("等下我,第十圈了! \3n");_getch();menu(); }break; } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 ATM 模拟 操作 源码