《C++模拟ATM机存取款管理系统设计.doc》由会员分享,可在线阅读,更多相关《C++模拟ATM机存取款管理系统设计.doc(29页珍藏版)》请在金锄头文库上搜索。
1、温馨提示程序语言:C、C+、C#、Python(红色字体 表示本课设使用的程序设计语言)图形功能选项:Win32控制台程序(黑框、文本界面)、Win32程序、MFC、WinForm、DirectX10(黑体标明 表示本课设的程序图形类别,默认为非图形界面Win32控制台程序)数据结构:基础类型、数组、链表、双向链表、搜索树(非平衡二叉树)、平衡二叉树、链表与平衡二叉树相结合、堆栈、队列、串、图(黑体标明 表示本课设使用的数据结构)C+语言项:STL库(黑体标明 表示使用C+的STL库)编译环境:Windows 7 64位旗舰版(Linux及其他环境请谨慎下载)集成开发环境:Visual C+
2、6.0、DEVC+、CodeBlocks、Visual Studio 2015均可通过编译。(浅蓝色字体 表示需要运行修改后的版本,请用户自行选择源代码测试)分多头文件编译:否(所有代码基本都包含在一个文件内,如需试验头文件功能,请自行参考相关文献)内容说明:1、课设题目及预览内容 将在第二页开始展示。2、代码行数:241行3、目录 所示内容,本文基本涵盖,如无内容,会在本页进行说明。4、附录 绝对包含用户使用手册及程序完整源代码和详细注释。5、如需下载 其他 头文件(例如DirectX需另行配置),本文会在此进行说明。6、本文撰写内容仅供学习参考,另外,由于本人水平有限,编写之处难免存在错误
3、和纰漏,恳请各位老师或同学批评指正。面向对象程序设计课程设计报告书 设计题目: 模拟ATM机存取款管理系统设计 指导老师: 学生班级: 学生学号: 学生姓名: 同组人员: 时 间: 2017.12. 课 程 设 计 任 务 书题 目 模拟ATM机存取款管理系统设计一、设计内容及要求(1)卡号、密码输入最多三次,否则直接退出系统。(2)取款功能:取款金额受卡余额、机单笔最大取款金额及机当前剩余金额的限制。(3)查询功能:实现查询余额功能。(4)更改密码:实现密码更改功能,对于密码要有2次验证。(5)锁卡功能:实现卡被锁的功能。(6)退卡功能:实现退出系统功能。二、设计原始资料 三、设计完成后提交
4、的成果及其相关资料。 四、主要参考资料 c+程序设计(第二版) 五、进程安排12.25:类的设计12.26:模块4.2、4.3的设计12.27:模块4.4、4.5的设计12.28:完成课程设计报告 第一章 概述 使用ATM柜员机可以节约人力资源,方便用户进行简单常用的操作,并且为用户全天候的服务,提高银行效率,给人们提供了非常大的便利。本文就以C+语言设计一项简单的模拟ATM柜员机程序。运行程序时,当输入给定的卡号和密码(初始卡号和密码都为123456)后,系统就能登录ATM柜员机系统,用户可以进入功能实现界面,有查询余额,取款,存款,修改密码等功能。设计要点:使用文本命令行界面。当输入给定的
5、卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:l 查询余额:初始余额为10000元l ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。l ATM存款:不能出现负存款。修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。 第二章 设计内容2.1功能:设计一个模拟ATM柜员机的程序,输入你需要的操作(选择相对的括号里的阿拉伯数字)程序具体功能有:(1) 查询余额(2) ATM取款(3) ATM存款(4) 修改密码(5) 退出系统
6、2.2 操作:本程序通过键盘操作。在运行过程中,当用户输入正确的账号和密码时,会出现一个功能界面,按照功能界面操作。只需输入所需操作的序号,便可执行其中相应的功能。但是需要小心的是如果输错密码三次,便会锁卡,这时将无法操作。 第三章 总体设计3.1模块化设计为实现系统功能,本程序主要分为六个模块。它们分别为:主界面、查询余额、ATM取款、ATM存款、修改密码、退出系统。这六个函数再通过主函数调用分别得以实现。主函数,首先提供了程序运行时的友好界面,提供客户选择的菜单。然后,通过执行多分支选择语句switch语句,分别实现其它各个函数的调用功能。其它各个函数的功能分别如下:ATM() 构造函数f
7、ace() 构造函数checkout() 检验卡号密码lock() 锁卡checkmoney() 查询余额getmoney() ATM取款savemoney() ATM存款change() 修改密码exitsystem() 退出系统show() 打印界面3.2程序运行示意图输入卡号、密码取款存款主界面查询余额修改密码退出系统5 第四章 详细设计4.1类的设计 设计了两个类,ATM类和face类。ATM类完成ATM柜员机的模拟,包括:验证卡号密码,查询余额,修改密码,取款,存款,退出系统等功能。face类完成显示登陆界面的功能,显示查询余额,修改密码,取款,存款,退出系统的选项。ATM类的设计:
8、class ATMprotected:string card;string password;float money;static int times;public:ATM(string c,string p,float m)/构造函数card=c;password=p;money=m;int checkout();/验证卡号密码void lock();/锁卡void checkmoney();/查询余额void getmoney();/取款void savemoney();/存款void change();/修改密码void exitsystem();/退出系统;face类的设计class
9、face:public ATMprotected:int x;public:face(string c,string p,float m):ATM(c,p,m)/构造函数void show();/显示界面;4.2 ATM柜员机的登陆在main主函数中实例化一个face类的对象,卡号密码都为123456,默认余额为10000.在程序运行中输入卡号密码,若都正确即可进入主界面,选择ATM柜员机的功能。程序运行首先要求用户输入卡号和密码,卡号和密码首先由main主函数构造默认,然后用checkout()函数判断卡号密码是否一致,一致则登陆,如果连续3次输入错误,则用lock()函数锁定卡号密码。相关
10、代码:void ATM:lock()if(times=3)cout输入密码3次错误,该卡已被锁endl;exitsystem();int ATM:checkout()string a;string b;while(1)couta;coutb;if(card!=a|password!=b)times+;lock();cout卡号或密码有误,请重新输入endl;elsebreak;return 1;4.3 ATM柜员机修改密码功能新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才能成功修改密码。输入正确卡号密码后,或者实现其他功能退回主界面
11、后都可以选择柜员机的修改密码功能,在运行过程中先要求用户输入旧密码,判断用户输入的旧密码是否与默认密码相同,若相同则继续运行,若不同则需要重新输入。验证旧密码正确后系统会要求用户定义新密码,新密码要重复输入两次,要求两次必须重复正确且新密码符合要求才能修改成功。相关代码:void ATM:change()int count=0,i,j,flag=1;string secondpassword;string newpassword;string oldpassword;coutoldpassword;if(password=oldpassword)coutnewpassword;if(newpassword.size()=6)for(i=0;inewpassword.size();i+)for(j=i+1;jnewpassword.size();j+)if(newpasswordi=newpasswordj)count+;if(count6)while(flag)coutsecondpassword;if(newpassword=secondpassword)cout密码修改成功!endl;flag=0;elsecout两次密码输入不一样,请重新输入endl;flag=1;elsecout修改密码失败,请重新修改endl;