最新c++银行系统实验报告.doc
精品资料c+银行系统实验报告.面向对象程序设计课程设计题目名称: 银行管理系统 专业年级: 组 长: 小组成员: 指导教师: 二一二 年 七 月 六 日目 录 1、需求与功能分析 (2)2、设计内容 (3)3、课程工作计划 (3)4、相关材料及参考书 (3)5、系统模块 (4)6、程序设计 (4)7、结束语 (27)一、 需求与功能分析随着社会经济的发展,信息化程度的不断深入,银行的传统业务己愈来愈不能满足银行客户的需要。现今,人们的金融意识、科技意识己经有了很大的提高,在紧张忙碌的生活中,己越来越来不习惯每月奔忙于各银行营业柜台之问去排队缴各种各样的费用了;同时,各种经营单位如电信、移动、供电、煤气、自来水、证券等等一是为了提高服务质量、方便客户,二是为了减轻自己日趋繁重的工作量,纷纷委托银行为其开展代收代付业务:同时,随着我国加入世贸组织的日益临近,我国的银行业将面临更加激烈的同业竞争,如何提供更多的金融产品和更优质的服务,如何吸引更多的客户,如何利用计算机技术加强银行帐户信息管理、进行银行业务再造,提高银行的工作效率和业务竟争能力是摆在各家银行面前的一个迫切需要解诀的问题。近几年来,各商业银行加快了与社会各业的合作,利用自身的网点优势和业务特点,为其提供各种高效、快捷的代收代付业务,也就是中间代理业务,目前以与广大人民群众生活密切相关的各项缴费业务如水电费、电话费、手机费等代收业务为主,这些业务开展方式多种多样,但一般都离不开计算机的高效管理支持。随着代理业务不断发展,业务品种越来越多,各项业务做法互有差异,这就对银行的电子化水平和相应的管理水平提出了更高的要求。如何利用电子化的手段构建一个高效统一的、通用灵活的系统来管理各种各样的业务,是每个商业银行所要研究的课题。支持决策系统的,需要在数据库的基础上,进行联机分析处理,每次处理的数据量大,响应时间长。特别是银行每天要处理大量的存取款事件,做好存取款是银行工作重要的环节,然而要有效处理必须要有良好的程序和数据管理系统来建立一个良好的软件系统来实现快速、有效、准确、安全的处理银行事物。主要用于银行的储蓄卡管理系统,它可以帮助我们有效、准确、并且高效实现的完成存取事件。此系统操作方便效率、安全性高,只要客户开户并设定好密码就可以轻松的实现存取款。系统实现的主要有储蓄卡开户管理、存取款管理、用户查询历史数据显示、注销等功能。 储蓄卡开户管理模块:卡号、姓名、开户金额、身份证号、地址、电话、密码、确认密码和保存组成。(开户金额必须是数字,密码和确认密码必须一样是六位数字) *查询历史数据模块:存款记录、取款记录、余额显示等。 *注销模块:一旦注销该卡号就不存在且余额提醒你取出。 通过该银行账户管理系统地运行,使办公人员可以轻松快捷的完成对账户管理的任务,提高账目管理效率,使银行的账目管理工作系统化、规范化、自动化。 该银行帐目管理信息系统,优点是设计过程思路清晰、模块划分简洁,设计各阶段分工明确。经过实践证明,该划分是合理的,极大得提高了本系统的实现。二、设计内容(一)管理员模式1、开户,管理员输入用户姓名、身份证号码;用户输入密码、确认密码。2、挂失,管理员输入用户卡号进行操作。3、取消挂失,同上。4、消户,管理员输入用户帐号,密码,显示用户信息,确认后进行操作。(二)用户模式1、存款,用户输入帐号,密码,存款金额进行操作。2、取款,同上。3、查询,输入密码。4、转账,输入本人密码,对方账号,转账金额进行此操作。5、更改密码,输入原密码,再输入新密码,然后确认新密码。三、课程设计工作计划1、确定题目,成立设计小组,做用户需求分析2、查阅资料,进行问题分析,制定方案,确定成员分工3、根据方案编写程序并进行调试4、撰写设计说明书,完成设计5、提交设计内容,答辩四、相关教材及参考书目1、谭浩强.C+语言基础课程.清华大学出版社,20092、郑莉.C+语言程序设计案例教程.清华大学出版社,20053、王瑞等.Visual C+数据库系统开发完全手册.人民邮电出版社,20064、郑莉. C+语言程序设计习题与实验指导.清华大学出版社,20075、张基温. C+程序设计基础例题与习题.高等教育出版社,20086、于永彦. C+程序设计基础案例教程.北京大学出版社,20097、五、系统模块本系统包括管理员模式其中包括:开户、挂失、取消挂失、消户功能;用户模式其中包括:存款、取款、查询、转账、更改密码功能,如图1所示 银行账户管理系统管理员模式用户模式开户 登入密码个人信息消户存款取款查询转账更改密码图1 银行账户管理系统模块1、管理员模式:此模式用于银行管理员为用户开户使用户获取账号,凭用户获取的账号银行管理员可为用户提供挂失,解除挂失销户的服务。2、用户模式:此模式用于用户在银行中存款,取款,查询自己在银行账户中的余额,还提供转账功能,为用户带来便利,修改密码使用户可以随时更改自己账户的密码,使得账户安全。六、 程序设计分析李世生负责的模块:#include<iostream>#include <string>#include<stdlib.h>#include<fstream>#include <conio.h> int code();/登录密码using namespace std;class consumer;class YHpublic: YH(); void set_account(); /银行开户 void del_account(); void transfer(int); /转账 void enter_account(); void addmoney(int,float); void exitYH();/ 退出系统 void functionshow(); void save(); void load();/ 功能界面 protected: consumer *account20; static int acnum; /账户数 ;/登录密码int code()int i=0,j=0; int c; char name15,cod15; cout<<"nn"while(j<3) cout<<"tt管理员:"cin.getline(name,sizeof(name);/用cin不包括空格符;cout<<endl<<"tt输入密码:" j+;c=getch(); while(c != 'r')/回车 if(i >= 0)if (c = 'b')cout<<"b b"i = i - 1; elsecout<<"*"codi = c; c = getch();if(c != 'b')i = i + 1;codi = '0'cout<<endl<<endl<<"tt"if(strcmp(name,"6539")=0)&&(strcmp(cod,"li")=0)|(strcmp(name,"2")=0)&&(strcmp(cod,"222")=0)cout<<"登陆成功!nn"j=4;break;else if(strcmp(name," *")!=0)|(strcmp(name," *")!=0) cout<<"登陆失败!密码错误!nn"else cout<<"登陆失败!管理员不存在!nn"return j; int YH:acnum=0; YH:YH() for(int i=0;i<20;i+) accounti = NULL; class consumer:public YH public: friend class YH; consumer(int 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); void dec_money(float); float get_money(); /卡卡转帐 private: int ID; /开户帐号 string passwd; / 用户密码 string name; / 用户姓名 float money; ; void YH:save() ofstream ofile("bankdat.txt",ios:out); ofstream outfile("bankdat.txt",ios:out); int n=0; outfile<<acnum<<" " for(;n<acnum;n+) outfile<<accountn->ID<<" " outfile<<accountn->money<<" " outfile<<accountn->name<<" " outfile<<accountn->passwd<<" " outfile.close(); /_page_break_ void YH:load() ifstream infile("bankdat.txt",ios:in); if(!infile) cerr<<"读取错误,无资料中!"<<endl; return; int n=0; int id,m; string nam,passw; infile>>acnum; for(;n<acnum;n+) infile>>id; infile>>m; infile>>nam; infile>>passw; accountn->passwd; consumer * acc = new consumer(id,nam,passw,m); accountn = 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<<"帐号不存在!"<<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->dec_money(b); accounti->add_money(b); cout<<"转帐成功!" 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; int main() system("color 70");int i=0; cout<<"t【】t 【】"<<endl; for(i=0;i<3;i+)cout<<"t【】ttttttt 【】"<<endl;cout<<"t【】tOo【 欢迎进入银行账户管理系统 】oO 【】"<<endl;for(i=0;i<3;i+)cout<<"t【】ttttttt 【】"<<endl;cout<<"t【】t 【】"<<endl;cout<<"t【】ttttttt 【】"<<endl; cout<<"t【】 【】"<<endl; if(code()!=4)cout<<"tt输入次数已到!n"return 0;getch(); YH yh; yh.functionshow(); return 0; void YH:functionshow() int n; do system("cls"); load(); cout<<"tt"<<endl; cout<<"tttt1) 用户开户"<<endl<<"tttt2) 账户登陆"<<endl<<"tttt3) 帐户注销"<<endl<<"tttt4) 退出系统 "<<endl; cout<<"ttn"<<endl; cout<<"请你输入相应的操作序号进行操作:" cin>>n; while(n<1|n>4) cout<<"请输入正确的操作序号!"<<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.get(); while(true); void YH:enter_account() int id; cout<<"请输入帐号:" cin>>id; int flag = 1; 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.get(); cin.get(); int n; dosystem("cls"); cout<<"tt"<<endl; cout<<"tttt1)查看信息"<<endl<<"tttt2)取款"<<endl<<"tttt3)存款"<<endl <<"tttt4)修改密码"<<endl<<"tttt5)转账"<<endl<<"tttt6)返回"<<endl; cout<<"tt"<<endl; cout<<"请选择你要进行的操作:"<<endl; cin>>n; while(n<1|n>6) cout<<"请输入正确的操作序号!"<<endl; cout<<"谢谢" cin>>n;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:return; 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<<"请输入存入金额:" 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<<endl<<"请输入你要注销的帐户号:" cin>>id; int flag = 1; int i = 0; while(i<acnum)&&(flag) if(id = accounti->get_id() flag = 0; else i+; if(flag) cout<<"帐号不存在!"<<endl<<endl; return; for(int j=i;j<acnum;j+) accountj = accountj+1; accountacnum-1=NULL; acnum-; cout<<"注销成功!"<<endl<<endl; save(); cin.get(); return; void consumer:change_passwd() string pwd,repwd; cout<<"请输入新密码:" cin>>pwd; cout<<"请再输入一次新密码:" cin>>repwd; if(pwd!=repwd) cout<<"你输入的两次密码不一样,请重新输入!"<<endl; passwd=pwd; cout<<"密码修改成功,请牢记!"<<endl;cin.get(); void consumer:fetchmoney() float m; char ch; do cout<<endl<<"你要取多少钱:"<<"$>"<<endl ;/_page_break_ cin>>m; while(m<=0) cout<<"请输入正确的数字!"<<endl; cout<<"$>" cin>>m; if(money<m) cout<<"对不起,你的余额不足!" <<endl; else money=money-m; cout<<endl<<"操作成功,请收好钱!" <<endl; cout<<"是否要继续该项操作:(Y/N) " <<endl; cout<<"$ >" cin>>ch; while(ch!='n'&&ch!='N'&&ch!='Y'&&ch!='y') cout<<"$ >" cin>>ch; while(ch='y'|ch='Y'); void consumer:savemoney() float c; char ch; do cout<<endl<<"你要存多少钱:"<<"$>"<<endl ; cin>>c; while(c<=0) cout<<"请输入正确的数字!"<<endl; cout<<"$>" cin>>c; money=money+c; cout<<"操作已成功!"<<endl; cout<<"是否要继续该项操作:(Y/N) "<<endl; cout<<"$ >"cin>>ch; while(ch!='n'&&ch!='N'&&ch!='Y'&&ch!='y') cout<<"$ >" cin>>ch; while(ch='y'|ch='Y'); void consumer:display() system("cls"); cout<<"*"<<endl; cout<<"*"<<endl; cout<<"* 用户姓名:"<<name<<endl; cout<<"* 帐号: "<<ID<<endl; cout<<"* 余额: "<<money<<endl; cout<<"*"<<endl; void YH:exitYH() int i,j; cout<<endl<<"感谢你对本银行储蓄管理系统的支持,欢迎下次光临!"<<endl;for(i=0;i<10000;i+)for(j=0;j<30000;j+); exit(0); 七、结束语 我们小组所编辑的银行账户管理系统程序涵盖了我们所学的C+教程里的指针、引用、if从句、循环语句、嵌套语句、类的定义等方面知识。此程序设计知识广,实用性强,程序虽然较长但结构清晰。此次的设计过程让我们小组的成员不光在学习C+课程方面有了更大的进步,而且让我们体会到团结的力量。设计过程中各抒己见,认真仔细,每个人深知一点点错误的结果:程序无法运行。此次设计过程使得我们这个小组在当阶段学习过程有了大的提高,最重要的是让我们意识到了团结,仔细,严谨的态度才能使我们在将来生活工作中更加强大。程序虽然完整且在运行时显示没有错误,但是其中会有很多不足,希望大家给我们多提宝贵意见,让我们小组在今后会再有提高,致以衷心的感谢。