模拟ATM自动取款机系统C 版完整.doc_第1页
模拟ATM自动取款机系统C 版完整.doc_第2页
模拟ATM自动取款机系统C 版完整.doc_第3页
模拟ATM自动取款机系统C 版完整.doc_第4页
模拟ATM自动取款机系统C 版完整.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

面向对象程序设计课程设计报告模拟ATM自动取款机系统姓 名 : 学 号 : 专 业 班 级 : 完 成 时 间 : 指 导 老 师 : 目 录一、需求分析2二、程序的主要功能2三、程序运行平台2四、流程图2五、程序类的说明2六、模块分析3七、比较有特色的函数4八、存在的不足与对策4九、程序源代码4一、需求分析为了方便用户的及时取款,查询,及时修改密码的方便,本课题设计并模拟银行的自动取款机使用过程中的界面和用户交互过程。实现查询银行卡余额,取款,修改密码,退出系统等功能。二、程序的主要功能1、锁机功能:卡号,密码输入最多三次,否则直接退出系统。2、取款功能:取款金额受卡余额,机单笔最大取款金额及机当前剩余金额的限制。3、查询功能:实现查询余额的功能。4、更改密码:实现密码更改功能,对于密码要有2次验证。5、退卡功能:实现退出系统功能。三、程序运行平台Dev c+四、流程图登陆界面主界面取款功能查询功能修改密码锁卡功能退出系统 图1 系统流程图五、程序类的说明5.1 ATM类:该类主要实现取款,查询,修改密码,登录界面等功能。class ATM/ATM类 public: ATM(YongHu& y):yh(y) .private: int times; YongHu& yh; ; 5.2 YongHu类:该类主要实现卡号,密码,余额的获取函数等功能。class YongHu/用户类 public: friend class ATM; . private: char ID20;/卡号 char password10;/密码 float money;/卡上余额 ;5.3 查询函数:调用YongHu类的获取函数将信息输出void ATM:CX() .5.4 修改密码函数:使用do while语句实现修改密码的功能void ATM:GG().5.5 密码星号函数:通过while语句实现输入密码时每输入一个字符就显示一个星号的功能char * ATM:GetPassword().六、模块分析1、锁机功能:卡号,密码输入最多三次,否则直接退出系统。2、取款功能:取款金额受卡余额,机单笔最大取款金额及机当前剩余金额的限制。3、查询功能:实现查询余额的功能。4、更改密码:实现密码更改功能,对于密码要有2次验证。5、退卡功能:实现退出系统功能。七、比较有特色的函数char * ATM:GetPassword() char c; int i=0; char password6; while (c=getch()!=r) passwordi=c; putchar(*); i+; if (i=6) break; return password;/实现密码星号化的功能八、存在的不足与对策由于我的能力及时间限制,所以这次这个系统设计得非常简单,功能也很单一,并且这次并没有使用文件的功能,所有的数据都是一次性的,我会在课下继续探究可以完善该系统的方法.九、程序源代码/funtion.h#include #include #include class YongHu;/定义全局类class class ATM/ATM类 public: ATM(YongHu& y):yh(y) void DLJM();/登陆界面 bool HDMM(char ID,char password);/核对密码 void QK();/取款 void CX();/查询 void GG();/更改密码 void GNJM();/功能界面 void LK();/锁卡 void TC();/退出 char *GetPassword();private: int times; YongHu& yh; ; class YongHu/用户类 public: friend class ATM; YongHu(char id,float Money,char Password); char* get_ID();/获取卡号 char* get_password();/获取密码 float get_money();/获取余额 void set_password(char Password);/设置密码 void set_money(float m);private: char ID20;/卡号 char password10;/密码 float money;/卡上余额 ;/ATM.cpp#include#include#include funtion.h#include using namespace std; void ATM:DLJM()/登陆界面 times=0; char ID20,password10,ch; int i=0; do i=0; cout endl; cout 欢迎使用中国农业银行!endl; cout endlendl; cout 测试卡号为:123456endl; cout 测试密码为:123456endl; cout 测试卡号余额为:10000元endlendlendl; cout 请输入您的卡号 endl; cout卡号:; do cin.get(ch); IDi+=ch; while(ch!=n); IDi-1=0; i=0; coutendl 请输入您的密码 endl; cout密码:; strcpy(password,GetPassword(); if(!HDMM(ID,password) cout对不起,您的卡号或密码有误,请重新输入endl; times+; else GNJM(); while(times3); LK(); bool ATM:HDMM(char ID,char password) if(strcmp(ID,yh.get_ID()=0&strcmp(password,yh.get_password()=0) return true; else return false; void ATM:GNJM() int n; coutendlendlendl; coutendl; cout 1)取款endl; cout 2)查询余额endl; cout 3)更改密码endl; cout 4)退出系统endl; coutendl; coutendln; if(n4) coutn; switch(n) case 1:QK();break; case 2:CX();break; case 3:GG();break; case 4:TC();break; while(true); void ATM:QK() float m; char ch; coutendlm; while(m=0) cout请输入正确的取款数:m; if(yh.get_money()-m0) cout对不起,您的余额不足!endl; else if(int)m%100!=0) cout对不起,您的取款金额必须为100的倍数!2000) cout对不起,您每次只能取2000元!endl; else cout操作成功,请稍后!endl; yh.set_money(m);cout请输入(y/n)确认是否取钱!ch; while(ch!=Y&ch!=y&ch!=N&ch!=n) cout请再次输入(y/n)确认是否取钱!ch; if(ch=y|ch=Y)cout您已取款成功!请收好钱!;elsecout您已取款成功!请尽快取钱!; GNJM(); void ATM:CX() coutendl; cout endl; cout 卡号:yh.get_ID()endl; cout 余额:yh.get_money()元endl; cout endl;coutendl; GNJM(); void ATM:GG() char password10,Xpassword10; times=0; do coutendl请输入旧密码:; strcpy(password,GetPassword();if(!HDMM(yh.get_ID(),password) times+; else break;while(times3); if(times=3) LK(); int t=1;do coutendl请输入新密码:; strcpy(password,GetPassword(); coutendl请再次输入新密码:; strcpy(Xpassword,GetPassword(); t=strcmp(password,Xpassword);/对新密码进行比较,如果相等,则返回0 if(t!=0) coutendl您输入的密码不一致,请重新输入!endl; while(t!=0);yh.set_password(password);coutendl密码修改成功,请您牢记!endl; GNJM(); void ATM:LK() cout对不起,你输入的密码错误已达三次,您的卡已被没收!endl; exit(1);void ATM:TC() cout请取走您的卡,感谢您的使用,欢迎您下次再来!=6) break; return password;/YongHu.cpp#include funtion.h#include YongHu:YongHu(char id,float Money,char Password)/用户的构造函数 strcpy(ID,id);/strcpy函数是复制两字符串的函数,头文件为 money=Money; strcpy(password,Password); float YongHu:get_money()/获取余额函数 return money; char* YongHu:get_ID()/获取卡号 return ID; void YongHu:set_money(float m) money-=m; char* YongHu:get_password()/获取密码 return passwor

温馨提示

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

评论

0/150

提交评论