搜档网
当前位置:搜档网 > ATM自动取款机系统详细设计说明书

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

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

1

2020年4月19日

文档名称:详细设计说明书

项目名称:ATM自动取款机系统编写:张恒友

审核:王旭

日期: 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

Web服务器:Tomcat5.0以上

支持浏览器:Internet Explorer 7.0及其以上版本

开发环境:MyEclipse,jdk,Microsoft SQL Server

2.3条件与限制

随着科技的发展,人们生活水平的不断提高,高性能高效率高安全的产品越来越受到人们的欢迎。 ATM自动取款机是一种非常智能的机器,人们能够直接和它交互,代替以前的手工操作,大大提高了银行的工作效率。同时也给广大用户带来了非常大的方便。由于ATM自动取款机是和服务器是连网的,这就涉及到安全的问题本系统能够有效地解决这个问题。可是本程序也使用户操作时间增加,在一定程度上增加了用户的抱怨率。

三.总体设计

3.1处理流程

主流程图:

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

用户流程:

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

存款流程:

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

取款流程:

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

转账流程:

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

查询流程

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

改密:

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

3.2具体模块及代码实现

1. 主菜单模块(含:存款、取款、转账、密码修改、查询余

额)存款:个人账户上的金额加上。

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

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

密码修改:输入新密码、再次输入新密码判断两次密码是否相同在用strcpy()函数将新密码当前账户下标元素密码成员而且判断是否修改成功。查询余额:就是从结构体数组里面调用存金额那个成员

欢迎模块:

定义一个函数void huanying(),利用for循环进行字符的输出。

void huanying() //定义函数{

int i; 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; }

}

}

开户服务:

struct kaihu {

char name[10]; char mima[10]; double zong; int zhanghao; }guke[20];

int renshu=0; int xianzai;*/ #include #include #include #include struct

{

int jin_e,zong; int zhanghao; char name[20]; char mima[20]; }guke[20];

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')

{

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请输入账号:"); int zh; scanf("%d",&zh);

int i; for(i=0;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请输入账号:"); int zh; scanf("%d",&zh);

for(int i=0;i

if(zh!=guke[i].zhanghao)

{

i++;

if(i==renshu)

{ printf("\n\n\t账号错误,请重新输入。");

相关文档