软件工程课程设计银行储蓄管理系统.docx

上传人:b****5 文档编号:8314263 上传时间:2023-01-30 格式:DOCX 页数:20 大小:284.03KB
下载 相关 举报
软件工程课程设计银行储蓄管理系统.docx_第1页
第1页 / 共20页
软件工程课程设计银行储蓄管理系统.docx_第2页
第2页 / 共20页
软件工程课程设计银行储蓄管理系统.docx_第3页
第3页 / 共20页
软件工程课程设计银行储蓄管理系统.docx_第4页
第4页 / 共20页
软件工程课程设计银行储蓄管理系统.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

软件工程课程设计银行储蓄管理系统.docx

《软件工程课程设计银行储蓄管理系统.docx》由会员分享,可在线阅读,更多相关《软件工程课程设计银行储蓄管理系统.docx(20页珍藏版)》请在冰豆网上搜索。

软件工程课程设计银行储蓄管理系统.docx

软件工程课程设计银行储蓄管理系统

(芙蓉学院)

(芙蓉学院)

软件工程实验报告

课题:

银行储蓄管理系统

*****

学号:

同组姓名:

专业班级:

芙蓉计科0701

*******

设计时间:

2011/3/20

评阅意见:

 

评定成绩:

指导老师签名:

年月日

 

 

银行储蓄管理系统

 

1.需求分析

1.1系统的功能性需求

1.2系统需求分析规格说明书

1.3系统实体联系(ER)图

1.4系统数据流(DFD)图

1.5系统数据字典

1.6面向数据流的设计方法

 

1.需求分析

系统中要求每个人银行管理者都有一个系统帐号,并每个帐号都有密码,系统的一切操作(如:

增加存储用户,提高利率等)都由管理者执行,而不是由存诸用户执行,也主是说存储用户并不直接与系统交互,而是通过管理员与系统交互。

该系统主要有两部份业务功能,存款与取款。

储户填写的存款单或取款单由业务员输入系统,如果是存款则系统记录存款人姓名,住址(或电话号码),身份证号码,存款类型,存款日期,到期日期,利率及密码(可选)等信息,并打印存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算得利息并打印出利息清单给储户。

1.1系统的功能性需求

系统为管理者提供主功能界面

系统在启动时要求管理者输入登录帐号与密码

系统要通过管理员执行一系操作(如:

添加用户,修改,查询,删除等)

管理员代用户实现存款,取款,查询等操作

储户的一切信息,存储在数据库表中

1.2系统需求分析规格说明书

●实现储户开户登记

●办理定期存款帐

●办理定期存款手续

●办理活期取款帐

●办理活期取款手续

●实现利息计算

●输出明细表

●数据备份和数据恢复功能

●查看帐户信息

 

1.3系统ER图

系统主要关系模式:

1.储户(储户姓名,住址,身份证号码)

2.管理员(员工号,姓名)

3.存款(储户姓名,员工号,金额,存款类型,到期日期,存款日期)

4.查询(储户姓名,员工号)

5.取款(储户姓名,员工号,金额,取款日期)

 

11

n

nn

 

 

nnn

 

nnn

 

111

11

 

1.5系统顶层数据流(DFD)图

打印存单

开户

取款存款

存款

查询取款

 

打印清单

 

1.6系统0层数据流(DFD)图

打印存单

储户信息文件

存取款信息变动

密码错误读取储户信息

保存新用户信息

密码正确

 

利息清单

1.7第2层DFD图

储户信息文件

核对错误

读取信息

存款

填写存款信息核对信息

核对

正确

 

打印

 

1.8第3层数据流图储户信息文件

核对错误读取信息

更新储户信息

 

填写取款信息核对信息

 

核对正确

 

打印

取款

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

#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();

 intgetID(){returnID;}

};

 

Account:

:

Account()

{

 ID=0;

 strcpy(Name,"");

 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:

";

 cin>>number;

 Balance=Balance+number;

 cout<<"Nowthebalanceofyouraccountis"<

 return;

}

intAccount:

:

Withdraw()

{

 doublenumber;

 cout<<"Pleaseinputwithdrawnumber:

";

 cin>>number;

 if(Balance

 {

 cout<<"Sorry,nowthebalanceofyouraccoutislessthan"<

"<

 return0;

 }

 else 

 Balance=Balance-number;

 cout<<"Nowthebalanceofyouraccountis"<

 return1;

}

voidAccount:

:

ShowMe()

{

 cout<<"AccountID:

"<

 cout<<"Name:

"<

//cout<<"Year:

"<

 cout<<"Balance:

"<

 return;

}

//intAccout:

:

getID()

//{

 //returnID;

//}

Bank:

:

Bank()

{

 for(inti=0;i<50;i++)

 {

 account[i]=NULL;

 }

 maxID=0;

 accNum=0;

}

voidBank:

:

Append()

{

 if(accNum==50)

 {

 cout<<"Sorry,thebankisfull,socannotaddnewaccount!

"<

 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!

"<

 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=0indicatehadfoundtheaccountID

 flag=0;

 }

 else

 {

 i++;

 }

 }

 if(flag)

 {

 cout<<"Theaccountdoesnotexists!

"<

 return;

 }

 for(intj=i;j

 {

 account[j]=account[j+1];

 }

 deleteaccount[accNum-1];

 accNum--;

 cout<<"Deletesuccessful!

"<

 return;

}

voidBank:

:

Query()

{

 intID;

 cout<<"PleaseinputtheaccountIDthatyouwanttoquery:

";

 cin>>ID;

 intflag=1;

 inti=0;

 while((i

 {

 if(ID==account[i]->getID())

 {

 flag=0;

 }

 else

 {

 i++;

 }

 }

 if(flag)

 {

 cout<<"Theaccountdoesnotexist!

"<

 return;

 }

 account[i]->ShowMe();

 intchoice=0;

 while(choice!

=3)

 {

 cout<<"1:

Savemoney"<

 cout<<"2:

Withdrawmoney"<

 cout<<"3:

Return"<

 cout<<"Pleaseinputthechoice:

";

 cin>>choice;

 cout<

 switch(choice)

 {

 case1:

 account[i]->Saving();

 break;

 case2:

 account[i]->Withdraw();

 break;

 case3:

 break;

 }

 }

 return;

}

voidmain()

{

 Bankbank;

 intchoice=0;

 cout<<"Welcometobanksystem"<

 while(choice!

=4)

 {

 cout<<"1:

Addanaccount"<

 cout<<"2:

Deleteanaccount"<

 cout<<"3:

Queryanaccount"<

 cout<<"4:

Exit"<

 cout<<"Pleaseinputyourchoice:

";

 cout<

 cin>>choice;

 switch(choice)

 {

 case1:

 bank.Append();

 break;

 case2:

 bank.Delete();

 break;

 case3:

 bank.Query();

 break;

 case4:

 break;

 }

 cout<

 }

 //return;

}

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1