ATM自动取款机系统详细设计说明书文档格式.docx
《ATM自动取款机系统详细设计说明书文档格式.docx》由会员分享,可在线阅读,更多相关《ATM自动取款机系统详细设计说明书文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
1GHZ及以上
存:
1G以上
硬盘:
20G以上
软件环境:
操作系统:
MicrosoftWindowsXP或更高版本
数据库:
MicrosoftSQLServer2005
Web服务器:
Tomcat5.0以上
支持浏览器:
InternetExplorer7.0及其以上版本
开发环境:
MyEclipse,jdk,MicrosoftSQLServer2005
2.3条件与限制
随着科技的发展,人们生活水平的不断提高,高性能高效率高安全的产品越来越受到人们的欢迎。
ATM自动取款机是一种非常智能的机器,人们可以直接和它交互,代替以前的手工操作,大大提高了银行的工作效率。
同时也给广大用户带来了非常大的方便。
由于ATM自动取款机是和服务器是连网的,这就涉及到安全的问题本系统能够有效地解决这个问题。
但是本程序也使用户操作时间增加,在一定程度上增加了用户的抱怨率。
三.总体设计
3.1处理流程
主流程图:
用户流程:
存款流程:
取款流程:
转账流程:
查询流程
:
改密:
3.2具体模块及代码实现
1.主菜单模块(含:
存款、取款、转账、密码修改、查询余额)
存款:
个人账户上的金额加上。
取款:
个人账户上的金额减去。
转账:
涉及到两个账户其实就是下标的不同金额一个减去一个加上。
密码修改:
输入新密码、再次输入新密码判断两次密码是否相同
在用strcpy()函数将新密码当前账户下标元素密码成员
并且判断是否修改成功。
查询余额:
就是从结构体数组里面调用存金额那个成员
欢迎模块:
定义一个函数voidhuanying(),利用for循环进行字符的输出。
voidhuanying()//定义函数
{
inti;
for(i=0;
i<
10;
i++)//for循环
printf("
\n\n\n\n\n\n\n\n"
);
\t\t\t--------------------------\n"
\t\t\t
欢迎使用
\n"
\n\n\t\t希望此ATM系统可以给您带来方便!
"
\n\n\n\n\t\t\t\t正在进入"
shaohou();
//等待系统响应
system("
cls"
}
用户模块:
在此模块,从A,B,C中选择出执行的操作服务,然后进入下一个模块。
利用while语句,定义的选择函数charxuanze,实现输出。
伪代码:
voidmain()//主函数
huanying();
system("
while
(1)
charxuanze;
//定义函数
printf("
\n\n\t欢迎使用\n"
\n\n\t请选择:
\n"
\n\n\tA.开户服务\n"
\n\n\tB.登录服务\n"
\n\n\tC.退出。
\n\n\t请选择:
scanf("
%c"
&
xuanze);
switch(xuanze)
case'
a'
:
A'
kaihu();
break;
b'
B'
denglu();
c'
C'
exit(0);
default:
\n\t您的选择错误!
开户服务:
structkaihu
charname[10];
charmima[10];
doublezong;
intzhanghao;
}guke[20];
intrenshu=0;
intxianzai;
*/
#include<
stdio.h>
string.h>
stdlib.h>
conio.h>
struct
intjin_e,zong;
charname[20];
charmima[20];
voidshaohou()
inti,j;
3;
i++)
."
for(j=0;
j<
40000000;
j++)
{
;
}
voiddedaomima(charmima[])
inti=0;
{
charch;
ch=getch();
if(ch=='
\r'
)
mima[i]='
\0'
;
break;
else
\b'
if(i>
0)
\b\b"
i--;
if(i<
16)
mima[i]=ch;
*"
i++;
voidkaihu()
intk;
for(k=0;
k<
5;
k++)
\n\n\t正在进入注册页面,请稍后"
shaohou();
\n\n\t【开户服务】"
\n\n\t请输入您的:
charxingming[16];
charyanzheng[20];
scanf("
%s"
xingming);
\n\n\t请输入密码:
dedaomima(guke[renshu].mima);
\n\n\t请再次确认您的密码:
dedaomima(yanzheng);
if(strcmp(guke[renshu].mima,yanzheng)==0)
\n\n\t密码验证通过:
两次密码不相同。
请重新输入。
}while
(1)
\n\n\t请输入开户金额:
%d"
guke[renshu].jin_e);
if(guke[renshu].jin_e>
{printf("
\n\n\t开户成功,您的可用余额为:
guke[renshu].jin_e);
else
{
\n\n\t开户金额不能低于壹圆!
\n\n"
guke[renshu].zhanghao=518518+renshu;
\n\n\t您的账号是:
%d请牢记!
guke[renshu].zhanghao);
\n\n\t开户成功,是否继续?
继续请按任意键。
renshu++;
getch();
登录服务:
voiddenglu()
intq;
for(q=0;
q<
8;
q++)
\n\n\t正在进入,请稍后"
/*while
(1)
\n\n\t\t【登录服务】"
\n\n\t\t请输入账号:
intzh;
zh);
renshu;
if(zh!
=guke[i].zhanghao)
{
\n\n\t账号错误,请重新输入。
continue;
xianzai=i;
\n\n\t账号正确:
}break;
}*/
for(inti=0;
if(i==renshu)
\n\t请输入密码:
charpassword[10];
dedaomima(password);
if(strcmp(password,guke[xianzai].mima)==0)
\n\t密码正确!
}else
密码输入错误,请重新输入。
return;
fuwu();
getch();
主菜单模块:
此模块主要用于用户进行各种操作服务的选择,实现相关功能,如存款,取款,转账,密码修改,余额查询等等。
voidfuwu()
for(i;
\n\n\n\n\n\n\n"
\n\n\n\n\t\t\t正在进入服务,请稍后"
charshuru;
\n\n\t【服务】\n"
\n\n\t%d欢迎使用!
guke[i].name);
\n\t(请选择:
)\n"
\n\ta.存款服务\n"
\n\tb.取款服务\n"
\n\tc.转账服务\n"
\n\td.余额查询\n"
\n\te.密码修改\n"
\n\tf.退出\n"
\n\t请选择服务:
shuru);
switch(shuru)
case'
cunkuan();
qukuan();
//case'
zhuanzhang();
d'
D'
chaxun();
e'
E'
xiougai();
f'
F'
返回上级菜单,请按任意键"
return;
存款服务:
voidcunkuan()
\n\n\t正在进入,请稍等"
\n\n\t【存款服务】"
\n\n\t请输入您的存款金额:
intxincun;
xincun);
guke[renshu].zong=guke[renshu].jin_e+xincun;
\n\n\t您现在的可用余额为:
guke[renshu].zong);
\n\n\t是否继续?
取款服务:
voidqukuan()
\n\n\t【取款服务】"
\n\n\t请输入取款金额:
intxinqu;
xinqu);
guke[xianzai].zong=guke[renshu].zong-xinqu;
if(xinqu<
guke[renshu].zong)
\n\n\t取款成功:
%d,您现在的可用余额为:
xinqu,guke[xianzai].zong);
继续请按任意键:
查询服务:
voidchaxun()
for(inti=0;
\n\t【查询服务】"
\n\t您的可用余额为:
\n\t是否继续?
继续请按任意键."
四.接口设计
4.1外部接口
硬件接口:
包括和打印机的接口(控制打印机打发票及存款凭证等),和银行数据库主机的接口,和出钞机的接口。
对硬件的处理主要由操作系统完成,本软件只调用操作系统提供的打印,出钞等指令。
软件接口:
按照银行指定的格式与银行数据库通信,并需要预留可能在ATM上安装的其他软件的接口以便于扩充功能。
4.2部接口
1.前后台程序通信接口,包括配款提醒和维护提醒。
2.系统与数据库接口。
五.测试计划
测试日期、测试人员安排请参考测试计划;
测试用例的具体容,详见测试用例说明。
现在本小组仅以会话用例与取款用例进行对ATM机管理系统的单体测试计划;
用例
被测试的功能
初始系统状态
测试输入
期望的结果
会话用例
系统读取顾客的银行卡
系统处于ON状态,并没有为顾客提供服务
插入可读的银行卡
银行卡被接收,系统请求输入密码
系统弹出不可读取的银行卡
系统处于ON状态,当前没有为顾客提供服务
插入不可读取的银行卡
银行卡被弹出,系统显示错误信息,准备启动一个新的会话
系统接收顾客的密码
系统请求顾客输入密码
输入密码
系统显示一个事务类型菜单
系统允许顾客执行事务
系统显示事务类型菜单
执行事务
系统询问顾客是否希望执行其它事务
系统允许在一个会话中执行多个事务
系统询问是否执行其它事务
回答“是”
当顾客选择不执行其它事务时,会话结束
回答“否”
系统弹出银行卡,准备启动一个新的会话
事务用例
系统处理一个不合法的密码
插入了可读取的卡
输入不正确的密码尝试某个事务
执行非法密码
取款用例
系统提示顾客选择需要提取的现金的账户
正在显示事务类型菜单
选择取款事务
系统显示账户类型菜单
系统正确执行合法取款事务
系统显示取款金额菜单
选择系统当前拥有单小于账户余额的取款金额
系统弹出现金,打印收据,更新账户余额
系统验证是否有足够的现金,完成用户的请求
系统现有的现金数量小于顾客请求的数量
选择大于当前系统拥有现金数量的取款金额
系统将显示一个信息,提示现金不足,请重新选择取款金额
系统验证顾客账户余额是否能够满足请求的金额
系统正在请求取款金额
选择一个取款金额使得该金额小于当前系统中的现金余额但是大于用户账户余额
系统将显示一个信息位顾客提供是否执行其它事务的选项
取款事务在选择金额之前可以被顾客取消
按下“CANCEL”键
系统显示信息为顾客执行其它事务提供相关选项
取款事务在顾客请求取款金额之前的任何时候可以被取消
系统显示请求取款金额菜单
系统显示信息为顾客执行之前事务的选项
六.详细设计小结和相关说明
由于本系统最终将会运行于取款机之上,而取款机是一个典型的嵌入式设备,存容量有限,运行速度比较缓慢,故在进行系统设计的时候不仅得考虑普通取款机系统设计的一般问题,还得额外考虑相关设备的一些特性。
本详细设计有如下几个特点:
及时释放存,提高存资源利用率。
利用主菜单控制,进行功能选取,使程序简单化,模块化,清晰化。
正确合理使用多模块进行系统设计。
使用人工选择进行界面切换。