银行管理系统设计报告样板doc 33页正式版.docx
《银行管理系统设计报告样板doc 33页正式版.docx》由会员分享,可在线阅读,更多相关《银行管理系统设计报告样板doc 33页正式版.docx(48页珍藏版)》请在冰豆网上搜索。
银行管理系统设计报告样板doc33页正式版
银行管理系统设计报告
学生姓名:
宋科超冯瑞刘林锋
学生学号:
130812821308130413081306
班级:
软件学院三班
一、需求分析
设计一个银行账户管理系统,要求实现以下功能:
1.实现银行管理员管理的功能,要求完成以下功能:
1)管理员的登录(设本系统的管理员只有一个,管理员信息包括管理员姓名,管理员密码);2)修改管理员密码;3)为新用户创建账户信息,账户信息包括用户帐号(要求系统自动分配用户账号)、用户账户密码(为用户设置初始密码123456)、用户身份证号码、用户姓名、用户地址、帐户金额;4)删除需要注销账户的用户的账户信息;5)查询银行信息,包括:
该银行的总客户数,总的存款金额;6)某个用户的账户信息。
2.实现客户对自己账户的操作功能,要求完成以下功能:
1)用户的登录(未登录或登录失败时不能执行用户账户的操作);2)修改帐户信息,要求用户输入帐号,根据用户需要修改除了帐号之外的其余信息;3)模拟用户实现存款和取款的功能;4)记录用户账户的历史账单,方便用户查阅,如用户何时从银行取款多少等;5)查询账户信息,根据输入的帐号查询用户信息、帐户金额和用户的明细账单。
3.以上功能要求以分级菜单的形式提供,不同的角色状态得到不同的菜单。
二、设计思想:
定义一个用户类customer,数据成员主要有姓名、身份证号码、住址、余额等内容,可供用户操作的功能有开户,销户、存款、取款、转账、余额查询等。
用户可根据界面提示自行操作。
定义一个管理员administrator:
管理员信息包括管理员姓名,管理员密码;管理员的登录;修改管理员密码;可操作的功能有:
1为新用户创建账户信息,账户信息包括用户帐号、用户账户密码(为用户设置初始密码123456)、用户身份证号码、用户姓名、用户地址、工作单位、帐户金额;2删除需要注销账户的用户的账户信息;3查询银行信息,包括:
该银行的总客户数,总的存款金额;4某个用户的账户信息。
由于要实现界面的回复,所以用了大量的函数调用。
在控制用户的循环操作时采用了for循环与break匹配的结构。
在整体设计上将程序分为四个部分,第一个部分“customer.h”,在这个文件中对所要用到的类customer和administrator进行了申明;第二个部分“administrator.cpp”,在这个文件里定义了管理员,并且实现了管理员对系统的管理功能;第三个部分“customer.cpp”是对在“customer.h”中所声明的类customer定义了一个实体,也可以说是完成了了帐户的操作函数;第四个部分“main.cpp”是主函数main(),所在文件,在其中不仅定义了主函数,而且完成了菜单操作函数。
简易流程图:
三.测试结果分析与讨论:
首先进入管理员登陆界面如下:
再选择管理员相应的服务(1--4),管理员注册:
然后进行管理员登陆服务:
修改密码服务:
第二步进入用户界面:
进入新开账户服务:
再进行其他用户服务:
李强取了5000元
新开户张三预存金额20000元;进行转账服务:
查询服务:
李强账户应剩12000元:
张三账户23000元:
新注册账户李四预存30000元:
进行删账户服务,删除张三:
总金额查询:
测试结果完毕退出程序:
测试过程中的问题及采取的措施:
∙全局变量之间的冲突?
取消一个进行重新测试。
∙循环判定条件的不完整?
进行分步调试,结合程序的执行结果和目标结果进行修改。
∙输入数据不正当?
通过if语句进行取舍结合测试进行调整。
∙有时还存在语法问题?
进行查找结合测试进行调整。
四.源程序:
“customer.h”
#include
#include
#ifndefCUSTOMER_H
#defineCUSTOMER_H
classcustomer{
private:
doublecustomer_Num;
charsecret[7];
inttest;
charName[8];
charID[30];
charWork_Group[80];
charTel_Num[20];
charAddress[60];
charpassword[10];
floatMoney;
public:
voidsave_money();
voidget_money();
voidchange_money();
voidfind_infor();
voidlin_money();
friendvoidopen_account();
friendvoidsave_money();
friendvoidget_money();
friendvoidchange_money();
friendvoidfind_infor();
friendvoiddel_account();
friendvoidlin_money();
};
classadministrator{
private:
intAdministrator_Num;
charSecret[7];
charName[10];
inttest;
public:
voidopen_Admin();
voidget_Admin();
voidchg_secret();
friendvoidopen_Admin();
friendvoidget_Admin();
friendvoidchg_secret();
friendvoidlin_money();
};
#endif;
“administrator.cpp”
#include"customer.h"
#include
#include
usingnamespacestd;
voidAdministrator();
voidslect_Admin();
intAdministrator_Num=1000;
intT=-1;//整型变量
administrator*q[1];//指针变量本程序支持1个管理员
voidopen_Admin()
{
charSecret[7];
charName[10];
if(Administrator_Num==1001){
cout<<"对不起,管理员已经存在,你没权限注册!
"<Administrator();
slect_Admin();
return;
}
T++;
Administrator_Num++;
q[T]=newadministrator;
cout<<"请输入您的姓名:
"<cin>>Name;
charResecret[7];
do
{
cout<<"请输入你的密码(6位):
"<cin>>Secret;
cout<<"请重新输入你的密码:
"<cin>>Resecret;
if(strcmp(Secret,Resecret)==0)
{
cout<<"密码设置成功"<break;
}
else
cout<<"你两次输入有误!
"<cout<<"请重新设置密码!
"<}while
(1);
q[T]->Administrator_Num=Administrator_Num;
for(inta=0;a<10;a++)
{
q[T]->Name[a]=Name[a];
}
for(intf=0;f<7;f++)
{
q[T]->Secret[f]=Secret[f];
}
q[T]->test=1;
cout<<"恭喜您,注册成功!
您成为管理员!
你的账号:
"<"<cout<<"您需要继续服务吗(Y/N)?
"<charcn;
cin>>cn;
for(;cn!
='n'&&cn!
='N'&&cn!
='y'&&cn!
='Y';)
{
cout<<"您刚才输入的既不是“Y”也不是“N”!
"<cout<<"您需要继续服务吗(Y/N)?
"<cin>>cn;
}
if(cn=='y'||cn=='Y')
{
Administrator();
slect_Admin();
return;
}
if(cn=='n'||cn=='N')
{
cout<<"感谢您的使用,再见!
"<return;
}
}
voidget_Admin()
{
cout<<"请输入管理员您的账号:
"<intz=0;
intcn;
chara[80];
for(;;)
{
cin>>a;
cn=atoi(a);
if(cn!
=1001)
{
cout<<"对不起,你不是管理员或你的账号有误!
"<cout<<"您需要继续此服务吗?
(Y/N)"<charcn;
cin>>cn;
for(;cn!
='n'&&cn!
='N'&&cn!
='y'&&cn!
='Y';)
{
cout<<"您刚才输入的既不是“Y”也不是“N”!
"<cout<<"您需要继续此服务吗?
(Y/N)"<cin>>cn;
}
if(cn=='y'||cn=='Y')
{
get_Admin();
return;
}
if(cn=='n'||cn=='N')
{
Administrator();
slect_Admin();
return;
}
}
else
z=cn-1001;
break;
}
do
{
cout<<"请输入你的密码:
"<charser[7];
cin>>ser;
if(strcmp(ser,q[z]->Secret)==0)
break;
else
{
cout<<"输入密码有误!
"<cout<<"请重新输入!
"<}
}while
(1);
cout<<"管理员登陆成功!
"<cout<<"您需要继续使用此系统吗(Y/N)?
"<charcn1;
cin>>cn1;
for(;cn1!
='n'&&cn1!
='N'&&cn1!
='y'&&cn1!
='Y';)
{
cout<<"您刚才输入的既不是“Y”也不是“N”!
"<cout<<"您需要继续使用此系统吗(Y/N)?
"<>cn1;
}
if(cn1=='y'||cn1=='Y')
{
Administrator();
slect_Admin();
return;
}
if(cn1=='n'||cn1=='N')
return;
}
voidchg_secret()
{
cout<<"请输入管理员您的账号:
"<intz=0;
intcn;
chara[80];
for(;;)
{
cin>>a;
cn=atoi(a);
if(cn!
=1001)
{
cout<<"对不起,你不是管理员或你的账号有误!
"<cout<<"您需要继续此服务吗?
(Y/N)"<charcn;
cin>>cn;
for(;cn!
='n'&&cn!
='N'&&cn!
='y'&&cn!
='Y';)
{
cout<<"您刚才输入的既不是“Y”也不是“N”!
"<cout<<"您需要继续此服务吗?
(Y/N)"<cin>>cn;
}
if(cn=='y'||cn=='Y')
{
get_Admin();
return;
}
if(cn=='n'||cn=='N')
{
Administrator();
slect_Admin();
return;
}
}
else
z=cn-1001;
break;
}
do
{
cout<<"请输入你的密码:
"<charser[7];
cin>>ser;
if(strcmp(ser,q[z]->Secret)==0)
break;
else
{
cout<<"输入密码有误!
"<cout<<"请重新输入!
"<}
}while
(1);
charSSecret[7];
do
{
cout<<"请输入你的新密码(6位):
"<cin>>SSecret;
cout<<"请重新输入你的新密码:
"<charResecret[7];
cin>>Resecret;
if(strcmp(SSecret,Resecret)==0)
{
cout<<"密码设置成功"<break;
}
else
cout<<"你两次输入有误!
"<cout<<"请重新设置新密码!
"<}while
(1);
strcpy(q[z]->Secret,SSecret);
cout<<"您需要继续使用此系统吗(Y/N)?
"<charcn1;
cin>>cn1;
for(;cn1!
='n'&&cn1!
='N'&&cn1!
='y'&&cn1!
='Y';)
{
cout<<"您刚才输入的既不是“Y”也不是“N”!
"<cout<<"您需要继续使用此系统吗(Y/N)?
"<>cn1;
}
if(cn1=='y'||cn1=='Y')
{
Administrator();
slect_Admin();
return;
}
if(cn1=='n'||cn1=='N')
return;
}
“customer.cpp”
#include"customer.h"
#include
#include
usingnamespacestd;
voiddis_menu();
voidslect_menu();
doublecustomer_Num=10000;//用户帐号
intZ=0;//变量//指针变量
customer*p[10000];//指针变量本程序支持10000个用户
administrator*Q[1];//指针变量本程序支持1个管理员
voidopen_account()//开户函数
{
charsecret[7];
charName[8];
charID[30];
charWork_Group[80];
charTel_Num[20];
charAddress[60];
floatMoney(0);
if(customer_Num==20000){
cout<<"对不起,系统存储空间已满,无法开户,对此带来的不便我们深表歉意!
"<dis_menu();
slect_menu();
return;
}
Z++;
customer_Num++;
p[Z]=newcustomer;
cout<<"请输入您的姓名:
"<cin>>Name;
charresecret[7];
do
{
cout<<"请输入你的密码(6位):
"<cin>>secret;
cout<<"请重新输入你的密码:
"<cin>>resecret;
if(strcmp(secret,resecret)==0)
{
cout<<"密码设置成功"<break;
}
else
cout<<"你两次输入有误!
"<cout<<"请重新设置密码!
"<}while
(1);
cout<<"请输入您的身份证件号码:
"<cin>>ID;
cout<<"请输入您的单位地址:
"<cin>>Work_Group;
cout<<"请输入您的电话号码:
"<cin>>Tel_Num;
cout<<"请输入您的住址:
"<cin>>Address;
cout<<"请输入您的金额(开户¥50.00元起):
"<>Money;//银行开户50元起
chara1[80];
for(;;){
cin>>a1;
Money=atoi(a1);
if(Money<50||Money>100000000)
{
cout<<"对不起,您输入的金额不正确。
"<cout<<"(提示消息:
金额小于50或过于巨大。
)"<cout<<"请重新输入您的金额:
"<}
else
break;
}
p[Z]->customer_Num=customer_Num;
for(inta=0;a<8;a++)
{
p[Z]->Name[a]=Name[a];
}
for(intf=0;f<7;f++)
{
p[Z]->secret[f]=secret[f];
}
for(intb=0;b<30;b++)
{
p[Z]->ID[b]=ID[b];
}
for(intc=0;c<80;c++)
{
p[Z]->Work_Group[c]=Work_Group[c];
}
for(intd=0;d<20;d++)
{
p[Z]->Tel_Num[d]=Tel_Num[d];
}for(inte=0;e<60;e++)
{
p[Z]->Address[e]=Address[e];
}
p[Z]->Money=Money;
p[Z]->test=1;
cout<<"恭喜您,开户成功!
您的帐户为:
"<cout<<"您需要继续服务吗(Y/N)?
"<charcn;
cin>>cn;
for(;cn!
='n'&&cn!
='N'&&cn!
='y'&&cn!
='Y';)
{
cout<<"您刚才输入的既不是“Y”也不是“N”!
"<cout<<"您需要继续服务吗(Y/N)?
"<>cn;
}
if(cn=='y'||cn=='Y')
{
dis_menu();
slect_menu();
return;
}
if(cn=='n'||cn=='N')
{
cout<<"感谢您的使用,再见!
"<return;
}
}
voidsave_money()//存款函数
{cout<<"请输入您的帐号:
"<intz=0;
intcn;
chara[80];
for(;;)
{
cin>>a;
cn=atoi(a);
if(cn<10001||cn>customer_Num||p[cn-10000]->test==0)
{
cout<<"对不起,您输入的帐户错误或并不存在!
"<cout<<"您需要继续存款吗?
(Y/N)"<charcn;
cin>>cn;
for(;cn!
='n'&&cn!
='N'&&cn!
='y'&&cn!
='Y';)
{
cout<<"您刚才输入的既不是“Y”也不是“N”!
"<cout<<"您需要继续存款吗?
(Y/N)"<cin>>cn;
}
if(cn=='y'||cn=='Y')
{
save_money();
return;
}
if(cn=='n'||cn=='N')
{
dis_menu();
slect_menu();
return;
}
}
else
z=cn-10000;
break;
}
do
{
cout<<"请输入你的密码:
"<charser[7];
cin>>ser;
if(strcmp(ser,p[Z]->secret)==0)
break;
else
{
cout<<"输入密码有误!
"<cout<<"请重新输入!
"<}
}while
(1);
cout<<"请输入您存入的金额:
"<intsave;
f