模拟ATM机存取款管理系统Word下载.docx
《模拟ATM机存取款管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《模拟ATM机存取款管理系统Word下载.docx(30页珍藏版)》请在冰豆网上搜索。
b.在使用时,分为后台管理和前台操作。
c.用户输入账户基本信息进行登录,然后方能进行下一步操作。
4.4系统流程图
4.5数据流图
4.6数据词典
数据字典是关于数据的信息的集合,也就是对数据中包含的所有元素的定义的集合,它为软件开发人员提供数据库设计的参考,并为用户了解系统时作为一个必有工具。
(1)数据项定义
名字:
用户
别名:
描述:
银行账户的持有者
定义:
用户=账户+姓名+证件号码+存款余额
位置:
全部由账户持有者所拥有
名字:
信息
别名:
描述:
银行系统用来鉴别是否有权来支配该账户存款余额的凭证
定义:
信息=账户+密码
输入到ATM
(2)操作说明
输入账户信息,就可以登陆并在ATM上进行一系列操作
选择交易类型,就可以进行相应操作
输入转账账号,就可以进行转账操作
选择对应金额,就可以取得相应数量的现金
选择余额查询,直接显示对应账号余额
4.7产品的功能
登录ATM柜员机系统,通过数据链接操作来达到独立的客户与机器交互从而进行取款、存款、转账、查询余额、修改密码、查看交易记录等业务的目的。
4.8技术可行性。
根据小组成员拥有良好的JAVA编程能力及拥有MYSQL的使用经验,再根据上述分析情况,利用现有人力和物力是具备开发此系统能力的。
对于用户来说,此系统简单、大方、美观、易懂,顾客操作根据系统提示,容易完成。
5可选方案
鉴于系统必须具有高安全性,在数据库使用上都要求具有完善的管理功能且日后数据库升级方便,因而本次使用主要根据数据库的易用性及易升级性提供两种方案。
a.采用Oracle数据库设计,这一数据库系统现在已成为主流的数据库管理系统,且易操作,易升级,因此提出这一方案。
b.采用MYSQL的数据库管理系统实现。
根据小组成员的技术,目前尚只有具备使用MYSQL数据环境开发的能力,且当前校园大多使用MYSQL作为数据库管理系统,因而第二种方案作为本次系统开发的方案。
6经济的可行性
6.1市场分析
按本软件开发方案,对于本系统软件投资方向,体现于软件开发、软件生产及软件测试。
6.2投资估计
本系统完全按开发计划进行估算,估计上网,打印需一些费用。
本系统大约总体耗费主要为时间,精力。
本系统本非收益性质开发,重要是为解决用户的需要。
7社会因素方面的可行性
7.1技术
由于用户办理银行业务时,比较拥挤,而且需要花费大量的时间,为了减少银行的业务处理压力,尽量节省人们的时间,并且可以有效解决用户信息和资金信息的繁杂问题。
7.2使用方面的可行性
此系统给银行和用户都带来了利益,同时出售此系统的技术员也获得利润,相当于定期收取租金。
有利于社会经济的发展。
8产品可检测性
8.1检测标准
软件标准:
软件规模、复杂程度、安全性、可操作性、可观察性、可控制性、冗余的大小。
8.2检测的方法
通过软件测试:
黑盒测试法:
主要在软件界面上进行的测试。
白盒测试法:
在重要逻辑路径进行测试,检测重要数据结构的有效性。
9产品的可生产性
正确性:
程序是否按程序流程图及数据字典完成程度。
可靠性:
安全运行时间越长越好。
可用性:
是否能够解决实际的存在问题。
完整性:
对未授权的人员访问此系统软件可控性强。
灵活性:
修改一个程序的工作量。
10可行性综合分析
本工程产品开发周期为2月。
要求所有数据信息的储存都由数据库来完成。
时间十分宽裕,对我们工程的进行非常有利。
11可行性结论
综上所述,本工程的技术成熟、完备,测试手段可靠,具有良好的市场拓展,因此本工程可立即开始。
二需求分析
1项目背景
在市场经济的蓬勃发展和人们日益繁忙的条件下,ATM应运而生,它可以减少银行的业务处理压力,尽量节省人们的时间,并且可以有效解决用户信息和资金信息的繁杂问题。
2任务概述
2.1目标
本系统在设计上,尽可能使流程清晰,操作灵活。
实现上应该具有如下功能:
1.采用人机对话的方式,界面美观友好。
2.为用户提供方便,快捷的业务办理功能。
3.对用户输入的数据进行检查,尽可能排除人为的错误。
4.用户可以随时查看自己的交易记录。
8.系统运行稳定,数据存储安全可靠。
2.2运行环境
CPU
Pentium41.8G以上
内存
512MB以上
硬盘空间
500MB以上
操作系统
WindowsXP或Windows7
数据库
MYSQL
开发环境
NetBeans+JDK2.1
浏览器
IE6.0以上
服务器
2.3条件和限制
2.3.1性能描述
实时性好、灵活性强、易于不同年龄阶段的人操作。
2.3.2界面要求
以Windows窗口形式显示,标题栏为ATM柜员机名称,右上角有最小化按钮、关闭按钮,不同的窗口中有不同的按钮和选择菜单。
2.3.3输入:
输入内容:
账号,储户密码,取款额,转账卡号,转账金额
储户密码:
六位整数;
存款额:
50元的倍数;
取款额,转账额:
100元的倍数;
转账卡号:
18位整数;
输入设备:
数字键盘
输出内容:
余额,输入密码提示,业务选择提示,取卡提示,交易记录
设备:
显示器;
介质:
计算机
3数据库描述
数据库是数据管理的最新技术,是计算机科学的重要分支。
十年来,数据库管理系统已从专用的应用程序包发展成为通用系统软件。
由于数据库具有数据结构化、最低冗余度、较高的程序与数据独立性、易于扩充、易于编制应用程序等优点,较大的信息系统都是建立在数据库设计之上的。
由于用到的数据表格多,另外考虑到实际情况,商品信息的更新,还有会员资料的变化,我们选用MYSQL作为数据库开发,而不用Access,主要是因为Access存放的记录,在实际运用中不适合此系统;
而MYSQL是一种常用的关系数据库,能存放和读取大量的数据,管理众多并发的用户,故选用MYSQL数据库。
4所用技术描述
NetBeans由Sun公司在2000年创立,它是开放源运动以及开发人员和客户社区的家园,旨在构建世界级的JavaIDE。
NetBeans当前可以在Solaris、Windows、Linux和MacintoshOSX平台上进行开发,并在SPL(Sun公用许可)范围内使用。
已经获得业界广泛认可,并支持NetBeans扩展IDE模块目录中大约100多个模块。
NetBeans是一个全功能的开放源码JavaIDE,可以帮助开发人员编写、编译、调试和部署Java应用,并将版本控制和XML编辑融入其众多功能之中。
NetBeans可支持Java2平台标准版(J2SE)应用的创建、采用JSP和Servlet的2层Web应用的创建,以及用于2层Web应用的API及软件的核心组的创建。
此外,NetBeans最新牒还预装了两个Web服务器,即Tomcat和GlassFish,从而免除了繁琐的配置和安装过程。
所有这些都为Java开发人员创造了一个可扩展的开放源多平台的JavaIDE,以支持他们在各自所选择的环境中从事开发工作,如Solaris、Linux、Windows或Macintosh。
5功能需求
5.1功能模块图
5.2系统模块结构图
6性能需求
本ATM柜员机的主要功能如下所述:
要求使用图形用户界面。
当输入给定的卡号和密码时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:
A、查询余额:
初始余额为10000元;
B、ATM取款:
取款不能出现负数,每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支(若能够提供与ATM机一样的取款模式就更好);
C、ATM存款:
不能出现负存款,每次存款金额为50的倍数;
一次存款不能超过10000元;
D、修改密码:
新密码长度为6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。
E、查看交易记录:
根据用户输入的查询起止时间,查询该时间段的存取款交易记录。
7数据描述
8静态数据描述
用户:
Username
用户名
Tel
电话
账户
Usernumber
账号
Password
密码
9动态数据分析
鼠标对按钮的点击
受限操作所需的密码;
输出数据:
查询余额的信息;
查询记录信息;
密码修改成功;
信息录入、删改结果(成功或失败);
10系统IPO图
IPO图是输入输出图,IPO是指结构化设计中变换型结构的输入(Input)、加工(Processing)、输出(Output)。
IPO图是对每个模块进行详细设计的工具,它是输入加工输出(INPUTPROCESSOUTPUT)图的简称,在此可以简略的描述系统的主要算法。
输入处理输出
三概要设计
1需求规定
真正的ATM针对的用户是广大消费者,但本系统设计相对简单,数据库资料也比较少,所以在应用上有一定的限制。
但总体来说可以实现ATM的基本功能。
2运行环境
硬件平台:
CPU:
Pentium41.8GHz
内存:
521MB以上
软件平台:
操作系统:
数据库:
开发工具:
JDK2.1、NetBeans
服务器:
浏览器:
IE6.0及以上版本,推荐使用IE8.0
3系统结构
系统结构根据需求规定大致分为了以下几个模块。
3.1总体层次结构图:
3.2业务流程图
4人工处理过程
该系统刚建立时,由于数据库的资料比较少,所以数据库管理员要输入大量的资料信息,逐条输入到数据库表中,这是一个比较繁琐的工程,需要花费大量的人力物力。
同时还有对数据库的维护,都需要专业人士处理。
5尚未解决的问题
由于本系统属于小组业余制作的,所以无论在功能还是数据资料方面都远远不能同网络上的那些大型软件媲美,所以在以后的时间里我们会继续不断完善其功能。
6接口设计
6.1用户接口
使用基于基本的用户界面,无论是前台的用户还是后台的相关操作都可以通过鼠标点击完成操作,编辑框用于用户输入。
6.2外部接口
按Windows应用软件用户界面的规范来设计,使用以普通页面为主的用户界面,简单易懂,方便用户操作。
1)登陆页面模块设计
与ATM柜员机打交道比较多的,也是大家对安全比较关心的问题:
密码。
所以第一个界面就是要输入密码和卡号才能继续服务。
2)主界面
主界面共有取款、存款、转账、查询余额、修改密码和查看交易记录的6项功能,用户登陆后出现此界面,可以由用户根据自己的需要选择相应的功能。
3)新品上市页面:
顾名思义,该模块是一些新上架的商品。
3)修改密码
在修改密码模块中,首先你必须要输入你的旧密码是否正确,否则就会报错。
再一个就是要两次输入你的新密码,且两次药匹配,否则也会报错,然后再重新回到修改密码的界面
4)余额查询
需要通过用户所使用的账户及密码来进行余额的查询,因为先前进行过登陆,所以这里不用再登陆,直接点击查询余额即可显示账户的实际余额。
。
5)取款
该模块是一个相对比较重要的模块,因为ATM机就要的功能就是取款业务,因此在算法以及界面设计上花的功夫也是最多的,要根据功能需要中的要求做到用户顺利地取款,用户选择取款金额,然后点击确定进行取款操作,数字按钮的个数设计比较大,方便用户操作。
6)转账
该模块中,只需要输入对方的账户号码以及转账金额就可以了,为了防止用户出错,我们还设计了密码确认这一项。
7)记录查询
可以按输入的日期进行交易记录的相关查询。
6.3内部接口
本系统使用MYSQL数据库驱动程序及接口。
7运行设计
7.1运行模块组合
本系统无论是前台模块还是后台模块,在程序打开后,用户单击导航按钮分别进入不同的子模块,再在这些模块中分别调用它们的子模块完成一系列的操作。
7.2运行控制
本软件控制流程:
主页面运行,等待用户选择导航条,根据用户的选择调用不同的模块。
7.3运行时间
各模块的运行时间比较短,不至于影响软件的质量,因此不予讨论。
8数据库设计
本系统共设计了2个数据表,分别为Trade表格和User表格
Trade表格
此表是用来保存交易记录。
CardNo是这个表格的唯一标识,Amount是交易数额,TradeDate用来记录交易时间,TradeNo是用来标记交易号码,Business是交易业务,Poundage是手续费。
User表格
此表是用来保存用户信息。
CardNo是这个表的唯一标识,username是用户名,usertel是用户手机号码,ID是用户身份证,password是用户账户的密码,balance使用户账户余额。
9系统出错处理设计
在运行本程序过程中难免会遇到这样那样的问题导致系统无法正常操作,例如加载数据库驱动程序失败、连接数据库失败、更新数据库失败等,那么怎么解决这些问题呢?
在这里我们列举一些常见的问题以及解决办法。
9.1加载数据库驱动程序失败
对于该问题,如果用户使用的是JDBC连接数据库,首先单看通过Class.forName()方法加载的驱动程序是否正确,然后查看WEB-INF/lib目录下是否存在msutil.jar、mssqlserver.jar、mabase.jar文件。
9.2更新数据库失败
更新数据库失败一般情况下是因为进行添加、删除、修改、查找的SQL语句存在错误,例如,将from写成form,或者所写的字表名与实际要操作的字表名不一致等。
10维护设计
除了严格按照软件工程的科学方法开发软件、认真建立文档、编码阶段写详细的注释外,没有特殊的维护设计。
四详细设计
1编写目的
在前面所述的基础上该阶段正式进入ATM系统软件的实际开发,本阶段完成系统的详细设计并明确系统的功能与编码。
2背景
众所周知随着信息时代科技的飞速发展和随着全球金融行业的兴起,使用ATM取款机、计算机信息技术以及计算机科学技术的发展,给人们的生活带来了天翻地覆的变化,同时这些技术在人们生活中的运用,不仅提高了银行的业务处理能力,而且大大的节省了人们取钱所花费的时间和价值;
并且在有效防止了一些非法的业务操作,对于一些复杂的信息,就能够充分的发挥它们的优越性。
说明:
a.开发的软件系统名称:
ATM系统
b.本项目的提出者:
课程设计小组
c.开发者:
d.指导老师:
3定义
什么是ATM柜员机?
ATM柜员机使用与ATM机相似的图形用户界面,当用户在登录界面输入给定的卡号和密码时,系统能登录ATM柜员机系统,通过数据链接操作来达到独立的客户与机器交互从而进行取款、存款、转账、查询余额、修改密码等业务办理的目的。
4参考资料
[1]雍俊海JAVA程序设计[M]北京:
清华大学出版社,2006
[2]张海潘软件工程导论[M]北京:
清华大学出版社,2010
[3]耿祥义JAVA面向对象程序设计[M]北京:
5程序系统的结构
本系统的总功能可以划分为6大块,就是转账、存款、取款、查询余额、修改密码以及查看交易记录几项大功能(子系统)。
6输入输出
7界面设计
一个系统界面的好坏直接影响到用户的操作,界面设计要求样式美观、简单明了、方便易操作。
我设计的界面主要分为窗体、菜单、按钮和文本输入框几个部分,分别执行相应的操作。
7.1窗体设计
窗体整个框架使用Frame类构造,Frame有自己的外边框和自己的标题,创建Frame时可以指定其窗口标题,我创建的窗口标题是各个不同功能的模块的名字,比如说查询余额,还有取款等。
向Frame窗口中添加组件使用add()。
例如:
button1=newButton("
存款"
);
p1.add(button1);
我所设计的窗口的主要结构的特点就是每个窗口都对应着一个特定的功能。
比如说报各种各样的错,还有各种查询余额、取款、选择服务等,所以它们都是由各种按钮和文本框,标签组成的,而联系各个窗体成为一个整体的就是各个按钮的监听事件。
所以整个设计就趋向简单化了。
为了定义各个按钮所对应的命令和操作,首先需要将各个按钮注册给实现了动作事件的监听接口ActionListener的监听者,然后为监听者定义actionPerformed(ActionEvente)方法,在这个方法中调用e.getSource()来判断用户点击的菜单子项,并完成这个菜单子项定义的操作。
7.2主要模块设计
7.2.1登陆页面模块设计
文本区调用publicStringgetText()方法,获取用户想要的字符串。
用来判断输入的密码和卡号是否正确,如果不正确的话,则弹出密码或卡号错误的警告框,并用dispose()关掉窗口。
7.2.2主界面
部分代码如下:
privatevoidjButton1MouseClicked(java.awt.event.MouseEventevt){//GEN-FIRST:
event_jButton1MouseClicked
newZhuanZhang(this).setVisible(true);
this.dispose();
}
7.2.3修改密码
再一个就是要两次输入你的新密码,且两次药匹配,否则也会报错,然后再重新回到修改密码的界面。
在修改密码时用到的方法为:
StringpatternStr="
[0-9a-zA-Z]{6}"
;
StringnewPwd1=jPasswordField1.getText();
8主要模块界面设计
1登陆界面
登录模块依然采用的是用户名和密码验证的方式,首先需要用户输入用户名和密码然后点击确认进行验证,这里涉及到一组输入位数的问题,系统规定用户需要输入18位的用户名和6位的密码。
2主界面
主界面的设计主要是设计了查询余额、取款、存款、转账、密码更改及退出按钮等ATM的一些标准操作界面。
3存款界面
此模块是用户登录成功后需要存款时的操作界面,在这个界面中输入存款金额,点击确定按钮后进行存款操作。
4余额查询界面
在此模块中,需要通过用户所使用的账户及密码来进行余额的查询,因为先前进行过登陆,所以这里不用再登陆,直接点击查询余额即可显示账户的实际余额。
5密码修改界面
因为先前已经用密码登陆,故此处不需要用户输入旧密码,直接两次输入新密码进行确认,然后系统会给出成功的提示信息。
6取款界面
取款模块是一个相对比较重要的模块,因为ATM机就要的功能就是取款业务,因此在算法以及界面设计上花的功夫也是最多的,要根据功能需要中的要求做到用户顺利地取款,用户选择取款金额,然后点击确定进行取款操作,数字按钮的个数设计比较大,方便用户操作。
7转账界面
在转账模块中,只需要输入对方的账户号码以及转账金额就可以了,为了防止用户出错,我们还设计了密码确认这一项。
8记录查询界面
9异常处理情况说明
(1)打开、保存文件时的异常处理
需要处理的异常:
IOException
(2)数据库访问时的异常处理
SQLException
(3)加载类时的异常处理
ClassNotFindException,当应用程序试图使用Class类中的forName方法通过字符串名加载类时,但是没有找到具有指定名称的类的定义。
五代码(见附录)
六测试
1测试方案
考虑到各种因素和条件的限制,我们决定采用黑盒测试方案(又称功能测试,其测试用例完全是根据程序的功能说明来设计的)。
即我们不考滤所编写程序的具体结构,而是根据软件所需要的输入数据的格式以及应该完成的功能,设计一些合法的测试用例和不合法的测试用例,特别是根据边界条件设计一些边界测试用例。
以检查系统是否能正确的完成预订功能,得到希望的输出。
或者是对不合法的输入和操作能够正确的识别和防御。
黑盒法是最基本的测试法,主要测试软件能否满足功能要求。
2测试项目
应该注意到,在本系统中从总体上分为了转账、选择服务、存款、取款、查询余额、修改密码以及查看交易记录模块设计。
我们在设计测试用例的时候应该选择有代表的,可以用最小的工作量完成对整个系统的测试。
3测试方法
3.1单元测试
1)模块接口
参数的数目、次序与变元的是否相一致;
全局变量的定义和用法在各个模块中是否也相一致。