银行ATM系统软件工程设计报告.docx

上传人:b****8 文档编号:23878230 上传时间:2023-05-21 格式:DOCX 页数:24 大小:48.67KB
下载 相关 举报
银行ATM系统软件工程设计报告.docx_第1页
第1页 / 共24页
银行ATM系统软件工程设计报告.docx_第2页
第2页 / 共24页
银行ATM系统软件工程设计报告.docx_第3页
第3页 / 共24页
银行ATM系统软件工程设计报告.docx_第4页
第4页 / 共24页
银行ATM系统软件工程设计报告.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

银行ATM系统软件工程设计报告.docx

《银行ATM系统软件工程设计报告.docx》由会员分享,可在线阅读,更多相关《银行ATM系统软件工程设计报告.docx(24页珍藏版)》请在冰豆网上搜索。

银行ATM系统软件工程设计报告.docx

银行ATM系统软件工程设计报告

西安邮电学院

 

软件工程报告

 

学院名称

计算机学院

学生姓名

专业名称

网络工程

班级

 

PartA:

•WhatisSoftwareEngineering(SE)

软件工程是一门工程学科,涉及软件生产的各个方面,从最初的系统描述一直到使用后的维护,都属于其学科范畴。

软件工程人员运用的是系统的、有组织的的工作方法,这种方法对于制作高质量的软件是最有效的。

•HowmanydifferentpartsinSEdevelopment

(1).问题的定义以及规划;

(2).需求分析;

(3).软件设计;

(4).程序编码;

(5).软件测试;

(6).软件维护。

•WhatisSoftwareProcesses

软件过程是指制作软件产品的一组活动及其结果。

所有的软件工程都包含:

(1).软件描述;

(2)软件开发;

(3)软件的有效性验证;

(4)软件进化。

•Softwaredevelopment(Technologyandmethod)

软件工程方法是一种软件开发的结构化方法,其目的在于提高软件质量的同时,使其性价比较高。

结构化分析方法(DeMarco,1978)和JSD方法(Jackson,1983)在20世纪70年代首次开发出来,这些方法旨在识别系统中基本的功能模块,面向功能的方法现在仍被广泛应用。

在20世纪80到90年代,Booch(1994)和Rumbaugh(1991)等人又提出了面向对象的方法。

现在这些不同的方法已经被集成了一种方法——统一建模语言(UML)。

•ProjectandProjectmanagement

软件项目管理者和其他的工程项目管理者的工作性质是相同的,然而,软件工程管理与其他的工程管理相比,在很多方面是有显著的区别的。

(1).软件产品是无形的;

(2).没有标准的软件过程;

(3).大型软件项目常常是“一次性”项目。

 

一、需求分析

由于经济社会发展速度的大幅提高,几乎所有的银行都配备了不用繁琐的人工操作的ATM自动取款机。

人们可以随时随地进行交易,不再受银行的服务时间的约束,取款时也为人们节省了很多时间,方便快捷。

这个项目的开发是为银行提供一套高效稳定可靠的终端服务平台,为储户登录,存款,取款,查询,打印凭条等操作提供便利,尤其是在ATM机出现故障的情况下,提供了故障恢复的功能。

二、软件设计

本系统相应的需求有以下方面:

(1)能够读取和存储客户账户中的存取款信息,并方便有效地进行客户选择的交易操作。

这主要包括以下内容:

1 自动调用银行总系统中客户原有信息

2 银行客户账户中的信息的查询、读取

3 客户操作的识别,及信息的录入、更新、存储

(2)能够将客户输入的信息及时上传到银行总系统中,并将客户原有信息进行自动更新。

这其中主要包括以下内容:

1 汇总客户更新的信息,直接上传到银行总系统中

2 抽调银行总系统中客户原有信息,并进行修改

3 将银行总系统中客户原有信息更新为客户最新输入的信息,并存储

(3)提供客户信息访问的权限和管理。

其中包括:

1 客户访问普通信息的权限

2 银行系统管理员对客户信息的录入、更改和删除

需要补充说明的几点有:

(1)数据保存:

需要长期保存的数据信息有

1 客户信息:

客户开通银行账户的基本信息

2 账户信息:

客户在银行的存取款信息

(2)系统用户:

银行系统管理员和客户

1 银行系统管理员:

对ATM机中的信息可进行录入、更改和删除等操作

2 客户:

在ATM机上可进行存取交易操作

 

系统的总体规划

客户端流程

三、软件开发与运行维护

由于本人水平有限以及时间仓促,暂时用C语言来实现,后期的运行维护也尚未展开。

 

#include"stdio.h"

#include"stdlib.h"

#include"string.h"

#include"conio.h"

intNo=0,m,n=0;/*记录用户账号次序变量*/

FILE*fp,*fp1;

structatmsystem

{

charzhanghao[9];/*账号*/

charpassword[11];/*密码*/

floatallmoney;/*总金额*/

}atm[30],atmtemp;/*定义30个帐户与一个临时帐户*/

 

main()/*主函数*/

{

voidkaihu();/*声明开户函数*/

intcheck();/*声明密码验证函数*/

voidservice();/*声明服务菜单函数*/

voidzhuanzhang();/*声明转帐函数*/

voidchangepw();/*声明更改密码函数*/

voidquit();/*声明退出函数*/

chara;/*菜单选择用的变量*/

if((fp=fopen("USER.txt","r"))==NULL)/*打开文件*/

{

printf("Filecannotbeopened\n");

system("pause");

return0;

}

for(m=0;!

feof(fp);m++)/*读取文件将内容存放到内存*/

fscanf(fp,"#%s%s%f\n",atm[m].zhanghao,atm[m].password,&atm[m].allmoney);

fclose(fp);/*关闭文件*/

No=m+1;

for(;;)/*循环主菜单*/

{

system("cls");/*设置清屏*/

printf("***********WelcometoATMSystem*************\n\n");

printf("Pleaseselect:

\n1.Createanewaccount\n2.CustomerService\n3.ExitSystem\n");/*输出主菜单*/

printf("--------------------------------------------\n");

scanf("%c",&a);/*接收一个数字字符*/

if(a=='1')/*判断是否是1*/

{

printf("Settinguserinformation\n");

kaihu();/*调用新开户的函数*/

printf("\nPressanykeytocontinue");

getch();

system("cls");/*设置清屏*/

}

elseif(a=='2')/*判断是否是2*/

{

if(check()==1)/*调用检查账户函数*/

service();/*认证后开始服务*/

else

{

printf("\nSorry,youhavebeenwrongfor3times.");

quit();

}

}

elseif(a=='3')/*判断是否是3*/

quit();/*退出*/

}

system("pause");

return0;

}

voidkaihu()/*定义新开帐户函数*/

{

inti,j,flag=0;

charpw,ch1;

floatmoney;

charch[7];

if(No<=30)/*判断是否有空间创建帐户*/

{

for(;;)

{

printf("PleaseenteryouraccountID:

(lessthan8characters)\n");

scanf("%s",&atmtemp.zhanghao);/*接收一个字符串*/

if(strcmp(atmtemp.zhanghao,"exit")==0)

exit

(1);

for(n=0;n<30;n++)/*验证输入的帐户和密码*/

{

if(strcmp(atm[n].zhanghao,atmtemp.zhanghao)==0)/*如果输入的帐户已经存在*/

{

printf("\nAccountalreadyexists,pleasere-enter.\nIfyouwanttoexit,pleaseenter'exit'whenyouenterID.\nPressanykeytocontinue.\n\n");/*帐户已经存在,请重新输入*/

getch();

break;

}

elseif(n==29)/*输入的帐户不存在,开建新帐户*/

flag=1;

}

if(flag==1)break;/*跳出检查*/

}

printf("\n");

for(j=0;j<3;j++)

{

i=0;

printf("Pleaseenteryourpassword:

(lessthan10characters)\n");

pw=getch();

while(pw!

='\r')/*接收密码*/

{

if(pw=='\b')

{

printf("\b\b");

--i;

}

else

{

putchar('*');

atmtemp.password[i++]=pw;

}

pw=getch();

}

atmtemp.password[i]='\0';

printf("\n");

printf("Pleasere-enterpassword");/*再次输入密码*/

printf("\n");

i=0;

ch1=getch();

while(ch1!

='\r')

{

if(ch1=='\b')

{

printf("\b\b");

--i;

}

else

{

putchar('*');

ch[i++]=ch1;

}

ch1=getch();

}

ch[i]='\0';

printf("\n");

if(strcmp(atmtemp.password,ch)==0)/*两次输入密码一样,继续*/

{

strcpy(atm[No-1].zhanghao,atmtemp.zhanghao);/*创建新账号*/

strcpy(atm[No-1].password,atmtemp.password);

atm[No-1].allmoney=0;/*金额的初始值为0*/

for(;;)

{

printf("Pleaseentertheamountinthefirsttime:

\n");

scanf("%f",&money);

if(money>0)/*判断是否输入错误*/

{

atm[No-1].allmoney+=money;/*总金额等于总金额加上初次存入金额*/

break;

}

elseprintf("Wrongamount.Again!

\n");

}

printf("---------------------\n");

printf("Information:

\nID:

%s\nAmount:

%.2f\n",atm[No-1].zhanghao,atm[No-1].allmoney);

printf("---------------------\n");

No++;/*帐户自增*/

break;

}

elseprintf("Pleasere-enterpassword.Youhave3timestotry!

\n");

}

}

elseprintf("Sorry,therecan'thavemoreaccount.\n");

}

intcheck()/*定义检查函数*/

{

inti,j,flag=0;/*设变量*/

charpw;

for(j=0;j<3;j++)/*让密码输入循环*/

{

i=0;

printf("PleaseenteryouraccountID:

\n");

scanf("%s",&atmtemp.zhanghao);/*输入账号*/

printf("Pleaseenteryourpassword:

\n");

pw=getch();

while(pw!

='\r')

{

if(pw=='\b')

{

printf("\b\b");

--i;

}

else

{

putchar('*');

atmtemp.password[i++]=pw;

}

pw=getch();

}

atmtemp.password[i]='\0';

printf("\n");

for(n=0;n<30;n++)/*验证输入的帐户和密码*/

if(strcmp(atm[n].zhanghao,atmtemp.zhanghao)==0&&strcmp(atm[n].password,atmtemp.password)==0)/*如果输入的帐户和密码相同*/

{

printf("\n----------------AuthenticationSuccessful----------------\n\n");/*认证成功*/

flag=1;/*而且标志为1*/

break;/*跳出内循环*/

}

if(flag==1)break;/*跳出外循环*/

if(flag==0)/*如果验证密码不通过*/

printf("Authenticationfailed!

Pleasere-enterandcannotbemuchofanerrorinthreetimes!

\n\n");/*认证失败!

请重新输入,不容许多于三次的错误!

*/

}

returnflag;

}

voidservice()/*声明服务菜单函数*/

{

inta;/*设定输入选择的变量*/

intflag=0;

floatcq,q;/*设cq存入金额的变量,q取款金额的变量*/

for(;;)

{

system("cls");

printf("Pleaseselect..............................ID:

%s\n\n",atm[n].zhanghao);

printf("\t-------------------------------------------------\n");/*输出语句-子菜单*/

printf("\t-----------1.DepositServices--------------------\n");

printf("\t-----------2.TellerService----------------------\n");

printf("\t-----------3.Transfer----------------------------\n");

printf("\t-----------4.ChangePassword---------------------\n");

printf("\t-----------5.Checktheaccountinformation-------\n");

printf("\t-----------6.Logout-----------------------------\n");

printf("\t-------------------------------------------------\n\n");

printf("\tYourchoice:

");

scanf("%d",&a);/*输入选择*/

if(a==1)/*如果选择1*/

{

for(;;)

{

printf("Pleaseentertheamountyouwantdeposited:

");/*请输入您要存入的金额*/

scanf("%f",&cq);/*输入存款的金额*/

if(cq>0)

{

atm[n].allmoney+=cq;/*余额等于余额加上存款*/

break;

}

elseprintf("Wrongenter.Again!

\n");

}

printf("------------------\n");

printf("\nTheamountofyourdeposit:

%.2f\nTotalamountofmoneyare:

%.2f\n",cq,atm[n].allmoney);/*输出存款和余额*/

printf("------------------\n");

printf("\nPressanykeytocontinue");

getch();

system("cls");/*设置清屏*/

}

elseif(a==2)/*如果选择2*/

{

for(flag=0;;)/*加入循环*/

{

if(flag)

break;/*跳出循环*/

for(;;)

{

printf("Pleaseentertheamountofmoneyyouwant:

");

scanf("%f",&q);/*输入您要取款的金额*/

if(q>0)

{

if(q>atm[n].allmoney)/*如果取款金额大于余额*/

{

printf("Youhavenotenoughbalance!

\n");/*输出"余额不足",继续循环*/

}

else/*否则*/

{

atm[n].allmoney-=q;/*余额等于原余额减去取款金额*/

printf("-----------------------\n");

printf("\nTheamountofmoneyyouwantare:

%.2f\nThebalanceare:

%.2f\n",q,atm[n].allmoney);/*输出取款金额和余额*/

printf("-----------------------\n");

printf("\nPressanykeytocontinue");

getch();

system("cls");/*设置清屏*/

flag=1;

break;/*并跳出循环*/

}

}

elseprintf("WrongEnter.Again!

\n");

}

}

}

elseif(a==3)/*如果选择3*/

{

zhuanzhang();/*调用转账函数*/

printf("\nPressanykeytocontinue");

getch();

system("cls");/*设置清屏*/

}

elseif(a==4)/*如果选择4.修改密码*/

{

changepw();/*调用修改密码的函数*/

printf("\nPressanykeytocontinue");

getch();

system("cls");/*设置清屏*/

}

elseif(a==5)/*如果选择5*/

{

printf("---------------------\n");

printf("ID:

%s\n",atm[n].zhanghao);/*输出清单:

账号*/

printf("Psaaword:

******\n");/*输出密码*/

printf("Balance:

%.2f\n",atm[n].allmoney);/*输出金额*/

printf("---------------------\n");

printf("Pressanykeytocontinue\n");

getch();

system("cls");/*设置清屏*/

}

elseif(a==6)/*如果选择是6*/

{

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1