《银行管理系统设计报告.docx》由会员分享,可在线阅读,更多相关《银行管理系统设计报告.docx(33页珍藏版)》请在三一办公上搜索。
1、银行管理系统设计报告学生姓名: 宋科超 冯瑞 刘林锋学生学号: 13081282 1308130413081306班级:软件学院三班一、 需求分析设计一个银行账户管理系统,要求实现以下功能:1. 实现银行管理员管理的功能,要求完成以下功能:1)管理员的登录(设本系统的管理员只有一个,管理员信息包括管理员姓名,管理员密码);2)修改管理员密码;3)为新用户创建账户信息,账户信息包括用户帐号(要求系统自动分配用户账号)、用户账户密码(为用户设置初始密码123456)、用户身份证号码、用户姓名、用户地址、帐户金额;4)删除需要注销账户的用户的账户信息;5)查询银行信息,包括:该银行的总客户数,总的存
2、款金额;6)某个用户的账户信息。2. 实现客户对自己账户的操作功能,要求完成以下功能:1)用户的登录(未登录或登录失败时不能执行用户账户的操作);2)修改帐户信息,要求用户输入帐号,根据用户需要修改除了帐号之外的其余信息;3)模拟用户实现存款和取款的功能;4)记录用户账户的历史账单,方便用户查阅,如用户何时从银行取款多少等;5)查询账户信息,根据输入的帐号查询用户信息、帐户金额和用户的明细账单。3. 以上功能要求以分级菜单的形式提供,不同的角色状态得到不同的菜单。二、设计思想:定义一个用户类customer,数据成员主要有姓名、身份证号码、住址、余额等内容,可供用户操作的功能有开户,销户、存款
3、、取款、转账、余额查询等。用户可根据界面提示自行操作。定义一个管理员administrator:管理员信息包括管理员姓名,管理员密码;管理员的登录;修改管理员密码;可操作的功能有:1 为新用户创建账户信息,账户信息包括用户帐号、用户账户密码(为用户设置初始密码123456)、用户身份证号码、用户姓名、用户地址、工作单位、 帐户金额;2 删除需要注销账户的用户的账户信息;3 查询银行信息,包括:该银行的总客户数,总的存款金额;4 某个用户的账户信息。由于要实现界面的回复,所以用了大量的函数调用。在控制用户的循环操作时采用了for循环与break匹配的结构。在整体设计上将程序分为四个部分,第一个部
4、分“customer.h”,在这个文件中对所要用到的类customer和administrator进行了申明;第二个部分“administrator.cpp”,在这个文件里定义了管理员,并且实现了管理员对系统的管理功能;第三个部分“customer.cpp” 是对在“customer.h”中所声明的类customer定义了一个实体,也可以说是完成了了帐户的操作函数;第四个部分“main.cpp” 是主函数main(),所在文件,在其中不仅定义了主函数,而且完成了菜单操作函数。简易流程图:三测试结果分析与讨论:首先进入管理员登陆界面如下:再选择管理员相应的服务(1-4),管理员注册:然后进行管理
5、员登陆服务:修改密码服务:第二步进入用户界面:进入新开账户服务:再进行其他用户服务:李强取了5000元新开户张三预存金额20000元;进行转账服务:查询服务:李强账户应剩12000元:张三账户23000元:新注册账户李四 预存30000元:进行删账户服务,删除张三:总金额查询:测试结果完毕退出程序:测试过程中的问题及采取的措施: 全局变量之间的冲突?取消一个进行重新测试。 循环判定条件的不完整?进行分步调试,结合程序的执行结果和目标结果进行修改。 输入数据不正当?通过if语句进行取舍结合测试进行调整。 有时还存在语法问题? 进行查找结合测试进行调整。四源程序:“customer.h”#incl
6、ude #include #ifndef CUSTOMER_H #define CUSTOMER_H class customer private:double customer_Num;char secret7;int test;char Name8;char ID30; char Work_Group80; char Tel_Num20;char Address60; char password10; float Money; public: void save_money();void get_money();void change_money();void find_infor();v
7、oid lin_money();friend void open_account();friend void save_money();friend void get_money();friend void change_money();friend void find_infor(); friend void del_account();friend void lin_money(); ; class administrator private:int Administrator_Num;char Secret7;char Name10;int test;public: void open_
8、Admin();void get_Admin();void chg_secret();friend void open_Admin();friend void get_Admin();friend void chg_secret();friend void lin_money(); ; #endif;“administrator.cpp”#include customer.h#include#include using namespace std;void Administrator();void slect_Admin();int Administrator_Num=1000; int T=
9、-1; /整型变量administrator *q1; /指针变量 本程序支持1个管理员 void open_Admin() char Secret7; char Name10; if(Administrator_Num=1001) cout对不起,管理员已经存在,你没权限注册!endl; Administrator(); slect_Admin(); return; T+; Administrator_Num+; qT=new administrator; cout请输入您的姓名:Name; char Resecret7; do cout请输入你的密码(6位):Secret;cout请重新输
10、入你的密码:Resecret;if(strcmp(Secret,Resecret)=0)cout密码设置成功endl;break;elsecout你两次输入有误!endl;cout请重新设置密码!Administrator_Num=Administrator_Num; for(int a=0;aNamea=Namea; for(int f=0;fSecretf=Secretf; qT-test=1; cout恭喜您,注册成功! 您成为管理员!你的账号:Administrator_Num要牢记!endl; cout您需要继续服务吗(Y/N)?cn; for(;cn!=n&cn!=N&cn!=y&
11、cn!=Y;) cout您刚才输入的既不是“Y”也不是“N”!endl; cout您需要继续服务吗(Y/N)?cn; if(cn=y|cn=Y) Administrator(); slect_Admin(); return; if(cn=n|cn=N) cout感谢您的使用,再见!endl; return; void get_Admin()cout请输入管理员您的账号:a; cn=atoi(a); if(cn!=1001) cout对不起,你不是管理员或你的账号有误!endl; cout您需要继续此服务吗?(Y/N)cn; for(;cn!=n&cn!=N&cn!=y&cn!=Y;) cout
12、您刚才输入的既不是“Y”也不是“N”!endl; cout您需要继续此服务吗?(Y/N)cn; if(cn=y|cn=Y) get_Admin(); return; if(cn=n|cn=N) Administrator(); slect_Admin(); return; else z=cn-1001; break; docout请输入你的密码:ser;if(strcmp(ser,qz-Secret)=0)break;elsecout输入密码有误!endl;cout请重新输入!endl;while(1); cout管理员登陆成功!endl; cout您需要继续使用此系统吗(Y/N)?cn1;
13、for(;cn1!=n&cn1!=N&cn1!=y&cn1!=Y;) cout您刚才输入的既不是“Y”也不是“N”!endl; cout您需要继续使用此系统吗(Y/N)?cn1; if(cn1=y|cn1=Y) Administrator(); slect_Admin(); return; if(cn1=n|cn1=N)return; void chg_secret()cout请输入管理员您的账号:a; cn=atoi(a); if(cn!=1001) cout对不起,你不是管理员或你的账号有误!endl; cout您需要继续此服务吗?(Y/N)cn; for(;cn!=n&cn!=N&cn!
14、=y&cn!=Y;) cout您刚才输入的既不是“Y”也不是“N”!endl; cout您需要继续此服务吗?(Y/N)cn; if(cn=y|cn=Y) get_Admin(); return; if(cn=n|cn=N) Administrator(); slect_Admin(); return; else z=cn-1001; break; docout请输入你的密码:ser;if(strcmp(ser,qz-Secret)=0)break;elsecout输入密码有误!endl;cout请重新输入!endl;while(1);char SSecret7;do cout请输入你的新密码(
15、6位):SSecret;cout请重新输入你的新密码:Resecret;if(strcmp(SSecret,Resecret)=0)cout密码设置成功endl;break;elsecout你两次输入有误!endl;cout请重新设置新密码!Secret,SSecret); cout您需要继续使用此系统吗(Y/N)?cn1; for(;cn1!=n&cn1!=N&cn1!=y&cn1!=Y;) cout您刚才输入的既不是“Y”也不是“N”!endl; cout您需要继续使用此系统吗(Y/N)?cn1; if(cn1=y|cn1=Y) Administrator(); slect_Admin()
16、; return; if(cn1=n|cn1=N)return;“customer.cpp”#include customer.h #include #include using namespace std;void dis_menu();void slect_menu();double customer_Num=10000; /用户帐号int Z=0; /变量 /指针变量customer *p10000; /指针变量 本程序支持10000个用户administrator *Q1; /指针变量 本程序支持1个管理员 void open_account() / 开户函数 char secret7
17、; char Name8; char ID30; char Work_Group80; char Tel_Num20; char Address60; float Money(0); if(customer_Num=20000) cout对不起,系统存储空间已满,无法开户,对此带来的不便我们深表歉意!endl; dis_menu(); slect_menu(); return; Z+; customer_Num+; pZ=new customer; cout请输入您的姓名:Name; char resecret7; do cout请输入你的密码(6位):secret;cout请重新输入你的密码
18、:resecret;if(strcmp(secret,resecret)=0)cout密码设置成功endl;break;elsecout你两次输入有误!endl;cout请重新设置密码!endl; while(1); cout请输入您的身份证件号码:ID; cout请输入您的单位地址:Work_Group; cout请输入您的电话号码:Tel_Num; cout请输入您的住址:Address; cout请输入您的金额(开户 ¥50.00元起):Money;/银行开户50元起 char a180; for(;) cina1; Money=atoi(a1); if(Money100000000)
19、cout对不起,您输入的金额不正确。endl; cout(提示消息:金额小于50或过于巨大。)endl; cout请重新输入您的金额:customer_Num=customer_Num; for(int a=0;aNamea=Namea; for(int f=0;fsecretf=secretf; for(int b=0;bIDb=IDb; for(int c=0;cWork_Groupc=Work_Groupc; for(int d=0;dTel_Numd=Tel_Numd; for(int e=0;eAddresse=Addresse; pZ-Money=Money; pZ-test=1;
20、 cout恭喜您,开户成功!您的帐户为: customer_Num 请牢记endl; cout您需要继续服务吗(Y/N)?cn; for(;cn!=n&cn!=N&cn!=y&cn!=Y;) cout您刚才输入的既不是“Y”也不是“N”!endl; cout您需要继续服务吗(Y/N)?cn; if(cn=y|cn=Y) dis_menu(); slect_menu();return; if(cn=n|cn=N) cout感谢您的使用,再见!endl; return; void save_money() /存款函数 cout请输入您的帐号:a; cn=atoi(a); if(cncustomer
21、_Num|pcn-10000-test=0) cout对不起,您输入的帐户错误或并不存在!endl; cout您需要继续存款吗?(Y/N)cn; for(;cn!=n&cn!=N&cn!=y&cn!=Y;) cout您刚才输入的既不是“Y”也不是“N”!endl; cout您需要继续存款吗?(Y/N)cn; if(cn=y|cn=Y) save_money(); return; if(cn=n|cn=N) dis_menu(); slect_menu(); return; else z=cn-10000;break;docout请输入你的密码:ser;if(strcmp(ser,pZ-secr
22、et)=0)break;elsecout输入密码有误!endl;cout请重新输入!endl;while(1);cout请输入您存入的金额:save;if(save0) cout对不起,您输入的金额错误!endl; cout请输入您存入的金额:Money=pz-Money+save;cout存款成功!endl;cout您需要继续存款吗(Y/N)?cn1;for(;cn1!=n&cn1!=N&cn1!=y&cn1!=Y;)cout您刚才输入的既不是“Y”也不是“N”!endl;cout您需要继续存款吗(Y/N)?cn1;if(cn1=y|cn1=Y) save_money(); return;
23、if(cn1=n|cn1=N) dis_menu(); slect_menu();return; void get_money() /取款函数 cout请输入您的帐号:a; cn=atoi(a); if(cncustomer_Num|pcn-10000-test=0) cout对不起,您输入的帐户错误或并不存在!endl; cout您需要继续取款吗?(Y/N)cn; for(;cn!=n&cn!=N&cn!=y&cn!=Y;) cout您刚才输入的既不是“Y”也不是“N”!endl; cout您需要继续取款吗?(Y/N)cn; if(cn=y|cn=Y) get_money(); return
24、; if(cn=n|cn=N) dis_menu(); slect_menu(); return; else z=cn-10000; break; docout请输入你的密码:ser;if(strcmp(ser,pZ-secret)=0)break;elsecout输入密码有误!endl;cout请重新输入!endl;while(1); cout请输入您要取出的金额:get; if(get0) cout对不起,你输入的金额不正确!endl;cout请输入您要取出的金额:pz-Money) cout对不起,您的余额额不足!endl; cout请输入您要取出的金额:Money=pz-Money-g
25、et; cout取款成功!endl; cout您需要继续取款吗(Y/N)?cn1; for(;cn1!=n&cn1!=N&cn1!=y&cn1!=Y;) cout您刚才输入的既不是“Y”也不是“N”!endl; cout您需要继续取款吗(Y/N)?cn1; if(cn1=y|cn1=Y) get_money(); return; if(cn1=n|cn1=N) dis_menu(); slect_menu(); return; void change_money() /转帐函数 int z1=0;int z2=0;int acco_num1;int acco_num2; cout请输入您的帐号
26、:a1;acco_num1=atoi(a1);if(acco_num1customer_Num|pacco_num1-10000-test=0) cout对不起,您的帐户错误或并不存在。endl;cout您需要继续转帐吗?(Y/N)cn;for(;cn!=n&cn!=N&cn!=y&cn!=Y;) cout您刚才输入的既不是“Y”也不是“N”!endl;cout您需要继续转帐吗?(Y/N)cn;if(cn=y|cn=Y)change_money(); return; if(cn=n|cn=N)dis_menu();slect_menu();return; elsez1=acco_num1-10
27、000;break;docout请输入你的密码:ser;if(strcmp(ser,pz1-secret)=0)break;elsecout输入密码有误!endl;cout请重新输入!endl;while(1);cout请输入对方的帐号:a2;acco_num2=atoi(a2);if(acco_num2customer_Num|pacco_num2-10000-test=0) cout对不起,对方的帐户错误或并不存在。endl;cout您需要继续转帐吗?(Y/N)cn;for(;cn!=n&cn!=N&cn!=y&cn!=Y;) cout您刚才输入的既不是“Y”也不是“N”!endl; co
28、ut您需要继续转帐吗?(Y/N)cn; if(cn=y|cn=Y) change_money(); return; if(cn=n|cn=N) dis_menu(); slect_menu(); return; else z2=acco_num2-10000;break; cout请输入您要转帐给对方的金额:change; for(;changepz1-Money|change0;)cout对不起,您的余额不足或金额错误!endl;cout请输入您要转帐给对方的金额:change;pz1-Money=pz1-Money-change;pz2-Money=pz2-Money+change;cou
29、t交易成功!endl;cout您需要继续转帐服务吗(Y/N)?cn;for(;cn!=n&cn!=N&cn!=y&cn!=Y;) cout您刚才输入的既不是“Y”也不是“N”!endl;cout您需要继续转帐服务吗(Y/N)?cn;if(cn=y|cn=Y)change_money(); return; if(cn=n|cn=N) dis_menu();slect_menu();return; void find_infor()/查询函数 cout请输入您的帐户:a;cn=atoi(a);if(cncustomer_Num|pcn-10000-test=0) cout对不起,您的帐户错误或并不存在!endl; cout您需要继续查询服务吗(Y/N)