《ATM机课程设计.doc》由会员分享,可在线阅读,更多相关《ATM机课程设计.doc(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、武汉工程大学 计算机科学与工程学院综合设计报告设计名称: 设计题目: 模拟ATM机为用户提供服务 学生学号: 专业班级: 学生姓名: 学生成绩: 指导教师(职称): 完成时间: 武汉工程大学计算机科学与工程学院 制说明:1、报告中的第一、二、三项由指导教师在综合设计开始前填写并发给每个学生;四、五两项(中英文摘要)由学生在完成综合设计后填写。2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。3、指导教师评语一栏由指导教师就学生在整个综合设计期间的表现、设计完成情况、报告的质量及答辩等方面,给出客观、全面的评价。4、所有学生必须参加综合设计的答辩环节。凡不参加答辩者,其成绩一律按不
2、及格处理。答辩小组成员应由2人及以上教师组成。5、报告正文字数一般应不少于5000字,也可由指导教师根据本门综合设计的情况另行规定。6、平时表现成绩低于6分的学生,其综合设计成绩按不及格处理。7、此表格式为武汉工程大学计算机科学与工程学院提供的基本格式(适用于学院各类综合设计),各教研室可根据本门综合设计的特点及内容做适当的调整,并上报学院批准。答辩记录表学生姓名: 学号: 班级: 答辩地点: 答辩内容记录:答辩成绩合计分值各项分值评分标准实际得分合计得分备注2510在规定时间内能就所设计的内容进行阐述,言简意明,重点突出,论点正确,条理清晰。15在规定时间内能准确、完整、流利地回答教师所提出
3、的问题。答辩小组成员(签字): 年 月 日成绩评定表学生姓名: 侯胜利 学号: 班级: 网络工程01班 类别合计分值各项分值评分标准实际得分合计得分备注平时表现1010按时参加综合设计,无旷课、迟到、早退、违反实验室纪律等情况。完成情况3020按设计任务书的要求完成了全部任务,能完整演示其设计内容,符合要求。10能对其设计内容进行详细、完整的介绍,并能就指导教师提出的问题进行正确的回答。报告质量3510报告文字通顺,内容翔实,论述充分、完整,立论正确,结构严谨合理;报告字数符合相关要求,工整规范,整齐划一。5课题背景介绍清楚,综述分析充分。5设计方案合理、可行,论证严谨,逻辑性强,具有说服力。
4、5符号统一;图表完备、符合规范要求。5能对整个设计过程进行全面的总结,得出有价值的结论或结果。5参考文献数量在3篇以上,格式符合要求,在正文中正确引用。答辩情况2510在规定时间内能就所设计的内容进行阐述,言简意明,重点突出,论点正确,条理清晰。15在规定时间内能准确、完整、流利地回答教师所提出的问题。总评成绩指导教师评语指导教师: (签字) 日期: 年 月 日一、综合设计目的、条件、任务和内容要求:目的:1掌握面向对象程序设计的基本方法2熟练掌握C+编程工具(Visual C+6.0 或更高版本)3根据问题进行学习,拓广、深化4独立完成一个小型应用程序的设计、编码和测试条件: 1已学过面向对
5、象程序设计及相关知识 2熟悉课程的应用环境3具备上机环境任务: 用面向对象的方法模拟ATM为储户服务常用的操作:取款、查询账户余额、存款、转帐和修改密码功能等。要求:1 综合设计报告内容要求:(1)问题描述(2)类体系设计(3)各类定义的基本功能,即主要数据和函数功能描述(4)拟采用开发平台(Visual C+)2 编码阶段可以修改原设计,并记录曾作过的修改、补充,以及测试中出现的问题。最后整理为程序设计作业日志。3 综合设计报告格式说明根据原有的系统设计,编码阶段的工作,整理书写报告,内容包括:(1)问题描述(2)系统设计(3)功能描述(4)使用说明4 最后提交:(1)综合设计报告(2)源程
6、序代码(CPP文件),执行文件(EXE)(3)程序设计作业日志二、进度安排: 三、应收集资料及主要参考文献:1查阅ATM操作指南; 2C+面向对象程序设计(第二版)张俊等编著 中国铁道出版社3.陈维兴,林小茶C+面向对象程序设计教程【M】。清华大学出版社4.丁俊岭,C语言程序设计【M】,中国铁道出版社。5.孟程,刘峰C+程序设计实例与操作【M】,航空工业出版社。四、摘要: ATM机管理系统是银行业务流程过程中十分重要且必备的环节之一,在银行业务流程当中起着承上启下的作用,其重要性不言而喻。但是,目前许多银行在具体的一些业务流程处理过程中仍然使用手工操作的方式来实施,不仅费时、费力,效率低下,而
7、且无法达到理想的效果。本文针对上述问题,采用软件工程的开发原理,依据软件流程过程规范,开发了一个银行ATM机管理系统。银行ATM存取款系统能为用户提供存款、取款、查询、转账和修改密码的功能。为了模拟真实的ATM业务环境,本系统必须实现存款、取款、查询、转账、修改密码以及开户的功能。用户通过开户业务在本系统开立银行账户,之后可以通过该银行账户登陆ATM系统,在系统中实现存款、取款、查询账户信息、修改密码的操作。五、Abstract: Management system of ATM machine is very important and necessary part in the proce
8、ss of bank business, played the role of connecting link in the banking procedure, its importance is self-evident. However, many banks still use manual operation in some business process in the course of concrete way to implement,not only time-consuming, laborious, inefficient, and can not achieve th
9、e desired results. Aiming at the above problem, using the development of software engineering principles, based on the software process specification, develop abank ATM machine management system. Bank ATM access system can providedeposits, withdrawals, inquiries, transfer and modify the password fun
10、ction for the user. In order to simulate the real ATM service environment, this system must implement deposits, withdrawals, inquiries, transfer, change the password andaccount function. The user through an account in the system, open a bank account, then can go to the ATM system through the bank ac
11、count deposits,withdrawals, inquiries, account information, modify the password in the system.摘 要 ATM机管理系统是银行业务流程过程中十分重要且必备的环节之一,在银行业务流程当中起着承上启下的作用,其重要性不言而喻。但是,目前许多银行在具体的一些业务流程处理过程中仍然使用手工操作的方式来实施,不仅费时、费力,效率低下,而且无法达到理想的效果。本文针对上述问题,采用软件工程的开发原理,依据软件流程过程规范,开发了一个银行ATM机管理系统。银行ATM存取款系统能为用户提供存款、取款、查询、转账和修改密
12、码的功能。为了模拟真实的ATM业务环境,本系统必须实现存款、取款、查询、转账、修改密码以及开户的功能。用户通过开户业务在本系统开立银行账户,之后可以通过该银行账户登陆ATM系统,在系统中实现存款、取款、查询账户信息、修改密码的操作。关键词(小4号 黑体 顶格):ATM;系统存储;C+Abstract Management system of ATM machine is very important and necessary part in the process of bank business, played the role of connecting link in the bank
13、ing procedure, its importance is self-evident. However, many banks still use manual operation in some business process in the course of concrete way to implement,not only time-consuming, laborious, inefficient, and can not achieve the desired results. Aiming at the above problem, using the developme
14、nt of software engineering principles, based on the software process specification, develop abank ATM machine management system. Bank ATM access system can providedeposits, withdrawals, inquiries, transfer and modify the password function for the user. In order to simulate the real ATM service envir
15、onment, this system must implement deposits, withdrawals, inquiries, transfer, change the password andaccount function. The user through an account in the system, open a bank account, then can go to the ATM system through the bank account deposits,withdrawals, inquiries, account information, modify
16、the password in the system.Keywords(小4号 黑体 顶格):ATM;System storage ;C+目录答辩记录表iii成绩评定表iv摘 要I第一章 课题背景(或绪论、概述)11.1 设计背景11.2 设计分析1第二章 设计简介及设计方案论述22.1 设计介绍22.2需求分析22.3模型设计3第三章 详细设计83.1 函数应用83.2数据类型和结构10第四章 设计结果及分析114.1 运行结果114.2代码分析15总 结19致 谢20参考文献20附录 程序代码:21第一章 课题背景(或绪论、概述)1.1 设计背景 银行是每个地区不可缺少的部门,它是钱财存取
17、最安全的地方,而且他又是金钱流动最大的地方,对其管理也应是很严格,不容任何可靠的错误发生,这就牵扯到高科技的应用,而高科技离不开计算机的应用。所以一直以来,计算机在银行的财务管理中得到了广泛的应用。 目前,人类对银行的信任度很高,这也就加大了银行业务复杂和繁琐度,而有一些简单的业务可有用户自行完成。本系统就是要达到对用户能自行完成的业务的管理,并对信息进行数据库管理的目的。所以本系统能实现一般用户取款、查询、修改密码、转账等功能 1.2 设计分析 1.ATM登录系统需要调取用户所有信息。这个系统设计必须保证用户的安全性,一旦登录便可以完成登录后可以实现的功能。只有在输入账户号以及密码的情况下才
18、可以登录成功。在登录时要检索所有已登录用户的信息,确保是登录时所输入的账号并且密码输入无误。 2.ATM系统的查询业务,要在登录的情况下才可以进行这个业务。查询信息时,直接根据账号调取文件中该账号的信息提示该用户的姓名,账号,以及账户中的余额。 3.ATM系统的密码修改业务,要在登录的情况下才可以进行这个业务。在输入原密码的情况下,再输入修改后的密码,再一次确认新密码后可以完成该业务。这里需要对用户数据进行修改,并存入文件。这里直接调取信息,修改数据然后再保存到文件即可。 4.ATM系统的转账业务,要在登录的情况下才可以进行这个业务。要准确输入对方的账号并输入转账的金额,并确定后才能转账成功。
19、这里需要对两个用户数据进行修改并保存。完成这个业务,可以输入对方账户进行查找与匹配,然后修改两个节点的值最后都进行一次保存即可。第二章 设计简介及设计方案论述2.1 设计介绍 根据生活中ATM的业务要求及对客户的需求分析,这个系统需要实现注册,登录,存取款、查询、转账、修改密码等功能。用户通过注册业务在本系统可以用身份账号注册一个银行账户,并在注册之后可以通过该银行账户登陆ATM系统,在系统中实现存,取款、查询账户信息、修改密码等操作。2.2需求分析 随着社会的日益发展,银行在人们的日常生活中扮演着重要的角色。ATM机给人们的日常生活带来了方便,它出现在各个街道角落里。ATM数据库系统使取款机
20、高速快捷的工作,不易发生数据丢失,统计错误,使ATM机更加安全方便。此数据库系统包含了开户、存款、取款、转账、查询、改密等功能,其中采用了数据库的存储过程知识。2.3模型设计 2.3.1注册模型 简要介绍:要使用本系统必须先注册一个账号,保存到文件中。流程图如下: 2.3.2查询模型简要介绍:查询模块可以实现的是在选择查询后,调取数组信息直接显示用户的账号、余额、姓名等资料。 2.3.3取款模型 简要介绍:取款模块可以实现用户的取款,同时调取文件中的信息,并可以针对用户取款的金额在原有的余额上进行正确修改。 2.3.4存款模型 简要介绍:存款模块可以实现用户的取款,同时调取文件中的信息,并可以
21、针对用户存款的金额在原有的余额上进行正确修改。2.3.5改密模型 简要介绍:修改密码模块实现的是用户对密码的修改,在输入原有的密码后就可以输入新的密码,再次确定后便可以修改成功。第三章 详细设计3.1 函数应用 3.1.1 结构体的定义 结构体的定义及所有函数的申明; #include#include#includeusing namespace std;#define Yonghu 26/用户数class ATMprivate:string Name;string Anumber;string Password;double Balance;public:ATM ();ATM (char*
22、n,char* a,char* p,double b);void Read(ifstream&s);void Write(ofstream&s);friend void Fangwen(ATM*);void Input(ATM*);/进入函数 void Operate(ATM *);/操作void Chaxun(ATM*); void Xiugai(ATM*);/密码修改void Qukuan(ATM*);void Cunkuan(ATM*);void Shuaxin(ATM*);void Zhuanzhang(ATM*);void Jixu(ATM*);3.1.2函数定义举例void ATM
23、:Chaxun(ATM AccoundYonghu) cout.信息查询.endl; cout姓名:Nameendl;cout账号:Anumberendl;cout密码:*endl;cout余额:Balanceendl;cout继续请按#endl;cout退出请按任意键m;system(cls);if(m=#)Operate(Accound);3.2数据类型和结构 该程序主要使用了结构体和文件,一个客户的全部信息用结构体来实现,用文件来保存,通过函数的调用来实现对用户信息的初始化和修改,同时将atm可以进行的一系列操作全部函数化,以便更好的实现其功能。第四章 设计结果及分析4.1 运行结果4.
24、1.1 功能演示 1.界面:2.信息查询3.修改密码4.存款5.取款6.转账4.2代码分析对主函数进行分析:int main()ifstream Instream(D:Accound.txt);ATM AccoundYonghu;for(int i=0;iYonghu;i+)Accoundi.Read(Instream); Fangwen(Accound);return 0;总 结 这次课程设计的题目是设计一个ATM模拟程序。目的是尽可能把它模拟得跟真实的ATM接近一些,要求要具有开户,存款,取款,查询余额,转帐,更改密码,退卡等功能。同时要求界面要美观,友好,易操作。在技术上要把所有用户的信
25、息以密文形式保存在数据文件中,且用户输入密码时不能以明文形式显示在屏幕上。虽然有两周时间,但还是遇到了许许多多的问题。这次编程就要比前的错误要少很多了,可能是因为只有一个类,并且没有继承的缘故,程序的最底层架构很简单就完成了,但是只设定因为只设定了一个账户,并且对很多漏洞都没有填补,所以又再次看了一遍整个程序,修改了例如取款金额不能大于所剩余额以及最开始有三个账户,只需要输入姓名即可进入该账户验证密码的界面。 完成了这课程设计,我对整个C+编程又有了跟更加深刻的认识,编一个比较大的程序不应该从上往下,每个类,每个函数都一步一步按顺序编,应该先大概的理清整个程序,然后把需要的函数先大概写一下,加
26、上注释,等理清了整个程序以后,在一部分一部分完善程序,最后再把检测出来的错误改正,即可很快完整整个程序致 谢首先感谢在这近两个星期的课程设计实验中给与我帮助的老师和同学,使我对C+面向对象程序设计又回顾了一遍。由于新年我忽视了对以往知识的温习,所以开学来我的知识几乎忘得大半,正因为这次的C+面向对象程序设计使我进行了一次从理论到时间实践的突破,让我对C+有了更深层次的了解,更加透彻的理解了类,继承与派生,文件的IO流,结构体这些的更深层次的应用。值得一提的是在实验过程中遇到的一些难以解决的问题,意识无法翻书查到症结所在,我的老师,我的同学都特别的耐心帮我解决,让我觉得程序学起来也并不是那么难比
27、登天,也不是那么枯燥乏味,谢谢两位老师的循循善诱的教学方式,以及互相帮助的同学们。再一次感谢我的老师和同学们,也是他们让我燃起了对C+的热情,激励着我的人生!参考文献1查阅ATM操作指南;2C+面向对象程序设计(第二版)张俊等编著 中国铁道出版社3.陈维兴,林小茶C+面向对象程序设计教程【M】。清华大学出版社4.丁俊岭,C语言程序设计【M】,中国铁道出版社。5.孟程,刘峰C+程序设计实例与操作【M】,航空工业出版社。附录 程序代码:#include#include#includeusing namespace std;#define Yonghu 2/用户数class ATMprivate:s
28、tring Name;/姓名string Anumber;/账号string Password;/密码double Balance;/余额public:ATM ();ATM (char* n,char* a,char* p,double b);void Read(ifstream&s);void Write(ofstream&s);friend void Fangwen(ATM*);void Input(ATM*);/进入函数 void Operate(ATM *);/操作void Chaxun(ATM*);/查询 void Xiugai(ATM*);/密码修改void Qukuan(ATM*
29、);/取款void Cunkuan(ATM*);/存款void Shuaxin(ATM*);void Zhuanzhang(ATM*);/转账void Jixu(ATM*);/继续;ATM:ATM()Name= ;Anumber= ;Password= ;Balance=0;ATM:ATM(char*n,char*a,char*p,double b) Name=n;Anumber=a;Password=p;Balance=b;void ATM:Read(ifstream&s)sName;sAnumber;sPassword;sBalance;void ATM:Write(ofstream&s)
30、sNameendl;sAnumberendl;sPasswordendl;sBalanceendl;void ATM:Chaxun(ATM AccoundYonghu) cout姓名:Nameendl;cout账号:Anumberendl;cout密码:*endl;cout余额:Balanceendl;cout继续请按#endl;cout退出请按任意键m;if(m=#)Operate(Accound);void ATM:Input(ATM AccoundYonghu)static int i=0; string password;while(i3)coutpassword;if(passwor
31、d=Password)cout密码正确endl;Operate(Accound);break;elsecout.密码错误请重新输入.endl;i+;Input(Accound);if(i=3)cout.你的卡已被吞.endl;void ATM:Operate(ATM AccoundYonghu)int m;cout信息查询请按:1endl;cout密码修改请按:2endl;cout取款业务请按:3endl;cout存款业务请按:4endl;cout转账业务请安:5endl;cout退出请按其他键m;if(m=1)Chaxun(Accound); elseif(m=2)Xiugai(Accoun
32、d); else if(m=3)Qukuan(Accound);else if(m=4)Cunkuan(Accound);else if(m=5)Zhuanzhang(Accound);elsecout.谢谢使用.endl;void ATM:Qukuan(ATM AccoundYonghu)coutn;if(n=Balance)Balance-=n;Shuaxin(Accound); cout.取款成功.endl;elsecout.余额不足.endl;cout继续其他业务请按#endl;cout退出请按其他键c;if(c=#)Operate(Accound);elsecout.谢谢使用.end
33、l;void ATM:Cunkuan(ATM AccoundYonghu)cout.存款.endl;coutn;Balance+=n;Shuaxin(Accound);cout存款成功endl;cout继续其他业务请按#endl;cout退出请按其他键m;if(m=#)Operate(Accound);elsecout.谢谢使用.endl;void ATM:Xiugai(ATM Accound Yonghu)cout.密码修改.:endl;string password,password1;char c;coutpassword; if(password=Password)coutpasswo
34、rd; coutpassword1; if(password=password1) cout密码修改正确endl;Password=password;Shuaxin(Accound);cout继续请按#,退出按其他键c;if(c=#) Operate(Accound);elsecout.谢谢使用.endl;else cout密码修改失败endl; cout继续请按#,退出按其他键c; if(c=#) Operate(Accound); else cout密码输入错误endl;cout.谢谢使用.endl;void ATM:Zhuanzhang(ATM AccoundYonghu)coutnum
35、ber; for(int j=0;jYonghu;j+) if(number=Accoundj.Anumber)cout请核对转账人信息endl;cout姓名:Accoundj.Nameendl;coutm;if(m=Y)coutb;coutpassword;if(password=Password)if(b=Balance)Balance-=b; Accoundj.Balance+=b; Shuaxin(Accound); cout转账成功endl; else cout余额不足endl; elsecout密码错误Yonghu-1)cout用户不存在endl;cout继续请按#,退出按其他键c;if(c=#)Operate(Accound);elsecout.谢谢使用.endl;void Fangwen(ATM AccoundYonghu)cout*endl;cout你好!猴哥自助存(取)款机欢迎你endl;cout*endl;string number;cout.用户登录.endl;coutnumber; for(int i=0;iYonghu-1)cout你还不是本银行客户endl; void ATM:Shuaxin(A