C++课程设计(论文)-模拟ATM柜员机程序.doc

上传人:小小飞 文档编号:3901176 上传时间:2019-10-09 格式:DOC 页数:16 大小:100.62KB
返回 下载 相关 举报
C++课程设计(论文)-模拟ATM柜员机程序.doc_第1页
第1页 / 共16页
C++课程设计(论文)-模拟ATM柜员机程序.doc_第2页
第2页 / 共16页
C++课程设计(论文)-模拟ATM柜员机程序.doc_第3页
第3页 / 共16页
C++课程设计(论文)-模拟ATM柜员机程序.doc_第4页
第4页 / 共16页
C++课程设计(论文)-模拟ATM柜员机程序.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《C++课程设计(论文)-模拟ATM柜员机程序.doc》由会员分享,可在线阅读,更多相关《C++课程设计(论文)-模拟ATM柜员机程序.doc(16页珍藏版)》请在三一文库上搜索。

1、北京理工大学珠海学院课程设计任务书一、课程设计题目模拟ATM柜员机程序二、课程设计内容(含技术指标)1使用文本命令行界面。当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:查询余额:初始余额为10000元ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。ATM存款:不能出现负存款。修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。2.建立银行账户类、文件读写类、界面显示类等以及各相关接口类。三、进度安排1.1-4学时

2、,分析需求、理解需求;2.5-8学时, 程序设计,定义类、数据处理方式;3.9-12学时,编写程序、调试、测试;4.12-16学时,编写设计报告学时,答辩;四、基本要求1只能使用C+语言,源程序要有适当的注释,程序容易阅读2.至少采用文本菜单界面(如果能采用图形菜单界面更好)3.学生可自动增加新功能模块(视情况可另外加分)4.用文件保存信息5.写出课程设计报告,具体要求见相关说明文档 课程负责人签名: 年 月 日课程设计分工安排姓名课程设计负责工作备注ATM功能类用户类摘 要演示程序时,初始卡号和密码为123456,系统能登录ATM柜员机系统,进入功能界面,根据功能界面的提示,然后由用户进行相

3、应的功能操作。本程序使用C+语言,操作时,使用文本命令行界面。该程序还需要一些改进,就是没有采用图形菜单界面。关键词:登陆界面 修改密码 取款 查询信息 功能界面 目录摘 要I目录II第一章 需求分析11.1功能:11.2操作:1第二章总体设计22.1 模拟ATM柜员机程序功能图22.2 整个程序的流程图3第三章详细设计与实现43.1 类的设计43.2 ATM柜员机的登陆53.3 ATM柜员机修改密码功能53.4 ATM柜员机取款存款功能63.5 ATM柜员机查询余额功能7第四章测试84.1程序开始运行的界面84.2 正确输入帐号密码后的界面94.3 取钱成功后的界面94.4 程序结束时的界面

4、10参考文献11心得体会12第一章 需求分析1.1功能:(1)模拟ATM柜员机程序;(2)修改密码。当用户需要修改密码时,可以用这个功能,新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。(3)取款。用户根据自己需要取多少钱,输入要取的金额,每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。(4)查询余额。用户需要知道自己帐户还剩多少钱时,可以查询自己帐户的余额。(5)存款。用户可以存款,不能出现负存款。(6)锁机。当用户3次输入密码错误时,会自动吞卡。1.2操作:本程序通过键盘操作。在运行过程中,

5、当用户输入正确的账号和密码时,会出现一个功能界面,按照功能界面操作。1.修改密码;2. 取款;3. 存款;4. 查询余额;5. 退出系统,按相应的序列号后再按enter键,执行相应的操作。第二章总体设计2.1 模拟ATM柜员机程序功能图模拟ATM柜员机程序 ATM功能类(登陆界面)(核对密码)(修改密码)(取款)(存款)(查询信息)(退出系统)(锁机)consumer用户类(获得姓名)(获得卡号)(获得密码)(获得余额)(设置密码) 图 2.2 功能图2.2 整个程序的流程图登录界面输入帐号和密码选择一项功能执行功能界面1. 修改密码2. 取款3. 存款4. 查询余额5. 退出系统卡号密码正确

6、?卡号密码错超过3次?结束否否是的等5pst1.co3+p.j - 1 = 0图 2.3 主程序流程图 程序开始运行进入登陆界面,用户输入自己的卡号和密码,成功登陆即能进入功能界面,如果用户卡号密码错误超过3次,系统会自动没收卡,根据功能界面,用户可以执行相应的操作,操作完毕,退出系统。第三章详细设计与实现3.1 类的设计设计了两个类,ATM类 和consumer类。ATM类完成自动柜员机的模拟,包括:显示登陆界面、验证卡号密码、修改密码、取款、存款、显示所插卡信息、退出系统等功能。Consumer类完成银行卡的模拟,包括设置姓名、卡号、密码、余额等信息。类的定义和实现均保存在头文件atm.h

7、文件中。ATM类的设计class ATM / ATM功能类 public: ATM(consumer& cn):cnsm(cn) void welcome(); / 登陆界面 bool check_passwd(char n,char pwd);/ 核对密码 void change_passwd(); / 修改密码 void fetchmoney(); / 取款 void getmoney();/存款 void information(); / 查询信息 void exitATM(); / 退出系统 void functionshow();/ 功能界面 void lock(); / 锁机 pr

8、ivate: int times; / 记录密码输入次数 consumer& cnsm;consumer用户类的设计class consumer/ 用户类public: friend class ATM; /声明类ATM为consumer的友元类 consumer(char Name,char Num,float Money,char Password);/*构造函数,建立账户*/protected: char* get_name(); / 获得姓名 char* get_kahao(); / 获得卡号 char* get_passwd();/ 获得密码 float get_money(); /

9、 获得余额 float getmoney(float gm);/存款 void set_passwd(char pwd);/ 设置密码 void set_money(float m);/ 取钱private: char passwd10;/ 用户密码 char name20; / 用户姓名 char kahao20; /用户卡号 float money;/用户余额;3.2 ATM柜员机的登陆在main主函数中实例化一个consumer类的对象,构造用户名是何志群,账号和密码都为123456,默认余额为10000。在程序运行中输入账号密码正确即可登陆主界面,选择ATM柜员机的功能。程序运行首先要

10、求用户输入账号密码,帐号密码首先由main主函数构造默认,用strcmp函数判断账号密码是否一致,一致允许登陆,如果输入错误则再给予3次登陆机会,如果3次都输入错误,则用lock()函数锁定账号密码。相关代码:bool ATM:check_passwd(char num,char pwd) if(strcmp(num,cnsm.get_num()=0&strcmp(pwd,cnsm.get_passwd()=0) return true; else return false;3.3 ATM柜员机修改密码功能新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两

11、次输入相同的情况下才可以成功修改密码。输入正确账户密码后,或者实现其他功能退回主界面后都可以选择柜员机的修改密码功能,该功能首先定义了一个chenk_passwsd函数提取用户默认账号密码,在运行过程中现要求用户输入旧密码,用strcmp函数判断用户输入的旧密码是否和默认密码相同,若相同则继续运行,若不同则再给予两次输入机会,3次都输入错的时候调用lock函数锁定帐户密码。输入旧密码争取后系统会要求用户定义新密码,新密码要重复输入两次,要求两次必须重复正确且新秘密大于等于6位数才能修改成功,用了do-while循环处理改项功能。修改密码流程图:输入旧密码密码正确?输入新密码重新输入旧密码新密码

12、符合要求?密码正确?再次输入新密码密码修改不成功否超过3次?密码修改成功是是是否是否否2次输入一样?是否3.4 ATM柜员机取款存款功能输入正确账号密码后,即可登陆柜员机主界面,其中可以选择取款和存款功能。取款功能要求用户输入取钱金额,取钱功能用了两个if语句判断用户输入金额是否100的倍数(只允许取100的整数倍),判断输入金额是否小于等于5000(最多允许取5000元),如果判断都为真,则顺利运行,用fecthmony函数实现更新用户余额,余额为默认账户余额减去取钱金额,单次取钱功能顺利实现时,会提示用户时候继续实现取钱功能,若输入“Y/y”则继续进行,若输入“N/n”则退回程序主见面。存

13、款功能要求用户输入不能为负值的金额,用if语句判断,符合条件,即可成功存款。存款功能实现代码:void ATM:getmoney()/存款 float gm;/存入的金额 char ch; do coutendl你要存多少钱: gm; if(gm=0) cout不能出现负存款,请输入正确的数字!endl; cout ; cingm; else coutendl存款成功endl; cnsm.getmoney(gm); cout是否要继续该项操作:(Y/N) endl; cout ; cinch; while(ch!=n&ch!=N&ch!=Y&ch!=y) cout; cinch; while(

14、ch=y|ch=Y);3.5 ATM柜员机查询余额功能输入正确账号密码后,即可登陆柜员机主界面,其中可以选择查询余额功能功能。用户姓名主要是调用用户类的cnsm.get_name()函数,卡号主要调用用户类的cnsm.get_kahao()函数,余额主要调用用户类的cnsm.get_money()函数。代码如下:void ATM:information()/ 查询信息cout*endl; cout*endl; cout* 用户姓名:cnsm.get_name()endl; cout* 卡号: cnsm.get_kahao()endl; cout* 余额: cnsm.get_money()end

15、l; cout*endl;第四章测试4.1程序开始运行的界面图 5.1 程序开始时的界面4.2 正确输入帐号密码后的界面图5.2 正确输入帐号密码后的界面4.3 取钱成功后的界面5.3 去钱成功后的界面4.4 程序结束时的界面参考文献1 陈维兴,林小茶:C+面向对象程序设计教程M,清华大学出版社2 丁峻岭: C语言程序设计M,中国铁道出版社心得体会这次课程设计让我更加了解大一学到的C和C+。课设题目要求不仅要求对课本知识有较深刻的了解,同时要求程序设计者有较强的思维和动手能力和更加了解编程思想和编程技巧。这次课程设计让我有一个深刻的体会,那就是细节决定成败,编程最需要的是严谨,如何的严谨都不过

16、分,往往检查了半天发现错误发生在某个括号,分号,引号,或者数据类型上。就像我在写ATM类时,写完后,忘了在大括号后加个分号,这一点小小的错误也耽误了我几十分钟,所以说细节很重要。 程序设计时,也不要怕遇到错误,在实际操作过程中犯的一些错误还会有意外的收获,感觉课程设计很有意思。在具体操作中对这学期所学的C+语言的理论知识得到巩固,达到课程设计的基本目的,也发现自己的不足之出,在以后的上机中应更加注意,同时体会到C+语言具有的语句简洁,使用灵活,执行效率高等特点。发现上机的重要作用,特别是对数组和循环有了深刻的理解。 这个程序是我们2个人完成的,同时我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。某个人的离群都可能导致导致整项工作的失败。实习中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。团结协作是我们成功的一项非常重要的保证。而这次课程设计也正好锻炼我们这一点,这也是非常宝贵的最后,感谢刘玉仙老师在这几天的悉心指导,祝老师在新的一年里身体健康,工作顺利。 11

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1