C++银行存取款管理程序设计.docx
- 文档编号:10057488
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:20
- 大小:112.41KB
C++银行存取款管理程序设计.docx
《C++银行存取款管理程序设计.docx》由会员分享,可在线阅读,更多相关《C++银行存取款管理程序设计.docx(20页珍藏版)》请在冰豆网上搜索。
C++银行存取款管理程序设计
C++银行存取款管理程序设计
第一章需求分析..........................................................2第二章设计内容..........................................................2
2.1设计要求.............................................................................................................................2
2.1.1题目描述..................................................................................................................2
2.1.2题目要求..................................................................................................................2
2.1.3输入要求..................................................................................................................2
2.1.4输出要求..................................................................................................................3
2.1.5实验步骤..................................................................................................................3
2.2概要设计.............................................................................................................................3
2.2.1设计思路..................................................................................................................3
2.2.2类的描述图..............................................................................................................4
2.3详细设计.............................................................................................................................5
2.3.1主要类的结构..........................................................................................................5
2.3.2类的实现程序及流程结构图..................................................................................5
第三章调试报告..........................................................7
3.1修改密码和功能界面的调试............................................................................................7
3.2存款取款............................................................................................................................7
3.3查询余额和查看收支明细................................................................................................8
3.4输入密码错误导致吞卡....................................................................................................8
3.5输入钱数错误的几种情况................................................................................................9
3.6输入代码错误....................................................................................................................9
第四章参考文献........................................................10第五章附录程序源代码..........................................10
1
随着信息的高速发展和办公自动化的日益普及,许多繁杂的办公事务都需要
借助计算机软件进行操作。
本次课程设计研究的就是银行存取款管理程序。
2.1
2.1.1
请设计一个银行存取款管理程序。
假设每位都有帐号,密码和所存款项。
若输入账号不正确则抛出异常,显示
账号异常,并统计抛出次数。
若输入取款额小于存额则输出,取款失败。
该程序应该具有下列功能:
(1)通过键盘输入帐号和款项;
(2)给定操作,完成存取款;
(3)给定帐号可以显示个人信息和余款;
(4)根据给定的密码,修改密码;
(5)提供收支明细的功能。
2.1.2
(1)以面向对象的观点按照分析、设计、编码、调试和测试的软件开发过程
完成这个应用程序;
(2)储户信息应该包括帐号、姓名、余款和信用等级等;
(3)为各项操作功能设计一个菜单。
应用程序运行后,先显示这个菜单,然
后用户通过菜单项选择希望进行的操作项目。
2.1.3
应用程序运行后,在屏幕上显示一个菜单(菜单显示外观见前面的图示)。
用户可以根据需求,选定相应的操作项目。
进入每个操作后,根据应用程序的提
示信息,从键盘输入相应的信息。
2
2.1.4
(1)应用程序运行后,要在屏幕上显示一个菜单;
(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数
据内容、格式及结束方式等。
2.1.5
(1)编写简单程序,运行演示;
(2)根据题目要求,逐步增加功能;
(3)实现功能,并进行测试;
(4)编写实验报告。
2.2
2.2.1
类是C++语言中的一种数据类型,在面向对象程序设计方法中,程序是通过
对象的表现来实现的,而对象的所有行为和特征都是由类来决定的。
所以要建立
对象,首先必须定义类。
在类中添加函数,再定义对象,通过对象调用函数从而
实现其属性和行为。
本程序定义了Customer和ATM自动取款机类。
具体如下:
1.根据课题要求,定义了银行用户Customer类和ATM自动模拟取款机ATM类,要让ATM类中的成员函数访问Customer类,通过友元函数“friendclassATM;”实现。
2.基于本程序需要实现的功能不同,我们在Customer类中定义了数据成员:
用
户姓名、卡号、金额、用户密码;成员函数:
设置密码、存钱、取钱。
ATM类中定义了数据成员:
记录输入密码的次数;成员函数:
登陆界面、核对密码、功能
界面、修改密码、存钱、取钱、查询信息、查看收支明细、吞卡等。
3.通过判断函数:
strcmp(num,ctm.get_num())==0&&strcmp(pwd,ctm.get_password())==0校验密码。
4.同时根据功能界面选择相关功能代号进行相应的操作,以及各种信息的查询。
5.创建Customer类的对象,调用初始化函数,主程序调用开始,程序实现。
3
2.2.2
图1Customer类
图2ATM类
4
2.3
2.3.1
Customer类
数据成员:
char*get_name();//返回用户名
char*get_num();//返回卡号
char*get_password();//返回密码
floatsave_money();//返回存钱金额
floatget_money();//返回取钱金额
charname[20];//用户姓名
charnum[20];//卡号
floatmoney;//金额
charpassword[6];//密码
成员函数:
Customer(charName[],charNum[],floatMoney,charPassword[]);
//自身的构造函数,初使化
voidset_password(charpwd[]);//设置密码
voidadd_money(floatc);//存钱
voiddec_money(floatm);//取钱
ATM类
数据成员:
boolcheck_password(charp[],charpwd[]);//核对密码
inttimes;//记录输入密码的次数成员函数:
ATM(customer&cn):
ctm(cn){};//自身的构造函数
voidwelcome();//登陆界面
voidshow_function();//功能界面
voidchange_password();//修改密码
voidsave_money();//存钱
voidget_money();//取钱
voidget_information();//查询信息
voidchange_money();//查看收支明细
voidexit_ATM();//退出ATM
voidpush_card();//吞卡
2.3.2先设置功能界面,再通过各代码分别实现修改密码、存款、取款、查询余额、查
看收支明细和退出的操作。
具体程序如下:
5
voidATM:
:
show_function()//构造功能界面{intn;
do
{cout<<"1)修改密码"< cout<<"2)存款"< cout<<"3)取款"< cout<<"4)查询余额"< cout<<"5)查看收支明细"< cout<<"6)退出系统"< cout<<"请选择相关功能的代号: ";cin>>n; while(n<1&&n>>6) {cout<<"请输入正确的操作序号! "< cout<<"请选择相关功能的代号: ";cin>>n; } switch(n) {case1: change_password();break; case2: save_money();break; case3: get_money();break; case4: get_information();break; case5: change_money();break; case6: exit_ATM();break; } } while(true); } 其流程结构图 输入n n=2n=3n=4n=5n=1 n=6 修改密码查看收存钱取钱查询余额查询余额支明细 Change_passsave_moget_monget_informchange_moexit_ATword()ney()ey()ation()ney()M() 6 程序的编写使一个复杂而繁冗的过程。 起初,我们在运行时出现了各类错误,通 过下面的提示和小组的讨论以及向老师的请教,终于得出了最后的结果 7 8 9 1.《C++程序设计教程》;崔志磊,苏涛,杨俊清;西安电子科技大学出版 社,2008年2月。 2.《程序设计基础——C++实验指导与课程设计》;刘玉英;人民邮电出版社, 2007年9月。 3.《C语言程序设计教程》;朱鸣华,刘旭麟,杨微;机械工业出版社,2007 年5月。 4.《标准C程序设计》;金名,张长富;清华大学出版社,2006年5月。 5.《C程序设计》;谭浩强;清华大学出版社,2005年7月。 //C++ATM自动模拟取款机程序 #include #include usingnamespacestd; classcustomer { public: friendclassATM; customer(charName[],charNum[],floatMoney,charPassword[]);//初 始化 protected: char*get_name();//返回用户名 char*get_num();//返回卡号 char*get_password();//返回密码 floatsave_money();//返回存钱金额 floatget_money();//返回取钱金额 voidset_password(charpwd[]);//设置密码 voidadd_money(floatc);//存钱 voiddec_money(floatm);//取钱 private: 10 charpassword[7];//用户密码 charname[20];//用户姓名 charnum[20]; floatmoney; }; char*customer: : get_name(){returnname;}//构造返回用户名 char*customer: : get_num(){returnnum;}//构造返回卡号 char*customer: : get_password(){returnpassword;}//构造返密码 floatcustomer: : save_money(){returnmoney;}//构造返回存钱金额 floatcustomer: : get_money(){returnmoney;}//构造返回取钱金额 voidcustomer: : set_password(charpwd[]){strcpy(password,pwd);}//构造修改密码 voidcustomer: : add_money(floatc){money+=c;}//构造存钱 voidcustomer: : dec_money(floatm){money-=m;}//构造取钱classATM { public: ATM(customer&cn): ctm(cn){} voidwelcome();//登陆界面 boolcheck_password(charp[],charpwd[]);//核对密码 voidshow_function();//功能界面 voidchange_password();//修改密码 voidsave_money();//存钱 voidget_money();//取钱 voidget_information();//查询信息 voidchange_money();//查看收支明细 voidexit_ATM();//退出ATM voidpush_card();//吞卡 private: inttimes;//记录输入密码的次数 customer&ctm; }; //构造ATM的函数 voidATM: : welcome()//构造welcome { times=0; 11 cout<<"欢迎使用ATM模拟自动取款机"< charpwd[7],num[20];//密码,卡号 inti=0; do { cout<<"请输入卡号"; cin>>num; cout<<"请输入密码: "; cin>>pwd; if(! check_password(num,pwd)) { cout<<"你输入的密码有错误,请重新输入"< times++; } else { show_function(); } } while(times<3); push_card(); } boolATM: : check_password(charnum[],charpwd[])//构造核对密码 { if(strcmp(num,ctm.get_num())==0&&strcmp(pwd,ctm.get_password())== 0) returntrue; else returnfalse; } voidATM: : show_function()//构造功能界面 { intn; do { cout<<"1)修改密码"< cout<<"2)存款"< cout<<"3)取款"< cout<<"4)查询余额"< cout<<"5)查看收支明细"< cout<<"6)退出系统"< cout<<"请选择相关功能的代号: "; 12 cin>>n; while(n<1&&n>>6) { cout<<"请输入正确的操作序号! "< cout<<"请选择相关功能的代号: "; cin>>n; } switch(n) { case1: change_password();break; case2: save_money();break; case3: get_money();break; case4: get_information();break; case5: change_money(); case6: exit_ATM();break; } } while(true); } voidATM: : change_password()//构造修改密码 { charpwd[7],repwd[7]; times=0; do { cout<<"请输入原密码: "; cin>>pwd; //if(! check_password(ctm.get_password(),pwd)) if(! check_password(ctm.get_num(),pwd)) times++; else break; } while(times<2); if(times==2) push_card(); intm=0; do { cout<<"请输入新密码: "; cin>>pwd; cout<<"请再输入一次新密码: "; cin>>repwd; 13 if((m=strcmp(pwd,repwd))! =0) cout<<"你输入的两次密码不一样,请重新输入! "; } while(m! =0); ctm.set_password(pwd); cout<<"密码修改成功,请牢记新密码! "< } voidATM: : save_money()//构造存钱{ floatc;charch; do { cout<<"请输入钱数: ";cin>>c; while(c<=0) { cout<<"请输入正确的数字! "< } cout<<"操作已成功! "< ctm.add_money(c); cout<<"是否要继续(Y/N): "; cin>>ch; while(ch! ='n'&&ch! ='N'&&ch! ='y'&&ch! ='Y') { cout<<"请根据提示输入正确命令! "< cin>>ch; } }while(ch=='y'||ch=='Y'); } voidATM: : get_money()//构造取钱{ floatm; charch; do { cout<<"请输入所取金额: "; cin>>m; while(m<=0) { cout<<"请输入正确的数字! "< cin>>m; } if(ctm.get_money()-m<0) 14 { cout<<"对不起,你的余额不足! "< } else { ctm.dec_money(m); cout<<"是否要继续(Y/N): "; cin>>ch; while(ch! ='n'&&ch! ='N'&&ch! ='y'&&ch! ='Y') { cout<<"请根据提示输入正确命令! "< cout<<"是否要取出所选金额(Y/N)"; cin>>ch; } } } while(ch=='y'||ch=='Y'); } voidATM: : get_information()//构造查询信息{ cout<<"********************"< cout<<"用户姓名: "< cout<<"卡号: "< cout<<"余额: "< cout<<"********************"< } voidATM: : pus
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 银行 取款 管理 程序设计
![提示](https://static.bdocx.com/images/bang_tan.gif)