面向对象分析与设计ATM系统分析与设计_第1页
面向对象分析与设计ATM系统分析与设计_第2页
面向对象分析与设计ATM系统分析与设计_第3页
面向对象分析与设计ATM系统分析与设计_第4页
面向对象分析与设计ATM系统分析与设计_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流面向对象分析与设计 ATM系统分析与设计.精品文档.ATM系统分析与设计需求分析一总体要求:1,ATM机要可以判断磁卡的类别,如果不是有效的磁卡则退卡; 2,可以在较快的时间内响应用户的请求,并针对相应的请求执行正确的操作;3,当卡在ATM机内30秒内没有操作时,系统自动没收信用卡;4,查自己的账户时应显示余额和可用余额,并显示ATM机里所拥有的现金面值,让用户可以做出正确的选择;5,提取现金时提示用户输入取款金额并判断输入是否确,如果错误提醒用户并要求重新操作,正确则提醒用户收取现金;钞票在出钞机内30秒内没人取走,自动回收钞票;6,转账汇

2、款时让用户选择转账类型,要求用户输入转账账号并要求用户输入两次,以确保没有输入错误,在两次输入都正确的情况下,让用户输入转账金额,并作最后的确认。7,进入修改密码界面后提醒用户输入新密码,并要求再次输入以确保密码统一无误,在确认后完成修改操作,并提醒用户新询密码生效;8,对于错误的操作或者操作延时做出有效的处理。二,系统要求:要求用户一次取款数额不得大于2500元;要求用户一天取款数额不得超过5000元;要求用户连续输入错误密码次数不得超过3次。三,系统性能要求:要求反应时间不得大于10秒钟;四:设计目标:系统可以提供24小时不间断服务,操作简单,可以很方便为用户提供取款、转账/汇款、查询账户

3、信息等服务。 模型分析一:设计DFD图。(1) 顶层DFD图:用户 银行卡交易凭条银行卡ATM系统用户 (2)0层DFD图:银行卡密码确认用户 选择操作账户信息退出退出类型用户判断超时执行操作提示信息操作类型没收信用卡(3)1层DFD图:超时信息未超时信息没收信用卡操作是否超过30秒退出用户警告信息银行卡取款取款操作查询是否打印账单查询操作打印账单选择信息选择交易密码确认退出类型转账操作更改密码操作退出转账银行卡更改密码用户取款子系统:客户存储信息单选择交易收回货币30秒内无响应提取现金取款金额选择货币种类调用取款系统选择信息取款操作选择信息现金警示信息用户查询子系统:客户存储信息单选择交易调

4、用查询系统 选择货币种类选择信息查询信息查询账户查询操作显示选择信息用户转账子系统:客户存储信息单卡内转账选择信息选择交易调用转账系统 查询操作转入卡号信息选择信息卡卡转账选择信息转入卡号信息转账金额记录记录记录更改密码子系统:客户存储信息单调用更改密码系统选择交易记录新密码新密码更改密码信息确认选择信息 二:组织结构设计 (1)系统结构读卡机模块键盘输入模块显示模块ATM机系统认证模块出钞模块打印模块(2) 读卡机系统输入:银行卡查询数据库,识别卡号及所属银行输出:显示卡号及所属银行信息(3)键盘输入子系统输入:密码,取款金额,查询余额等验证信息显示相关操作10秒内无操作则吞卡认证子系统:输

5、入卡号连接认证服务器验证卡号信息正确则显示输入密码,否则吐卡 显示子系统:信息输入后台处理在屏幕上显示处理情况出钞子系统:输入金额后台处理输出现金30秒内客户不取走现金则吞入现金打印子系统:客户选择是否打印后台处理输出报表或者无动作数据库子系统:客户输入信息数据库查询在输出显示查询信息建立模型一:建立基本系统模型图二:建立序列图:代码设计:#include<iostream.h>class consumer;class ATM / ATM取款机public: ATM(consumer& cn):cnsm(cn) void welcome(); / 登陆界面 bool che

6、ck_passwd(char n,char pwd); / 核对密码 void change_passwd(); / 修改密码 void fetchmoney(); / 取款 void information(); / 查询信息 void exitATM(); / 退出系统 void functionshow(); / 功能界面 void lock(); / 锁机private: int times; / 记录密码输入次数 consumer& cnsm;class consumer/ 用户public: friend class ATM; consumer(char Name,char

7、 Num, float Money,char Password);protected: char* get_name(); / 取得姓名 char* get_num(); / 取得卡号 char* get_passwd(); / 取得密码 float get_money(); / 取得余额 void set_passwd(char pwd); / 设置密码 void set_money(float m); / 取钱private: char passwd8; / 用户密码 char name20; / 用户姓名 char num20; float money;/ * consumer类的成员函

8、数 *#include"function.h"#include<string.h>consumer:consumer(char Name,char Num,float Money,char Password) strcpy(name,Name); strcpy(num,Num); money=Money; strcpy(passwd,Password);float consumer:get_money() return money;char* consumer:get_name() return name;char* consumer:get_num() ret

9、urn num;char* consumer:get_passwd() return passwd;void consumer:set_money(float m) money-=m;void consumer:set_passwd(char pwd) strcpy(passwd,pwd);/ * ATM类的成员函数 *#include "function.h"#include <string.h>#include<stdlib.h>void ATM:welcome() times=0; cout<<"$ 欢迎使用ATM自动取款

10、机! "<<endl; char pwd8,num20,ch; int i=0; do i=0; cout<<endl<<"请输入卡号:" do cin.get(ch); numi+=ch; while(ch!='n'); numi-1='0' i=0; cout<<"请输入密码:" do cin.get(ch); pwdi+=ch; while(ch!='n'); pwdi-1='0' if(!check_passwd(num,pw

11、d) cout<<"你输入的卡号或密码有误, 请重新输入"<<endl; times+; else functionshow(); while(times<3); lock(); bool ATM:check_passwd(char num,char pwd) if(strcmp(num,cnsm.get_num()=0&&strcmp (pwd,cnsm.get_passwd()=0) return true; else return false;void ATM:functionshow() int n; do cout&l

12、t;<endl<<"请你输入相应的操作序号进行操作:"<<endl; cout<<"1) 修改密码 "<<endl<<"2) 取款 "<<endl<<"3) 查询余额 "<<endl<<"4) 退出系统 "<<endl; cout<<"$ >" cin>>n; while(n<1|n>4) cout<&l

13、t;"请输入正确的操作序号!"<<endl; cout<<"$ >" cin>>n; switch(n) case 1: change_passwd(); break; case 2: fetchmoney(); break; case 3: information(); break; case 4: exitATM(); break; while(true);void ATM:change_passwd() char pwd8,repwd8; times=0; do cout<<endl<&l

14、t;"请输入旧密码:" cin>>pwd; if(!check_passwd(cnsm.get_num(),pwd) times+; else break; while(times<3); if(times=3) lock(); int t=0; do cout<<"请输入新密码:" cin>>pwd; cout<<"请再输入一次新密码:" cin>>repwd; if(t=strcmp(pwd,repwd)!=0) cout<<"密码不一致, 请

15、重新输入!"<<endl; while(t!=0); cnsm.set_passwd(pwd); cout<<"密码修改成功"<<endl;void ATM:fetchmoney() float m; char ch; do cout<<endl<<"请输入取款金额:"<<"n$>"<<endl ; cin>>m; while(m<=0) cout<<"请输入正确金额"<<e

16、ndl; cout<<"$ > " cin>>m; if(cnsm.get_money()-m<0) cout<<"对不起,你的余额不足!"<<endl; else cout<<endl<<"操作成功,请取钱!"<<endl; cnsm.set_money(m); cout<<"是否要继续该项操作:(Y/N) "<<endl; cout<<"$ > " cin

17、>>ch; while(ch!='n'&&ch!='N'&&ch!='Y'&&ch!='y') cout<<"$ >" cin>>ch; while(ch='y'|ch='Y');void ATM:information() cout<<""<<endl; cout<<""<<endl; cout<<" 用户姓名:"<<cnsm.get_name()<<endl; cout<<" 卡号: "<<cnsm.get_num()<<endl; cout<<" 余额: "<<cnsm.get_money()<<

温馨提示

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

评论

0/150

提交评论