C++模拟ATM机存取款管理系统设计_第1页
C++模拟ATM机存取款管理系统设计_第2页
C++模拟ATM机存取款管理系统设计_第3页
C++模拟ATM机存取款管理系统设计_第4页
C++模拟ATM机存取款管理系统设计_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、温馨提示表示本课设使用的程序设计语程序语言: C、C+、C#、Python (红色字体 言)图形功能选项:Win32控制台程序(黑框、 文本界面)、Win32 程序、MFC WinForm、DirectXIO (黑体标明表示本课设的 程序图形类别,默认为 非图形界面 Win32控制台程序)数据结构:基础类型、数组、链表、双向链表、搜索树(非平衡二叉树)、平衡二叉树、链表与平衡二叉树相结合、堆栈、队列、串、图(黑体标明表示本课设使用的 数据结构)C+语言项:STL库(黑体标明表示使用C+的STL库)编译环境:Windows 7 64 位旗舰版(Linux 及其他环境请谨慎下载)集成开发环境:Vi

2、sual C+ 6.0、DEVC+ CodeBlocks、Visual Studio 2015均可通过编译。(浅蓝色字体 表示需要运行修改后的版本,请用户自行选择源代码测试)分多头文件编译:否(所有代码基本都包一个文件内,如需试验头文件功能请自行参考含在相关文献)内容说明:1、 课设题目及预览内容将在第二页开始展示。2、 代码行数:241行3、 目录 所示内容本文基本涵盖如无内容会在本页进行说明。4、 附录 绝对包含 用户使用手册 及程序完整源代码和详细注释。5、如需下载 其他 头文件(例如 DirectX 需另行配置)本文会在此进行说明。6、 本文撰写内容仅供学习参考另外由于本人水平有限编写

3、之处难免存在错误和纰漏恳请各位老师或同学批评指正* MM BM iF * t1? WIIkA p*T p 叩L *hi “I.虽 JB. 五 N 止W * P- Illi c* 1 b r* I hi 切订 kiIimi* JCiI mr,l!iJ面向对象程序设计课程设计报告书设计题目:模拟ATM机存取款管理系统设计指导老师:学生班级:学生学号:学生姓名:同组人员:时间:2017.12.第一章概述模拟ATM机存取款管理系统设计、设计内容及要求(1) 卡号、密码输入最多三次,否则直接退出系统(2) 取款功能:取款金额受卡余额、机单笔最大取款金额及机当前剩余金额的限制。(3) 查询功能:实现查询余

4、额功能。(4) 更改密码:实现密码更改功能,对于密码要有2次验证6)退卡(5) 锁卡功能:实现卡被锁的功能。(功能:实现退出系统功能。、设计原始资料三、设计完成后提父的成果及其相关资料。四、主要参考资料C+程序设计(第二版)五、进程安排12.25:类的设计12.26:模块4.2、4.3的设计12.27:模块4.4、4.5的设计12.28 :完成课程设计报告使用ATM柜员机可以节约人力资源,方便用户进行简单常用的操 作,并且为用户全天候的服务,提高银行效率,给人们提供了非常大 的便利。本文就以C+语言设计一项简单的模拟ATM柜员机程序。运行程序时,当输入给定的卡号和密码(初始卡号和密码都为123

5、456 )后,系统就能登录ATM柜员机系统,用户可以进入功能实现界面,有查询余额,取款,存款,修改密码等功设计要点:使用文本命令行界面。当输入给定的卡号和密码(初始卡号和密码为123456 )时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:查询余额:初始余额为ATM取款:每次取款金额为取金额不允许透支。ATM存款:不能出现负存款。修改密码:新密码长度不小于10000 元100的倍数,总额不超过5000元,支6位,不允许出现6位完全相同的情况,1只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码第二章 设计内容2.1功能:设计一个模拟 ATM柜员机的程序,输入你需

6、要的操作(选择相对的括号里的阿拉伯数字)程序具体功能有:(1)查询余额(2)ATM取款(3)ATM存款(4)修改密码(5)退出系统2.2操作本程序通过键盘操作。在运行过程中,当用户输入正确的账号和密码时,会出现一个功能界面,按照功能界面操作。只需输入所需操作的序号,便可执行其中相应的功能。是需要小心的是如果输错密码三次,便会锁卡,这时将无法操作。#第三章 总体设计3.1模块化设计为实现系统功能,本程序主要分为六个模块。它们分别为:主界面、查询余额、ATM取款、ATM存款、修改密码、退出系统。这六个函数再通过主函数调用分别得以实现。主函数,首先提供了程序运行时的友好界面,提供客户选择的菜单。然后

7、,通过执行多分支选择语句switch 语句,分别实现其它各个函数的调用功能。其它各个函数的功能分别如下:ATM()构造函数1face()构造函数1checkout。检验卡号密码llock()锁卡1checkmoney()查询余额jgetmoney()ATM取 款savemoney()ATM存 款1change()修改密码exitsystem()退出系统1show()打印界面3主界面密码两款存款退出系统查询修改余额密码43.2程序运行示意图输入卡号4.1类的设计设计了两个类,ATM类和face 类。ATM类完成ATM柜员机的模拟,包括:验证卡号密码,查询余额,修改密码,取款,存款,退出系统等功能

8、。face类完成显示登陆界面的功能,显示查询余额,修改密码,取款,存款,退出系统的选项。ATMI类的设计:class ATMprotected :string card;stringpassword;float money;staticint times;public :ATM(string c, string p, floatm)构造函数card= c;password=p;money=m;int checkout。;/验证卡号密码void lock();/ 锁卡void checkmoney();/查询余额void getmoney();/取款void savemoney();存款void

9、 change。;/修改密码void exitsystem();退出系统;face 类的设计class 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程序运行首先要求用户输入卡号和密码,卡号和密码首先由主函数构造默认

10、, 然后用checkout ()函数判断卡号密码是否一致,一致则登陆,如果连续3次输入错误,则用lock ()函数锁定卡号密码。相关代码:void ATM:lock()if (times=3)15coutvv 输入密码3次错误,该卡已被锁 ” vvendl; exitsystem(); int ATM:checkout()stringa;stringb;while (1)coutvv 请输入您的卡号:;cina;coutvv 请输入您的密码:;cinb;if (card!=a|password!=b)times+;lock();coutvv 卡号或密码有误,请重新输入vvendl;elsebr

11、eak ;return 1;4.3 ATM柜员机修改密码功能新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才能成功修改密码。输入正确卡号密码后,或者实现其他功能退回主界面后都可以选择柜员机的修改密码功能,在运行过程中先要求用户输入旧密码,判断用户输入的旧密码是否与默认密码相同,若相同则继续运行,若不同则需要重新输入。验证旧密码正确后系统会要求用户定义新密码,新密码要重复输入两次,要求两次必须重复正确且新密码符合要求才能修改成功。相关代码:void ATM:change() int count=0,i,j,flag=1;secondpa

12、ssword; newpassword; oldpassword;请输入旧密码:;stringstringcoutvvcinoldpassword;if (password=oldpassword) stringcoutvv 请输入新密码:;cinnewpassword;if (newpassword.size()=6)for (i=O;ivnewpassword.size();i+)for (j=i+1;jvnewpassword.size();j+)if (newpasswordi=newpasswordj)count+;if (countv6)while (flag)coutvv 请再次

13、输入新密码:;cinsecondpassword;if (newpassword=secondpassword) coutvv 密码修改成功! vvendl; flag=O; elsecoutvv 两次密码输入不一样,请重新输入” vvendl;flag=1;elsecoutvv修改密码失败,请重新修改” vvendl;elsecoutvv 修改密码失败,请重新修改” vvendl;elsecoutvv 修改密码失败,请重新修改vvendl;4.4 ATM柜员机存款取款功能输入正确卡号密码后,即可登录柜员机主界面,其中可以选择取款,存款功能。取款功能要求用户输入取钱金额,取钱功能用if语句判断

14、金额是否是100的倍数且金额是否大于5000或小于0,若符合要求,则顺利运行。用getmoney()函数实现更新用户余额,余额为账户余额减去取钱金额,当取钱成功时,系统会提示用户是否继续取钱,若输入“ 丫”则继续,若输入“N ”则退回主界面,若输入其他字符则要重新输入。存款功能要求用户不能输入负值的金额,用if语句判断,若符合条件,则成功取款,并且用savemoney ()函数更新余额,余额为账户余额加上存款金额,当成功存款时,系统会提示是否继续存款,若 输入“ 丫”则继续,若输入“N”则退回主界面,若输入其他字符则要重新输入。存款功能代码:void ATM:savemoney() 存款cha

15、r ch;float save;/ 存入金额docoutvv 请输入存款金额:;cinsave;if (savech;while (ch!= Y &ch!=N)coutvv 该操作无效,请重新输入:vvendl;cinch; while (ch=Y);取款功能代码:voidATM:getmoney()取款int get;/取款金额char ch;docoutvv 请输入取款金额:;cinget;if (get5000|getch;while (ch!= Y &ch!=N)coutvv 该操作无效,请重新输入:vvendl;cinch; while (ch=Y);4.5 ATM柜员机查询余额功能

16、输入正确卡号密码后,即可登录柜员机主界面,其中可以选择查询余额功能。余额主要调用 checkmoney() 函数。代码如下:void ATM:checkmoney()/查询余额coutvv 余额:vvmoneyvvendl; coutvv 查询余额成功! vvendl;请输入您的卡号:123456请翰入您的密码:123456I# *1* Lf 1/ hL* f# la *?j* 7# d# *d TTTTTTTTVT*rTT*r*!*T不不环不邢療不刑邢平1. 査询余额2. ATM取款3. ATM存款丄修改密码?退由包出占*也n也古也匕乂由乂 沪:軸 *pt , *% rw 沪丁卜售 *7 *

17、T* *T* *T* T* * *1* *p V* 衬p 卜 *p rr* r *T* 卜叭奇*:、* 論入您需要査询的信息:6- ST 45重 r Jt 广 SJ 、 p t- -1 J 讯 9 用T AMJ UH* 6J AHM AHW Kn & 迪皿 nNid;Adl* 丄功 Av UK oo习. H余 余査CEILIJWdun AJ AHWUJN 1 1. 査 要 需1J. JJx X /-flB H在取款中aA*1 fcij. 礼 b 丄.ij,* j. J ai j j#r rpi *卜 * * #、* * ol *pi 个i 彳* inw 扶卜 rb V Tli rfjW * *

18、 Cl * f 彳 i( H 疗I pl 骗入締要査询的信息:2 輪入取款金额:123 曲金额有诰请重新输入 猜輛入恥款金额:.电“k!1/(Tj!/ |Giji /|A| j Jji J# iJ/J i iJ ijj i|Li-1* JifcLiJ#八 *4 *】 * 个* 卜 *(* * *卜 * q、q骗 *卜气.卜f、*卜 小请输入您需要査询的信息:(6) ATM取款不成功(如下图)Jjp J* : a - fcLf. Fj *Jj! i I* * fe* # kJ* fclj l 样 fcTj 7鼻 b r* kj *% 7* *!*弄严*7 kJ * *1T*1 p*-j* fJI

19、諭入您需要杳询的佶息:3 青输入存款金轨100款金额有诂请重新输入 输入存款金额:(9)修改密码成功(如下图)J 禅 鶯处!* 鬼L J# v # ?jp 聲 L J# *Lf. .!# 髦*/ 亀I百 J*屯L11 * * 君卜 *1* | 暮*r輛 禎叫鶯巧、j* j1, r* 禎*p* 请输入您需要査询的信息:4 请输入旧密码:123456 晴输入新密码:456789 请再次输入新密码:456789 密码修改成珈仑业或业火佥丈心心女仑仪或火女丈心心丄 曹ffi 舗请输入您需要查询的信息;TTtTtTTTTTTTtTtTtTTTTTTTTT1(蛊退出系统磁)9EHHSIIII宝贵的编程思想

20、和从中摸索到的经验都是在编程的过程中获得的宝贵财富这些经验对我以后的编程会有很大的帮助的,我要好好利用。虽然这次课程设计是在参考程序的基础之上进行的,但是我觉得对自己是一个挑战和锻炼。 我很欣慰自己能在程序中加入自己的想法和有关程序内容,也就是对它的程序改进了一番改进,并有创新。但是我感觉自己的创新还不够典型,总之还不是很满意。另外由于时间的紧迫和对知识的了解不够广泛,造成了系统中还存在许多不足,功能上还不够完善。以后我会继续努力,大胆创新,争取能编写出透射着自己思想的程序。这次课程设计让我充分认识到了自己的不足,认识到了动手能力的重要性。我会在以后的学习中更加努力锻炼自己,提高自己,让自己写

21、出更好更完善的程序,为以后的编程打好基础!17用户使用手册密码:1、卡号:1234561234562、根据提示,输入指定内容即可程序源代码#include stdafx.h#include #include #include #include #include :4996)*#include #pragma warning ( disable using namespace std;/* class ATM protectedstring card;string password;float money; static int times;publicATM(string c, string

22、p, floatm) :card( c), password(p), money( m) /构造函数int checkout。; /验证卡号密码void lock(); / 锁卡void checkmoney(); /查询余额void getmoney(); / 取款void savemoney(); / 存款 void change(); /修改密码void exitsystem(); /退出系统;int ATM:times = 0;class face : publicATMprotected18public :face( string数c ,string显示界面;voidshow();

23、/voidface:show()vv endlVVcoutH*“VV 1.查询余cout额vv endl;VV 2.ATM 取款coutIVvv endl;VV 3.ATM 存款coutIVvv endl;VV 4.修改密cout码vv endl;coutVV 5.退出vv endl;cout VV *vv 请输入您需要查询的信cout息:;int x;p, float m) :ATM( c, p, m) endl;/ 构造函endl;该卡已被锁 endl;=b)void ATM:lock()if (times = 3)cout 输入密码3次错误,exitsystem();int ATM:ch

24、eckout()string a;string b;while (1)cout a;cout b;if (card != a | passwordtimes+;lock();elsebreak ;return 1; void ATM:change()in count = 0, i, j, flag = t1; ,stringsecondpassword;stringnewpassword;stringoldpassword;cout oldpassword;(password =if oldpassword)cout newpassword;(newpassword.size()if = 6)

25、for (i = 0; inewpassword.size(); i+)for (j = i + 1; jnewpassword.size(); j+)if (newpassword i = newpassword j )count+;if (count6)while (flag)cout secondpassword;if (newpassword = secondpassword)cout flag = 0;密码修改成功! endl; elsecout flag = 1;两次密码输入不一样请重新输入 endl;20elsecout 修改密码失败,请重新修改” endl;elsecout 修

26、改密码失败,请重新修改” endl;elsecout 修改密码失败,请重新修改 ” endl;void ATM:exitsystem()exit(0);void ATM:savemoney() / 存款char ch;float save; /存入金额docout save;if (save0)cout 存款金额有误,请重新输入” endl;elsecout 正在存款中,请稍候” endl;money = money + save;cout 交易成功! endl;cout 请问是否继续存款?(丫/N) ch;while (ch !=Y &ch !=y &ch !=n &ch !=N)cout 该操作无效,请重新输入: ch; while (ch =Y|y= ch);void ATM:getmoney() / 取款21int get; /取款金额char ch;do

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论