本科毕业设计atm模拟系统论文Word文档下载推荐.docx
《本科毕业设计atm模拟系统论文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《本科毕业设计atm模拟系统论文Word文档下载推荐.docx(22页珍藏版)》请在冰豆网上搜索。
作为计算机应用的一部分,使用计算机对信息进行管理,具有着人工管理无法比拟的优点,它检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等,可减少更多的人力物力,这些都能够极大地提高企业的管理效率,也是企业管理科学化、正规化,与世界接轨的重要条件。
2.
系统开发技术
本章是介绍系统实现的相关技术,对B/S开发模式、C3P0连接池、基于角色的权限管理、代码自动生成机制、多线程编程等相关技术进行了讨论。
B/S开发模式
B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。
这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。
客户机上只要安装一个浏览器(Browser),如NetscapeNavigator或InternetExplorer,服务器安装SQLServer、Oracle、MySQL等数据库。
浏览器通过WebServer同数据库进行数据交互。
作用
由于Client/Server结构存在的种种问题,因此人们又在它原有的基础上提出了一种具有三层模式(3-Tier)的应用系统结构浏览器/服务器(Browser/Server)结构。
Browser/Server结构是伴随着因特网的兴起,对Client/Server结构的一种改进。
从本质上说,Browser/Server结构也是一种Client/Server结构,它可看作是一种由传统的二层模式Client/Server结构发展而来的三层模式Client/Server结构在Web上应用的特例。
Browser/Server结构主要是利用了不断成熟的Web浏览器技术:
结合浏览器的多种脚本语言和ActiveX技术,用通用浏览器实现原来需要复杂专用软件才能实现的强大功能,同时节约了开发成本。
B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件,只要有一台能上网的电脑就能使用,客户端零安装、零维护。
系统的扩展非常容易。
B/S结构的使用越来越多,特别是由需求推动了AJAX技术的发展,它的程序也能在客户端电脑上进行部分处理,从而大大的减轻了服务器的负担;
并增加了交互性,能进行局部实时刷新。
架构特点
(1)维护和升级方式简单。
当前,软件系统的改进和升级越发频繁,B/S架构的产品明显体现着更为方便的特性。
对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。
无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;
如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。
所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。
今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。
因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。
(2)成本降低,选择更多。
大家都知道windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统上windows并不是处于绝对的统治地位。
当前的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高。
所以服务器操作系统的选择是很多的,不管选用哪种操作系统都可以让大部分人使用windows作为桌面电脑操作系统不受影响,这就使得最流行免费的Linux操作系统快速发展起来,Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。
比如说很多人每天上“新浪”网,只要安装了浏览器就可以了,并不需要了解“新浪”的服务器用的是什么操作系统,而事实上大部分网站确实没有使用windows操作系统,但用户的电脑本身安装的大部分是windows操作系统。
(3)应用服务器运行数据负荷较重。
由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。
但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。
因此,许多单位都备有数据库存储服务器,以防万一。
C3P0连接池
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。
目前使用它的开源项目有Hibernate,Spring等。
连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用。
这种把连接“汇集”起来的技术基于这样的一个事实:
对于大多数应用程序,当它们正在处理通常需要数毫秒完成的事务时,仅需要能够访问JDBC连接的1个线程。
当不处理事务时,这个连接就会闲置。
相反,连接池允许闲置的连接被其它需要的线程使用。
事实上,当一个线程需要用JDBC对一个GBase或其它数据库操作时,它从池中请求一个连接。
当这个线程使用完了这个连接,将它返回到连接池中,这样这就可以被其它想使用它的线程使用。
当连接从池中“借出”,它被请求它的线程专有地使用。
从编程的角度来看,这和用户的线程每当需要一个JDBC连接的时候调用DriverManager.getConnection()是一样的,采用连接池技术,可通过使用新的或已有的连接结束线程。
连接池可以极大的改善用户的Java应用程序的性能,同时减少全部资源的使用。
基于角色的权限管理
基于角色的访问控制(RBAC)是实施面向企业安全策略的一种有效的访问控制方式。
其基本思想是,对系统操作的各种权限不是直接授予具体的用户,而是在用户集合与权限集合之间建立一个角色集合。
每一种角色对应一组相应的权限。
一旦用户被分配了适当的角色后,该用户就拥有此角色的所有操作权限。
这样做的好处是,不必在每次创建用户时都进行分配权限的操作,只要分配用户相应的角色即可,而且角色的权限变更比用户的权限变更要少得多,这样将简化用户的权限管理,减少系统的开销。
多线程编程
通常我们把打开一个新程序,如打开QQ,这称为打开一个程序,即打开一个进程。
线程是进程中的一个实体,是被系统独立调度和分配的基本单位。
一个进程可以有多个线程,一个线程必须有一个父进程,线程自己不拥有系统资源,只有运行必须的一些数据结构,但它可以与同属一个进程的其他线程共享进程所拥有的全部资源,一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行。
由于线程之间的相互制约,致使线程在运行中呈现出间断性,线程也有就绪、阻塞、和运行3种基本状态,所以,在一个进程中可以创建几个线程来提高程序的执行效率,并且有些程序还通过采用多线程技术来同时执行多个不同的代码模块。
在一般情况下,创建一个线程是不能提高程序的执行效率的,所以要创建多个线程。
但是多个线程同时运行的时候可能调用线程函数,在多个线程同时对同一个内存地址进行写入,由于CPU时间调度上的问题,写入数据会被多次的覆盖,所以就要使线程同步。
多线程(英语:
multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。
具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。
具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处理(Chip-levelmultithreading)或同时多线程(Simultaneousmultithreading)处理器。
在一个程序中,这些独立运行的程序片段叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理(Multithreading)”。
具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程(台湾译作“执行绪”),进而提升整体处理性能。
在计算机Java编程中,一个基本的概念就是同时对多个任务加以控制。
许多程序设计问题都要求程序能够停下手头的工作,改为处理其他一些问题,再返回主进程。
可以通过多种途径达到这个目的。
多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。
线程是在同一时间需要完成多项任务的时候实现的。
开发工具介绍
程序编译工具MyEclipse
MyEclipse,是在eclipse基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、JavaEE以及移动应用的开发。
MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持相当不错。
MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。
它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。
MyEclipse是一个十分优秀的用于开发Java,J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。
MyEclipse可以支持JavaServlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC数据库链接工具等多项功能。
可以说MyEclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。
Tomcat小型服务器
Tomcat最初是由Sun的软件构架师詹姆斯·
邓肯·
戴维森开发的。
后来他帮助将其变为开源项目,并由Sun贡献给Apache软件基金会。
由于大部分开源项目O'
Reilly都会出一本相关的书,并且将其封面设计成某个动物的素描,因此他希望将此项目以一个动物的名字命名。
因为他希望这种动物能够自己照顾自己,最终,他将其命名为Tomcat(英语公猫或其他雄性猫科动物)。
而O'
Reilly出版的介绍Tomcat的书籍(ISBN0-596-00318-8)的封面也被设计成了一个公猫的形象。
而Tomcat的Logo兼吉祥物也被设计成了一只公猫。
Tomcat是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。
由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现,Tomcat5支持最新的Servlet2.4和JSP2.0规范。
因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。
目前最新版本是8.0。
Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。
对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。
实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache独立的进程单独运行的。
诀窍是,当配置正确时,Apache为HTML页面服务,而Tomcat实际上运行JSP页面和Servlet。
另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。
不过,Tomcat处理静态HTML的能力不如Apache服务器。
开源数据库MySQL
MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle公司。
MySQL是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件之一。
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。
MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。
3.
系统分析
项目概述及基本需求
。
系统可行性分析
技术可行性
B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者说是改进的结构。
用户界面完全通过浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成三层结构,是一种全新的软件系统构造技术。
这种结构的一个重要的特点是,B/S结构的特点:
几乎没有限制的客户端访问和极其简单化的应用程序部署和管理是B/S模型的优势所在,用户可以完全不需要安装客户端软件,当然也不需要担心任何软件升级和不兼容等任何客户端所遇到的问题。
根据新系统目标来衡量所需的技术是否具备,一般可从硬件、软件的性能要求、环境条件、技术人员水平和数量等方面去考虑和分析,其中开发人员的技术力量应首先考虑能力与水平,并考虑近期内可以培养和发展的技术人员。
经济可行性
利用Java开发工具MyEclipse,小型服务器tomcat,开源数据库MySQL,客户只要在任何可连接的网络上网都可以连上本系统,经济上都是可行的,而且要求不高,所以该系统的开发是可行的。
该系统只是运用软技术实现,不必添加其他的硬件设施,成本低廉,而且使用本系统可以节省时间,减少人工支出,提高工作效率。
根据经验算法,而同时又减少了数据的流通环节,不必要花费那么多的时间,也就是说最重要的是就是提高了效率,而又保证了各项数据的准确性,也避免了工作人员的流动造成的收据丢失等问题,适应了当前的发展形式。
按上述两方面进行可行性分析、研究后,我们认为该项目是可行的。
性能需求
一般的性能需求是指相互消息传递顺利,分析正确,界面友好,运行时间满足使用需要,安全性得到保证。
在开发系统的每个阶段,均需要考虑彼此间的认证与授权。
尤其是认证,简单地说就是确定谁是特定用户,并针对安全源验证该用户的身份。
在处理完识别用户的方法之后,必须利用一种方法以向用户授权,从而能够使用系统的特定功能。
也就是说,需要一种方法来决定允许特定用户进行什么样的操作。
4.
系统总体设计
系统设计是回答“概括地说,系统应该如何实现?
”这个问题。
它要完成的主要任务是划分出组成系统的物理元素,设计软件结构,也就是确定系统中每个程序是由哪些模块组成,以及各个模块之间的关系。
系统目标设计和流程设计
ATM模拟系统需要对用户的登录情况进行综合有效的管理。
系统分前台和后台两大模块,前台为普通用户登录进行操作,登录后可进行取现,存款,打印凭条,修改密码操作。
后台用户登录可查看ATM机流水信息和用户的流水信息。
用户以不同身份进行登录。
如果以高级管理员身份登录,则拥有最高权限,可配置普通管理员及职员的操作权限,可以对流水记录信息进行所有操作。
最高管理员操作流程图如图4-1所示:
图4-1管理员操作流程图
普通管理员登录后,可以管理人员信息,管理记录,可以审批信息。
普通管理员操作流程图如图4-2所示:
图4-2普通管理员操作流程图图4-3普通用户操作流程图
若用户是普通用户,则登录系统后,可以浏览个人信息,签到签退,提交申请,查看记录。
其普通用户进入系统的流程图如图4-3所示:
系统功能模块设计
模块化是指解决一个复杂问题时自上项下逐层把系统划分成若干个模块的过程。
每个模块完成一个特定的功能,所有的模块按某种方法组织起来,成为一个整体,完成整个系统所要求的功能。
为了降低系统和复杂性,提高可读性、可维护性,每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单,即尽量做到提高模块的独立,为设计高质量的系统结构奠定基础。
系统模块结构设计的任务是划分子系统,然后确定子系统的模块结构,并画出模块结构图如图4-4。
在这个过程中必须考虑以下几个问题:
(1)如何将一个系统划分成多个子系统。
(2)每个子系统如何划分成多个模块。
图4-4系统模块划分图
(1)取款模块
(2)存款模块
(3)余额查询模块
(4)打印凭条模块
(5)修改密码模块
(6)客户管理模块
(7)流水管理模块
5.
数据库设计
数据库结构设计的好坏直接影响到信息管理系统的效率和最终的实现效果。
合理地设计数据库结构可以提高数据库存储效率,保证数据的完整和统一性。
数据库设计一般包括以下几个步骤:
(1)数据库概念结构设计。
(2)数据库逻辑结构分析。
(3)数据库物理结构设计。
根据上面的需求分析,总共需要5个工作表的数据支持:
用户信息表,账户信息表,流水信息表,管理员表,功能菜单表。
数据库概念结构设计
1、用户信息实体图
图5-1用户信息实体图
2、账户信息实体图
图5-2账户信息实体图
3、流水信息实体图
图5-3流水信息实体图
4、管理员实体图
图5-4流水信息实体图
5、菜单实体图
图5-5流水信息实体图
数据库逻辑结构设计
逻辑结构设计是数据库设计的第二个阶段,这个阶段就是要根据已经建立的概念数据模型,以及所采用的某个数据库管理系统软件的数据模型特征,按照一定的转换规则,把概念模型转换为这个数据库管理系统所能够接受的逻辑数据模型。
1、逻辑数据模型是用户通过数据库管理系统看到的现实世界,它描述了数据库数据的整体结构。
从理论上讲,实际逻辑结构应该选择最适合于描述与表达相应概念结构的数据模型,然后对支持这种数据模型的各种DBMS进行比较,综合考虑性能、价格等各种因素,从中选出最合适的DBMS。
本系统选择的DBMS是MySQL,根据此产品设计逻辑结构分了以下三步进行:
(1)将概念结构转化为一般的关系模型。
(2)将转化来的关系模型向MySQL支持的数据模型转换。
(3)对数据模型进行优化。
2、并对数据模型进行适当的修改、调整进行以下优化:
(1)确定数据依赖。
(2)对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。
(3)按照数据依赖的理论对关系模式逐一进行分析,考查是否存在部分函数依赖、传递函数依赖、多值依赖等,确定各关系模式分别属于第几范式。
3、通过进一步的分析得到如下关系模式:
用户信息表:
(卡号,密码,用户名,身份证,地址,电话,用户类型,状态);
账户信息表:
(账号,身份证号,余额);
流水信息表:
(账号,交易日期,交易类型,取款金额,存款金额,应答码,备注);
管理员信息表:
(编号,姓名,密码);
功能菜单信息表:
(菜单号,上级菜单号,模块名,所属角色,序号,URL地址);
通过对E-R图和关系模式的分析得到如下表:
(1)
用户信息表
图5-4用户信息表
(2)
账户信息表
图5-5账户信息表
(3)
流水信息表
图5-6流水信息表
(4)
管理员信息表
图5-6管理员信息表
(5)
菜单信息表
图5-6菜单信息表
数据库物理结构设计
数据库物理设计阶段的任务是根据具体计算机系统(DBMS和硬件等)的特点,为给定的数据库模型确定合理的存储结构和存取方法。
所谓的“合理”主要有两个含义:
一个是要使设计出的物理数据库占用较少的存储空间,另一个对数据库的操作具有尽可能高的速度。
物理结构设计阶段实现的是数据库系统的内模式,它的质量直接决定了整个系统的性能。
因此在确定数据库的存储结构和存取方法之前,对数据库系统所支持的事务要进行仔细分析,获得优化数据库物理设计的参数。
6.
系统详细设计
本章将对系统的界面设计、每个功能模块的实现方法、实现过程及相应代码设计进行详细介绍。
登录界面设计
依据需求分析,启动系统时,最先出现的就是“登录”界面,如图6-1所示,用户登录可作为独立窗体,当用户登录时,首先出现的是一个登录页面,只有输入正确的管理员姓名与密码时,才能进入ATM系统。
图6-1