《面向对象程序设计大作业(C++).pdf》由会员分享,可在线阅读,更多相关《面向对象程序设计大作业(C++).pdf(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、面向对象分析面向对象分析/设计课程大作业设计课程大作业银行业务处理系统银行业务处理系统1313 级软件学院测试班级软件学院测试班13670040291367004029曾丹曾丹1.1.需求分析需求分析随着社会经济的发展,信息化程度的不断深入,银行的传统业务己愈来愈不能满足银行客户的需要。现今,人们的金融意识、科技意识己经有了很大的提高,在紧张忙碌的生活中,己越来越来不习惯每月奔忙于各银行营业柜台之问去排队缴各种各样的费用了;同时,各种经营单位如电信、移动、供电、煤气、自来水、证券等等一是为了提高服务质量、方便客户,二是为了减轻自己日趋繁重的工作量,纷纷委托银行为其开展代收代付业务:同时,随着我
2、国加入世贸组织的日益临近,我国的银行业将面临更加激烈的同业竞争,如何提供更多的金融产品和更优质的服务,如何吸引更多的客户,如何利用计算机技术加强银行帐户信息管理、进行银行业务再造,提高银行的工作效率和业务竟争能力是摆在各家银行面前的一个迫切需要解诀的问题。近几年来,各商业银行加快了与社会各业的合作,利用自身的网点优势和业务特点,为其提供各种高效、快捷的代收代付业务,也就是中间代理业务,目前以与广大人民群众生活密切相关的各项缴费业务如水电费、电话费、手机费等代收业务为主,这些业务开展方式多种多样,但一般都离不开计算机的高效管理支持。随着代理业务不断发展,业务品种越来越多,各项业务做法互有差异,这
3、就对银行的电子化水平和相应的管理水平提出了更高的要求。如何利用电子化的手段构建一个高效统一的、通用灵活的系统来管理各种各样的业务,是每个商业银行所要研究的课题。支持决策系统的,需要在数据库的基础上,进行联机分析处理,每次处理的数据量大,响应时间长。特别是银行每天要处理大量的存取款事件,做好存取款是银行工作重要的环节,然而要有效处理必须要有良好的程序和数据管理系统来建立一个良好的软件系统来实现快速、有效、准确、安全的处理银行事物。主要用于银行的储蓄卡管理系统,它可以帮助我们有效、准确、并且高效实现的完成存取事件。此系统操作方便效率、安全性高,只要客户开户并设定好密码就可以轻松的实现存取款。系统实
4、现的主要有储蓄卡开户管理、存取款管理、用户查询历史数据显示、注销等功能。储蓄卡开户管理模块:卡号、姓名、开户金额、身份证号、地址、电话、密码、确认密码和保存组成。(开户金额必须是数字,密码和确认密码必须一样是六位数字)*注销模块:一旦注销该卡号就不存在且余额提醒你取出。通过该银行账户管理系统地运行,使办公人员可以轻松快捷的完成对账户管理的任务,提高账目管理效率,使银行的账目管理工作系统化、规范化、自动化。该银行帐目管理信息系统,优点是设计过程思路清晰、模块划分简洁,设计各阶段分工明确。经过实践证明,该划分是合理的,极大得提高了本系统的实现。2.UML2.UML 静态建模表示静态建模表示2.12
5、.1 用例图用例图2.22.2 类图类图3.UML3.UML 动态建模表示动态建模表示3.13.1 序列图序列图3.23.2 协同图协同图3.33.3 状态图状态图4.UML4.UML 物理架构建模表示物理架构建模表示4.14.1 组件图组件图4.24.2 配置图配置图5.5.系统总体框架系统总体框架5.15.1 框架图框架图5.25.2 数据流图数据流图5.35.3 实体关系图实体关系图6.6.模块设计与分析模块设计与分析储蓄卡开户管理模块:6.16.1登录页面登录页面输入卡号和密码,根据用户输入的卡号和密码,到后台文件查询,若正确则登录成功,并保存卡好信息已备后用。若卡号存在和密码不匹配或
6、无该卡号已经注销,提示该卡号已存在或已注销,保持界面三次不变等待用户的重新输入。6.26.2主界面页面主界面页面主要导航栏有:欢迎使用储蓄卡管理(存款、取款、修改密码、转账功能、注销退出)6.36.3储蓄卡开户页面储蓄卡开户页面提供开户界面,由用户输入新储蓄卡的所有信息,将该信息保存到文件中,并将开户金额作为该卡的第一次存款记录存人文件。6.46.4存钱页面存钱页面从登录界面得到卡号,并提供数据输入界面,等待用户的输入存款金额。从后台数据库中找到该用户余额记录,修改余额,并将该存款事件的相应信息写人数据库,同时将存钱的金额显示在页面上。6.56.5取款页面取款页面从登录界面得到卡号,并提供数据
7、输入界面,等待用户输入取款金额,如果取款金额大于该用户卡上的余额则不能取款,或者将新的余额写人文件,并将本次取款事件写入文件同时将取钱的金额显示在页面上,。6.66.6注销页面注销页面从关闭文件,状态为注销,最后关闭整个系统。列举取款模块进行分析:void consumer:fetchmoney()float m;char ch;docoutendl输入取款金额:m;while(m=0)cout请输入正确的数字!endl;coutm;if(moneym)cout对不起,你的余额不足!endl;elsemoney=money-m;coutendl操作成功,请收好钱!endl;cout是否要继续该
8、项操作:(Y/N)endl;coutch;while(ch!=n&ch!=N&ch!=Y&ch!=y)/选择错误时判定coutch;while(ch=y|ch=Y);在取款页面中,输入取款金额并对取款金额与存款余额进行比较,如果取款金额小于零,请输入正确的数字;如果取款金额大于存款金额,对不起,您的余额不足;如果取款金额小于存款余额的话就执行,并保存记录。7.7.类的设计与分析类的设计与分析7.1 consumer7.1 consumer 类类class consumer:public YH/用户类,继承银行类的属性public:friend class YH;consumer(int id,
9、string Name,int Number,double IN,string Company,stringAddress,string PassWord,float m)ID=id;name=Name;number=Number;in=IN;company=Company;address=Address;money=m;passwd=PassWord;consumer()ID=0;name=0;number=0;in=0;company=0;address=0;money=0;passwd=0;int get_id()return ID;void savemoney();/取钱string
10、get_passwd()return passwd;/取得密码void display();void fetchmoney();/取钱void change_passwd();void add_money(float);/计算余额void dec_money(float);/计算余额float get_money();/卡卡转帐private:int ID;/开户帐号string passwd;/用户密码string name;/用户姓名float money;/开户金额int number;string company;string address;double in;comsumer 类说
11、明表名称IDnamemoneyinaddressnumberPasswd属性数据成员数据成员数据成员数据成员数据成员数据成员数据成员成员方法成员方法成员方法成员方法说明用户账户数据用户姓名用户首次金额用户身份证号用户地址用户电话用户密码存钱取钱修改密码卡卡转账savemoney()fetchmoney()change_passwd()get_money()7.2 YH7.2 YH 类类class YH/银行类public:void set_account();/银行开户功能void del_account();/注销账户功能void transfer(int);/转账功能void enter_
12、account();/进入用户个人信息功能oid addmoney(int,float);/存款功能void exitYH();/退出系统void functionshow();void save();void load();/功能界面protected:consumer*account20;staticint acnum;/账户数;YH 类说明表名称acnumset_account()del_account()transfer()functionshow()addmoney()exitYH()属性数据成员成员方法成员方法成员方法成员方法成员方法成员方法说明账户数开户功能注销账户功能转账功能主
13、界面显示功能存钱功能退出系统功能8.8.程序源码程序源码consumer.cppconsumer.cpp#include#include#include#include#include#includeusing namespace std;using namespace std;class consumer;class consumer;class YH /class YH /银行类银行类 public:public:void set_account();/void set_account();/银行开户功能银行开户功能void del_account();/void del_account(
14、);/注销账户功能注销账户功能void transfer(int);/void transfer(int);/转账功能转账功能void enter_account();/void enter_account();/进入用户个人信息功能进入用户个人信息功能void addmoney(int,float);/void addmoney(int,float);/存款功能存款功能void exitYH();/void exitYH();/退出系统退出系统void functionshow();void functionshow();void save();void save();void load()
15、;/void load();/功能界面功能界面protected:protected:consumer*account20;consumer*account20;static int acnum;/static int acnum;/账户数账户数;class consumer:public YH/class consumer:public YH/用户类用户类,继承银行类的属性继承银行类的属性 public:public:friend class YH;friend class YH;consumer(int id,string Name,int Number,double IN,string
16、consumer(int id,string Name,int Number,double IN,stringCompany,string Address,string PassWord,float m)Company,string Address,string PassWord,float m)ID=id;name=Name;number=Number;in=IN;company=Company;address=Address;ID=id;name=Name;number=Number;in=IN;company=Company;address=Address;money=m;passwd=
17、PassWord;money=m;passwd=PassWord;consumer()ID=0;name=0;number=0;in=0;company=0;address=0;moneyconsumer()ID=0;name=0;number=0;in=0;company=0;address=0;money=0;passwd=0;=0;passwd=0;int get_id()return ID;int get_id()return ID;void savemoney();/void savemoney();/取钱取钱 string get_passwd()return passwd;/st
18、ring get_passwd()return passwd;/取得密码取得密码 void display();void display();void fetchmoney();/void fetchmoney();/取钱取钱 void change_passwd();void change_passwd();void add_money(float);/void add_money(float);/计算余额计算余额 void dec_money(float);/void dec_money(float);/计算余额计算余额 float get_money();/float get_money
19、();/卡卡转帐卡卡转帐private:private:int ID;/int ID;/开户帐号开户帐号 string passwd;/string passwd;/用户密码用户密码 string name;/string name;/用户姓名用户姓名 float money;/float money;/开户金额开户金额int number;string company;string address;double in;int number;string company;string address;double in;void YH:save()void YH:save()ofstream
20、ofile(bankdat.dat,ios:out);/ofstream ofile(bankdat.dat,ios:out);/以输出方式打开文件以输出方式打开文件ofstream outfile(bankdat.dat,ios:out);/ofstream outfile(bankdat.dat,ios:out);/以输出方式打开文件以输出方式打开文件bankdat.datbankdat.dat 接收从内存输出的数据接收从内存输出的数据int n=0;int n=0;outfileacnum ;outfileacnum ;for(n=0;nacnum;n+)for(n=0;nacnum;n
21、+)outfileID ;/outfileID ;/把信息写入磁盘文件把信息写入磁盘文件 bankdat.datbankdat.datoutfilemoney ;outfilemoney ;outfilename ;outfilename ;outfilepasswd ;outfilepasswd ;outfilenumber ;outfilenumber ;outfilecompany ;outfilecompany ;outfileaddress ;outfileaddress ;outfilein ;outfilein ;outfile.close();outfile.close();/
22、*/*读入用户信息功能实现读入用户信息功能实现*/*/void YH:load()void YH:load()ifstream infile(bankdat.dat,ios:in);/ifstream infile(bankdat.dat,ios:in);/以输入方式打开文件以输入方式打开文件if(!infile)if(!infile)cerrcerr读取错误读取错误,无资料中无资料中!endl;!acnum;infileacnum;for(n=0;nacnum;n+)/for(n=0;nid;/infileid;/从磁盘文件从磁盘文件 bankdat.datbankdat.dat 读入信息读
23、入信息infilem;infilem;infilenam;infilenam;infilepassw;infilepassw;infilecompany;infilecompany;infilenumber;infilenumber;infileaddress;infileaddress;infilein;infilein;accountn-passwd;accountn-passwd;consumerconsumer*accacc=newnew consumer(id,nam,number,in,company,address,passw,m);consumer(id,nam,number,
24、in,company,address,passw,m);/每读入一个每读入一个 n n 开辟一段内存开辟一段内存accountn=acc;/accountn=acc;/赋值首地址赋值首地址 infile.close();infile.close();coutcout系统正在正常运行,您可以办理以下业务:系统正在正常运行,您可以办理以下业务:endl;endl;/*/*转账功能实现转账功能实现*/*/void YH:transfer(int x)void YH:transfer(int x)int id;int id;coutcoutid;cinid;int flag=1;int flag=1;
25、int i=0;int i=0;while(iacnum)&(flag)/while(iget_id()flag=0;else i+;if(id=accounti-get_id()flag=0;else i+;if(flag)if(flag)coutcout帐号不存在帐号不存在!endlendl;!endlendl;return;return;float b;float b;coutendl coutendlb;cinb;while(b=0)while(b=0)coutcout请输入正确的数字请输入正确的数字!endl;!endl;coutcoutb;cinb;if(accountx-get_
26、money()get_money()b)/调用友元类调用友元类 consumerconsumer 的公有成员的公有成员函数函数coutcout对不起对不起,金额不够金额不够!endl;!dec_money(b);accounti-add_money(b);else accountx-dec_money(b);accounti-add_money(b);coutcout转账成功转账成功!endl;!money=accountx-money-y;accountx-money=accountx-money-y;float consumer:get_money()float consumer:get_
27、money()return money;return money;void main()void main()YH yh;YH yh;yh.functionshow();yh.functionshow();/*/*主界面显示主界面显示*/*/void YH:functionshow()void YH:functionshow()int n;int n;dodosystem(cls);system(cls);load();load();cout_cout_endl;endl;cout|cout|endl;|endl;cout|1cout|1:开户开户|endl;|endl;cout|cout|e
28、ndl;|endl;cout|2cout|2:账户登录:账户登录|endl;|endl;cout|cout|endl;|endl;cout|3cout|3:账户注销:账户注销|endl;|endl;cout|cout|endl;|endl;cout|4cout|4:退出系统:退出系统|endl;|endl;cout|cout|endl;|endl;cout_cout_endl;endl;coutendlcoutendl请您输入你要进行的相应操作前的数字请您输入你要进行的相应操作前的数字:endl;:endl;coutcoutn;cinn;while(n4)while(n4)cout cout您
29、输入的数字有误!请重新输入您输入的数字有误!请重新输入.endl;.endl;cout coutn;cinn;switch(n)switch(n)case 1:set_account();/case 1:set_account();/开户开户 break;break;case 2:enter_account();/case 2:enter_account();/登录登录break;break;case 3:del_account();/case 3:del_account();/注销注销 break;break;case 4:exitYH();/case 4:exitYH();/退出退出 br
30、eak;break;cin.get();/cin.get();/输入流类输入流类 istreamistream 的成员函数的成员函数 while(true);while(true);void YH:enter_account()void YH:enter_account()int id;int id;coutcoutid;cinid;int flag=1;int flag=1;int i=0;/_page_break_int i=0;/_page_break_while(iacnum)&(flag)/while(iget_id()flag=0;else i+;if(id=accounti-ge
31、t_id()flag=0;else i+;if(flag)if(flag)coutcout帐号不存在帐号不存在!endl;!endl;return;return;coutcoutpassw;cinpassw;if(passw!=accounti-get_passwd()return;/if(passw!=accounti-get_passwd()return;/返回到登录界面返回到登录界面accounti-display();cin.get();cin.get();accounti-display();cin.get();cin.get();int n;int n;dosystem(cls);
32、dosystem(cls);coutcout请选择下列操作:请选择下列操作:endl;endl;cout_endl;cout_endl;cout|endl;cout|endl;cout|1.cout|1.查看账户信息查看账户信息|endl;|endl;cout|endl;cout|endl;cout|2.cout|2.取款取款|endl;|endl;cout|endl;cout|endl;cout|3.cout|3.存款存款|endl;|endl;cout|endl;cout|endl;cout|4.cout|4.修改密码修改密码|endl;|endl;cout|endl;cout|endl;
33、cout|5.cout|5.转账转账|endl;|endl;cout|endl;cout|endl;cout|6.cout|6.返回返回|endl;|endl;cout|endl;cout|endl;cout_endl;cout_endl;coutcoutn;cinn;switch(n)switch(n)case 1:accounti-display();break;case 1:accounti-display();break;case 2:accounti-fetchmoney();save();break;/case 2:accounti-fetchmoney();save();brea
34、k;/从从 2-52-5 功能,每执行一功能,每执行一次调用一次次调用一次 savesave 函数,重新写入数据函数,重新写入数据case 3:accounti-savemoney();save();break;case 3:accounti-savemoney();save();break;case 4:accounti-change_passwd();save();break;case 4:accounti-change_passwd();save();break;case 5:transfer(i);save();break;case 5:transfer(i);save();break
35、;case 6:return;case 6:return;cin.get();cin.get();cin.get();cin.get();while(1);while(1);void YH:set_account()void YH:set_account()int id;int id;string nam;string nam;string passw;string passw;float m;float m;string company;string address;int number;double in;string company;string address;int number;d
36、ouble in;cout cout请输入开户账号:请输入开户账号:endl;id;cinid;cout cout请输入开户人姓名:请输入开户人姓名:endl;nam;cinnam;cout cout请输入开户密码:请输入开户密码:endl;passw;cinpassw;cout cout请输入存入金额请输入存入金额:endl;:m;cinm;coutcout请输入开户人电话:请输入开户人电话:endl;number;cinnumber;coutcout请输入开户人公司:请输入开户人公司:endl;company;cincompany;coutcout请输入开户人地址:请输入开户人地址:end
37、l;address;cinaddress;coutcout请输入开户人身份证号码:请输入开户人身份证号码:endl;in;cinin;while(m=0)while(m=0)coutcout请输入正确的数字请输入正确的数字!endl;!m;cinm;consumer*acc=newconsumer*acc=newconsumer(id,nam,number,in,company,address,passw,m);consumer(id,nam,number,in,company,address,passw,m);accountacnum=acc;accountacnum=acc;coutcou
38、t您好,你已开户成功,请牢记您的账号和密码,注意账号安全!您好,你已开户成功,请牢记您的账号和密码,注意账号安全!endlendl;endlendl;acnum+;acnum+;save();save();cin.get();cin.get();return;return;void YH:del_account()void YH:del_account()int id;int id;coutendl coutendlid;cinid;int flag=1;int flag=1;int i=0;int i=0;while(iacnum)&(flag)/while(iget_id()if(id=a
39、ccounti-get_id()flag=0;flag=0;elseelse i+;i+;if(flag)if(flag)coutcout对不起,你输入的该帐号不存在或有误,请重新输入对不起,你输入的该帐号不存在或有误,请重新输入!endl;!endl;return;/return;/返回到登陆界面返回到登陆界面 for(int j=i;jacnum;j+)/for(int j=i;jacnum;j+)/所有被删号后的数据重新存储所有被删号后的数据重新存储 accountj=accountj+1;accountj=accountj+1;accountacnum-1=NULL;accountac
40、num-1=NULL;acnum-;/acnum-;/账号总数自减一次账号总数自减一次coutcout您好,您的账号已成功注销!您好,您的账号已成功注销!endlendl;endlendl;save();save();cin.get();cin.get();return;return;void consumer:change_passwd()void consumer:change_passwd()string pwd,repwd;string pwd,repwd;coutcoutpwd;cinpwd;coutcoutrepwd;cinrepwd;if(pwd!=repwd)if(pwd!=r
41、epwd)coutcout对不起,您输入的两次密码不一致对不起,您输入的两次密码不一致,按输入键返回上一层菜单按输入键返回上一层菜单!endl;!endl;elseelsecoutcout您好,您的密码已修改成功,请牢记并注意账号安全!您好,您的密码已修改成功,请牢记并注意账号安全!endl;cin.get();endl;cin.get();void consumer:fetchmoney()void consumer:fetchmoney()float m;float m;char ch;char ch;dodo coutendlcoutendl请输入您的取款金额请输入您的取款金额:m;ci
42、nm;while(m=0)while(m=0)coutcout请您输入正确的金额请您输入正确的金额!endl;!endl;coutcoutm;cinm;if(moneym)if(moneym)coutcout对不起,您的余额不足对不起,您的余额不足!endl;!endl;else else money=money-m;money=money-m;coutendl coutendl操作成功,请拿好您的钱操作成功,请拿好您的钱!endl;endl;coutcout是否要继续该项操作:是否要继续该项操作:(Y/N)(Y/N)endl;endl;coutcoutch;cinch;while(ch!=n
43、&ch!=N&ch!=Y&ch!=y)/while(ch!=n&ch!=N&ch!=Y&ch!=y)/选择错误时判定选择错误时判定 coutcoutch;cinch;while(ch=y|ch=Y);while(ch=y|ch=Y);void consumer:savemoney()/void consumer:savemoney()/存钱函数功能实现存钱函数功能实现 float c;float c;char ch;char ch;dodo coutendlcoutendl请输入要存入的金额请输入要存入的金额:c;cinc;while(c=0)while(c=0)coutcout对不起您输入的
44、金额错误对不起您输入的金额错误,请重新输入请重新输入!endl;!endl;coutcoutc;cinc;money=money+c;money=money+c;cout cout操作已成功操作已成功!endl;!endl;coutcout是否要继续该项操作:是否要继续该项操作:(Y/N)endl;(Y/N)endl;coutcoutch;cinch;while(ch!=n&ch!=N&ch!=Y&ch!=y)while(ch!=n&ch!=N&ch!=Y&ch!=y)coutcoutch;cinch;while(ch=y|ch=Y);while(ch=y|ch=Y);int YH:acnum
45、=0;int YH:acnum=0;void consumer:display()/void consumer:display()/用户信息界面用户信息界面system(cls);system(cls);cout_endl;cout_endl;cout|endl;cout|endl;cout|cout|用户姓名:用户姓名:nameendl;nameendl;cout|endl;cout|endl;cout|cout|帐号:帐号:IDendl;IDendl;cout|endl;cout|endl;cout|cout|余额余额:moneyendl;:moneyendl;cout|endl;cout|endl;cout|cout|返回(返回(EnterEnter 键)键)|endl;|endl;cout|endl;cout|endl;cout_endl;cout_endl;coutcout;void YH:exitYH()/void YH:exitYH()/退出系统退出系统 coutendlcoutendl感谢您对感谢您对 XXXX 银行的支持银行的支持,欢迎下次光临欢迎下次光临!endl;!endl;exit(0);exit(0);9.9.程序截图程序截图