(芙蓉学院)(芙蓉学院)软件工程实验报告课题:银行储蓄管理系统姓名:谭斌学号:07120115同组姓名:专业班级:芙蓉计科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.取款(储户姓名,员工号,金额,取款日期)11nnnnnnnnn11111储户管理员系统金额查询存款取款查询存款取款金额姓名住址身份证号码金额存款类型到期日期存款日期取款日期金额存款类型到期日期存款日期取款日期打印清单清单信息员工号姓名打印存单1.5系统顶层数据流(DFD)图打印存单开户取款存款存款查询取款打印清单1.6系统0层数据流(DFD)图打印存单储户信息文件存取款信息变动密码错误读取储户信息保存新用户信息密码正确利息清单系统储户业务员1.开户2.存款3.取款4.查询2.存款3.取款6.计算利息7.打印清单5.验证用户业务员系统8.打印存单1.7第2层DFD图储户信息文件核对错误读取信息存款填写存款信息核对信息核对正确打印1.8第3层数据流图储户信息文件核对错误读取信息更新储户信息填写取款信息核对信息核对正确打印取款3.1提交取款单3.2信息核对3.3信息输入系统2.1提交存款单2.2信息核对2.3信息输入系统2.4打印存单3.4打印清单1.9第5层数据流图储户信息文件新用户信息存储信息取款信息取款通知存款信息存款通知查询信息显示信息验证错误1.10数据字典数据名字:储户信息表数据来源:储户数据目的:身份验证数据组成:姓名+密码+住址+身份证号码+现有金额5.1注册5.2身份验证数据名字:注册申请表数据来源:储户数据目的:储户信息数据组成:姓名+密码+住址+身份证号码数据名字:利息清单数据来源:系统数据目的:储户数据组成:利息+姓名+取款时间+取款金额数据名字:存款单数据目的:存款信息表数据组成:姓名+到期时间+存入类型+存入时间+利率+存入金额+身份证号数据名字:取款单数据来源:储户数据目的:储户信息表数据组成:姓名+到期时间+存入类型+存入时间+利率+取款金额+身份证号数据名字:存单数据来源:存款信息表数据目的:储户数据组成:姓名+到期时间+存入类型+存入时间+利率+存入金额1.6.1确定输入流和输出流的边界,从而孤立出变换中心。如图:1.1图1.11.6.2完成“第一级分解”基于书上第三章第三题实现在银行储蓄管理系统在一级分解中,可将系统分解成三个子功能模块:用户操作,业务员操作,系统输出。如下图所示:业务员操作银行存储管理系统用户操作系统输出1.6.3完成“第二级分解”1用户操作的分解可将用户操作分解为:开户民,存款,取款,查询。如下图所示:2业务员操作的分解业务员的操作是将用户的操作传送给系统,代替用户与系统交互,所以,业务员的操作与系统的操作基本类似,也可以近似地将业务员看作用户。所以操作员操作可分解为:开户,存款,取款,查询并且如用户在开户时设有密码,则进行密码验证。所以分解图如下:用户操作开户存款取款查询提交用户申请表提交存款单提交用户申请表提交用户查询表3系统输出分解系统输出可分解为:计算利息-打印清单,保存新用户信息,更新用户信息,打印存单分解图如下:业务员操作密码验证开户存款取款查询提交用户申请表提交存款单提交用户申请表提交用户查询表系统输出计算利息保存新用户信息更新用户信息打印存单打印清单1.6.4使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化。由于业务员的操作与用户的操作基本相似,可以简单化地认为系统只与业务员交互,基于这个思想,将有利与简化以后系统程序的设计与开发。精化图如下:银行存储管理系统用户操作系统输出业务员操作计算利息保存新用户信息更新用户信息打印存单打印清单开户存款取款查询提交用户申请表提交存款单提交取款单提交用户查询表密码验证银行储蓄管理系统实验项目:银行储蓄实验项目一、银行储蓄系统主菜单模块设计与实现1.1库函数描述(原型、功能、头部文件)及其作用Time显示当前时间类#includetime.HSystem()调用dos命令_sleep()停息#includestdlib.HString字符串流#includestring.H#includemyheader.h中有调用的全部函数声明1.2编码(必须附加注释)#includemyheader.hvoidmain(){//背景颜色设置system(COLOR16);/*颜色属性由两个十六进制数字指定--第一个为背景,第二个则为前景。每个数字可以为以下任何值之一:0=黑色8=灰色1=蓝色9=淡蓝色2=绿色A=淡绿色3=湖蓝色B=淡浅绿色4=红色C=淡红色5=紫色D=淡紫色6=黄色E=淡黄色7=白色F=亮白色*///输出=============★欢迎进入银行活期存款系统★=============inti;for(i=0;i13;i++)cout'=';cout★欢迎进入银行活期存款系统★;for(i=0;i13;i++)cout'=';coutendl;//列示当前时间cout当前时间:;for(i=0;i6;i++)cout;Timet=latesttime();t.print();//列示菜单mylist();cout如果您不了解该系统请按N否则按Y:;//核实输入是否为字符stringcheck;while(1){cincheck;if(check.length()1){cout您的输入有误请重新输入:;continue;}if(check[0]!='Y'&&check[0]!='N')cout您的输入有误请重新输入:;elsebreak;}intmark=1;if(check[0]=='N'){mark=0;cout友情提示:按对应业务的编号即可进行该业务!endl请继续:endl;}intflag=1;while(flag++){if(flag2){system(cls);mylist();}if(mark)cout请选择业务:;stringservicenum;//核实输入是否为字符while(1){cinservicenum;if(servicenum.length()1){cout您的输入有误请重新输入:;continue;}elsebreak;}cout确认请按Y,修改请按N,请选择:;stringmark;//核实输入是否为字符while(1){cinmark;if(mark.length()1){cout您的输入有误请重新输入:;continue;}if(mark[0]!='Y'&&mark[0]!='N')cout您的输入有误请重新输入:;elsebreak;}if(mark[0]=='N')continue;if(servicenum[0]=='0')break;cout正在处理请稍等.;_sleep(1000);cout.;_sleep(1000);cout.\n;_sleep(1000);switch(servicenum[0]){//开户case'1':creaccount();break;//存款case'2':deposit();break;//取款case'3':withdraw();break;//计息case'4':computeprofit();break;//查询case'5':checkbalance();break;//排序case'6':order();break;//系统介绍case'7':about();break;default:cout对不起,您的选择超出了我们的业务范围。endl;}}cout交易完毕,谢谢合作!!!endl;}1.3mylist.Cpp主函数显示菜单voidmylist(){inti;for(i=0;i11;i++)cout'';cout*************主菜单*************endl;for(i=0;i12;i++)cout;cout☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆endl;for(i=0;i12;i++)cout;cout☆0.................退出☆endl;for(i=0;i12;i++)cout;cout☆1.................开户☆endl;for(i=0;i12;i++)cout;cout☆2.................存款☆endl;for(i=0;i12;i++)cout;cout☆3.................取款☆endl;for(i=0;i12;i++)cout;cout☆4.................计息☆endl;for(i=0;i12;i++)cout;cout☆5.................查询☆endl;for(i=0;i12;i++)cout;cout☆6.................排序☆endl;for(i=0;i12;i++)cout;cout☆7.................关于☆endl;for(i=0;i12;i++)cout;cout☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆endl;}voidabout(){cout银行活期存款系统作者:张瑞endl;cout该系统严格按照国际银行活期存款规则编写,endl;cout如果您什么不懂,请在第一步操作中输入N.endl;cout注意:请按照提示进行操作.否则后果自负!!!endl;cout版权所有,打击盗版!!!endl;over();return;}1.4实验小结(实验遇到的问题,解决方法)1.调用外部函数时光简单声明不行必需加个外部修饰extern2.也可调用外部变量同样用extern3.把定义的函数都放到myheader.H的头文件中声明实验项目二、银行储蓄系统开户模块设计与实现2.1库函数描述(原型、功能、头部文件)及其作用#includeiostream//c++的标准输入输出#includestdlib.h//c的库函数#includestring//字符串流#includec