0821113814杨闯ATM机课程设计.docx
- 文档编号:12287986
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:14
- 大小:110.50KB
0821113814杨闯ATM机课程设计.docx
《0821113814杨闯ATM机课程设计.docx》由会员分享,可在线阅读,更多相关《0821113814杨闯ATM机课程设计.docx(14页珍藏版)》请在冰豆网上搜索。
0821113814杨闯ATM机课程设计
金陵科技学院
课程设计任务书
2009~2010学年第一学期
学生姓名:
杨闯专业班级:
Mo8计算机
一、课程设计题目
《模拟ATM柜员机程序》
二、课程设计内容(含技术指标)
1.使用文本命令行界面。
当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:
查询余额:
初始余额为10000元
ATM取款:
每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。
ATM存款:
不能出现负存款。
修改密码:
新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。
2.建立银行账户类、文件读写类、界面显示类等以及各相关接口类。
三、进度安排
1.1-4学时,分析需求、理解需求;
2.5-8学时,程序设计,定义类、数据处理方式;
3.9-12学时,编写程序、调试、测试;
4.12-16学时,编写设计报告学时,答辩;
四、基本要求
1.只能使用C++语言,源程序要有适当的注释,程序容易阅读
2.至少采用文本菜单界面(如果能采用图形菜单界面更好)
3.学生可自动增加新功能模块(视情况可另外加分)
4.用文件保存信息
5.写出课程设计报告,具体要求见相关说明文档
课程负责人签名:
年月日
课程设计分工安排
姓名
课程设计负责工作
备注
ATM功能类
用户类
摘要
演示程序时,初始卡号和密码为123456,系统能登录ATM柜员机系统,进入功能界面,根据功能界面的提示,然后由用户进行相应的功能操作。
本程序使用C++语言,操作时,使用文本命令行界面。
该程序还需要一些改进,就是没有采用图形菜单界面。
关键词:
登陆界面修改密码取款查询信息功能界面
目录
摘要I
目录II
第一章需求分析1
1.1功能:
1
1.2操作:
1
第二章总体设计2
2.1模拟ATM柜员机程序功能图2
2.2整个程序的流程图3
第三章详细设计与实现4
3.1类的设计4
3.2ATM柜员机的登陆5
3.3ATM柜员机修改密码功能5
3.4ATM柜员机取款存款功能6
3.5ATM柜员机查询余额功能7
第四章测试8
4.1程序开始运行的界面8
4.2正确输入帐号密码后的界面9
4.3取钱成功后的界面9
4.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柜员机程序功能图
图2.2功能图
2.2整个程序的流程图
的等5][ps[t1].co[3]+p.j-1]==0________________________________________________________________________________________________
图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;
else
returnfalse;
}
3.3ATM柜员机修改密码功能
新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。
输入正确账户密码后,或者实现其他功能退回主界面后都可以选择柜员机的修改密码功能,该功能首先定义了一个chenk_passwsd函数提取用户默认账号密码,在运行过程中现要求用户输入旧密码,用strcmp函数判断用户输入的旧密码是否和默认密码相同,若相同则继续运行,若不同则再给予两次输入机会,3次都输入错的时候调用lock函数锁定帐户密码。
输入旧密码争取后系统会要求用户定义新密码,新密码要重复输入两次,要求两次必须重复正确且新秘密大于等于6位数才能修改成功,用了do-while循环处理改项功能。
修改密码流程图:
3.4ATM柜员机取款存款功能
输入正确账号密码后,即可登陆柜员机主界面,其中可以选择取款和存款功能。
取款功能要求用户输入取钱金额,取钱功能用了两个if语句判断用户输入金额是否100的倍数(只允许取100的整数倍),判断输入金额是否小于等于5000(最多允许取5000元),如果判断都为真,则顺利运行,用fecthmony函数实现更新用户余额,余额为默认账户余额减去取钱金额,单次取钱功能顺利实现时,会提示用户时候继续实现取钱功能,若输入“Y/y”则继续进行,若输入“N/n”则退回程序主见面。
存款功能要求用户输入不能为负值的金额,用if语句判断,符合条件,即可成功存款。
存款功能实现代码:
voidATM:
:
getmoney()//存款
{
floatgm;//存入的金额
charch;
do
{
cout< "<<"\n$>\\"< cin>>gm; if(gm<=0) { cout<<"不能出现负存款,请输入正确的数字! "< cout<<"$>\\"; cin>>gm; } else { cout< cnsm.getmoney(gm); } cout<<"是否要继续该项操作: (Y/N)"< cout<<"$>\\"; 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<<"**********************************"< cout<<"*"< cout<<"*用户姓名: "< cout<<"*卡号: "< cout<<"*余额: "< cout<<"**********************************"< } 第四章测试 4.1程序开始运行的界面 图5.1程序开始时的界面 4.2正确输入帐号密码后的界面 图5.2正确输入帐号密码后的界面 4.3取钱成功后的界面 5.3去钱成功后的界面 4.4程序结束时的界面 参考文献 [1]陈维兴,林小茶: 《C++面向对象程序设计教程》[M],清华大学出版社 [2]丁峻岭: 《C语言程序设计》[M],中国铁道出版社 心得体会 这次课程设计让我更加了解大一学到的C和C++。 课设题目要求不仅要求对课本知识有较深刻的了解,同时要求程序设计者有较强的思维和动手能力和更加了解编程思想和编程技巧。 这次课程设计让我有一个深刻的体会,那就是细节决定成败,编程最需要的是严谨,如何的严谨都不过分,往往检查了半天发现错误发生在某个括号,分号,引号,或者数据类型上。 就像我在写ATM类时,写完后,忘了在大括号后加个分号,这一点小小的错误也耽误了我几十分钟,所以说细节很重要。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 0821113814 ATM 课程设计