模拟ATM机存取款管理系统
课程设计
题目:ATM柜员机系统
专业:计算机科学与技术
学号:
班级:
学生姓名:
一可行性研究
1编写目的
1.1 目的
这份可行性研究报告是对ATM柜员机的可行性研究分析及指出存在的必要性。
1.2 预期的读者
软件管理人员、开发人员、维护人员、顾客用户。
2 问题定义
2.1 ATM柜员机介绍
ATM柜员机使用与ATM机相似的图形用户界面,当用户在登录界面输入给定的卡号和密码时,系统能登录ATM柜员机系统,通过数据链接操作来达到独立的客户与机器交互从而进行取款、存款、转账、查询余额、修改密码等业务办理的目的。
2.2 基本目标
ATM柜员机主要是由各个实体窗口组成,它是由登录页面、选择服务、存款、取款、查询余额、修改密码以及查看交易记录等功能。它的各种按钮的事件和功能可以简单的模拟ATM柜员机的要求,让用户在电脑上可以轻松体验ATM取款机的使用流程,以达到易学易用的效果,避免用户在真实的ATM机上出现失误,带来不必要的损失。
2.3 经济目标
由于本软件的主要背景(为课程设计)在经济上不注重直接的经济收益,而是注重小组成员整体水平的提高。
3 可行性研究的方法及评价度
3.1 可行性研究所采用的方法
根据调查,本小组成员多数有JAVA编程经验,也具备MY SQL的使用经验,因而开发此系统采用JAVA结合MY SQL的数据库系统开发。
3.2 评价尺度
此软件暂时只是一个初级产品,实现的功能也只能完成初步的工作。
4 工作产品
4.1 设计目标
为了减少银行的业务处理压力,尽量节省人们取钱所花费的时间和价值;并且尽可能的防止一些非法的业务操作,同时它的使用可以有效解决用户信息和资金信息的繁杂问题。
4.2 设计及约束条件
a. ATM面向客户十分广泛,所以界面设计要力求简单明了,只要认识汉字并具备实际行动能力的人,就可以顺利进行操作,对于用户输入的数据,系统能进行严格的数据检验,尽可能的排除人为地错误。
b. 开发人员应具备相应的开发能力,懂C++ 与java编程,小组成员能够根据计划的要求,按时完成系统的每一部分,保证后面的开发进程可以顺利进行。但根据现有条件和知识,我们还得在技术方面进行学习和提高。
4.3 工作原理
a. 先建立数据库且追建数据库的驱动程序。
b. 在使用时,分为后台管理和前台操作。
c. 用户输入账户基本信息进行登录,然后方能进行下一步操作。
4.4 系统流程图
4.5 数据流图
4.6 数据词典
数据字典是关于数据的信息的集合,也就是对数据中包含的所有元素的定义的集合,它为软件开发人员提供数据库设计的参考,并为用户了解系统时作为一个必有工具。
(1)数据项定义
名字:用户
别名:
描述:银行账户的持有者
定义:用户=账户+姓名+证件号码+存款余额
位置:全部由账户持有者所拥有
名字:信息
别名:
描述:银行系统用来鉴别是否有权来支配该账户存款余额的凭证
定义:信息=账户+密码
位置:输入到ATM
(2)操作说明
输入账户信息,就可以登陆并在ATM上进行一系列操作
选择交易类型,就可以进行相应操作
输入转账账号,就可以进行转账操作
选择对应金额,就可以取得相应数量的现金
选择余额查询,直接显示对应账号余额
4.7 产品的功能
登录ATM柜员机系统,通过数据链接操作来达到独立的客户与机器交互从而进行取款、存款、转账、查询余额、修改密码、查看交易记录等业务的目的。
4.8 技术可行性。
根据小组成员拥有良好的JAVA编程能力及拥有MY SQL的使用经验,再根据上述分析情况,利用现有人力和物力是具备开发此系统能力的。对于用户来说,此系统简单、大方、美观、易懂,顾客操作根据系统提示,容易完成。
5 可选方案
鉴于系统必须具有高安全性,在数据库使用上都要求具有完善的管理功能且日后数据库升级方便,因而本次使用主要根据数据库的易用性及易升级性提供两种方案。
a. 采用Oracle数据库设计,这一数据库系统现在已成为主流的数据库管理系统,且易操作,易升级,因此提出这一方案。
b. 采用MY SQL的数据库管理系统实现。
根据小组成员的技术,目前尚只有具备使用MY SQL数据环境开发的能力,且当前校园大多使用MY SQL作为数据库管理系统,因而第二种方案作为本次系统开发的方案。
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 运行环境
2.3 条件和限制
2.3.1性能描述
实时性好、灵活性强、易于不同年龄阶段的人操作。
2.3.2界面要求
以Windows窗口形式显示,标题栏为ATM柜员机名称,右上角有最小化按钮、关闭按钮,不同的窗口中有不同的按钮和选择菜单。
2.3.3输入:
输入内容:账号,储户密码,取款额,转账卡号,转账金额
储户密码:六位整数;
存款额:50元的倍数;
取款额,转账额:100元的倍数;
转账卡号:18位整数;
输入设备:数字键盘
输出内容:余额,输入密码提示,业务选择提示,取卡提示,交易记录
设备:显示器;
介质:计算机
3数据库描述
数据库是数据管理的最新技术,是计算机科学的重要分支。十年来,数据库管理系统已从专用的应用程序包发展成为通用系统软件。由于数据库具有数据结构化、最低冗余度、较高的程序与数据独立性、易于扩充、易于编制应用程序等优点,较大的信息系统都是建立在数据库设计之上的。
由于用到的数据表格多,另外考虑到实际情况,商品信息的更新,还有会员资料的变化,我们选用MY SQL作为数据库开发,而不用Access,主要是因为Access 存放的记录,在实际运用中不适合此系统;而MY SQL是一种常用的关系数据库,能存放和读取大量的数据,管理众多并发的用户,故选用MY SQL数据库。
4 所用技术描述
NetBeans 由Sun公司在2000年创立,它是开放源运动以及开发人员和客户社区的家园,旨在构建世界级的Java IDE。NetBeans当前可以在Solaris、Windows、Linux
和Macintosh OS X平台上进行开发,并在SPL(Sun公用许可)范围内使用。已经获得业界广泛认可,并支持NetBeans扩展IDE模块目录中大约100多个模块。NetBeans是一个全功能的开放源码Java IDE,可以帮助开发人员编写、编译、调试和部署Java应用,并将版本控制和XML编辑融入其众多功能之中。NetBeans 可支持Java 2平台标准版
(J2SE)应用的创建、采用JSP和Servlet的2层Web应用的创建,以及用于2层Web应用的API及软件的核心组的创建。此外,NetBeans 最新牒还预装了两个Web服务器,即Tomcat和GlassFish,从而免除了繁琐的配置和安装过程。所有这些都为Java开发人员创造了一个可扩展的开放源多平台的Java IDE,以支持他们在各自所选择的环境中从事开发工作,如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 静态数据描述
用户:
User
用户名
name
Tel电话
账户
9动态数据分析
鼠标对按钮的点击
受限操作所需的密码;
输出数据:
查询余额的信息;
查询记录信息;
密码修改成功;
信息录入、删改结果(成功或失败);
10系统IPO图
IPO图是输入输出图,IPO是指结构化设计中变换型结构的输入(Input)、加工(Processing)、输出(Output)。IPO图是对每个模块进行详细设计的工具,它是输入加工输出(INPUT PROCESS OUTPUT)图的简称,在此可以简略的描述系统的主要算法。
三概要设计
1 需求规定
真正的ATM针对的用户是广大消费者,但本系统设计相对简单,数据库资料也比较少,所以在应用上有一定的限制。但总体来说可以实现ATM的基本功能。
2 运行环境
硬件平台:
CPU:Pentium 4 1.8GHz
内存:521MB以上
软件平台:
操作系统:Windows XP或Windows 7
数据库:MY SQL
开发工具:JDK 2.1、NetBeans
服务器:
浏览器:IE 6.0及以上版本,推荐使用IE 8.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 内部接口
本系统使用MY SQL数据库驱动程序及接口。
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 维护设计
除了严格按照软件工程的科学方法开发软件、认真建立文档、编码阶段写详细的注释外,没有特殊的维护设计。