银行储蓄管理系统实验报告课程设计_第1页
银行储蓄管理系统实验报告课程设计_第2页
银行储蓄管理系统实验报告课程设计_第3页
银行储蓄管理系统实验报告课程设计_第4页
银行储蓄管理系统实验报告课程设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程实验报告课题:银行储蓄管理系统评阅意见:评阅意见:评定成绩:指导老师签名:年月日银行储蓄管理系统目录需求分析系统的功能性需求系统需求分析规格说明书系统实体联系(ER)图系统数据流(DFD)图系统数据字典面向数据流的设计方法需求分析系统中要求每个人银行管理者都有一个系统帐号,并每个帐号都有密码,系统的一切操作(如:增加存储用户,提高利率等)都由管理者执行,而不是由存诸用户执行,也主是说存储用户并不直接与系统交互,而是通过管理员与系统交互。该系统主要有两部份业务功能,存款与取款。储户填写的存款单或取款单由业务员输入系统,如果是存款则系统记录存款人姓名,住址(或电话号码),身份证号码,存款类型,存款日期,到期日期,利率及密码(可选)等信息,并打印存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算得利息并打印出利息清单给储户。1.1系统的功能性需求系统为管理者提供主功能界面系统在启动时要求管理者输入登录帐号与密码系统要通过管理员执行一系操作(如:添加用户,修改,查询,删除等)管理员代用户实现存款,取款,查询等操作储户的一切信息,存储在数据库表中1.2系统需求分析规格说明书实现储户开户登记办理定期存款帐办理定期存款手续办理活期取款帐办理活期取款手续实现利息计算输出明细表数据备份和数据恢复功能查看帐户信息1.3系统ER图系统主要关系模式:储户(储户姓名,住址,身份证号码)管理员(员工号,姓名)存款(储户姓名,员工号,金额,存款类型,到期日期,存款日期)查询(储户姓名,员工号)取款(储户姓名,员工号,金额,取款日期)住址身份证号码姓名住址身份证号码姓名储户11储户金额存款类型到期日期存款日期查询存款金额存款类型到期日期存款日期查询存款取款n金额nn金额取款日期管理员取款日期管理员打印存单打印存单打印清单系统查询存款打印清单系统查询存款取款姓名姓名清单信息员工号清单信息员工号金额金额nnn取款日期取款日期存款类型存款类型到期日期到期日期金额金额存款日期存款日期111115系统顶层数据流(DFD)图打印存单开户系统用户业务员取款存款系统用户业务员存款查询取款打印清单1.6系统0层数据流(DFD)图8.打印存单打印存单8.打印存单储户信息文件存取款信息变动密码错误读取储户信息5.验证 5.验证1.开户保存新用户信息1.开户2.存款密码正确2.存款2.存款3.取款2.存款3.取款3.取款系统业务员储户3.取款系统业务员储户4.查询4.查询6.计算利息6.计算利息7.打印清单利息清单7.打印清单1.7第2层DFD图储户信息文件核对错误读取信息2.2信息核对2.2信息核对存款填写存款信息核对信息2.1提交存款单2.1提交存款单核对正确2.3信息输入系统2.3信息输入系统2.4打印存单打印2.4打印存单1.8第3层数据流图储户信息文件核对错误读取信息3.2信息核对更新储户信息3.2信息核对3.1提交取款单填写取款信息核对信息3.1提交取款单核对正确3.4打印清单3.3信息输入系统3.4打印清单3.3信息输入系统打印取款1.9第5层数据流图储户信息文件5.2身份验证5.1注册新用户信息存储信息5.2身份验证5.1注册取款信息取款通知存款信息存款通知查询信息显示信息验证错误1.10数据字典数据名字:注册申请表数据名字:注册申请表数据来源:储户数据目的:储户信息数据组成:姓名+密码+住址+身份证号码数据名字:储户信息表数据来源:储户数据目的:身份验证数据组成:姓名+密码+住址+身份证号码+现有金额数据名字:利息清单数据名字:利息清单数据来源:系统数据目的:储户数据组成:利息+姓名+取款时间+取款金额数据名字:存单数据名字:存单数据来源:存款信息表数据目的:储户数据组成:姓名+到期时间+存入类型+存入时间+利率+存入金额数据名字:取款单数据名字:取款单数据来源:储户数据目的:储户信息表数据组成:姓名+到期时间+存入类型+存入时间+利率+取款金额+身份证号数据名字:存款单数据名字:存款单数据目的:存款信息表数据组成:姓名+到期时间+存入类型+存入时间+利率+存入金额+身份证号1.6.1确定输入流和输出流的边界,从而孤立出变换中心。如图:1.1图1.11.6.2完成“第一级分解”基于书上第三章第三题实现在银行储蓄管理系统在一级分解中,可将系统分解成三个子功能模块:用户操作,业务员操作,系统输出。如下图所示:银行存储管理系统用户操作银行存储管理系统用户操作系统输出业务员操作业务员操作1.6.3完成“第二级分解”<1>用户操作的分解可将用户操作分解为:开户民,存款,取款,查询。如下图所示:用户操作用户操作开户开户存款取款查询提交用户申请表提交存款单提交用户申请表提交用户查询表<2>业务员操作的分解业务员的操作是将用户的操作传送给系统,代替用户与系统交互,所以,业务员的操作与系统的操作基本类似,也可以近似地将业务员看作用户。所以操作员操作可分解为:开户,存款,取款,查询并且如用户在开户时设有密码,则进行密码验证。所以分解图如下:业务员操作业务员操作查询取款存款开户查询取款存款开户密码验证密码验证提交用户申请表提交用户申请表提交存款单提交用户申请表提交用户查询表<3>系统输出分解系统输出可分解为:计算利息-打印清单,保存新用户信息,更新用户信息,打印存单分解图如下:系统输出系统输出计算利息计算利息保存新用户信息更新用户信息打印存单打印清单1.6.4使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化。由于业务员的操作与用户的操作基本相似,可以简单化地认为系统只与业务员交互,基于这个思想,将有利与简化以后系统程序的设计与开发。精化图如下:业务员操作银行存储管理系统业务员操作银行存储管理系统用户操作系统输出查询取款存款开户查询取款存款开户计算利息打印存单更新用户信息保存新用户信息计算利息打印存单更新用户信息保存新用户信息密码验证密码验证提交用户查询表提交取款单提交存款单提交用户申请表提交用户查询表提交取款单提交存款单提交用户申请表打印清单打印清单

#include<iostream.h>

#include<string.h>

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"<<Balance<<endl;

return;

}

intAccount::Withdraw()

{

doublenumber;

cout<<"Pleaseinputwithdrawnumber:";

cin>>number;

if(Balance<number)

{

cout<<"Sorry,nowthebalanceofyouraccoutislessthan"<<number<<"."<<"Soyoucannotwithdraw!"<<endl;

return0;

}

else

Balance=Balance-number;

cout<<"Nowthebalanceofyouraccountis"<<Balance<<endl;

return1;

}

voidAccount::ShowMe()

{

cout<<"AccountID:"<<ID<<endl;

cout<<"Name:"<<Name<<endl;

//cout<<"Year:"<<Year<<endl;

cout<<"Balance:"<<Balance<<endl;

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!"<<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!"<<endl;

account[accNum]->ShowMe();

maxID++;

accNum++;

return;

}

voidBank::Delete()

{

intID;

cout<<"PleaseinputtheaccoutIDthatyouwanttodelete:";

cin>>ID;

intflag=1;

inti=0;

while((i<accNum)&&(flag))

{

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

{

//flag=0indicatehadfoundtheaccountID

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!"<<endl;

return;

}

voidBank::Query()

{

intID;

cout<<"PleaseinputtheaccountIDthatyouwanttoquery:";

cin>>ID;

intflag=1;

inti=0;

while((i<accNum)&&(flag))

{

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

{

flag=0;

}

else

{

i++;

}

}

if(flag)

{

cout<<"Theaccountdoesnotexist!"<<endl<<endl;

return;

}

account[i]->ShowMe();

intchoice=0;

while(choice!=3)

{

cout<<"1:Savemoney"<<endl;

cout<<"2:Withdrawmoney"<<endl;

cout<<"3:Return"<<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<<"Welcometobanksystem"<<endl;

while(choice!=4)

{

cout<<"1:Addanaccount"<<endl;

cout<<"2:Deleteanaccount"<<endl;

cout<<"3: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;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论