当前位置:文档之家› ATM自动取款机系统—详细设计说明书

ATM自动取款机系统—详细设计说明书

文档名称:详细设计说明书项目名称:ATM自动取款机系统编写:张恒友审核:王旭日期:2016年6月5日院系:计算机学院专业:计算机科学与技术一.引言1.1编写目的根据《需求规格说明书》,在仔细考虑讨论之后,我们又进一步对《ATM自动取款机系统》软件的功能划分、数据结构、软件总体结构进行设计,从而完成概要设计,作为软件详细设计的基础。

1.2项目背景项目委托单位:计算机学院软件工程实验。

开发单位:班ATM自动取款机系统项目组。

由于柜台常常会拥挤,排队的人很多,而且大多数的客户都是取款,存款等,而有些办理业务的需要一定的时间,这会使得一些只需要取款等的客户会有较长时间的等待。

所以银行希望设计一个系统,能让客户在系统上进行简单的操作,比如存款、取款、查询余额、转账等。

1.3定义ATM: Automatic Teller Machine,自动柜员机。

1.4参考资料《计算机软件需求说明编制指南》《计算机软件产品开发文件指南》《ATM系统可行性分析报告》。

《软件设计与体系结构》《软件工程——实践者的研究方法》二.任务概述2.1目标现如今,ATM在一定程度上存在很大的安全隐患,给用户造成很大的经济损失。

为了解决这样的问题,我们小组提出了改进ATM自动取款机系统,使用户在操作过程中更加安全,放心,更便捷。

2.2运行环境硬件环境:CPU:1GHZ及以上内存:1G以上硬盘:20G以上软件环境:操作系统:Microsoft Windows XP或更高版本数据库:Microsoft SQL Server 2005Web服务器:Tomcat5.0以上支持浏览器:Internet Explorer 7.0及其以上版本开发环境:MyEclipse,jdk,Microsoft SQL Server 20052.3条件与限制随着科技的发展,人们生活水平的不断提高,高性能高效率高安全的产品越来越受到人们的欢迎。

ATM自动取款机是一种非常智能的机器,人们可以直接和它交互,代替以前的手工操作,大大提高了银行的工作效率。

同时也给广大用户带来了非常大的方便。

由于ATM自动取款机是和服务器是连网的,这就涉及到安全的问题本系统能够有效地解决这个问题。

但是本程序也使用户操作时间增加,在一定程度上增加了用户的抱怨率。

三.总体设计3.1处理流程主流程图:用户流程:存款流程:取款流程:转账流程:查询流程改密:3.2具体模块及代码实现1. 主菜单模块(含:存款、取款、转账、密码修改、查询余额)存款:个人账户上的金额加上。

取款:个人账户上的金额减去。

转账:涉及到两个账户其实就是下标的不同金额一个减去一个加上。

密码修改:输入新密码、再次输入新密码判断两次密码是否相同在用strcpy()函数将新密码当前账户下标元素密码成员并且判断是否修改成功。

查询余额:就是从结构体数组里面调用存金额那个成员欢迎模块:定义一个函数void huanying(),利用for循环进行字符的输出。

void huanying() //定义函数{inti;for(i=0;i<10;i++) //for循环{printf("\n\n\n\n\n\n\n\n");printf("\t\t\t --------------------------\n");printf("\t\t\t欢迎使用\n");printf("\t\t\t --------------------------\n");printf("\n\n\t\t希望此ATM系统可以给您带来方便!");printf("\n\n\n\n\t\t\t\t正在进入");shaohou(); //等待系统响应system("cls");printf("\n\n\n\n\n\n\n\n");}}用户模块:在此模块,从A,B,C中选择出执行的操作服务,然后进入下一个模块。

利用while语句,定义的选择函数char xuanze,实现输出。

伪代码:void main() //主函数{huanying();system("cls");while(1){char xuanze; //定义函数system("cls");printf("\n\n\t欢迎使用\n");printf("\n\n\t请选择:\n");printf("\n\n\tA.开户服务\n");printf("\n\n\tB.登录服务\n");printf("\n\n\tC.退出。

\n");printf("\n\n\t请选择:");scanf("%c",&xuanze);switch(xuanze){case'a':case'A':kaihu();break;case'b':case'B':denglu();break;case'c':case'C':exit(0);default:printf("\n\t您的选择错误!");break;}}}开户服务:structkaihu{char name[10];char mima[10];double zong;intzhanghao;}guke[20];intrenshu=0;intxianzai;*/#include <stdio.h>#include <string.h>#include <stdlib.h>#include <conio.h>struct{intjin_e,zong; intzhanghao;char name[20];char mima[20];}guke[20];intrenshu=0;intxianzai;void shaohou(){inti,j;for(i=0;i<3;i++){printf(".");for(j=0;j<40000000;j++) {;}}}void dedaomima(char mima[]) {inti=0;while(1){ char ch;ch=getch();if(ch=='\r'){mima[i]='\0';printf("\n");break;}else{if(ch=='\b'){if(i>0){printf("\b \b");i--;}}else{if(i<16){mima[i]=ch;printf("*");i++;}}}}}void kaihu(){int k;for(k=0;k<5;k++){printf("\n\n\t正在进入注册页面,请稍后"); shaohou();system("cls");}while(1){printf("\n\n\t【开户服务】");printf("\n\n\t请输入您的姓名:");char xingming[16];char yanzheng[20];scanf("%s",xingming);printf("\n\n\t请输入密码:");dedaomima(guke[renshu].mima);printf("\n\n\t请再次确认您的密码:");dedaomima(yanzheng);if(strcmp(guke[renshu].mima,yanzheng)==0){printf("\n\n\t密码验证通过:");break;}else{printf("两次密码不相同。

请重新输入。

");system("cls");}}while(1){printf("\n\n\t请输入开户金额:");scanf("%d",&guke[renshu].jin_e);if(guke[renshu].jin_e>0){ printf("\n\n\t开户成功,您的可用余额为:%d",guke[renshu].jin_e); break;}else{printf("\n\n\t开户金额不能低于壹圆!\n\n");system("cls");}}guke[renshu].zhanghao=518518+renshu;printf("\n\n\t您的账号是:%d请牢记!\n",guke[renshu].zhanghao); printf("\n\n\t开户成功,是否继续?继续请按任意键。

\n");renshu++;getch();}登录服务:void denglu(){int q;for(q=0;q<8;q++){printf("\n\n\t正在进入,请稍后"); shaohou();system("cls");}/*while(1){printf("\n\n\t\t【登录服务】");printf("\n\n\t\t请输入账号:");intzh;scanf("%d",&zh);inti;for(i=0;i<renshu;i++){if(zh!=guke[i].zhanghao){printf("\n\n\t账号错误,请重新输入。

"); continue;}else{xianzai=i;printf("\n\n\t账号正确:");}}break;}*/printf("\n\n\t\t【登录服务】");printf("\n\n\t\t请输入账号:");intzh;scanf("%d",&zh);for(inti=0;i<renshu;i++){if(zh!=guke[i].zhanghao){i++;if(i==renshu){printf("\n\n\t账号错误,请重新输入。

相关主题