银行账户管理程序.docx
- 文档编号:23865994
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:19
- 大小:143.61KB
银行账户管理程序.docx
《银行账户管理程序.docx》由会员分享,可在线阅读,更多相关《银行账户管理程序.docx(19页珍藏版)》请在冰豆网上搜索。
银行账户管理程序
面向对象程序设计课外实践报告
项目名称:
银行账户管理程序(win32应用程序)
所在班级:
13级物联网工程
小组成员:
王铎
指导教师:
赵红丹
起止时间:
2014.11.25——2014.12.20
项目基本信息
项目名称
设计一个排课程序
项目简介
1.问题描述
设计一个银行账户管理程序,账户的信息有账号(唯一)、姓名、余额、身份证号码、单位、电话号码、地址等,允许用户进行如下操作:
开户、销户、存款、取款、转账、查询,一个用户可以有多个户头,账户的数值没有上限。
2.基本要求
程序运行时,可以由用户选择进行何种操作,开户操作要求输入用户信息后自动获取账号,用户销户后账号被回收,并且该账号可以继续分配给其它账户,不允许用户透支,根据姓名或账号可以进行用户的信息查询,所有的账户信息应存放到一个文件中,可以随时的访问和更新
3.测试数据
程序应输入不少于10人的账户信息,应考虑到人员同名的情况。
小组成员
王铎
任务分工
一、问题描述及分析:
我们的银行账户管理系统的主要问题就是:
1.对刚刚开通银行账号的人们需要自动的按照先后顺序给出所属于他们的银行账号码,切不允许号码重复。
即给账号一个初始值,且开通一个账户账号就自行加加,即将其设成静态成员,即可达到要求。
2.对已开通的银行账户能进行注销账号、存、取钱,账户之间能相互转账,且能记住他们的账户信息,这就需要在银行类Bank里控制账号类Account的成员,然后进行编辑即可。
3.开通银行账号时需谨记自己的身份证号码,这对以后查找个人信息十分关键,所以开户时需要认真填写个人信息,如实填写!
切记!
二、功能模块及结构描述:
功能模块:
我们的程序共分为:
开通银行账户、注销银行账户、对已开通的账户进行存款、取款、对已开通的两个账户进行转账、对已开通的账户的信息的查询(包括对单个账户的查询)这六个功能模块。
结构描述:
1.由于是银行账户管理系统,且是银行管理账号,所以共分为两个类,即账号类Account和银行类Bank。
2.账号类Account主要管理账户的所有信息,对账号的输入、存入、输出,对账户余额的转入和转出等都是账号类管理的,而银行类Bank是对人们进行开通银行账户、注销银行账户、存款、取款、转账、已开通账户信息的查询等服务的
三、主要流程描述:
流程图:
开始运行——>开通账户(初始余额均为0)——>账户信息存入文件——>显示所有已开通账户的信息——>查询单个账户信息(按身份证号码查找)——>账户进行存款、取款——>两个账户之间进行转账——>注销账户——>结束运行
四、使用说明:
程序运行后,进入界面:
在如上所示的界面下,根据提示进行基本的操作。
五、问题及解决方法
问题1.账户号码accountnumber自动生成的问题,刚开始是将其定义在账号类Account和银行类Bank这两个类的外面,虽然可以自动生成,但是却无法将各个账户号码保存起来并且正确输出。
问题2.两个账户转账时,无法将上个账户的钱数正确的转入另一个账户
问题3.注销账号时总是注销不成功,注销了还存在
问题1的解决方法:
accountnumber是账号,故应是账号类Account里的一个成员,由于它是自加的,所以将initnumber设置成静态成员,另设一个accountnumber成员,且将initnumber的值赋给accountnumber,这样就完成了账号的自行增加且能保存。
问题2的解决方法:
两个账户转账,应该也是账号类Account里的函数的问题,所以,为了能使转入钱的账户转入的钱数等于转出钱的账户转出的钱数,那么,转出钱的函数就应该有转出钱数的返回值,即returnmoney;而转出钱的函数就应该将其转出的money转给这个账户,则函数就应该写成voidAccount:
:
cunru(floatx),而下面运用转账时x=accoutset[m].zhuanzou();则转账时就写成accoutset[m].cunru(x);即可。
问题3的解决方法:
银行是管理账号的,所以,若使银行能够注销某个账号的所有信息,那么,将这个账号从账号数组里去掉即可,则注销一个账号,账号数组总数就减少1,即count=count-1;若使其账号注销,则可以先从数组中查询到该账户,然后将其账户后面的成员一个一个向前移一位:
accoutset[l]=accoutset[l+1];且数组总数减少了1,那么即可认为该账户已被注销了。
六、课外实践总结:
通过这次课外实践,我们真正体会到自己的能力的不足,当然,这次实践没有少请教老师,在老师的精心指导下,我们更加有信心去战胜困难,并且爱上了编程,感觉C++还是比较容易学的,不过还是要好好学习,除了上课认真听讲外,还应该课下多上机实践,把所学的一点一滴慢慢积累下来,不然到最后什么都没记住,到那时候再后悔自己平时没有好好学习就已经晚了,一般都是书到用时方恨少,所以,平时就该把该记的都会用,到时候编程的时候用的得心应手,不管怎么说,总之,我们都要多学、多问、多总结,争取将C++学精、学通!
七、源代码:
#include
#include
#include
#include
usingnamespacestd;
classAccount//------------------------------------------------账户类
{
public:
Account()//---------------------------------------Account构造函数
{
accountnumber=initnumber;//---------------------账户号码赋值
initnumber++;
rest_money=0;
}
~Account()//--------------------------------------Account析构函数
{
}
voidInput();//----------------------------------输入账户信息函数
voidPrintf1();//--------------------------------输出账户信息函数
voidDelete();//---------------------------------删除账户信息函数
voidAdd();//--------------------------------------------增加钱数
voidMin();//--------------------------------------------减少钱数
floatzhuanzou();//------------------------------------------转走
voidcunru(floatx);//---------------------------------------存入
stringid;//-------------------------------------------身份证号码
floatrest_money;//------------------------------------------余额
protected:
stringname;//-----------------------------------------------姓名
intage;//---------------------------------------------------年龄
stringdanwei;//---------------------------------------------单位
stringphonenumber;//------------------------------------电话号码
stringaddress;//--------------------------------------------地址
stringpassword;//-------------------------------------------密码
stringpassword1;//------------------------------------------密码1
floatmoney1;//------------------------------------------转的金额
longaccountnumber;//------------------------------------账户号码
staticintinitnumber;//------------设置静态成员,让账号能自行加加
};
intAccount:
:
initnumber=622001;
voidAccount:
:
Input()//------------------------------输入账户信息函数
{
inta;
system("cls");
cout<<"您好!
*_*欢迎您来开通银行账户!
*.*"< cout<<""< cout<<""< cout<<"-----------------------------------------------------"< cin>>name>>age>>id>>danwei>>phonenumber>>address>>password; cout<<"请再次出入您的密码: "; cin>>password1; if(password1==password) { cout<<"您好! *_*您的账户号码是: "< cout<<"恭喜您的存折账户已开通! 请您记好您的账户号码和您的密码! ! *.**.*"< cout<<"-----------------------------------------------------"< } else { cout<<"很抱歉! 您与上次输入的密码不一致! 请重新开户! "< a=1; system("pause"); } } voidAccount: : Printf1() { cout<<"该账号的银行账户信息如下: "< cout<<"姓名: "< "< "< "< "< "< "< "< } voidAccount: : Add()//---------------------------------------增加钱数 { longmoney; cout<<"请输入您要存入的钱数: "< cin>>money; rest_money=rest_money+money; cout<<"您好! *_*恭喜您,存入成功! "< } voidAccount: : Min()//----------------------------------------减少钱数 { longmoney; cout<<"请输入您要取出的钱数: "< cin>>money; if(rest_money>=money) { rest_money=rest_money-money; } else cout<<"您好! *_*很抱歉,您的余额不足! "< } floatAccount: : zhuanzou()//--------------------------------------转走 { floatmoney; cout<<"请输入您要转走的钱数: "< cin>>money; if(rest_money>=money) { rest_money=rest_money-money; returnmoney; } else cout<<"您好! *_*很抱歉,您的余额不足! "< } voidAccount: : cunru(floatx)//-----------------------------------存入 { rest_money=rest_money+x; } classBank//----------------------------------------------定义银行类 { public: Bank()//--------------------------------------创建Bank类构造函数 { } voidMenu();//-------------------------------银行账户管理系统菜单 voidsavefile();//---------------------------------------存入文件 voidXianshi1();//-----------------------显示所有已开通账户的信息 voidXianshi2();//-----------------------显示单个已开通账户的信息 voidGeshu();//------------------------------显示当前银行账户数目 voidKaihu();//--------------------------------------开通银行账户 voidxiaohu();//-------------------------------------注销银行账户 voiddeposit();//--------------------------------------------存款 voidwithdraw();//-------------------------------------------取款 voidzhuanzhang();//-----------------------------------------转账 protected: stringpassword;//-------------------------------------------密码 floatrest_money;//------------------------------------------余额 Accountaccoutset[10];//---------------账户类对象数组作为银行成员 staticintcount;//---------------静态数据成员,用来累计账号的个数 }; voidBank: : Menu()//-----------------------------银行账户管理系统菜单 { cout<<"欢迎您光临银行账户管理系统! *.*"< cout<<""< cout<<""< cout<<"--------******************************--------"< cout<<"|"; cout<<""; cout<<"|"< cout<<"|"; cout<<"1.开通银行账户"; cout<<"|"< cout<<"|"; cout<<""; cout<<"|"< cout<<"|"; cout<<"2.注销银行账户"; cout<<"|"< cout<<"|"; cout<<""; cout<<"|"< cout<<"|"; cout<<"3.存款"; cout<<"|"< cout<<"|"; cout<<""; cout<<"|"< cout<<"|"; cout<<"4.取款"; cout<<"|"< cout<<"|"; cout<<""; cout<<"|"< cout<<"|"; cout<<"5.转账"; cout<<"|"< cout<<"|"; cout<<""; cout<<"|"< cout<<"|"; cout<<"6.查询账户信息"; cout<<"|"< cout<<"|"; cout<<""; cout<<"|"< cout<<"--------********************************------"< cout<<"请输入您要进行的业务的编码: "< } voidBank: : Kaihu()//-------------------------------------开通银行账户 { Accountacc; acc.Input(); accoutset[count]=acc; ++count; } voidBank: : savefile()//--------------------------------------存入文件 { ofstreamfout("D: \\f2.dat",ios: : out|ios: : app); if(! fout) { cout<<"Cannotopenoutputfile.\n"; return; } for(inti=0;i<=count;i++) fout.write((char*)&accoutset[i],sizeof(accoutset[i])); fout.close(); } voidBank: : Geshu()//----------------------------显示当前银行账户数目 { cout<<"当前已开通的账户数目为: "< } voidBank: : Xianshi1()//----------------------显示所有已开通账户的信息 { for(intm=0;m { accoutset[m].Printf1(); } } voidBank: : Xianshi2()//----------------------显示单个已开通账户的信息 {stringid1; cout<<"您好! *_*请输入您要显示的账户的身份证号码: "< cin>>id1; for(intm=0;m { if(id1==accoutset[m].id) { accoutset[m].Printf1(); } else cout<<"您好! *_*该账号不存在! "< } } voidBank: : xiaohu()//----------------------------------------注销账户 { stringid1; cout<<"您好! *_*请输入您要注销的账户的身份证号码: "< cin>>id1; for(intm=0;m { if(id1==accoutset[m].id) { for(intl=m;l { accoutset[l]=accoutset[l+1]; } count=count-1; cout<<"您好! *_*该账号已被注销! "< break; } else cout<<"您好! *_*该账号不存在! "< } } voidBank: : deposit()//-------------------------------------------存款 { stringid1; cout<<"您好! *_*请输入您要存款的账户的身份证号码: "< cin>>id1; for(intm=0;m { if(id1==accoutset[m].id) { accoutset[m].Add(); cout<<"您好! *_*恭喜您存入成功! "< } else cout<<"您好! *_*该账号不存在! "< } }voidBank: : withdraw()//------------------------------------------取款 { stringid1; cout<<"您好! *_*请输入您要取款的账户的身份证号码: "< cin>>id1; for(intm=0;m { if(id1==accoutset[m].id) { accoutset[m].Min(); } else cout<<"您好! *_*该账号不存在! "< } } voidBank: : zhuanzhang()//----------------------------------------转账 { stringid1,id2; cout<<"您好! *_*请输入您要转走的账户的身份证号码: "< cin>>id1; floatx; for(intm=0;m { if(id1==accoutset[m].id) { x=accoutset[m].zhuanzou(); cout<<"您好! *_*请输入您要转入的账户的身份证号码: "< cin>>id2; for(intm=0;m { if(id2==accoutset[m].id) { accoutset[m].cunru(x); } else cout<<"您好! *_*该账号不存在! "< } } else cout<<"您好! *_*该账号不存在! "< } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 银行 账户 管理程序