ATM取款机详细设计说明书_第1页
ATM取款机详细设计说明书_第2页
ATM取款机详细设计说明书_第3页
ATM取款机详细设计说明书_第4页
免费预览已结束,剩余28页可下载查看

下载本文档

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

文档简介

1、.产品文档详细设计文档产品版本密级文档编号201011063V123内部产品名称ATM取款机共 30页ATM取款机详细设计说明书撰写:王国君,刘博,杨雪,于少华日期:2010-11-06审核:日期:批准:日期:;.目录1. 31.331.442.52.1 ATM62.2 ATM.83.4. 93.5. 113.6. 243.7. 243.8. 253.9.263.10263.11. 263.12294.29;. 301.引言1.1编写目的ATM 机管理系统是银行业务流程过程中十分重要且必备的环节之一,在银行业务流程当中起着承上启下的作用,其重

2、要性不言而喻。但是,目前许多银行在具体的一些业务流程处理过程中仍然使用手工操作的方式来实施,不仅费时、费力,效率低下,而且无法达到理想的效果。为明确软件需求、安排项目规划与进度、组织软件开发与测试,撰写本文档,本文针对上述问题,采用软件工程的开发原理,依据软件流程过程规范,按照需求分析,概要设计,程序编码,软件应用等过程,开发了这个系统。本文档供项目经理、设计人员、开发人员参考。1.2背景软件名称: ATM 取款机任务提出者:西安石油大学计算机学院开发者:杨雪,吴昊,何雪英,于少华,王国君,刘博。用户:为与 ATM 取款机软件开发有联系的决策人,开发组人员以及使用该系统的用户。使用的计算机网络

3、:本项目使用西安石油大学计算机机器以及各开发者本人的计算机进行编程。1.3定义1. 账号:在银行中,事务应用的单个账号。账号可以为多种类型,但是至少包括支票和存款。每个顾客可以拥有多个账号。2. ATM:一个工作站终端,使得顾客能够使用现金卡在ATM 上进行自己的事务;.处理。 ATM 同顾客进行交互,收集事务信息,并发送事务信息到中心计算机,由中心计算机确认和处理信息之后,将现金通过ATM 提供给顾客。3. 银行:一个金融机构,负责保存顾客的账号信息,执行授权卡通过ATM 网访问账号。4. 银行计算机:银行拥有的计算机,同 ATM 网和银行自己的现金工作站进行交互。银行可以拥有自己的内部计算

4、机网处理账号, 但是我们只关心同网络进行交互的计算机。5. 现金卡:每张卡提供给一个银行客户,授权客户可以使用 ATM 机访问自己的账号。每张卡包含一个银行代码和一个卡号, 银行代码根据信用卡的国际标准进行编码,卡号确定卡能够访问的账户。 一张卡不能访问客户的所有账户。 每张卡只能有一个持卡人,但是多个复本可能存在,所以必须考虑从不同的ATM 机同时使用相同卡的行为。6. 客户:拥有银行的一个或者多个账号的人。客户可以包括一个人或者多个人,或者是公司。相同的人,拥有不同银行的账号被认为是不同的客户。事务:对单个客户账号的单个完整的操作请求。1.4参考资料1. C 程序设计谭浩强主编清华大学出版

5、社2.软件工程导论第三版张海藩主编清华大学出版社2. 程序系统的组织结构总体结构如下:;.ATM电账密余自自自交退子户码额动动动易卡开登修查存取转明细输返返 输 输返显返 放返输返输返入回回 入 入回示回 入回入回入回基主主 密 原主余主 需主需主转主本菜菜 码 密菜额菜 要菜要菜账菜信单单码单单 存单取单账单的号显添加成请输示功并且取转入信显示添走账新息加金额现成功;.2.1 ATM 取款活动图描述上图功能:取款开始,先插卡,确认卡是否合法,输入”true”时,就读取密码信息,提示输入密码。输入 ”false”时,系统就会提示退卡。输入密码时,如果密码正确,则会提示取款,否则提示让重新输入密

6、码,三次输入密码都错误,则系统就退卡。读取取款信息后,问是否确认取款,输入“true”时,系统就提示输入取款金额。输入 ”false”时,系统就终止取款活动。输入取款额时,系统提示是否确认取款,如果确认,就出钞,然后终止活动,否则就直接提示取卡。;.2.2 ATM 机转账活动图3. 界面显示模块设计说明3.1程序描述考虑到目前仍然有很多银行是柜台办理取款存款转账等业务,很是麻烦。所以本小组开发此软件的是为了完善银行的业务处理流程,使得银行与客户间的业务办理更方便、快捷和安全。本小组仅以设计开发的ATM机管理系统的取款子系统位例进行详细说明,该系统可以实现开户,密码修改,取款,存款,转账,查询等

7、功能,有常驻能存,没有子程序,是顺序处理。3.2功能;.ATM机取款子程序IPO图:3.3性能精度要求:取款机的各个按钮要准确映射到取款机的某个键。在主菜单界面中,通过控制相应按钮切换功能, 按功能键确认选择。 本软件要求用户输入密码用户名为字母数字或下划线,且首位不得为数字。输入密码为 6 位整数。取款及转账金额为整型数据。户源,目标账户为数据库中存在的用户名,即字母数字或下划线,且首位不得为数字。时间特性要求:a)响应时间:用户插入银行卡后,按系统提示输入相应信息,系统确认完成后,自动进入主菜单界面。在主菜单界面中,如果用户选择修改密码,先输入旧密码,在很短的时间内再输入新密码;如果用户选

8、择了存款, 系统在短时间内确认金额, 进行交易;如果用户选择了取款, 则输入金额后系统在较短时间内弹出纸币; 如果用户选择了其他选项(如交易明细查询) ,要短时间内显示相应的信息。用户交易完毕,则选择退卡,请在三十秒内拿走银行卡,否则后果自负。b)更新处理时间:;.在每次用户结束交易后,请系统及时进行信息更新。c)数据转换和传送时间:用户本次进入系统, 要与最近一次的保存进度一致。在进行各项交易中,用户的时间记录要准确,不能有延迟和提前。d)解题时间:不能出现让用户费解的信息。灵活性:a) 操作系统:该软件当遇到非预期输入数据或操作时,会进行报错处理,并要求用户重新进行输入数据或操作。b) 同

9、其他软件接口的变化:考虑到接口的变化,尽量将代码模块化, 多提供一些接口类,提高代码的可移植性。c) 运行环境的变化:由于代码输入到不同的取款机,其虚拟机可能有所不同, 所以编写代码时要考虑运行在不同平台上的问题,即代码的平台可移植性。d) 计划的变化或改进: 项目过程中可能要更改方案, 如更换背景,更换按钮风格,或者调整每次系统输出信息的时间等。 这些就要依赖于代码的可扩展性, 可以不用更改很多代码。输入输出要求:1)用户名:字母数字或下划线,且首位不得为数字。2)密码: 6 位整数。3)取款及转账金额:整型数据。4)户源,目标账户:即字母数字或下划线,且首位不得为数字。5)用户需求事务:通

10、过人机交互界面进行选择。3.4输入和输出项输入项:(只针对取款系统)名称密码金额总数类型charint;.格式*0000.00有效范围6 位100 的倍数元方式键盘输入键盘输入频度10 次5 次系统性能反应时间不反应时间能大于 10不能大于秒钟10 秒钟安全保密条10 次输入一天最多取款不件密码错误则得超过 5000 元吞卡媒体人工输入人工输入输出项:(只针对取款系统)名称金额类型int格式0000.00有效范围100 的倍数方式键盘输入频度5 次系统性能反应时间不能大于10 秒钟安全保密条件一天最多取款不得超过5000元媒体点钞机;.3.5算法1. 用户服务模块(含:开户、登陆、退出)开户:

11、输入姓名、密码、再次密码、开户金额(不低于1 块钱)填写完没问题后分配账号。(姓名、密码、开户金额、账号存入结构体数组里面)登陆:输入账户、密码判断账户是否存在,密码是否正确。登陆后进入到个人服务界面。退出:退出 ATM 就是退出程序2. 主菜单模块(含:存款、取款、转账、密码修改、查询余额)存款:个人账户上的金额加上。取款:个人账户上的金额减去。转账:涉及到两个账户 其实就是下标的不同 金额一个减去一个加上。密码修改:输入新密码、再次输入新密码判断两次密码是否相同在用 strcpy ()函数 将新密码 当前账户下标元素密码成员并且判断是否修改成功。查询余额:就是从结构体数组里面调用存金额那个

12、成员欢迎模块 :定义一个函数 void huanying() ,利用 for 循环进行字符的输出。void huanying()/定义函数int i;for(i=0;i<10;i+)/for 循环printf("nnnnnnnn");.t n");printf("ttt 欢迎使用行军蚁 ATM 系统n");t n");printf("nntt 希望行军蚁 ATM 系统可以时刻给您带来方便 !"); printf("nnnntttt 正在进入 ");shaohou();/等待系统响应syst

13、em("cls");printf("nnnnnnnn");用户模块 :在此模块,从 A,B,C 中选择出执行的操作服务,然后进入下一个模块。利用 while 语句,定义的选择函数 char xuanze ,实现输出。伪代码:void main()/主函数huanying();system("cls");while(1)char xuanze;/定义函数system("cls");printf("nnt 欢迎使用行军蚁ATM 系统 n");printf("nnt 请选择您要执行的操作 :

14、n");printf("nntA. 开户服务 n");printf("nntB. 登录服务 n");printf("nntC. 退出。 n");printf("nnt 请选择: ");.scanf("%c",&xuanze);switch(xuanze)case'a':case'A':kaihu();break;case'b':case'B':denglu();break;case'c':case&

15、#39;C':exit(0);default:printf("nt您的选择错误 !");break;开户服务:struct kaihuchar name10;char mima10;double zong;int zhanghao;guke20;int renshu=0;int xianzai;*/#include <stdio.h>#include <string.h>#include <stdlib.h>#include <conio.h>.structint jin_e,zong;int zhanghao;cha

16、r name20;char mima20;guke20;int renshu=0;int xianzai;void shaohou()int i,j;for(i=0;i<3;i+)printf(".");for(j=0;j<40000000;j+);void dedaomima(char mima)int i=0;while(1) char ch; ch=getch(); if(ch='r');.mimai='0'printf("n");break;elseif(ch='b')if(i>0

17、)printf("b b");i-;elseif(i<16)mimai=ch;printf("*");i+;void kaihu()int k;for(k=0;k<5;k+);.printf("nnt 正在进入注册页面,请稍后");shaohou();system("cls");while(1)printf("nnt 【开户服务】 ");printf("nnt 请输入您的姓名 :");char xingming16;char yanzheng20;scanf(&q

18、uot;%s",xingming);printf("nnt 请输入密码 :");dedaomima(gukerenshu.mima);printf("nnt 请再次确认您的密码 :");dedaomima(yanzheng);if(strcmp(gukerenshu.mima,yanzheng)=0)printf("nnt 密码验证通过 :");break;elseprintf(" 两次密码不相同。请重新输入。");system("cls");while(1);.printf(&quo

19、t;nnt 请输入开户金额 :");scanf("%d",&gukerenshu.jin_e);if(gukerenshu.jin_e>0) printf("nnt 开户成功,您的可用余额为 :%d",gukerenshu.jin_e); break;elseprintf("nnt 开户金额不能低于壹圆 !nn");system("cls");gukerenshu.zhanghao=518518+renshu;printf("nnt 您的账号是 :%d 请牢记 !n",g

20、ukerenshu.zhanghao); printf("nnt 开户成功,是否继续 ?继续请按任意键。 n");renshu+;getch();登录服务:void denglu()int q;for(q=0;q<8;q+)printf("nnt 正在进入,请稍后 ");shaohou();system("cls");./*while(1)printf("nntt 【登录服务】 ");printf("nntt 请输入账号: ");int zh;scanf("%d",&a

21、mp;zh);int i;for(i=0;i<renshu;i+)if(zh!=gukei.zhanghao)printf("nnt 账号错误,请重新输入。");continue;elsexianzai=i;printf("nnt 账号正确 :");break;*/printf("nntt 【登录服务】 ");printf("nntt 请输入账号: ");int zh;scanf("%d",&zh);for(int i=0;i<renshu;i+)if(zh!=gukei.z

22、hanghao);.i+;if(i=renshu)printf("nnt 账号错误,请重新输入。");continue;elsexianzai=i;printf("nnt 账号正确 :");break;for(i=0;i<3;i+)printf("nt 请输入密码 :");char password10;dedaomima(password);if(strcmp(password,gukexianzai.mima)=0)printf("nt 密码正确 !");break;elseprintf(" 密

23、码输入错误,请重新输入。");return;getch();.fuwu();getch();主菜单模块:此模块主要用于用户进行各种操作服务的选择,实现相关功能,如存款,取款,转账,密码修改,余额查询等等。void fuwu()int i=0;for(i;i<8;i+)printf("nnnnnnn");printf("nnnnttt正在进入服务 ,请稍后 ");shaohou();system("cls");while(1)char shuru;system("cls");printf("

24、nnt 【服务】 n");printf("nnt%d 晚上好 ,行军蚁银行欢迎您 .n",); printf("nt( 现在暂时恢复存款服务、取款服务、余额查询。 )n"); printf("nta. 存款服务 n");printf("ntb. 取款服务 n");printf("ntc. 转账服务 n");printf("ntd. 余额查询 n");printf("nte. 密码修改 n");.printf("ntf

25、. 退出 n");printf("nt 请选择服务: ");scanf("%c",&shuru);switch(shuru)case 'a':case 'A':cunkuan();break;case 'b':case 'B':qukuan();break;/ case 'c':/ case 'C':zhuanzhang();break; case 'd':case 'D':chaxun();break;/ c

26、ase 'e':/ case 'E':xiougai();break; case 'f':case 'F':printf(" 返回上级菜单 ,请按任意键 ");return; default:printf("nt 您的选择错误 !");break;存款服务:void cunkuan()for(int i=0;i<5;i+)printf("nnt 正在进入 ,请稍等 ");shaohou();system("cls");.printf("

27、nnnnnnn");printf("nnt 【存款服务】 ");printf("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;

28、i<5;i+)printf("nnt 正在进入 ,请稍等 ");shaohou();system("cls");printf("nnt 【取款服务】 ");printf("nnt 请输入取款金额 :");int xinqu;scanf("%d",&xinqu);gukexianzai.zong=gukerenshu.zong-xinqu;if(xinqu<gukerenshu.zong)printf("nnt 取款成功 :%d, 您现在的可用余额为 :%d"

29、;,xinqu,gukexianzai.zong);printf("nnt 是否继续 ?继续请按任意键 :");.getch();查询服务:void chaxun()for(int i=0;i<5;i+)printf("nnt 正在进入 ,请稍等 ");shaohou();system("cls");printf("nt 【查询服务】 ");printf("nt 您的可用余额为 :%d",gukerenshu.jin_e);printf("nt 是否继续 ?继续请按任意键 .&q

30、uot;);getch();.3.6流程逻辑3.7接口1、本程序所隶属的上一层模块结构图:;.2、本程序隶属的下一层模块:本小组考虑到本程序已经是属于ATM管理系统系统层次的ATM事物处理层,所以没有下一层模块。3、与本程序直接关联的C语言知识欢迎模块 :void huanying()开户服务: struct kaihu登录服务: void denglu()主菜单模块: void main()void fuwu()void cunkuan()void qukuan()void chaxun()3.8存储分配在欢迎界面,用户服务模块,主菜单模块使用之后到用户开始实现功能之前,其需要的所有内容以及

31、使用功能的信息本身全部常驻内存。用户选择退出时,系统自动保存相关信息。;.3.9注释设计各个模块中的注释主要用来注释相关函数的主要作用,和主要的实现原理。而程序中的注释主要用于对一些主要方法进行注释,以方便系统编码人员对整个设计思想的理解, 也便于其他阅读人员更好的理解本程序。其中注释的风格全部按照 C 语言规定的风格。3.10限制条件不足之处:由于本小组知识范围所限, 软件开发的经验严重不足, 对数据库管理工具还没有学习,只是用 C 语言相关知识进行编程,所以对系统开发的进度以及系统功能的实现程度较难控制。已具备的条件:1、小组成员交流比较方便,而且共同写作,积极进取。2、实现系统所需的资料准备得较齐全。尚需补充的条件:1、提高开发人员的编程能力和对软件工程思想的认识;2、尽快掌握 C 语言的使用方法。3.11 测试计划测试日期、测试人员安排请参考测试计划;测试用例的具体内容,详见测试用例说明。现在本小组仅以会话用例与取款用例进行对 ATM 机管理系统的单体测试计划;用例会话用例被测试的功能初始系统状态测试输入期望的结果系统读取顾客系统处于ON状插入可读的银银行卡被接收,态,并没有为顾系统请求输入;.的银行卡会话用例系统弹出不可读取的银行卡客提供服务行卡密码系统处于 ON状插入不可读取银行卡被弹出,态,当前没有为的银行卡系统显示错误顾客提供服务信息,

温馨提示

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

评论

0/150

提交评论