版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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+。课设题目要求不仅要求对课本知识有较深刻的了解,同时要求程序设计者有较强的思维和动手能力和更加了解编程思想和编程技巧。这次课程设计让我有一个深刻的体会,那就是细节决定成败,编程最需要的是严谨,如何的严谨都不过分,往往检查了半天发现错误发生在某个括号,分号,引号,或者数据类型上。就像我在写atm类时,写完后,忘了在大括号后加个分号,这一点小小的错误也耽误了我几十分钟,所以说细节很重要。 程序设计时,也不要怕遇到错误,在实际操作过程中犯的一些错误还会有意外的收获,感觉课程设计很有意思。在具体操作中对这学期所学的c+语言的理论知识得到巩固,达到课程设计的基本目的,也发现自己的不足之出,在以后的上机中应更加注意,同时体会到c+语言具有的语句简洁,使用灵活,执行效率高等特点。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB11T 1065-2014 城市基础地理信息矢量数据要素分类与代码
- 江苏省盐城市2024-2025学年高三上学期11月期中物理试题(无答案)
- 化妆品用香料产业深度调研及未来发展现状趋势
- 家禽料槽市场需求与消费特点分析
- 冷链餐饮供应链行业相关项目经营管理报告
- 妇女腹带产业深度调研及未来发展现状趋势
- 江苏省南通市海门区东洲小学等2024-2025学年四年级上学期11月期中科学试题
- 包装袋用纸产业规划专项研究报告
- 传送高功率电子束的波导管产业运行及前景预测报告
- 小学语文“搭石”说课稿
- 小学二年级上册数学-数角的个数专项练习
- 项目目标成本测算书样表
- 特种设备使用单位日管控、周排查、月调度示范表
- 职业生涯规划概述课件
- JB-T 14320-2022 氧气用止回阀
- 九年级英语《Unit 6 When was it invented》说课稿
- 《两办意见》(关于进一步加强矿山安全生产工作的意见)培训课件2024
- 人教版初中化学实验目录(总表)
- 监控工程验收单-范本模板
- 机械设计产品案例分析报告
- 政治审查表(模板)
评论
0/150
提交评论