软件工程课程设计银行储蓄管理系统Word文件下载.docx
《软件工程课程设计银行储蓄管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《软件工程课程设计银行储蓄管理系统Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
系统在启动时要求管理者输入登录帐号与密码
系统要通过管理员执行一系操作(如:
添加用户,修改,查询,删除等)
管理员代用户实现存款,取款,查询等操作
储户的一切信息,存储在数据库表中
1.2系统需求分析规格说明书
●实现储户开户登记
●办理定期存款帐
●办理定期存款手续
●办理活期取款帐
●办理活期取款手续
●实现利息计算
●输出明细表
●数据备份和数据恢复功能
●查看帐户信息
1.3系统ER图
系统主要关系模式:
1.储户(储户姓名,住址,身份证号码)
2.管理员(员工号,姓名)
3.存款(储户姓名,员工号,金额,存款类型,到期日期,存款日期)
4.查询(储户姓名,员工号)
5.取款(储户姓名,员工号,金额,取款日期)
储户
管理员
系统
金额
查询
存款
取款
姓名
住址
身份证号码
存款类型
到期日期
存款日期
取款日期
打印清单
清单信息
员工号
打印存单
11
n
nn
nnn
111
1.5系统顶层数据流(DFD)图
打印存单
开户
取款存款
存款
查询取款
打印清单
1.6系统0层数据流(DFD)图
业务员
1.开户
2.存款
3.取款
4.查询
6.计算利息
7.打印清单
5.验证
8.打印存单
打印存单
储户信息文件
存取款信息变动
密码错误读取储户信息
保存新用户信息
密码正确
利息清单
1.7第2层DFD图
储户信息文件
核对错误
读取信息
存款
填写存款信息核对信息
核对
正确
打印
1.8第3层数据流图储户信息文件
3.1提交取款单
3.2信息核对
3.3信息输入系统
3.4打印清单
核对错误读取信息
更新储户信息
填写取款信息核对信息
核对正确
取款
1.9第5层数据流图
新用户信息存储信息
取款信息取款通知
存款信息存款通知
查询信息
显示信息
验证错误
1.10数据字典
数据名字:
储户信息表
数据来源:
数据目的:
身份验证
数据组成:
姓名+密码+住址+身份证号码+现有金额
1.6.1确定输入流和输出流的边界,从而孤立出变换中心。
如图:
1.1
图1.1
1.6.2完成“第一级分解”
基于书上第三章第三题实现在银行储蓄管理系统在一级分解中,可将系统分解成三个子功能模块:
用户操作,业务员操作,系统输出。
如下图所示:
1.6.3完成“第二级分解”
<
1>
用户操作的分解
可将用户操作分解为:
开户民,存款,取款,查询。
用户操作
开户
提交用户申请表
提交存款单
提交用户查询表
2>
业务员操作的分解
业务员的操作是将用户的操作传送给系统,代替用户与系统交互,所以,业务员的操作与系统的操作基本类似,也可以近似地将业务员看作用户。
所以操作员操作可分解为:
开户,存款,取款,查询
并且如用户在开户时设有密码,则进行密码验证。
所以分解图如下:
3>
系统输出分解
系统输出可分解为:
计算利息-打印清单,保存新用户信息,更新用户信息,打印存单
分解图如下:
系统输出
计算利息
保存新用户信息
更新用户信息
1.6.4使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化。
由于业务员的操作与用户的操作基本相似,可以简单化地认为系统只与业务员交互,基于这个思想,将有利与简化以后系统程序的设计与开发。
精化图如下:
银行存储管理系统
业务员操作
更新用户信息
提交取款单
密码验证
#include<
iostream.h>
string.h>
classBank
{
private:
Account*account[50];
intmaxID;
intaccNum;
public:
Bank();
voidAppend();
voidDelete();
voidQuery();
};
classAccount
intID;
char*Name;
//intYear;
doubleBalance;
Account();
Account(int,constchar*,double);
voidSaving();
intWithdraw();
voidShowMe();
intgetID(){returnID;
}
Account:
:
Account()
ID=0;
strcpy(Name,"
"
);
Balance=0;
Account(intid,constchar*name,,doublebalance)
ID=id;
Name=newchar[50];
strcpy(Name,name);
//Year=year;
Balance=balance;
voidAccount:
Saving()
doublenumber;
cout<
"
Pleaseinputsavingnumber:
;
cin>
>
number;
Balance=Balance+number;
Nowthebalanceofyouraccountis"
Balance<
endl;
return;
intAccount:
Withdraw()
Pleaseinputwithdrawnumber:
if(Balance<
number)
cout<
Sorry,nowthebalanceofyouraccoutislessthan"
number<
."
Soyoucannotwithdraw!
return0;
else
Balance=Balance-number;
Nowthebalanceofyouraccountis"
return1;
ShowMe()
AccountID:
ID<
Name:
Name<
//cout<
Year:
Year<
Balance:
//intAccout:
getID()
//{
//returnID;
//}
Bank:
Bank()
for(inti=0;
i<
50;
i++)
account[i]=NULL;
maxID=0;
accNum=0;
voidBank:
Append()
if(accNum==50)
Sorry,thebankisfull,socannotaddnewaccount!
return;
intid;
char*name=newchar[50];
doublebalance;
Pleaseinputthenameoftheaccount:
name;
id=maxID;
balance=0;
Account*acc=newAccount(id,name,balance);
account[accNum]=acc;
Appendsuccessful!
account[accNum]->
ShowMe();
maxID++;
accNum++;
Delete()
intID;
PleaseinputtheaccoutIDthatyouwanttodelete:
ID;
intflag=1;
inti=0;
while((i<
accNum)&
&
(flag))
if(ID==account[i]->
getID())
{
//flag=0indicatehadfoundtheaccountID
flag=0;
}
else
i++;
if(flag)
Theaccountdoesnotexists!
for(intj=i;
j<
accNum;
j++)
account[j]=account[j+1];
deleteaccount[accNum-1];
accNum--;
Deletesuccessful!
Query()
PleaseinputtheaccountIDthatyouwanttoquery:
inti=0;
Theaccountdoesnotexist!
endl<
account[i]->
intchoice=0;
while(choice!
=3)
1:
Savemoney"
2:
Withdrawmoney"
3:
Return"
Pleaseinputthechoice:
cin>
choice;
switch(choice)
case1:
account[i]->
Saving();
break;
case2:
Withdraw();
case3:
voidmain()
Bankbank;
intchoice=0;
Welcometobanksystem"
while(choice!
=4)
1:
Addanaccount"
2:
Deleteanaccount"
3:
Queryanaccount"
4:
Exit"
Pleaseinputyourchoice:
bank.Append();
bank.Delete();
bank.Query();
case4:
//return;
X