ATM自动取款机程序设计.docx
- 文档编号:6460317
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:22
- 大小:287.54KB
ATM自动取款机程序设计.docx
《ATM自动取款机程序设计.docx》由会员分享,可在线阅读,更多相关《ATM自动取款机程序设计.docx(22页珍藏版)》请在冰豆网上搜索。
ATM自动取款机程序设计
大连科技学院
面向对象程序设计(A)课程设计
题目ATM自动取款机程序设计
学生姓名x'x'x 专业班级软件工程12-1
指导教师李孝贵职称 讲师
所在单位信息科学系软件工程教研室
教学部主任王立娟
完成日期2014年7月6日
课程设计报告单
学号
Xxx
姓名
xxsx
专业班级
软件工程12-1
考核项目
评分
备注
1
平时工作态度及遵守纪律情况
(10分)
2
掌握基本理论、关键知识、基本技能的程度和阅读参考资料的水平
(10分)
3
独立工作能力、综合运用所学知识分析和解决问题能力及实际工作能力提高的程度
(20分)
4
完成课程设计说明书及软件的情况与水平(小组分工情况、规范性、整洁清楚、叙述完整性、思路清晰程度、工作量及实际运行情况和创新性)
(60分)
总评成绩
综合评定:
(优、良、中、及格、不及格)
指导教师签字:
年月日
《面向对象程序设计(A)课程设计》任务书
一、课程设计任务及要求:
任务:
针对小型信息管理系统或若干综合性设计题目,选择一种软件开发模型,完成从需求分析、系统设计、系统实现,软件测试的全过程。
要求:
(1)根据软件系统开发的一般原则,完成相应系统的功能设计,完成主要功能模块的程序实现并进行测试训练,给出代码运行结果和相应的设计文档。
可以分组进行,但所有学生必须经历整个系统的开发全过程,以便加深对系统开发全过程的认识。
(2)提交课程设计报告。
(3)指标:
要求完成课程设计报告3000字以上(约二十页);完成所设计的题目,设计题目的语句行数的和在200行语句以上。
二、工作量
2周(10个工作日)时间
三、计划安排
第1个工作日:
查找相关资料、书籍,阅读示例文档,选择题目。
第2个工作日-第4个工作日:
设计程序结构、模块图。
第5个工作日-第9个工作日:
完成程序的编码,并且自己调试、测试。
穿插进行课程设计报告的撰写。
第10个工作日:
上交课程设计报告,由教师检查软件测试效果、检查课程设计报告,给出学生成绩。
指导教师签字:
年月日
题目:
ATM自动取款机程序设计分析与设计
1.需求分析
为了方面用户的及时取款,查询,及时修改密码的方便,本课题设计并模拟银行的自动取款机使用过程中的界面和用户交互过程。
实现查询银行卡余额、取款、修改密码、退出系统等功能。
2.概要设计
1登录功能。
输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。
2查询功能。
查询账户余额。
3取款功能。
取款,更新余额。
4挂失功能。
挂失后,该账户不能进行任何操作。
5修改密码。
输入原密码和新设置密码。
6转账。
输入转账的转出账户和转入账户以及转账金额,进行转账。
流程图
图2—1atm设计框图
3.
详细设计
否
是
查询取款挂失修改密码
否
是否
取款挂失修改密码挂失退出是
返回退出
否是
返回退出
转账
是
否
返回退出
图3—1程序流程图
1登陆模块
主要完成功能为:
当用户开始使用本系统,进入登陆模块。
屏幕显示菜单提示,用户可根据需要选择相应功能。
具体如下:
开户、存款、取款、查询余额、修改密码、转账
主要适用技术:
登陆函数主要是使用了循环函数和dowhile函数,还有许多的成员函k.OpenAccount()、k.SaveMoney()、k.TakeMoney()、k.Inquiry()、k.Changepsw()、k.Transfer();
关键代码如下:
voidmain();主函数;
do{}while
(1);//循环结构语句
switch(i);case1:
default:
bankk;//默认构造函数
k.OpenAccount();break;//开户
k.SaveMoney();break;//存款
k.TakeMoney();break;//取款
k.Inquiry();break;//查询余额
k.Changepsw();break;//修改密码
k.Transfer();break;//转账
2开户模块
主要完成功能为:
进入开户模块。
屏幕显示菜单提示,可根据要求依次输入姓名、卡号、密码和预存款金额,完成以上操作之后,屏幕上显示恭喜您,开户成功。
主要适用技术:
开户函数使用了基本函数;
主要代码如下:
voidOpenAccount()//开户函数
3存款模块
主要完成功能为:
当开始使用本系统,进入存款模块。
屏幕显示菜单提示,根据要求依次输卡号和密码,如果卡号和密码正确,然后输入存款金额,存款成功后显示卡上余额,(当密码不正确的时候,可以有三次机会输入自己的正确密码,如果三次都没有输入正确,卡将会被吃掉,以下同);
主要使用技术:
存款函数使用了循环语句函数、判断函数和选择函数
主要代码如下:
voidSaveMoney()//存款函数
for(inti=1;i<=N;i++)else//循环函数语句
exit
(1);//结束函数
4取款模块
主要完成功能为:
进入取款模块。
屏幕显示菜单提示,根据要求依次输卡号和密码,如果卡号和密码正确,然后输入取款金额,如果全款金额小于或者等于卡上余额,则取款进行,否则重新输入取款金额。
取款成功后显示卡上余额
主要适用技术:
存款函数使用了循环语句函数、判断函数和选择函数
主要代码如下:
voidTakeMoney()//取款函数
for(inti=1;i<=N;i++)else//循环函数语句
exit
(1);//结束函数
5查询余额
主要完成功能为:
进入查询余额模块。
屏幕显示菜单提示,根据要求依次输卡号和密码,如果卡号和密码正确,屏幕上将显示你的余额,然后进入修改密码模块;
主要适用技术:
存款函数使用了循环语句函数、判断函数和选择函数
主要代码如下:
voidInquiry()//查询余额函数
for(inti=1;i<=N;i++)else//循环结果语句
exit
(1);//结束函数
6修改密码
主要完成功能为:
进入修改密码模块。
屏幕显示菜单提示,根据要求依次输卡号和密码,如果卡号和原始密码正确,则将进行修改密码的步骤,先输入原始密码,然后再输入新密码,之后确认新密码,确认正确之后,密码修改成功,接下来进入转账模块;
主要适用技术:
存款函数使用了循环语句函数、判断函数和选择函数
主要代码如下:
voidChangepsw()//修改密码函数
for(inti=1;i<=N;i++)else//循环结果语句
exit
(1);//结束函数
7转账模块
主要完成功能为:
进入转账模块。
屏幕显示菜单提示,根据要求依次输卡号和密码,如果卡号和原始密码正确,输入所要转账的账号并输入转账金额,如果转账金额小于余额,转账成功输出卡上余额,
主要适用技术:
存款函数使用了循环语句函数、判断函数和选择函数
主要代码如下:
voidTransfer()//转账函数
for(inti=1;i<=N;i++)else//循环结果语句
exit
(1);//结束函数
4.编码
classATM//ATM取款机
{
public:
//公有类
ATM(consumer&cn):
cnsm(cn){}
voidwelcome();//登陆界面
boolcheck_passwd(charn[],charpwd[]);//核对密码
voidchange_passwd();//修改密码
voidfetchmoney();//取款
voidinformation();//查询信息
voidfunctionshow();//功能界面
voidguashi();//挂失
voidzhuanzhang();//转账
voidexitATM();//退出系统
voidlock();//锁机
private:
//私有类
inttimes;//记录密码输入次数
intmoney;
consumer&cnsm;
};
5.调试分析
主要问题:
错误较多,由于修改了好多次,程序中的血多代码都出现了不同程度上的错误,尤其是bank和bank[i]之间经常出现问题,我通过调试,发现了好多这样的问题,通过帮助和自己的经验,解决了这个问题;还有就是程序后面那个是否继续,例如:
cout<<"是否继续操作1是2否"< 对于用户要求输入相应的帐号和密码,如果三次出错则将卡吃掉并打印出相应凭条,没有实现,后来通过增加代码,实现了这个功能。 6.测试结果及运行效果 1登陆模块 图6-1登录模块 2开户模块 图6-2开户模块 3存款模块 图6-3存款模块 4取款模块 图6-4取款模块 5查询模块 图6-5查询模块 6修改密码 图6-6修改密码 7转账模块 图6-7转账模块 8退出登录 图6-8退出登录 7.系统开发所用到的技术 VisualC++6.0 应用语言C++ 注释: C++是在C语言引入了面向机制而形成的一种程序设计语言,程序结构灵活,代码简洁清晰,可移植性强,支持数据抽象,面向对象程序设计和泛型程序设计。 所以它是一种应用广泛的系统语言。 参考文献 [1]张红梅,于明,程序设计实验教程,中国铁道出版社,2004 [2]徐武,周启涛,葛卉娟,VisualC++与Oracle数据库编程案例,电子工业出版社,2004 [3]网冠科技,VisualC++6.0时尚编程百例,机械工业出版社,2003 [4]求是科技,VisualC++6.0程序设计与开发技术大全,人民邮电出版社,2004 [5]广正工作室《C++Builder实用教程》[M].机械工业出版社1998年 [6]MattTells《高级编程指南——C++Builder》[M].中国水利水电出版社1998年 附录全部代码 #include #include #include classBank { public: Bank(){};//默认构造函数 voidOpenAccount()//开户 { cout<<"欢迎开户: "< cout<<"请输入您的姓名: "< cin>>name; cout<<"请输入您的卡号: "< cin>>cardID; cout<<"请输入您的密码: "< cin>>psw; cout<<"请输入您的预存金额: "< cin>>money; cout<<"恭喜您,开户成功! "< } voidSaveMoney()//存款 { longID; longpsw1; intmoney1; cout<<"欢迎使用取款业务: \n"; cout<<"请输入您的卡号: "< cin>>ID; cout<<"请输入您的密码: "< cin>>psw1; if(ID==cardID&&psw1==psw) { cout<<"请输入您的存款金额: "< cin>>money1; money=money+money1; cout<<"存款成功,卡上余额为: "< } else { cout<<"您的卡号或者密码错误,请重新输入! "< cout<<"请重新输入您的密码: "< cin>>psw1; if(psw1==psw) { cout<<"请输入您的存款金额: "< cin>>money1; money=money+money1; cout<<"存款成功,卡上余额为: "< } else { cout<<"温馨提示: 密码错误,卡已被吃掉(打印出凭条,您的卡已经暂停一切业务): "< exit (1); } } } voidTakeMoney()//取款 { longID; longpsw1; intmoney1; cout<<"欢迎您使用取款业务\n"; cout<<"请输入您的卡号: "< cin>>ID; cout<<"请输入您的密码: "< cin>>psw1; if(ID==cardID&&psw1==psw) { cout<<"请输入您取款的金额: "< cin>>money1; if(money>=money1) { money=money-money1; cout<<"取款成功,您卡上余额为: "< } else { cout<<"取款金额超出账户余额,请重新输入取款金额: "; cin>>money1; money=money-money1; cout<<"取款成功,您卡上余额为: "< } } else { cout<<"温馨提示: 您的卡号或密码错误,请重新输入! "< cout<<"请重新输入您的密码: "< cin>>psw1; if(psw1==psw) { cout<<"请输入您的取款金额: "< cin>>money1; if(money>=money1) { money=money-money1; cout<<"取款成功,您卡上余额为: "< } else { cout<<"取款金额超出账户余额,请重新输入取款金额: "; cin>>money1; money=money-money1; cout<<"取款成功,您卡上余额为: "< } } cout<<"温馨提示: 密码错误,卡已被吃掉(打印出凭条,您的卡已经暂停一切业务): "< exit (1); } } voidInquiry()//查询余额 { longID; longpsw1; cout<<"欢迎进行查询余额业务\n"; cout<<"请输入您的卡号: "< cin>>ID; cout<<"请输入您的密码"< cin>>psw1; if(ID==cardID&&psw1==psw) { cout<<"卡上余额为: "< } else { cout<<"您的卡号或者密码错误,请重新输入! "< cout<<"请重新输入您的密码: "< cin>>psw1; if(psw1==psw) { cout<<"卡上余额为: "< } else cout<<"温馨提示: 密码错误,卡已被吃掉(打印出凭条,您的卡已经暂停一切业务): "< exit (1); } } voidChangepsw()//修改密码 { longID; longpsw1; longpsw2; cout<<"欢迎使用修改密码业务\n"< cout<<"请输入您的卡号: "< cin>>ID; cout<<"请输入您的密码: "< cin>>psw1; if(ID==cardID&&psw1==psw) { cout<<"请输入您的原始密码: "< cin>>psw1; cout<<"请输入您的新密码: "< cin>>psw2; cout<<"确认新密码: 请重新输入新密码: "< cin>>psw2; psw=psw2; cout<<"修改密码成功! "< } else { cout<<"您的卡号或者密码错误! "< cout<<"请重新输入您的原始密码: "< cin>>psw1; if(psw1==psw) { cout<<"请输入您的新密码: "< cin>>psw2; cout<<"确认新密码: 请输入新密码: "< cin>>psw2; psw=psw2; cout<<"修改密码成功! "< } else { cout<<"温馨提示: 密码错误,卡已被吃掉(打印出凭条,您的卡已经暂停一切业务): "< exit (1); } } } voidTransfer()//转账 { longID; longID2; longpsw1; intmoney1; cout<<"欢迎使用转账业务\n"< cout<<"请输入您的卡号: "< cin>>ID; cout<<"请输入您的密码: "< cin>>psw1; if(ID==cardID&&psw1==psw) { cout<<"请输入您要转账的卡号: "< cin>>ID2; cout<<"请输入您要转账的金额: "< cin>>money1; if(money>=money1) { money=money-money1; cout<<"转账成功,您卡上余额为: "< } else { cout<<"金额超出账户余额,请重新输入取款金额: "; cin>>money1; money=money-money1; cout<<"转账成功,您卡上余额为: "< } } else { cout<<"温馨提示: 您的卡号或密码错误,请重新输入! "< cout<<"请重新输入您的密码: "< cin>>psw1; if(psw1==psw) { cout<<"请输入您的转账金额: "< cin>>money1; if(money>=money1) { money=money-money1; cout<<"转账成功,您卡上余额为: "< } else { cout<<"转账金额超出账户余额,请重新输入转账金额: "; cin>>money1; money=money-money1; cout<<"转账成功,您卡上余额为: "< } } cout<<"温馨提示: 密码错误,卡已被吃掉(打印出凭条,您的卡已经暂停一切业务): "< exit (1); } } private: charname[20]; longcardID; longpsw; intmoney; }; voidmain() { inti; Bankk; do { cout<<"欢迎进入中国工商银行"< cout<<"ICBC"< cout<<"请选择您要办理的手续: \n"; cout<<"1.开户\n"; cout<<"2.存款\n"; cout<<"3.取款\n"; cout<<"4.查询余额\n"; cout<<"5.修改密码\n"; cout<<"6.转账\n"; cout<<"7.退出系统\n"; cout<<"请输入您要办理业务的序号: "; cin>>i; if(i==7) break; switch(i) { case1: k.OpenAccount();break;//开户 case2: k.SaveMoney();break;//存款 case3: k.TakeMoney();break;//取款 case4: k.Inquiry();break;//查询余额 case5: k.Changepsw();break;//修改密码 case6: k.Transfer();break;//转账 default: {cout<<"你的输入有误,请输入1-7之间的整数! \n";} } } while (1); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ATM 自动 取款 程序设计