1、 系统在启动时要求管理者输入登录帐号与密码 系统要通过管理员执行一系操作(如:添加用户,修改,查询,删除等) 管理员代用户实现存款,取款,查询等操作 储户的一切信息,存储在数据库表中12系统需求分析规格说明书 实现储户开户登记 办理定期存款帐 办理定期存款手续 办理活期取款帐 办理活期取款手续 实现利息计算 输出明细表 数据备份和数据恢复功能 查看帐户信息1.3系统ER图系统主要关系模式:1 储户(储户姓名,住址,身份证号码)2 管理员(员工号,姓名)3 存款(储户姓名,员工号,金额,存款类型,到期日期,存款日期)4 查询(储户姓名,员工号)5 取款(储户姓名,员工号,金额,取款日期)储户管理
2、员系统金额查询存款取款姓名住址身份证号码存款类型到期日期存款日期取款日期打印清单清单信息员工号打印存单1 1 n n n n n n 1 1 11 5系统顶层数据流(DFD)图 打印存单 开户 取款 存款 存款 查询 取款 打印清单16系统0层数据流(DFD)图业务员1开户2存款3取款4查询6计算利息7打印清单5验证8打印存单 打印存单储户信息文件 存取款信息变动 密码错误 读取储户信息 保存新用户信息 密码正确 利息清单17第2层DFD图 储户信息文件 核对错误 读取信息 存款填写存款信息 核对信息 核对 正确 打印18第3层数据流图 储户信息文件31提交取款单32信息核对33信息输入系统3
3、4打印清单 核对错误 读取信息 更新储户信息填写取款信息 核对信息 核对正确 取款 19第5层数据流图新用户信息 存储信息 取款信息 取款通知 存款信息 存款通知 查询信息 显示信息 验证错误110数据字典数据名字:储户信息表数据来源:数据目的:身份验证数据组成:姓名+密码+住址+身份证号码+现有金额1.61确定输入流和输出流的边界,从而孤立出变换中心。如图:1.1图1.11.6.2完成“第一级分解”基于书上第三章第三题实现在银行储蓄管理系统在一级分解中,可将系统分解成三个子功能模块:用户操作,业务员操作,系统输出。如下图所示:1.6.3完成“第二级分解” 用户操作的分解可将用户操作分解为:开
4、户民,存款,取款,查询。用户操作开户提交用户申请表提交存款单提交用户查询表2业务员操作的分解业务员的操作是将用户的操作传送给系统,代替用户与系统交互,所以,业务员的操作与系统的操作基本类似,也可以近似地将业务员看作用户。所以操作员操作可分解为:开户,存款,取款,查询并且如用户在开户时设有密码,则进行密码验证。所以分解图如下:3 系统输出分解系统输出可分解为:计算利息-打印清单,保存新用户信息,更新用户信息,打印存单分解图如下:系统输出计算利息保存新用户信息更新用户信 息1.64使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化。由于业务员的操作与用户的操作基本相似,可以简单化地认为系
5、统只与业务员交互,基于这个思想,将有利与简化以后系统程序的设计与开发。精化图如下:银行存储管理系统业务员操作更新用户信息提交取款单密码验证#includestring.hclass Bankprivate: Account * account50; int maxID; int accNum;public: Bank(); void Append(); void Delete(); void Query();class Account int ID; char * Name; /int Year; double Balance; Account(); Account(int,const cha
6、r * ,double); void Saving(); int Withdraw(); void ShowMe(); int getID()return ID;Account:Account()ID = 0;strcpy(Name, );Balance = 0;Account(int id,const char * name,double balance)ID = id;Name = new char50;strcpy(Name,name);/Year=year;Balance = balance;void Account:Saving()double number;coutnumber;B
7、alance = Balance + number;Now the balance of your account is Balanceendl;return;int Account:Withdraw()Please input withdraw number:if(Balancenumber) coutSorry,now the balance of your accout is less than number.So you can not withdraw! return 0;elseBalance = Balance - number;Now the balance of your a
8、ccount isreturn 1;ShowMe()Account ID:IDName:Name/ coutYear:YearBalance:/int Accout:getID()/return ID;/Bank:Bank()for(int i=0;iShowMe();maxID+;accNum+;Delete()int ID;Please input the accout ID that you want to delete:ID;int flag = 1;int i = 0;while(igetID() /flag = 0 indicate had found the accountID
9、flag = 0; else i+;if(flag)The account does not exists!for(int j=i;jaccNum;j+) accountj = accountj+1;delete accountaccNum-1;accNum-;Delete successful!Query()Please input the account ID that you want to query:int i=0;The account does not exist!endlint choice=0 ;while(choice!=3) 1:Save money 2:Withdraw
10、 money 3:Return Please input the choice: cinchoice; switch(choice) case 1: accounti-Saving(); break; case 2:Withdraw(); case 3:void main()Bank bank;int choice = 0;Welcome to bank systemwhile(choice != 4)1: Add an account2: Delete an account3: Query an account4: ExitPlease input your choice: bank.Append(); bank.Delete(); bank.Query(); case 4:/return;X
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1