银行储蓄管理系统实验报告课程设计.docx
《银行储蓄管理系统实验报告课程设计.docx》由会员分享,可在线阅读,更多相关《银行储蓄管理系统实验报告课程设计.docx(24页珍藏版)》请在冰豆网上搜索。
银行储蓄管理系统实验报告课程设计
软件工程实验报告
课题:
银行储蓄管理系统
评阅意见:
评定成绩:
指导老师签名:
年月
日
银行储蓄管理系统
1.需求分析
1.1系统的功能性需求
1.2系统需求分析规格说明书
1.3系统实体联系(ER)图
1.4系统数据流(DFD)图
1.5系统数据字典
1.6面向数据流的设计方法
1.需求分析
系统中要求每个人银行管理者都有一个系统帐号,并每个帐号都有密码,系统的一切操作(如:
增加存储用户,提高利率等)都由管理者执行,而不是由存诸用户执行,也主是说存储用户并不直接与系统交互,而是通过管理员与系统交互。
该系统主要有两部份业务功能,存款与取款。
储户填写的存款单或取款单由业务员输入系统,如果是存款则系统记录存款人姓名,住址(或电话号码),身份证号码,存款类型,存款日期,到期日期,利率及密码(可选)等信息,并打印存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算得利息并打印出利息清单给储户。
1・1系统的功能性需求
系统为管理者提供主功能界面
系统在启动时要求管理者输入登录帐号与密码
系统要通过管理员执行一系操作(如:
添加用户,修改,查询,删除等)
管理员代用户实现存款,取款,查询等操作
储户的一切信息,存储在数据库表中
1.2系统需求分析规格说明书
•实现储户开户登记
•办理定期存款帐
•办理定期存款手续
•办理活期取款帐
•办理活期取款手续
•实现利息计算
•输出明细表
•数据备份和数据恢复功能
•查看帐户信息
1.3系统ER图
系统主要关系模式:
储户(储户姓名,
住址,身份证号码)
2.管理员(员工号,
姓名)
3.存款(储户姓名,
员工号,
金额,存款类型,到期日
期,存款日期)
4.查询(储户姓名,
员工号)
5.取款(储户姓名,
员工号,
金额,取款日期)
姓名
住址
身份证号码
储户
1
n
i.5系统顶层数据流(DFD)图
打印存单
开户
存款
查►询
取款
打印清单
读取储户信息
保存新用户信息
►
正确
利息清草
7・打印淸单
1・7第2层DFD图
储户信息文件
核对
正确
2.4打印存单
读取信息
8
储户信息文件
更新储户信息
核对信息
核对正确
取款
1.9第5层数据流图
储户信息
文件
息
取款通知
存款信息
存款通知
查询信息
示信息
错课
1・10数据字典
数据名字:
注册申请表
数据来源:
储户
数据目的:
储户信息
数据组成:
姓名+密码+住址+身份证号码
数据目的:
身份验证
数据组成:
姓名+密码+住址+身份证号码+现有金额
数据名字:
利息淸单
数据来源:
系统
数据目的:
储户
数据组成:
利息十姓名+取款时间+取款金额
数据名字:
存单
数据来源:
存款信息表
数据目的:
储户
数据组成:
姓名十到期时间+存入类型+存入时间十利率+存入金额
数拯名字:
取款单
数据来源:
储户
数据目的:
储户信息表
数据组成:
姓名+到期时间+存入类型+存入时间+利率+取款金额+身份证号
数拯名字:
存款单
数据目的:
存款信息表
数据组成:
姓名+到期时间+存入类型+存入时间+利率+
存入金额十身份证号
1.6.1确定输入流和输出流的边界,从而孤立出变换中心。
如图:
1.1
图1.1
162完成“第一级分解”
基于书上第三章第三题实现在银行储蓄管理系统在一级分解中,可将系统分解成三个子功能模块:
用户操作,业务员操作,系统输出。
如下图所示:
1.6.3完成“第二级分解”
<1>用户操作的分解
可将用户操作分解为:
开户民,存款,取款,查询。
如下图所示:
用户操作
v2>业务员操作的分解
业务员的操作是将用户的操作传送给系统,代替用户与系统交互,所以,业务员的操作与系统的操作基本类似,也可以近似地将业务员看作用户。
所以操作员操作可分解为:
开户,存款,取款,查询
并且如用户在开户时设有密码,则进行密码验证。
所以分解图如下:
业务员操作
密码验证
提交用
户申请
表
提交存
款单
提交用
户申请
表
提交用
户查询
表
<3>系统输出分解
系统输出可分解为:
计算利息■打印清单,保存新用户信息,
更新用户信息,打印存单
分解图如下:
1.6.4使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化。
由于业务员的操作与用户的操作基本相似,可以简单化地认为系统只与业务员交互,基于这个思想,将有利与简化以后系统程序的设计与开发。
精化图如下:
密码验证
打印淸单
#include
#include
classBank
{
private:
Account*account[50];
intmaxID;
intaccNum;
public:
Bank();
voidAppend();voidDelete();
voidQuery();
};
classAccount
private:
intID;
char*Name;
//intYear;
doubleBalance;
public:
Account();
Account(int,constchar*,double);
voidSaving();
intWithdraw();
voidShowMe();
intgetlD(){retarnID;}
Account:
:
Account()
ID=0;
strcpy(Name,/z“);
Balance=0;
Account:
:
Account(intid,constchar*name,,doublebalance)
{
ID二id;
Name=newchar[50];
strcpy(Name,name);
//Year=year;
Balance=balance;
}
voidAccount:
:
Saving()
{
doublenumber;
cout〈〈"Pleaseinputsavingnumber:
/z:
cin>>number;
Balance=Balance+number;
cout<z,<return;
}
intAccount:
:
Withdraw()
{
doublenumber;
cout〈〈"Pleaseinputwithdrawnumber:
/z;
cin>>number;
if(Balance{
cout〈〈"Sorry,nowthebalanceofyouraccoutislessthanz/<z,<return0;
}
else
Balance=Balance-number;
cout〈〈〃Nowthebalanceofyouraccount
isz/<return1:
voidAccount:
:
ShowMe()
cout</z«ID«endl;
cout〈〈"Name:
/z<//cout<
zz<cout〈〈"Balance:
z,<}
//intAccout:
:
getlD()
//{
//returnID;
//}
Bank:
:
Bank()
{
for(inti二0;i〈50;i++)
account[i]二NULL;
maxID=0;
accNum=0;
voidBank:
:
Append()
{
if(accNum二二50)
{
cout〈〈"Soiry,thebankisfull,socannotaddnewaccount!
"〈〈endl;
return;
}
intid;
char*name=newchar[50];
doublebalance;
cout〈〈"Pleaseinputthenameoftheaccount:
〃;
cin>>name;
id=maxID;
balance=0;
Account*acc=newAccount(id,name,balance);
account[accNum]=acc;
cout〈〈"Appendsuccessful!
/z<account[accNum]->ShowMe();
maxID++;
accNum++;
:
return;
}
voidBank:
:
Delete()
{
intID;
cout〈〈"PleaseinputtheaccoutIDthatyouwanttodelete:
〃;
cin>>ID;
intflag二1;
inti二0;
while((i{
if(ID二二account[i]->getID())
{
//flag=0indicatehadfoundtheaccountlD
flag二0;
else
i++;
}
if(flag)
{
cout〈〈"Theaccountdoesnotexists!
〃〈〈endl;
return;
}
for(intj二i;j〈accNum;j++)
{
account[j]二account[j+1];
}
deleteaccount[accNum-1];
accNum--;
cout〈〈"Deletesuccessful!
/z<return;
}
voidBank:
:
Query()
intID;
cout〈〈"PleaseinputtheaccountIDthatyouwantto
〃
query:
;
cin>>ID;
intflag二1;
inti=0;
wh订e((i{
if(ID==account[i]->getID())
{
flag二0;
}
else
{
i++;
}
}
if(flag)
{
cout〈〈"Theaccountdoesnotexist!
〃〈〈endl〈〈endl;return;
}
account[i]-〉ShowMeO;
intchoice=0;
while(choice!
=3)
{
cout〈〈〃l:
Savemoney/z«endl;
cout«〃2:
Withdrawmoney/z<cout〈〈〃3:
Return/z«endl:
cout〈〈〃Pleaseinputthechoice:
";cin>>choice;
cout〈〈endl;
switch(choice)
{
case1:
account[i]-〉Saving();
break;
case2:
account[i]-〉Withdraw();
break;
case3:
break;
return;
voidmain()
Bankbank;
intchoice=0;
cout〈〈"WelcometobanksystenT〈〈endl;
while(choice!
=4)
{
cout〈〈〃l:
Addanaccount/z<cout〈〈〃2:
Deleteanaccount/z«endl;
cout<Queryanaccount〃〈〈endl;
cout〈〈〃4:
Exit〃〈〈endl〈〈endl;
cout〈〈"Pleaseinputyourchoice:
cout〈〈endl;
cin>>choice;
switch(choice)
{
case1:
bank.Append();
break;
case2:
bank.Delete();
break;
case3:
bank.Query();
break;
case4:
break;
}
cout〈〈endl;
}
//return;