基于面向对象思想的ATM系统设计与实现

上传人:简****9 文档编号:110265251 上传时间:2019-10-29 格式:DOC 页数:14 大小:163.57KB
返回 下载 相关 举报
基于面向对象思想的ATM系统设计与实现_第1页
第1页 / 共14页
基于面向对象思想的ATM系统设计与实现_第2页
第2页 / 共14页
基于面向对象思想的ATM系统设计与实现_第3页
第3页 / 共14页
基于面向对象思想的ATM系统设计与实现_第4页
第4页 / 共14页
基于面向对象思想的ATM系统设计与实现_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《基于面向对象思想的ATM系统设计与实现》由会员分享,可在线阅读,更多相关《基于面向对象思想的ATM系统设计与实现(14页珍藏版)》请在金锄头文库上搜索。

1、基于面向对象思想的ATM系统设计与实现 课程名称: VC+面向对象思想程序设计 班级: 电子信息工程2班 指导教师: 刘帅 日期: 2016年10月小组编号: 电二一组 成员:) 摘要:在控制台编程中共设置了3个类,ATM 类和card类和bankcard类,设计的程序完美的实现了设计要求,具有登陆、查询、取款、转账、修改密码、回到登录系统、退出系统等功能。程序实现分为两个部分,其一是mfc部分,其二是控制台部分。在要求的基础之上,改程序还增添了部分新功能,并对原有功能做了许多个性化修改,例如在登陆界面输入错误三次就会冻结账号退出系统,在mfc对话框中加入图片更加仿真系统。在可视化控件编程中,

2、通过建立多个对话框,并实现信息交流,完整的实现了要求的内容。程序编辑较为复杂。前言:随着市场经济的繁荣发展,人们的物质生活得到极大的提高,手中的剩余资金也日益增多。受传统观念影响,绝大多数人喜欢把资金投进银行,而在需要使用现金的时候再到银行提取现金。这就导致银行业务的急剧增加。虽然银行网点越来越多,银行的工作效率也随着信息化有较明显的增长,但是依旧不能满足广大用户的需要。而一味的增加营业网点,从理论上虽然能稍微的缓解银行的压力,但是治标不治本,而且每增加一个网点,不仅要付出昂贵的资金成本,还需要长期投入人力资本,成本非常之昂贵。这时候就迫切的需要一种自动的,易于普及的,低成本的设备来解决这一问

3、题。于是ATM机系统应运而生了。银行提款机已经发展成各大银行金融服务战略中的重要一环,为广大用户提供了更加快捷和人性化的服务,银行提款机成为我们日常生活中不可缺少的一部分。该项目正是通过设计一个ATM模拟模拟程序来实现ATM机系统的基本功能,充分运用自己所学的c+知识进行设计编程。研究报告:一、项目需求:总体思路模拟自助取款机,通过两种编程实现 1、C+控制台编程实现ATM,至少实现提款机登陆、取款、修改密码、查询余额。2、MFC控件编程实现ATM,至少实现提款机登陆、查询余额、取款和退出系统功能。项目实际达成效果:1、实现提款机登陆、修改密码、查询信息、汇款转账、回到登陆界面、取款、退卡等功

4、能;2、提款机登陆自动验证密码,密码错误无法登陆;3、在登陆、修改密码等操作过程中,连续输入三次密码错误则无法完成相关操作,自动退出程序。4、在任何情况下输入错误的序号均有提示。特色:控制台程序部分:1、在基础要求的基础上在程序中添加了延迟函数Sleep,使整个界面更加仿真ATM机。2、加入清屏函数与暂停函数,等待用户进行响应后再进行下一个进程,更加人性化。3、在欢迎界面会输出用户的姓名,如“欢迎您,李四”。4、在原本单用户系统的基础上进行修改,使其增加了多个用户,多个用户之间可以通过汇款实现金额的增减。5、汇款的实现,即当用户选择汇款账号以后,被汇款的一方金钱真的会增加。6、程序本身并没有将

5、帐号和密码导入文件,实际上,我们组经过讨论后一致认为,这样做其实很有风险,如果有黑客修改了文件中的数据,那么系统将会无法正确读取数据,系统将会崩溃。为了弥补这一不足,我们将用户的数据直接写入程序,同时增加了回到登录界面的选项。MFC部分:1、MFC主界面中增加了图片,更加仿真银行ATM.2、修改了TAB键顺序,使用户可以不再用鼠标操作。二、项目实施由于代码太过冗长影响阅读,已将代码和mfc的展示调至本文结尾。通过程序要求,我们可以清楚的知道本次设计的ATM柜员模拟程序需要实现四大功能,即查询余额、取款、汇款、修改密码。除此之外,作为ATM系统,还需要最基本的两大功能,即登陆和退出(还应包括回到

6、登陆界面)。在程序的大体框架确定之后,我们需要了解各个模块所要实现和需要具有的功能。根据现有的银行ATM系统,我们可以很快就可以了解本次设计的ATM系统应该具有的操作。 控制台部分(1)登陆界面总共设定了三个用户,帐号密码分别为“001”“111111”“002”“222222”“003”“333333”,帐号密码均正确方可进入。(2)主界面主界面包括查询、取款、汇款、修改密码、回到登陆界面、退出的功能选项,输入正确序号可进行相关操作。(3)查询界面在主界面中按下查询按钮可以进行查询操作。通过查询功能我们可以查询账户的余额,在查询过程中我们可以选择取款的业务,除此之外,查询界面之中还有返回的操

7、作。返回的操作会使用户回到主界面。(4)取款界面 取款界面可以通过主界面进入。取款功能在控制台中输入你想要取出的金额。在控制台编程中,为了实现在不取钱的情况下返回主菜单,添加了一个设定,即输入取款0元即可返回主菜单。 (5)转账界面 转账界面需要通过主界面进入。可以根据提示输入汇款账号和汇款金额,汇款金额超出当前用户最高金额时会提示汇款失败。 (6)修改密码 选择修改密码按钮可以进行修改密码操作,但是要先输入就密码正确并且两次输入新密码一致才可以修改密码。修改完成后,会返回登陆界面重新登录,此时,若输入修改之前的密码,将会导致无法进入系统。 (7)回到登陆界面 回到可以再次输入帐号和密码的界面

8、。 (8)退出系统 直接退出系统,程序控制台关闭。 MFC部分(1)登陆界面单用户系统,账号为001,密码为123456。错误三次直接退出系统。(2)主界面主界面包括查询、取款、修改密码、退出的功能选项,可通过鼠标点击,也可通过TAB键控制(TAB键顺序已经被设定好了)进行相关操作。(3)查询界面在主界面中按下查询按钮可以进行查询操作。通过查询功能我们可以查询账户的余额,除此之外,查询界面之中还有返回的操作。返回的操作会使用户回到主界面。(4)取款界面 取款界面可以通过主界面进入。取款功能在控制台中输入你想要取出的金额。在控制台编程中,为了实现在不取钱的情况下返回主菜单,添加了一个按钮,点击即

9、可返回主菜单。 (5)修改密码 选择修改密码按钮可以进行修改密码操作,但是要先输入就密码正确并且两次输入新密码一致才可以修改密码。修改完成后,会返回登陆界面重新登录,此时,若输入修改之前的密码,将会导致无法进入系统。 ( (6)退出系统 弹出提示,确认是否要退出系统,点击取消返回主界面,点击确认退出系统。三、体会与参考文献在这次的项目中,我们主要运用了mfc与控制台编程方面的知识,加深了对 C+语言中各个基础知识点的了解和应用,将自己所学的知识运用到实际操作当中,而不再是纸上谈兵。通过这次设计,我们深刻感受到了面向对象语言中类库的强大功能,掌握了运用C+中的类实现某些基本功能,并学会了自己查询

10、使用类的方法,为以后的面向对象语言的自学奠定了基础。由于时间仓促,脑中有许多想法仍然没有实现,比如加入定时器,实现将账号与密码导入到文件并将文件隐藏,在MFC中实现语音提示等等,也还有一些不足,比如:在控制台程序中实现了将输入的密码输出为“*”,但还没有解决按退格键无法删除字符的问题;当在登陆界面校验账号与密码时,如果添加一条语句实现不存在账户的提醒,exe文件就会停止运行的问题等等,尽管我们的项目还有很多不足,它仍然帮助我们加深了对课堂上知识的理解。参考文献CSDN论坛,百度文库,豆丁网,C+面向对象程序设计教程第三版(陈维兴 林小茶编著)控制台代码展示:#include #include#

11、include#include#includeusing namespace std;class card /基类:卡类protected:string name;string account;string password;public:card(string n, string a, string p);void modifypsw(); /修改密码功能;class ATM;class bankcard :public card /共有派生类:银行卡类int money; /比卡类多出了一个金钱属性friend ATM; /友元类ATM,使ATM类能够访问银行卡类的私有成员public:b

12、ankcard(string n=0, string a=0, string p=0, int m=0);class ATM /ATM类,模拟自助取款机主系统public:void takemoney(bankcard &); /取款函数void modifypsw(bankcard &); /修改密码函数void restmoney(bankcard ); /查询余额函数void welcome(); /欢迎界面函数void bye(); /再见函数void test(bankcard*); /用来检验账号与密码是否匹配void printname(bankcard x)Sleep(1000

13、);cout - endl;cout 欢迎您, x.name endl;cout - endl;Sleep(500);void transport(bankcard &, bankcard *);card:card(string n, string a, string p)name = n;account = a;password = p;void ATM:modifypsw(bankcard &x)/修改密码int a=0;string psw1,psw2,password;docout 请输入原密码: endl;char ch;while (ch = _getch() != 13) password += ch; cout *; cout endl;if (x.password = password)a = 1; else password =; cout 密码错误,请重新输入! password endl; while (!a);cout 请输入新密码: endl;char ch1;while (ch1 = _getch() !

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号