1、ATM自动取款机系统详细设计说明书文档名称:详细设计说明书项目名称:ATM自动取款机系统编写:恒友审核:王旭日期:2016年6月5日院系:计算机学院专业:计算机科学与技术一引言1.1 编写目的根据需求规格说明书,在仔细考虑讨论之后,我们又进一步对ATM自动取款机系统软件的功能划分、数据结构、软件总体结构进行设计,从而完成概要设计,作为软件详细设计的基础。1.2 项目背景项目委托单位:计算机学院软件工程实验。开发单位:班ATM自动取款机系统项目组。由于柜台常常会拥挤,排队的人很多,而且大多数的客户都是取款,存款等,而有些办理业务的需要一定的时间,这会使得一些只需要取款等的客户会有较长时间的等待。
2、所以银行希望设计一个系统,能让客户在系统上进行简单的操作,比如存款、取款、查询余额、转账等。1.3 定义ATM: Automatic Teller Machine,自动柜员机。1.4 参考资料计算机软件需求说明编制指南计算机软件产品开发文件指南ATM系统可行性分析报告。软件设计与体系结构软件工程实践者的研究方法二 任务概述2.1目标现如今,ATM在一定程度上存在很大的安全隐患,给用户造成很大的经济损失。为了解决这样的问题,我们小组提出了改进ATM自动取款机系统,使用户在操作过程中更加安全,放心,更便捷。2.2运行环境硬件环境: CPU:1GHZ及以上 存:1G以上 硬盘:20G以上软件环境:
3、操作系统:Microsoft Windows XP或更高版本数 据 库:Microsoft SQL Server 2005 Web服务器:Tomcat5.0以上 支持浏览器:Internet Explorer 7.0及其以上版本开发环境:MyEclipse,jdk,Microsoft SQL Server 20052.3条件与限制随着科技的发展,人们生活水平的不断提高,高性能高效率高安全的产品越来越受到人们的欢迎。 ATM自动取款机是一种非常智能的机器,人们可以直接和它交互,代替以前的手工操作,大大提高了银行的工作效率。同时也给广大用户带来了非常大的方便。由于ATM自动取款机是和服务器是连网的
4、,这就涉及到安全的问题本系统能够有效地解决这个问题。但是本程序也使用户操作时间增加,在一定程度上增加了用户的抱怨率。三总体设计3.1 处理流程主流程图:用户流程:存款流程:取款流程:转账流程:查询流程:改密:3.2 具体模块及代码实现1. 主菜单模块(含:存款、取款、转账、密码修改、查询余额)存款:个人账户上的金额加上。 取款:个人账户上的金额减去。转账:涉及到两个账户 其实就是下标的不同 金额一个减去一个加上。密码修改:输入新密码、再次输入新密码 判断两次密码是否相同在用strcpy()函数 将新密码 当前账户下标元素密码成员并且判断是否修改成功。查询余额:就是从结构体数组里面调用存金额那个
5、成员欢迎模块:定义一个函数void huanying(),利用for循环进行字符的输出。void huanying() /定义函数int i;for(i=0;i10;i+) /for循环 printf(nnnnnnnn); printf(ttt -n); printf(ttt 欢迎使用 n); printf(ttt -n); printf(nntt希望此ATM系统可以给您带来方便!); printf(nnnntttt正在进入); shaohou(); /等待系统响应 system(cls); printf(nnnnnnnn);用户模块:在此模块,从A,B,C中选择出执行的操作服务,然后进入下一
6、个模块。利用while语句,定义的选择函数char xuanze,实现输出。 伪代码: void main() /主函数huanying();system(cls);while(1)char xuanze; /定义函数system(cls);printf(nnt欢迎使用n);printf(nnt请选择:n);printf(nntA.开户服务n);printf(nntB.登录服务n);printf(nntC.退出。n);printf(nnt请选择:);scanf(%c,&xuanze);switch(xuanze) casea: caseA:kaihu();break; caseb: caseB
7、:denglu();break; casec: caseC:exit(0); default:printf(nt您的选择错误!);break;开户服务:struct kaihuchar name10;char mima10;double zong;int zhanghao;guke20;int renshu=0;int xianzai;*/#include #include #include #include structint jin_e,zong; int zhanghao;char name20;char mima20;guke20;int renshu=0;int xianzai;vo
8、id shaohou()int i,j;for(i=0;i3;i+) printf(.); for(j=0;j0) printf(b b); i-; else if(i16) mimai=ch; printf(*); i+; void kaihu()int k;for(k=0;k0) printf(nnt开户成功,您的可用余额为:%d,gukerenshu.jin_e); break;else printf(nnt开户金额不能低于壹圆!nn); system(cls); gukerenshu.zhanghao=518518+renshu; printf(nnt您的账号是:%d请牢记!n,guk
9、erenshu.zhanghao); printf(nnt开户成功,是否继续?继续请按任意键。n); renshu+; getch();登录服务:void denglu()int q;for(q=0;q8;q+)printf(nnt正在进入,请稍后);shaohou();system(cls);/*while(1)printf(nntt【登录服务】);printf(nntt请输入账号:);int zh; scanf(%d,&zh);int i;for(i=0;irenshu;i+) if(zh!=gukei.zhanghao) printf(nnt账号错误,请重新输入。); continue;
10、 else xianzai=i; printf(nnt账号正确:);break;*/printf(nntt【登录服务】);printf(nntt请输入账号:);int zh; scanf(%d,&zh);for(int i=0;irenshu;i+) if(zh!=gukei.zhanghao) i+; if(i=renshu) printf(nnt账号错误,请重新输入。); continue; else xianzai=i; printf(nnt账号正确:); break; for(i=0;i3;i+) printf(nt请输入密码:); char password10; dedaomima
11、(password); if(strcmp(password,gukexianzai.mima)=0) printf(nt密码正确!); break; else printf(密码输入错误,请重新输入。); return; getch();fuwu(); getch();主菜单模块:此模块主要用于用户进行各种操作服务的选择,实现相关功能,如存款,取款,转账,密码修改,余额查询等等。void fuwu()int i=0;for(i;i8;i+) printf(nnnnnnn); printf(nnnnttt正在进入服务,请稍后); shaohou(); system(cls);while(1)c
12、har shuru;system(cls);printf(nnt【服务】n);printf(nnt%d欢迎使用!n,gukei.name);printf(nt(请选择:)n);printf(nta.存款服务n);printf(ntb.取款服务n);printf(ntc.转账服务n);printf(ntd.余额查询n);printf(nte.密码修改n);printf(ntf.退出n);printf(nt请选择服务:);scanf(%c,&shuru);switch(shuru) case a: case A:cunkuan();break; case b: case B:qukuan();br
13、eak;/ case c:/ case C:zhuanzhang();break; case d: case D:chaxun();break;/ case e:/ case E:xiougai();break; case f: case F:printf(返回上级菜单,请按任意键);return; default:printf(nt您的选择错误!);break;存款服务:void cunkuan()for(int i=0;i5;i+) printf(nnt正在进入,请稍等); shaohou(); system(cls);printf(nnnnnnn);printf(nnt【存款服务】);p
14、rintf(nnt请输入您的存款金额:);int xincun;scanf(%d,&xincun);gukerenshu.zong=gukerenshu.jin_e+xincun;printf(nnt您现在的可用余额为:%d,gukerenshu.zong);printf(nnt是否继续?继续请按任意键。);getch();取款服务:void qukuan()for(int i=0;i5;i+) printf(nnt正在进入,请稍等); shaohou(); system(cls);printf(nnt【取款服务】);printf(nnt请输入取款金额:);int xinqu;scanf(%d
15、,&xinqu);gukexianzai.zong=gukerenshu.zong-xinqu;if(xinqugukerenshu.zong)printf(nnt取款成功:%d,您现在的可用余额为:%d,xinqu,gukexianzai.zong);printf(nnt是否继续?继续请按任意键:); getch();查询服务:void chaxun() for(int i=0;i5;i+) printf(nnt正在进入,请稍等); shaohou(); system(cls); printf(nt【查询服务】); printf(nt您的可用余额为:%d,gukerenshu.jin_e);
16、 printf(nt是否继续?继续请按任意键.); getch();四接口设计4.1 外部接口硬件接口:包括和打印机的接口(控制打印机打发票及存款凭证等),和银行数据库主机的接口,和出钞机的接口。对硬件的处理主要由操作系统完成,本软件只调用操作系统提供的打印,出钞等指令。软件接口:按照银行指定的格式与银行数据库通信,并需要预留可能在ATM上安装的其他软件的接口以便于扩充功能。4.2 部接口1.前后台程序通信接口,包括配款提醒和维护提醒。2.系统与数据库接口。五测试计划测试日期、测试人员安排请参考测试计划;测试用例的具体容,详见测试用例说明。现在本小组仅以会话用例与取款用例进行对ATM机管理系统
17、的单体测试计划;用例被测试的功能初始系统状态测试输入期望的结果会话用例系统读取顾客的银行卡系统处于ON状态,并没有为顾客提供服务插入可读的银行卡银行卡被接收,系统请求输入密码会话用例系统弹出不可读取的银行卡系统处于ON状态,当前没有为顾客提供服务插入不可读取的银行卡银行卡被弹出,系统显示错误信息,准备启动一个新的会话会话用例系统接收顾客的密码系统请求顾客输入密码输入密码系统显示一个事务类型菜单会话用例系统允许顾客执行事务系统显示事务类型菜单执行事务系统询问顾客是否希望执行其它事务会话用例系统允许在一个会话中执行多个事务系统询问是否执行其它事务回答“是”系统显示事务类型菜单会话用例当顾客选择不执
18、行其它事务时,会话结束系统询问是否执行其它事务回答“否”系统弹出银行卡,准备启动一个新的会话事务用例系统处理一个不合法的密码插入了可读取的卡输入不正确的密码尝试某个事务执行非法密码取款用例系统提示顾客选择需要提取的现金的账户正在显示事务类型菜单选择取款事务系统显示账户类型菜单取款用例系统正确执行合法取款事务系统显示取款金额菜单选择系统当前拥有单小于账户余额的取款金额系统弹出现金,打印收据,更新账户余额取款用例系统验证是否有足够的现金,完成用户的请求系统现有的现金数量小于顾客请求的数量选择大于当前系统拥有现金数量的取款金额系统将显示一个信息,提示现金不足,请重新选择取款金额取款用例系统验证顾客账
19、户余额是否能够满足请求的金额系统正在请求取款金额选择一个取款金额使得该金额小于当前系统中的现金余额但是大于用户账户余额系统将显示一个信息位顾客提供是否执行其它事务的选项取款用例取款事务在选择金额之前可以被顾客取消系统显示账户类型菜单按下“CANCEL”键系统显示信息为顾客执行其它事务提供相关选项取款用例取款事务在顾客请求取款金额之前的任何时候可以被取消系统显示请求取款金额菜单按下“CANCEL”键系统显示信息为顾客执行之前事务的选项六详细设计小结和相关说明由于本系统最终将会运行于取款机之上,而取款机是一个典型的嵌入式设备,存容量有限,运行速度比较缓慢,故在进行系统设计的时候不仅得考虑普通取款机系统设计的一般问题,还得额外考虑相关设备的一些特性。本详细设计有如下几个特点:及时释放存,提高存资源利用率。利用主菜单控制,进行功能选取,使程序简单化,模块化,清晰化。正确合理使用多模块进行系统设计。使用人工选择进行界面切换。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1