面向对象分析与设计ATM系统分析与设计.docx
- 文档编号:14086497
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:20
- 大小:208.56KB
面向对象分析与设计ATM系统分析与设计.docx
《面向对象分析与设计ATM系统分析与设计.docx》由会员分享,可在线阅读,更多相关《面向对象分析与设计ATM系统分析与设计.docx(20页珍藏版)》请在冰点文库上搜索。
面向对象分析与设计ATM系统分析与设计
需求分析
一.总体要求:
1,ATM叽要可以判断磁卡的类别,如果不是有效的磁卡则退卡;
2,可以在较快的时间内响应用户的请求,并针对相应的请求执行正确的操作;
3,当卡在ATM机内30秒内没有操作时,系统自动没收信用卡;
4,查自己的账户时应显示余额和可用余额,并显示ATM机里所拥有的现金面值,让用户可以做出正确的选择;
5,提取现金时提示用户输入取款金额并判断输入是否确,如果错误提醒用户并
要求重新操作,正确则提醒用户收取现金;钞票在出钞机内30秒内没人取走,
自动回收钞票;
6,转账汇款时让用户选择转账类型,要求用户输入转账账号并要求用户输入两次,以确保没有输入错误,在两次输入都正确的情况下,让用户输入转账金额,并作最后的确认。
7,进入修改密码界面后提醒用户输入新密码,并要求再次输入以确保密码统一无误,在确认后完成修改操作,并提醒用户新询密码生效;
8,对于错误的操作或者操作延时做出有效的处理。
二,系统要求:
要求用户一次取款数额不得大于2500元;
要求用户一天取款数额不得超过5000元;
要求用户连续输入错误密码次数不得超过3次。
三,系统性能要求:
要求反应时间不得大于10秒钟;
四:
设计目标:
系统可以提供24小时不间断服务,操作简单,可以很方便为用户提供取款、转账/汇款、查询账户信息等服务。
模型分析
:
设计DFD图
(1)顶层DFD图:
(2)0层DFD图:
用户
密码确认
银行卡
退出
选择操作
判断超时
退出类型
操作类型
执行操作
(3)1层DFD图
用户
银行卡F
(密码、
选择『
(确认丿
信息*
选择
交易
未超时信息
操作是否超过
•EL
账
更改密
转账.
更改密码-
退出类型
码操作
取款子系统:
客户存储信息单
超时
信息
是否
打印
账单
警告信息
银行卡
取款
调用取
\选择
选择货
\取款讨
f提取'
\30秒内.
操作
款系统
l币种类
/金额U
、现金/
丿无响应
收回
货币
选择信息
现金
用户
警示
信息
查询子系统:
客户存储信息单
选择
交易
查询
操作
选择
信息
调用查
询系统
选择货币种类
查询
信息
显
查询账尸
转账子系统:
选择信息
用户
客户存储信息单
选择交易
转入卡号信息
更改密码子系统:
客户存储信息单
选择信息
二:
组织结构设计
(1)系统结构
ATM机系统
(2)读卡机系统
(3)键盘输入子系统
认证子系统:
显示子系统:
出钞子系统:
打印子系统:
数据库子系统:
建立模型
:
建立基本系统模型图
:
建立序列图:
代码设计:
#include<>
classconsumer;
classATM
//ATM取款机
{
public:
ATM(consumer&cn):
cnsm(cn)
{
}
voidwelcome();
//登陆界面
boolcheck_passwd(charn[],charpwd[]);
//核对密码
voidchange_passwd();
//修改密码
voidfetchmoney();
//取款
voidinformation();
//查询信息
voidexitATM();
//退出系统
voidfunctionshow();
//功能界面
voidlock();
//锁机
private:
inttimes;
//记录密码输入次数
consumer&cnsm;
};
classconsumer
//用户
{
public:
friendclassATM;
consumer(charName[],charNum[],floatMoney,charPassword[]);protected:
char*get_name();
//取得姓名
char*get_num();
//取得卡号
char*get_passwd();
//取得密码
floatget_money();
//取得余额
voidset_passwd(charpwd[]);
//设置密码
voidset_money(floatm);
//取钱
private:
charpasswd[8];
//用户密码
charname[20];
//用户姓名
charnum[20];
floatmoney;
};
//*consumer类的成员函数
#include""
#include<>consumer:
:
consumer(charName[],charNum[],floatMoney,charPassword[]){
strcpy(name,Name);strcpy(num,Num);
money=Money;strcpy(passwd,Password);
}
floatconsumer:
:
get_money()
{
returnmoney;
}
char*consumer:
:
get_name()
{
returnname;
}
char*consumer:
:
get_num()
{
returnnum;
}
char*consumer:
:
get_passwd()
{
returnpasswd;
}
voidconsumer:
:
set_money(floatm)
{
money-=m;
}
voidconsumer:
:
set_passwd(charpwd[])
{
strcpy(passwd,pwd);
}
//*ATM类的成员函数
#include""
#include<>
#include<>
voidATM:
:
welcome()
{
times=0;
cout<<"$
欢迎使用ATM自动取款机!
"< charpwd[8],num[20],ch; inti=0; do { i=0; cout< ";do { (ch);num[i++]=ch; }while(ch! ='\n');num[i-1]='\0'; i=0; cout<<"请输入密码: "; do { (ch);pwd[i++]=ch; }while(ch! ='\n');pwd[i-1]='\0'; if(! check_passwd(num,pwd)) { cout<<"你输入的卡号或密码有误,请重新输入"< times++; } else { functionshow(); }}while(times<3); lock(); } boolATM: : check_passwd(charnum[], charpwd[]) { if(strcmp(num,())==0&&strcmp (pwd,())==0) returntrue; else returnfalse; } voidATM: : functionshow() { intn; do { cout< "< cout<<"1)修改密码"< cout<<"$>\\"; cin>>n; while(n<1||n>4) { cout<<"请输入正确的操作序号! "< cout<<"$>\\"; cin>>n; } switch(n) { case1: change_passwd(); break; case2: fetchmoney(); break; case3: information(); break; case4: exitATM(); break; } }while(true); } voidATM: : change_passwd() { charpwd[8],repwd[8]; times=0; do { cout< "; cin>>pwd; if(! check_passwd(),pwd)) times++; else break; }while(times<3); if(times==3) lock(); intt=0; do { cout<<"请输入新密码: "; cin>>pwd; cout<<"请再输入一次新密码: "; cin>>repwd; if((t=strcmp(pwd,repwd))! =0) cout<<"密码不一致, 请重新输入! "< }while(t! =0); (pwd); cout<<"密码修改成功"< } voidATM: : fetchmoney() { floatm; charch; do { : "<<"\n$>\\"< cout< while(m<=0) { cout<<"请输入正确金额"< cout<<"$>\\"; cin>>m; } if()-m<0) { cout<<"对不起,你的余额不足! "< } else { cout< "< } cout<<"是否要继续该项操作: (Y/N)"< cin>>ch; while(ch! ='n'&&ch! ='N'&&ch! ='Y'&&ch! ='y') { cout<<"$>\\"; cin>>ch; } }while(ch=='y'||ch=='Y'); } voidATM: : information() { cout<<"~"< cout<<"~用户姓名: "<<()< cout<<"~卡号: "<<()< cout<<"~余额: "<<()< cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"< voidATM: : lock() { cout< "< exit (1); } voidATM: : exitATM() { cout< "< cout<<"请取卡……"< exit(0); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 分析 设计 ATM 系统分析