面向对象分析与设计ATM系统分析与设计.docx

上传人:b****7 文档编号:8968386 上传时间:2023-02-02 格式:DOCX 页数:20 大小:71.91KB
下载 相关 举报
面向对象分析与设计ATM系统分析与设计.docx_第1页
第1页 / 共20页
面向对象分析与设计ATM系统分析与设计.docx_第2页
第2页 / 共20页
面向对象分析与设计ATM系统分析与设计.docx_第3页
第3页 / 共20页
面向对象分析与设计ATM系统分析与设计.docx_第4页
第4页 / 共20页
面向对象分析与设计ATM系统分析与设计.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

面向对象分析与设计ATM系统分析与设计.docx

《面向对象分析与设计ATM系统分析与设计.docx》由会员分享,可在线阅读,更多相关《面向对象分析与设计ATM系统分析与设计.docx(20页珍藏版)》请在冰豆网上搜索。

面向对象分析与设计ATM系统分析与设计.docx

面向对象分析与设计ATM系统分析与设计

ATM系统分析与设计

需求分析

一.总体要求:

1,ATM机要可以判断磁卡的类别,如果不是有效的磁卡则退卡;

2,可以在较快的时间内响应用户的请求,并针对相应的请求执行正确的操作;

3,当卡在ATM机内30秒内没有操作时,系统自动没收信用卡;

4,查自己的账户时应显示余额和可用余额,并显示ATM机里所拥有的现金面值,让用户可以做出正确的选择;

5,提取现金时提示用户输入取款金额并判断输入是否确,如果错误提醒用户并要求重新操作,正确则提醒用户收取现金;钞票在出钞机内30秒内没人取走,自动回收钞票;

6,转账汇款时让用户选择转账类型,要求用户输入转账账号并要求用户输入两次,以确保没有输入错误,在两次输入都正确的情况下,让用户输入转账金额,并作最后的确认。

7,进入修改密码界面后提醒用户输入新密码,并要求再次输入以确保密码统一无误,在确认后完成修改操作,并提醒用户新询密码生效;

8,对于错误的操作或者操作延时做出有效的处理。

二,系统要求:

要求用户一次取款数额不得大于2500元;

要求用户一天取款数额不得超过5000元;

要求用户连续输入错误密码次数不得超过3次。

三,系统性能要求:

要求反应时间不得大于10秒钟;

四:

设计目标:

系统可以提供24小时不间断服务,操作简单,可以很方便为用户提供取款、转账/汇款、查询账户信息等服务。

 

模型分析

一:

设计DFD图。

(1)顶层DFD图:

用户

银行卡交易凭条

银行卡

ATM系统

用户

 

(2)0层DFD图:

 

银行卡

密码确认

用户

选择操作

账户信息

退出

退出类型

用户

判断超时

执行操作

 

提示信息

操作类型

没收信用卡

 

(3)1层DFD图:

超时信息

未超时信息

没收信用卡

操作是否超过30秒退出

用户

警告信息

银行卡

取款

取款操作

查询

是否打印账单

查询操作

打印账单

选择信息

选择交易

密码确认

退出类型

转账操作

更改密码操作

退出

转账

银行卡

更改密码

 

用户

取款子系统:

客户存储信息单

选择交易

收回货币

30秒内无响应

提取现金

取款金额

选择货币种类

调用取款系统

选择信息

取款操作

 

选择信息

现金

警示信息

用户

 

查询子系统:

客户存储信息单

 

选择交易

调用查询系统

选择货币种类

选择信息

查询信息

查询账户

查询操作

显示

选择信息

 

用户

 

转账子系统:

客户存储信息单

卡内转账

选择信息

选择交易

调用转账系统

查询操作

转入卡号信息

选择信息

卡卡转账

选择信息

转入卡号信息

转账金额

记录

记录

记录

 

更改密码子系统:

客户存储信息单

调用更改密码系统

选择交易

记录

新密码

新密码

更改密码信息

确认

选择信息

 

二:

组织结构设计

(1)系统结构

读卡机模块

键盘输入模块

显示模块

ATM机系统

认证模块

出钞模块

打印模块

 

(2)读卡机系统

输入:

银行卡

查询数据库,识别卡号及所属银行

输出:

显示卡号及所属银行信息

(3)键盘输入子系统

输入:

密码,取款金额,查询余额等

验证信息

显示相关操作

10秒内无操作则吞卡

认证子系统:

输入卡号

连接认证服务器验证卡号信息

正确则显示输入密码,否则吐卡

显示子系统:

信息输入

后台处理

在屏幕上显示处理情况

出钞子系统:

输入金额

后台处理

输出现金

30秒内客户不取走现金则吞入现金

打印子系统:

客户选择是否打印

后台处理

输出报表或者无动作

数据库子系统:

客户输入信息

数据库查询

在输出显示查询信息

建立模型

 

一:

建立基本系统模型图

二:

建立序列图:

代码设计:

#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"function.h"

#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"function.h"

#include

#include

voidATM:

:

welcome()

{

times=0;

cout<<"$

欢迎使用ATM自动取款机!

"<

charpwd[8],num[20],ch;

inti=0;

do

{

i=0;

cout<

";

do

{

cin.get(ch);

num[i++]=ch;

}while(ch!

='\n');

num[i-1]='\0';

i=0;

cout<<"请输入密码:

";

do

{

cin.get(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,cnsm.get_num())==0&&strcmp

(pwd,cnsm.get_passwd())==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(cnsm.get_num(),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);

cnsm.set_passwd(pwd);

cout<<"密码修改成功"<

}

voidATM:

:

fetchmoney()

{

floatm;

charch;

do

{

cout<

"<<"\n$>\\"<

cin>>m;

while(m<=0)

{

cout<<"请输入正确金额"<

cout<<"$>\\";

cin>>m;

}

if(cnsm.get_money()-m<0)

{

cout<<"对不起,你的余额不足!

"<

}

else

{

cout<

"<

cnsm.set_money(m);

}

cout<<"是否要继续该项操作:

(Y/N)"<

cout<<"$>\\";

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<<"~余额:

"<

cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<

}

voidATM:

:

lock()

{

cout<

你的卡已经被没收!

"<

exit

(1);

}

voidATM:

:

exitATM()

{

cout<

欢迎下次光临!

"<

cout<<"请取卡……"<

exit(0);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1