版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、jingchu university of technologyc+艮行账户管理课程设计报告学院:计算机工程学院 班 级:09级计算机科学与技术1班学生姓名: 学 号:2009404010125设计地点(单位):a5-101设 计题 目:银行账户管理程序完成日期:2011年12月25日指导教师评语:成绩(五级记分制):教 师 签名:一、设计思想 03二、模块设计与分析 03三、程序设计介绍 04四、框架结构图 04五、程序代码 05六、测试数据 14七、数据调试 14八、课程设计总结 16九、课程设计教材及主要参考资料 1618一、设计思想定义一个用户类customer和一个银行类yh,程序运
2、行时,可以由用户选择进行开户、登录、取款、存款、修改密码、转账、销户操作,用户销户后账号被回收, 并且该账号可以继续分配给其它账户, 不允许用户透支, 根据姓名或账号可以进行用户的信息查询, 所有的账户信息应存放到一个文件中, 可以随时的访问和更新。二、模块设计与分析1 登录页面:输入帐号和密码,根据用户输入的帐号和密码,到后台文件查询, 若正确则登录成功, 并保存卡好信息已备后用。 若帐号存在和密码不匹配或无该帐号已经注销,提示该帐号已存在或已注销。2 主界面页面:主要导航栏有存款、取款、账户信息、注销、注销、返回上一步。3 开户页面: 提供开户界面, 由用户输入新账户的信息, 将该信息保存
3、到文件中,并将开户金额作为该卡的第一次存款记录存人文件。4 存钱页面:从登录界面得到帐号,并提供数据输入界面,等待用户的输入存款金额,同时将存钱的金额显示在页面上。5 取款页面:从登录界面得到帐号,并提供数据输入界面,等待用户输入取款金额, 如果取款金额大于该用户卡上的余额则不能取款, 或者将新的余额写人文件,并将本次取款事件写入文件同时将取钱的金额显示在页面上。6 账户信息页面:从登录界面得到帐号,把本人显示到界面中。7 转账页面:从登录界面得到帐号,输入要转入的帐号,在输入金额,显示在页面上,如果金额超过余额将操作失败。8 注销页面:从关闭文件,状态为注销,最后关闭整个系统。三、程序设计介
4、绍系统由2个类构成,yh (银行类)和consumer (客户类),consumer(客 户类)是yh (银行类)的公有继承类。yh (银行类)中有实现登陆系统,开户, 销户,转账,退出系统等功能函数,consumer (客户类)中有实现存钱,取钱, 修改个人账号密码,显示个人账号信息等功能函数。因为consumer(客户类)是yh (银行类)的公有继承类,所以,一个用户只需创建一个consumer (客户类)对象,当用户进行开户,销户等操作时,可以直接调用yh (银行类)的成员函数。银行类中的函数:void set_account(); /银行开户功能void del_account();
5、注销账户功能void transfer(int); 转账功能void enter_account(); /砒入用户个人信息功能void addmoney(int,float);/存款功能void exityh();/ 退出系统v修 改 密 码v. 查 看 信 息五、程序代码#include<iostream> #include <string>#include<fstream> using namespace std;class consumer;/银行类class yhpublic:void set_account();/ 银行开户功能void del_a
6、ccount();/注销账户功能void transfer(int); /转账功能void enter_account(); / 进入用户个人信息功能void addmoney(int,float);/ 存款功能void exityh();/ 退出系统void functionshow();void save();void load();/ 功能界面protected:consumer *account20;static int acnum;/ 账户数;class consumer:public yh/ 用户类,继承银行类的属性public:friend class yh;consumer(i
7、nt id,string name,string password,float m)id=id;name=name;money=m;passwd=password;consumer()id=0;name='0'money=0;passwd='0'int get_id()return id;void savemoney();/ 取钱string get_passwd()return passwd;/ 取得密码 void display();void fetchmoney();/取钱void change_passwd();void add_money(float)
8、;void dec_money(float);float get_money();/ 卡卡转帐private:int id; / 开户帐号string passwd; / 用户密码string name; / 用户姓名float money;/开户金额;void yh:save()ofstream ofile("bankdat.dat",ios:out);ofstream outfile("bankdat.dat",ios:out);int n=0;outfile<<acnum<<" "for(n=0;n<
9、;acnum;n+)outfile<<accountn->id<<" "outfile<<accountn->money<<""outfile<<accountn->name<<" "outfile<<accountn->passwd<<""outfile.close();/* 读入用户信息功能实现*/void yh:load()ifstream infile("bankdat.dat&
10、quot;,ios:in);if(!infile)cerr<<" 读取错误 ,无资料中 !"<<endl;return;int n=0;int id,m;string nam,passw;infile>>acnum;for(n=0;n<acnum;n+)infile>>id;infile>>m;infile>>nam;infile>>passw;accountn->passwd;consumer * acc = new consumer(id,nam,passw,m);accou
11、ntn = acc;infile.close();cout<<" 读取资料正常!"<<endl;/* 转账功能实现*/void yh:transfer(int x)int id;cout<<" 请输入帐号:"cin>>id;int flag = 1;int i = 0;while(i<acnum)&&(flag)if(id=accounti->get_id() flag = 0; else i+;if(flag)cout<<" 帐号不存在!"<
12、;<endl<<endl;return ;float b;cout<<endl<<" 请输入你要转帐的金额 :"cin>>b;while(b<=0)cout<<" 请输入正确的数字!"<<endl;cout<<"<"cin>>b;if(accountx->get_money()<b) cout<<" 对不起 ,金额不够 !"<<endl; else accountx-
13、>dec_money(b);accounti->add_money(b);return;/* 账户金额计算*/void consumer:add_money(float x)money=x+money;void consumer:dec_money(float x)money=money-x;void yh:addmoney(int x,float y)accountx->money=accountx->money-y;float consumer:get_money()return money;void main()yh yh;yh.functionshow();)/
14、*主界面显示*/void yh:functionshow()(int n;dosystem("cls"); load();cout«endl<<"请输入相应的操作序号进行操作:"«endl;"«endl; "«endl; "«endl; "«endl; "«endl; "«endl; "«endl; "«endl; "«endl; "&
15、#171;endl;"«endl;cout«"cout«" cout«" 1.开户cout«" cout«" 2.账户登录cout«" cout«" 3.账户注销cout«" cout«" 4.退出系统cout«" cout«"cout«"cin»n;while(n<1|n>4)(cout<<"
16、操作错误,请输入正确的操作序号!"«endl;cout«"cin»n;)switch(n)(case 1: set_account();开户 break;case 2:enter_account();登录 break;case 3: del_account();注销 break;case 4: exityh();/ 退出 break;)cin.getq;while(true);)void yh:enter_account()int id;cout<<"请输入帐号:"cin»id;int flag = 1
17、;int i = 0;/_page_break_while(i<acnum)&&(flag)(if(id=accounti->get_id() flag = 0; else i+;)if(flag)(cout«"帐号不存在!"«endl«endl;return;)cout<<"请输入密码:"string passw;cin»passw;if(passw!=accounti->get_passwd() return;accounti->display();cin.g
18、et();cin.get();int n;dosystem("cls");cout«"请选择下列操作:"<<endl;cout<<" "«endl;cout«" "«endl;cout«" 1 .查看账户信息 "«endl;cout«" "«endl;cout«" 2.取款 "«endl;cout«" "
19、«endl;cout«" 3.存款 "«endl;cout«" "«endl;cout«" 4.修改密码 "«endl;cout«" "«endl;cout«" 5.转账 "«endl;cout«" "«endl;cout«" 6.返回上一菜单 "«endl;cout«" "
20、171;endl;cout«" cout«"cin»n;"«endl;switch(n)case 1: accounti->display();break;case 2: accounti->fetchmoney();save();break;case 3:accounti->savemoney();save();break;case 4:accounti->change_passwd();save();break;case 5:transfer(i);save();break;case 6:retu
21、rn;cin.get();cin.get();while(1);void yh:set_account()int id;string nam;string passw;float m;cout<<endl<<" 请输入开户号: "cin>>id;cout<<endl<<" 请输入开户人姓名: "cin>>nam;cout<<endl<<" 请输入开户密码: "cin>>passw;cout<<endl<<
22、" 请输入存入金额 :"cin>>m;while(m<=0)cout<<" 请输入正确的数字!"<<endl;cin>>m;consumer * acc = new consumer(id,nam,passw,m);accountacnum = acc;cout<<" 开户成功 !"<<endl<<endl;acnum+;save();cin.get();return;void yh:del_account()int id;cout<<
23、;endl<<" 请输入你要注销的帐户号 :"cin>>id;int flag = 1;int i = 0;while(i<acnum)&&(flag)if(id = accounti->get_id()flag = 0;elsei+;if(flag)cout<<" 该帐号不存在,请重新输入 !"<<endl;return;for(int j=i;j<acnum;j+)accountj = accountj+1;accountacnum-1=null;acnum-;cout
24、<<" 你的账号已注销 !"<<endl<<endl;save();cin.get();return;void consumer:change_passwd()string pwd,repwd;cout<<" 请输入新密码: "cin>>pwd;cout<<" 请再输入一次新密码: "cin>>repwd;if(pwd!=repwd)!"<<endl;cout<<" 你输入的两次密码不一样,按输入键返回上一层
25、菜单elsecout<<" 密码修改成功,请牢记!"<<endl;cin.get();void consumer: :fetchmoney()(float m;char ch;do(cout«endl«"输入取款金额¥ >"«endl;cin»m;while(m<=0)(cout<<"请输入正确的数字!"«endl;cout«"cin»m;)if(money<m)(cout<<&q
26、uot;对不起,你的余额不足!"«endl;)elsemoney=money-m;cout«endl<<"操作成功,请收好钱 !"«endl;)cout«"是否要继续该项操作:(y/n)"«endl;cout«"cin»ch;while(ch!='n'&&ch!='n'&&ch!='y'&&ch!='y')/选择错误时判定(cout«
27、"cin»ch;)while(ch='y'|ch='y');)void consumer: :savemoney()/ 存钱函数功能实现(float c;char ch;docout<<endl<<"请输入要存入的金额 :"<<"¥ >"<<endl ;cin>>c;while(c<=0)(cout<<"输入错误,请重新输入!"<<endl;cout<<"&
28、lt;"cin>>c;)money=money+c;cout<<"操作已成功!"<<endl;cout<<"是否要继续该项操作:(y/n) "<<endl;cout<<"<"cin>>ch;while(ch!='n'&&ch!='n'&&ch!='y'&&ch!=y)(cout<<" f "cin>>
29、;ch;)while(ch='y'|ch='y');)int yh二acnum=0;void consumer:display() 用户信息界面system("cls");cout<<"#"<<endl;cout<<"#"<<endl;cout<<"#用户姓名:"<<name<<endl;cout<<"#"<<endl;cout<<"#帐号:"<<id<<endl;cout<<"#"<<endl;cout<<"#余额:"<<money<<endl;cout<<"#"<<endl;cout<<"#按输入键回到上一菜单"<<endl;cout<<"#"<<
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年白城医学高等专科学校单招综合素质考试备考题库带答案解析
- 2026年广元中核职业技术学院高职单招职业适应性测试备考题库有答案解析
- 投资协议(2025年项目)
- 2026年广东理工职业学院单招综合素质笔试参考题库带答案解析
- 碳交易经纪协议2025年佣金标准
- 2026年广东茂名农林科技职业学院高职单招职业适应性测试参考题库带答案解析
- 2026年安徽警官职业学院单招综合素质考试参考题库带答案解析
- 2026年广东轻工职业技术学院高职单招职业适应性考试参考题库带答案解析
- 2026年甘肃建筑职业技术学院单招综合素质考试备考试题带答案解析
- 2026年福建船政交通职业学院单招综合素质笔试备考题库带答案解析
- 2025年度福建省职业院校技能大赛-商务数据分析赛项-高职组考试题库-含答案
- 人工智能AI技术研发合同
- 安徽省芜湖市2024-2025学年第一学期期末考试七年级语文试卷(含答案)
- 《基于杜邦分析法的公司盈利能力研究的国内外文献综述》2700字
- 华东师大版一课一练八年级数学第一学期答案上海增强版答案
- 寒假作业一年级上册《数学每日一练》30次打卡
- 中职数学基础模块上册第3章函数复习课课件
- JTS 206-2-2023 水运工程桩基施工规范
- 2021年新湘教版九年级数学中考总复习教案
- 施工技术部门的安全生产责任制
- 上海亲子司法鉴定机构名录
评论
0/150
提交评论