收藏 分享(赏)

【C语言】课程设计-ATM机模拟操作(附源码).doc

上传人:HR专家 文档编号:11579602 上传时间:2020-07-07 格式:DOC 页数:18 大小:244.50KB
下载 相关 举报
【C语言】课程设计-ATM机模拟操作(附源码).doc_第1页
第1页 / 共18页
【C语言】课程设计-ATM机模拟操作(附源码).doc_第2页
第2页 / 共18页
【C语言】课程设计-ATM机模拟操作(附源码).doc_第3页
第3页 / 共18页
【C语言】课程设计-ATM机模拟操作(附源码).doc_第4页
第4页 / 共18页
【C语言】课程设计-ATM机模拟操作(附源码).doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、C语言-ATM机模拟操作程序实现功能点:a. 查询:查询帐户的存款余额。按任意键返回主菜单;b. 取款:输入100、500、1000、2000、5000、其它金额为取款金额,取款金额不超过帐户余额,操作后帐户余额应相应减少,之后可返回主菜单;c. 存款:输入100、500、1000、2000、5000、其它金额为存款金额,存款金额不超过20000元,操作后帐户余额应相应增加。之后可返回主菜单;d. 转帐:输入一个帐户号,程序判断与文件信息是否相符,储户确认无误后,再输入100、500、1000、2000、5000、其它金额为转帐金额,转帐金额不得超过帐户余额,操作后帐户余额应相应减少。之后可返

2、回主菜单;e. 修改密码:连续输入两次新密码(两次输入结果完全相同)后,新密码取代旧密码,并存放到帐户信息文件中。之后可返回主菜单;f. 退出:退出系统;g. 帮助:增加趣味性;h. 存款时,可正可负,正表示存款,负表示取款;i. 帐户信息存放在accounts.txt文件,储户存取款记录保存在records.txt中;(在目录下创建这两个文件)j. 采用模块化程序设计方法来实现,即main()显示主菜单、调用相关函数实现相应功能,起主控作用;k. 储户一天内输错密码的次数不能超过3次,否则无法进入系统;l. 有效避免输入存款金额、取款金额为负数等异常情况的出现。较为突出的功能是注册、登录时账

3、号密码的核对验证;存款转出转入金额的核对。是否超过余额,是否不符合格式,是否为冲突操作。(2)程序运行截图及说明(每图限50到100字);l 进入程序,menu1可选择登录、注册功能。l 选择登录,输入账号密码,通过输入内容与文件的匹配,判断是否成功登录。若登录失败,则重新选择。l 选择注册,输入账号密码,写入文件中。l 进入menu2,有五大功能选择,输入对应的序列号进入。l 余额查询功能输出账号所对应的余额。l 取款功能,需要安装要求取出格式化的金额。l 存款功能,选择金额,若超过存款,自动报错。存储成功后,在屏幕上显示余额并可在txt中看到对应数目的增加。l 修改密码功能,输入当前密码,

4、输入新密码,并进行确认。即修改成功。l 转账功能,输入对方卡号,核程序核对卡号是否存在,选择金额转账,对应存款的减少会反映在屏幕的余额上。l 退出功能,任意键退出程序。l 帮助功能,介绍了本程序的相关信息。(3)采用的主要技术(限150到200字);答:主要采用模块化管理代码。使用结构体对文本信息进行操作、运用文件操作相关函数如fwrite()、fread()、fgets()、fputs()、fgetc()、fputc()、fopen()、fclose().并使用指针操作数值。附:程序代码#include #include #include #include#include#define N

5、3void enterzhanghao(); /ATM账号输入函数 void inputmima(); /密码输入函数 void menu(); /操作界面 void Withdraw(); /取款函数 void daly(); /延时函数 void yuer(); /余额查询函数 void Desposit(); /存款函数 int quit(); /退出界面函数 void change(); /密码修改 void read(); /文件读取函数 void write(); /文件写入函数void write2(float h); /流水账函数void tran_account();/转账函

6、数void enter();/登录函数void flesh();/注册函数void help();/帮助typedef structint num;int password;double accounte;atm;atm ATMN = 10001, 111111, 10000 , 10002, 222222, 20000 , 10003, 333333, 30000 ;typedef structint year;int month;int day;riqi;int k;int main()enterzhanghao();/ATM账号输入函数void enterzhanghao()read()

7、;printf(ttttt*n);printf(ttttt- 欢迎使用ATM机模拟操作的程序 1、登录 2、注册 -n);printf(ttttt*n);printf(请输入对应序号:);int k;scanf(%d, &k);switch (k)case 1:enter(); break;case 2:flesh(); break;void enter()system(cls);int user;printf(请输入账号:);scanf(%d, &user);if (user = 0)printf(ttttt* 账号错误 *tttttn);enterzhanghao();else if (u

8、ser != (ATMk.num)for (k = 1; k N; k+)if (user = (ATMk.num)inputmima();system(cls);printf(ttttt* 账户不存在,请从新输入 *tttttn);enterzhanghao();elseinputmima();void flesh()system(cls);printf(ttttt请输入账号:);scanf(%f, &ATMk.num);printf(ttttt请输入密码:);scanf(%f, &ATMk.password);write();/密码输入函数void inputmima()int code;

9、int temp = 3;read();system(cls);printf(ttttt* 请输入密码 *ttttn);scanf(%d, &code);while (code != ATMk.password)temp-;system(cls);printf(ttttt* 密码错误,请重新输入 *ttttn);printf(ttttt* 您还有: );printf(%d, temp);printf( 次机会 *n);scanf(%d, &code);if (temp = 1)system(cls);printf(ttttt* 您已经 3 次输入密码错误 *ttttn);printf(tttt

10、t* 系统将退出操作 *ttttn);daly();enterzhanghao();menu();/操作界面 void menu()system(cls);int h = 1, x;while (h)printf(ttttt-n);printf(n);printf(ttttt1、t查询余额n );printf(ttttt2、t取款n );printf(ttttt3、t存款n );printf(ttttt4、t修改密码 n );printf(ttttt5、t转账 n );printf(ttttt6、t退出登录n );printf(ttttt7、t帮助 n );printf(n);printf(t

11、tttt-nn );scanf(%d, &x);switch (x)case 1:yuer(); break;case 2:Withdraw(); break;case 3:Desposit(); break;case 4:change(); break;case 5:tran_account(); break;case 6:quit(); h = quit(); break;case 7:help(); break;/取款函数 void Withdraw()system(cls);float i;int y;printf(ttttt请输入你要取款的金额:n);printf(ttttt- n)

12、;printf(n);printf(ttttt1、t100n);printf(ttttt2、t200n );printf(ttttt3、t500n );printf(ttttt4、t1000n );printf(ttttt5、t2000n );printf(ttttt6、t其他金额n );printf(n);printf(ttttt- n);printf(ttttttt请输入对应序列号:n );scanf(%d, &y);system(cls);switch (y)case 1:i = 100; break;case 2:i = 200; break;case 3:i = 500; break

13、;case 4:i = 1000; break;case 5:i = 2000; break;case 6:scanf(%f, &i); break;default:printf(ttttt請重新輸入);Withdraw();break;if (i 0; h-)for (k = 300; k0; k-);/余额查询函数void yuer()system(cls);printf(ttttt账号%4d, 余额:%.2lfnnnnn, ATMk.num, ATMk.accounte);/存款函数void Desposit()system(cls);int i;printf(ttttt请将钞票整齐放入

14、!nn);printf(ttttt请输入你要存的金额:);scanf(%d, &i);if (i % 100 = 0)printf(ttttt存款成功!);elseprintf(ttttt数额必须是100的整数倍!请重新放入!);daly();Desposit();ATMk.accounte = i + ATMk.accounte;printf(%f, ATMk.accounte);write();write2(i);/退出函数int quit()system(cls);int i;printf(ttttt谢谢你的使用!nn);i = 0;return i;/密码修改void change()

15、daly();system(cls);int password1, password2, password3;printf(ttttt请输入旧密码:);scanf(%d, &password1);printf(n);if (password1 = ATMk.password)loop:printf(ttttt请输入新的密码:);scanf(%d, &password2);printf(n);printf(ttttt请再次输入新的密码:);scanf(%d, &password3);if (password2 = password3)ATMk.password = password2;print

16、f(tttttn密码修改成功!n);elseprintf(tttttn密码不一致!n);printf(ttttt请重新输入!n);goto loop;elseprintf(ttttt输入错误n);change();write();/文件读取函数void read()int i;FILE *fp;fp = fopen(accounts.txt, r);if (fp = NULL)printf(ttttt打开文件失败n);return;for (i = 0; iN; i+)fscanf(fp, %d, &(ATMi.num);fscanf(fp, %d, &(ATMi.password);fsca

17、nf(fp, %lfn, &(ATMi.accounte);fclose(fp);/accounts文件写入函数void write()int i;FILE *fp;fp = fopen(accounts.txt, w);if (fp = NULL)printf(ttttt打开文件失败n);return;for (i = 0; itm_year + 1900);fprintf(fp, %-3d, lt-tm_mon);fprintf(fp, %-3d, lt-tm_mday);fprintf(fp, %-5lfn, h);fclose(fp);/转账函数void tran_account()i

18、nt other_num10;int i, c, q, tran;/c用来判断转账是否继续,q用来判断用户行为,tran用来存储转账金额system(CLS);printf(ntttttttt0.返回菜单);printf(nnnnnnttt请输要对方的账号: );scanf(%d, other_num10);/输入对方账号if (other_num10 = ATMk.num)/判断是否为自身账号system(CLS);printf(nnnnnnnn tt对不起,不能给自己转账,请重新输入账号!n);printf(nnn按任意键返回!);_getch();system(CLS);tran_account();/递归调用elsewhile (1)for (i = 0; i = 100 & tran % 100 = 0)/判断是否为整百/数并且大于100的数if (tran = ATMk.accounte)/取款数是否不超过余额if (tran 码字不易,我可以在你心里跑一圈吗 1、可以 2、当然可以 你要选哪个? -n);int k;scanf(%d, &k);switch (k)case 1:printf(蟹蟹你!n); _getch(); menu(); break;case 2:printf(等下我,第十圈了!3n); _getch(); menu();break;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 学术论文 > 管理论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报