版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
个人资料整理 仅限学习使用金陵科技学院课程设计任务书2009~2018学年第一学期学生姓名:杨闯 专业班级:Mo8计算机一、课程设计题目《模拟ATM柜员机程序》二、课程设计内容<含技术指标)1.使用文本命令行界面。当输入给定的卡号和密码<初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:查询余额:初始余额为 10000元ATM 取款:每次取款金额为 100 的倍数,总额不超过 5000元,支取金额不允许透支。ATM存款:不能出现负存款。修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。建立银行账户类、文件读写类、界面显示类等以及各相关接口类。三、进度安排1.1-4学时,分析需求、理解需求;2.5-8学时,程序设计,定义类、数据处理方式;3.9-12学时,编写程序、调试、测试;个人资料整理 仅限学习使用4.12-16 学时,编写设计报告学时,答辩;四、基本要求1.只能使用 C++语言,源程序要有适当的注释,程序容易阅读至少采用文本菜单界面<如果能采用图形菜单界面更好)学生可自动增加新功能模块<视情况可另外加分)用文件保存信息写出课程设计报告,具体要求见相关说明文档课程负责人签名:年 月 日课程设计分工安排姓名 课程设计负责工作 备注ATM功能类用户类个人资料整理 仅限学习使用摘要演示程序时,初始卡号和密码为 123456,系统能登录 ATM柜员机系统,进入功能界面,根据功能界面的提示,然后由用户进行相应的功能操作。本程序 使用 C++语言,操作时,使用文本命令行界面。该程序还需要一些改进,就是没有采用图形菜单界面。关键词:登陆界面修改密码取款查询信息功能界面个人资料整理 仅限学习使用目录摘要I目录II第一章需求分析 11.1功能:11.2操作:1第二章总体设计 22.1模拟ATM柜员机程序功能图 22.2整个程序的流程图 3第三章详细设计与实现 43.1类的设计43.2ATM柜员机的登陆53.3ATM柜员机修改密码功能 53.4ATM柜员机取款存款功能 63.5ATM柜员机查询余额功能 7第四章测试 84.1程序开始运行的界面 84.2正确输入帐号密码后的界面 94.3取钱成功后的界面 94.4程序结束时的界面 10参考文献11心得体会12个人资料整理 仅限学习使用第一章 需求分析1.1功能:<1)模拟ATM柜员机程序;<2)修改密码。当用户需要修改密码时,可以用这个功能,新密码长度不小于6位,不允许出现 6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。<3)取款。用户根据自己需要取多少钱,输入要取的金额,每次取款金额为100的倍数,总额不超过 5000元,支取金额不允许透支。<4)查询余额。用户需要知道自己帐户还剩多少钱时,可以查询自己帐户的余额。<5)存款。用户可以存款,不能出现负存款。<6)锁机。当用户 3次输入密码错误时,会自动吞卡。1.2操作:本程序通过键盘操作。在运行过程中,当用户输入正确的账号和密码时,会出现一个功能界面,按照功能界面操作。 1.修改密码;2.取款;3.存款;4.查询余额;5.退出系统,按相应的序列号后再按 enter键,执行相应的操作。个人资料整理 仅限学习使用第二章 总体设计2.1模拟ATM柜员机程序功能图模拟ATM柜员机程序ATM
功能类
consumer用户类(登陆界面(核对密码(修改密码
>>>
(获得姓名(获得卡号(获得密码
>>>(取款>
(获得余额
>(存款>
(设置密码
>(查询信息(退出系统
>>(锁机>图2.2功能图个人资料整理 仅限学习使用2.2整个程序的流程图登录界面否输入帐号和密码否卡号密码错超卡号密码正确?过3次?功能界面1. 修改密码2. 取款3. 存款4. 查询余额是5. 退出系统选择一项功能执行结束个人资料整理 仅限学习使用图2.3主程序流程图程序开始运行进入登陆界面,用户输入自己的卡号和密码,成功登陆即能进入功能界面,如果用户卡号密码错误超过3次,系统会自动没收卡,根据功能界面,用户可以执行相应的操作,操作完毕,退出系统。第三章 详细设计与实现3.1类的设计设计了两个类, ATM类和consumer类。ATM类完成自动柜员机的模拟,包括:显示登陆界面、验证卡号密码、修改密码、取款、存款、显示所插卡信息、退出系统等功能。Consumer类完成银行卡的模拟,包括设置姓名、卡号、密码、余额等信息。类的定义和实现均保存在头文件 atm.h文件中。个人资料整理 仅限学习使用ATM类的设计classATM//ATM功能类{public:ATM(consumer&cn>:cnsm(cn>{}voidwelcome(>。//登陆界面boolcheck_passwd(charn[],charpwd[]>。//核对密码voidchange_passwd(>。//修改密码voidfetchmoney(>。//取款voidgetmoney(>。//存款voidinformation(>。//查询信息voidexitATM(>。//退出系统voidfunctionshow(>。//功能界面voidlock(>。//锁机private:inttimes。//记录密码输入次数consumer&cnsm。}。consumer用户类的设计classconsumer//用户类{public:friendclassATM。//声明类ATM为consumer的友元类consumer(charName[],charNum[],floatMoney,charPassword[]>。/*构造函数,建立账户*/protected:char*get_name(>。//获得姓名char*get_kahao(>。//获得卡号char*get_passwd(>。//获得密码floatget_money(>。//获得余额floatgetmoney(floatgm>。//存款voidset_passwd(charpwd[]>。//设置密码voidset_money(floatm>。//取钱private:charpasswd[10]。//用户密码charname[20]。//用户姓名charkahao[20]。//用户卡号floatmoney。//用户余额}。个人资料整理 仅限学习使用3.2ATM柜员机的登陆在main主函数中实例化一个consumer类的对象,构造用户名是何志群,账号和密码都为123456,默认余额为10000。在程序运行中输入账号密码正确即可登陆主界面,选择ATM柜员机的功能。程序运行首先要求用户输入账号密码,帐号密码首先由main主函数构造默认,用strcmp函数判断账号密码是否一致,一致允许登陆,如果输入错误则再给予3次登陆机会,如果3次都输入错误,则用lock(>函数锁定账号密码。相关代码:boolATM::check_passwd(charnum[],charpwd[]>{if(strcmp(num,cnsm.get_num(>>==0&&strcmp(pwd,cnsm.get_passwd(>>==0>returntrue。elsereturnfalse。}3.3ATM柜员机修改密码功能新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。输入正确账户密码后,或者实现其他功能退回主界面后都可以选择柜员机的修改密码功能,该功能首先定义了一个 chenk_passwsd函数提取用户默认账号密码,在运行过程中现要求用户输入旧密码,用strcmp函数判断用户输入的旧密码是否和默认密码相同,若相同则继续运行,若不同则再给予两次输入机会,3次都输入错的时候调用lock函数锁定帐户密码。输入旧密码争取后系统会要求用户定义新密码,新密码要重复输入两次,要求两次必须重复正确且新秘密大于等于6位数才能修改成功,用了do-while循环处理改项功能。修改密码流程图:个人资料整理 仅限学习使用输入旧密码否重新输入旧密码 密码正确?是是密码正确?输入新密码否否否新密码符合要求?超过3次?是是再次输入新密码密码修改不成功 否次输入一样?是密码修改成功3.4ATM柜员机取款存款功能输入正确账号密码后,即可登陆柜员机主界面,其中可以选择取款和存款功能。取款功能要求用户输入取钱金额,取钱功能用了两个if语句判断用户输入金额是否100的倍数<只允许取100的整数倍),判断输入金额是否小于等于5000<最多允许取5000元),如果判断都为真,则顺利运行,用fecthmony函数实现更新用户余额,余额为默认账户余额减去取钱金额,单次取钱功能顺利实现时,会提示用户时候继续实现取钱功能,若输入“Y/y”则继续进行,若输入“N/n”则退回程序主见面。存款功能要求用户输入不能为负值的金额,用if语句判断,符合条件,即可成功存款。存款功能实现代码:voidATM::getmoney(>// 存款{floatgmcharch
。//。
存入的金额个人资料整理 仅限学习使用do{cout<<endl<<" 你要存多少钱:"<<"\n$>\\"<<endl 。cin>>gm
。if(gm<=0>{cout<<"cout<<"$>\\"
不能出现负存款。
,请输入正确的数字
!"<<endl
。cin>>gm
。}else{cout<<endl<<"cnsm.getmoney(gm>
存款成功"<<endl。
。}cout<<"是否要继续该项操作:cout<<"$>\\" 。
(Y/N>"<<endl
。cin>>ch 。while(ch!='n'&&ch!='N'&&ch!='Y'&&ch!='y'>{cout<<"$>\\" 。cin>>ch 。}}while(ch=='y'||ch=='Y'> 。}3.5ATM柜员机查询余额功能输入正确账号密码后,即可登陆柜员机主界面,其中可以选择查询余额功能功能。用户姓名主要是调用用户类的cnsm.get_name(>函数,卡号主要调用用户类的cnsm.get_kahao(>函数,余额主要调用用户类的cnsm.get_money(>函数。代码如下:voidATM::information(>//查询信息{cout<<"**********************************"<<endl 。cout<<"*"<<endl。cout<<"* 用户姓名:"<<cnsm.get_name(><<endl。cout<<"* 卡号: "<<cnsm.get_kahao(><<endl。cout<<"* 余额: "<<cnsm.get_money(><<endl。cout<<"**********************************"<<endl 。}个人资料整理 仅限学习使用第四章 测试4.1程序开始运行的界面图5.1程序开始时的界面4.2 正确输入帐号密码后的界面图5.2正确输入帐号密码后的界面个人资料整理 仅限学习使用4.3取钱成功后的界面5.3去钱成功后的界面4.4程序结束时的界面个人资料整理 仅限学习使用参考文献陈维兴,林小茶:《C++面向对象程序设计教程》[
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大班教案:我是服装设计师
- 2024年公关活动采购协议
- 二年级下册数学习题课件-五 分米和毫米 好学案|苏教版
- 2024年人力资源服务合同标的及属性描述
- 二年级下册数学教案-1 有余数的除法 北京版
- 家用电器运输与安装方案
- 大班教案:六一儿童节
- 大班数学公开课教案:让谁先吃好呢
- 青少年成长工作坊坊主发言稿
- 旅游行业党员服务与融合教育方案
- 1到50带圈数字直接复制
- 医学学员沟通和接诊能力面试评分表
- 创业指导师培训计划
- 幼儿园中班数学《有趣的图形》课件
- 四年级上册数学课件-4.6 整数的四则运算(运算定律)▏沪教版 (共15张PPT)
- 《饲料标签》国标
- DB11-415-2016危险货物道路运输安全技术要求
- 草莓创意主题实用框架模板ppt
- 员工人事档案目录
- 各种各样的叶子 ()通用PPT课件
- 《电工复审》培训课件
评论
0/150
提交评论