Java模拟ATM系统的开发与实现-毕业设计

Java模拟ATM系统的开发与实现-毕业设计

ID:246741

大小:504.00 KB

页数:53页

时间:2017-07-14

上传者:green wind
Java模拟ATM系统的开发与实现-毕业设计_第1页
Java模拟ATM系统的开发与实现-毕业设计_第2页
Java模拟ATM系统的开发与实现-毕业设计_第3页
Java模拟ATM系统的开发与实现-毕业设计_第4页
Java模拟ATM系统的开发与实现-毕业设计_第5页
资源描述:

《Java模拟ATM系统的开发与实现-毕业设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

Java模拟ATM系统摘  要随着Internet网络的迅速发展,作为电子商务的ATM自动取款系统以其方便、快捷和高效的优势,逐步成为新兴电子商务的经营模式和理念,人们已经不再只是满足于低效率的排队等待,而是渴望能够充分享受网络所带来的更多的便利。ATM自动取款系统恰恰适应了如今的快节奏生活。本文以实际ATM取款机应用为背景,阐述了系统开发过程的开发方法、系统分析以及一般步骤。全文共分为ATM系统综述、ATM系统的开发方法、系统分析、系统设计、系统实现和系统维护等六个部分,利用JAVA语言强大的跨平台性和面向对象开发等特点,联系实际ATM应用界面,采用Eclipse开发环境,以win7为操作系统、MySQL为后台数据库开发出了一套自动取款机系统,基本上实现了ATM自动取款机的全过程。关键词:Java;Eclipse;MySQL;ATM自动取款系统i ATMsimulationsystemAbstractWiththedevelopmentoftheInternet,ATMsystemasaformofe-commercewithitsconvenientandefficient,hasgraduallybecomeanewbusinessmodelandphilosophy,peoplehavenotlongermeetthewaitingqueueonthelowefficiency,buteagertothefullenjoymentofthenetworkbroughtaboutbythemoreconvenient.ATMautomatedtellersystemispreciselyadaptedtothefastpaceoflifetoday.BasedonthebackgroundofthepracticalapplicationoftheATM,expoundsthedevelopmentmethod,systemdevelopmentprocessofthesystemanalysisandgeneralsteps.ThefulltextisdividedintoATMsystem,ATMsystemdevelopmentmethod,systemanalysis,systemdesign,systemimplementationandsystemmaintenancesevenparts,usingtheJAVAlanguagecrossplatformandobject-orientedfeatures,contacttheactualATMapplicationinterface,usingEclipsedevelopmentenvironment,usingwin7astheoperatingsystem,MySQLthebackstagedatabasetodevelopasetofautomatictellermachinesystem,basicallyrealizingtheATMdrawingprocess.Keywords:Java;Eclipse;MySQL;ATMsimulationsystemii 目录摘  要iAbstractii1绪论11.1ATM概述11.2选题意义12ATM系统开发方法22.1系统开发方法概述22.2该系统开发方法22.3开发工具eclipse介绍32.3.1主要组成32.3.2软件开发包33系统分析43.1系统分析方法概述43.1.1限定问题43.1.2确定目标43.1.3调查研究,收集数据43.1.4提出方案和评价标准43.1.5方案评估43.1.6提交可行方案53.2系统功能结构图53.3系统主要处理流程图63.3.1系统办理所有业务流程图63.3.2用户登录流程图73.3.3用户转账流程图84系统设计94.1系统设计概述94.1.1系统设计原则94.1.2系统设计的方法94.2系统总体结构设计104.3系统详细设计124.3.1系统详细设计概述124.3.2基本任务124.4系统逻辑设计124.5界面模块设计134.5.1首页设计的窗体实现134.5.2查询信息页面的设计164.5.3修改密码界面的设计184.5.4转账页面的窗体设计19 4.5.5取款界面的窗体设计214.5.6退出界面设计235系统实现255.1程序设计255.2程序调试255.2.1程序调试的原则255.2.2调试方法255.2.3调试分类265.3试运行276系统维护286.1系统维护概述286.2软件维护类型287ATM银行取款系统测试307.1引言307.2测试方法307.3部分测试用例317.3.1系统启动测试317.3.2测试用户登录模块317.3.3测试修改密码模块327.3.4测试取款管理模块327.3.5测试查询模块327.3.6测试转账功能32结论33参考资料34致  谢35外文资料36资料翻译42 1绪论1.1ATM概述近年来,随着Internet网络的迅速发展,其在现实生活中应用很广泛。互联网给现实生活带来很大的方便。如今,人们的交流已越来越多,对信息传送的要求更严格,“信息高速公路”也就应运而生了。其中,Internet已拥有了数千万个用户,通过Internet我们就可以与全世界来联网。对于当中各种各样的信息,人们都可以通过网络来共享和使用。比如ATM自动取款系统,我们可以把它当作一个虚拟的市场销售中心,每个人都可以在这个网络上享受所提供的服务,这样既节约了时间,又满足了需求。尤其是人们的生活速度越来越快,没有大量的时间花费在银行等待长时间的排队。ATM银行取款系统的出现,使这一问题迎刃而解。自动取款机又称ATM,是AutomaticTellerMachine的缩写,又称自动柜员机,是指银行在不同地点设置一种小型机器,利用一张信用卡大小的胶卡上的磁带记录客户的基本户口资料(通常就是银行卡),让客户可以透过机器进行提款、存款、转帐等银行柜台服务,尽管大多数客户都把这种自助机器称为提款机。自动存取款机是一种客户进行自助服务的电子化设备,它具有存款、取款、卡卡转账、查询余额、修改密码等功能,是一种新型的银行电脑终端。它是一种高度精密的机电一体化装置,利用磁性代码卡或智能卡实现金融交易的自助服务系统。1.2选题意义随着Internet网络的迅速发展,作为电子商务的ATM自动取款系统以其方便、快捷和高效的优势,逐步成为新兴电子商务的经营模式和理念,人们已经不再只是满足于低效率的排队等待,而是渴望能够充分享受网络所带来的更多的便利。ATM自动取款系统恰恰适应了如今的快节奏生活。本文以实际ATM取款机应用为背景,阐述了系统开发过程的开发方法、系统分析以及一般步骤。49 2ATM系统开发方法2.1系统开发方法概述结构化系统开发方法(StructuredSystemAnalysisAndDesign,SSA&D,)又称结构化生命周期法,是系统分析员、软件工程师、程序员以及最终用户按照用户至上的原则,自顶向下分析与设计和自底向上逐步实施的建立计算机信息系统的一个过程,是组织、管理和控制信息系统开发过程的一种基本框架。是用系统的思想和系统工程的方法,按照用户至上的原则结构化、模块化,自顶向下对系统进行分析与设计。步骤如下:(1)先将整个信息系统开发过程划分为若干个相对独立的阶段(系统规划、系统分析、系统设计、系统实施等);(2)在前三个阶段坚持自顶向下地对系统进行结构化划分;(3)在系统调查和理顺管理业务时,应从最顶层的管理业务入手,逐步深入至最基层;(4)在系统分析、提出目标系统方案和系统设计时,应从宏观整体考虑入手,先考虑系统整体的优化,然后再考虑局部的优化问题;(5)在系统实施阶段,则坚持自底向上地逐步实施,即组织人员从最基层的模块做起(编程),然后按照系统设计的结构,将模块一个个拼接到一起进行调试,自底向上、逐步地构成整个系统。其主要特点为:(1)自顶向下整体地进行分析与设计和自底向上逐步实施的系统开发过程:在系统规划、分析与设计时,从整体全局考虑,自顶向下地工作;在系统实施阶段则根据设计的要求,先编制一个个具体的功能模块,然后自底向上逐步实现整个系统。(2)用户至上是影响成败的关键因素,整个开发过程中,要面向用户,充分了解用户的需求与愿望。(3)符合实际,客观性和科学化,即强调在设计系统之前,深入实际,详细地调查研究,努力弄清实际业务处理过程的每一个细节,然后分析研究,制定出科学合理的目标系统设计方案。(4)严格区分工作阶段,把整个开发过程划分为若干工作阶段,每一个阶段有明确的任务和目标、预期达到的工作成效,以便计划和控制进度,协调各方面的工作。前一阶段的工作成果是后一阶段的工作依据。(5)充分预料可能发生的变化:环境变化、内部处理模式变化、用户需求变化。(6)开发过程工程化,要求开发过程的每一步都要按工程标准规范化,工作文体或文档资料标准化。系统开发工作的自动化、计算机化是提高系统开发效率与质量的重要途径。计算机辅助软件工程(简记为CASE)也是当前信息系统领域和计算机应用领域的热门话题。CASE技术的目标是实现系统开发生命周期内各阶段工作基于计算机的自动化。这将导致系统开发工作的根本变化。2.2该系统开发方法49 比较各种开发方法的特点,结合银行取款系统的实际情况,整个系统采用结构化生命周期法,以原型法和面向对象的开发方法作为辅助,即系统总体上采用结构化生命周期法进行系统分析和系统设计,系统实施等步骤采用面向对象方法。本系统开发工具使用的是基于Java的可扩展开发平台的Eclipse。2.3开发工具eclipse介绍Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentKit,JDK)。Eclipse还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。2.3.1主要组成Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成——EclipsePlatform、JDT、CDT和PDE。JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,EclipsePlatform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。EclipsePlatform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。2.3.2软件开发包EclipseSDK(软件开发者包)是EclipsePlatform、JDT和PDE所生产的组件合并,它们可以一次下载。这些部分在一起提供了一个具有丰富特性的开发环境,允许开发者有效地建造可以无缝集成到EclipsePlatform中的工具。EclipseSDK由Eclipse项目生产的工具和来自其它开放源代码的第三方软件组合而成。Eclipse项目生产的软件以GPL发布,第三方组件有各自自身的许可协议。49 3系统分析系统分析方法是指把要解决的问题作为一个系统,对系统要素进行综合分析,找出解决问题的可行方案的咨询方法。3.1系统分析方法概述系统分析是一种研究方略,它能在不确定的情况下,确定问题的本质和起因,明确咨询目标,找出各种可行方案,并通过一定标准对这些方案进行比较,帮助决策者在复杂的问题和环境中作出科学抉择。系统分析方法的具体步骤包括:限定问题、确定目标、调查研究收集数据、提出备选方案和评价标准、备选方案评估和提出最可行方案。系统分析的目标是明确系统开发的目标和用户信息需求,提出系统的逻辑方案。为系统设计做好准备。3.1.1限定问题所谓问题,是现实情况与计划目标或理想状态之间的差距。系统分析的核心内容有两个:其一是进行“诊断”,即找出问题及其原因;其二是“开处方”,即提出解决问题的最可行方案。所谓限定问题,就是要明确问题的本质或特性、问题存在范围和影响程度、问题产生的时间和环境、问题的症状和原因等。限定问题是系统分析中关键的一步,因为如果“诊断”出错,以后开的“处方”就不可能对症下药。在限定问题时,要注意区别症状和问题,探讨问题原因不能先入为主,同时要判别哪些是局部问题,哪些是整体问题,问题的最后确定应该在调查研究之后。通过亲身体验总结各银行ATM提款机界面流程,得到本系统开发的主要流程界面(主要功能取款、转账、查询、修改密码等)。3.1.2确定目标系统分析目标应该根据客户的要求和对需要解决问题的理解加以确定,如有可能应尽量通过指标表示,以便进行定量分析。对不能定量描述的目标也应该尽量用文字说明清楚,以便进行定性分析和评价系统分析的成效。3.1.3调查研究,收集数据调查研究和收集数据应该围绕问题起因进行,一方面要验证有限定问题阶段形成的假设,另一方面要探讨产生问题的根本原因,为下一步提出解决问题的备选方案做准备。调查研究常用的有四种方式,即阅读文件资料、访谈、观察和调查。收集的数据和信息包括事实(facts)、见解(opinions)和态度(attitudes)。要对数据和信息去伪存真,交叉核实,保证真实性和准确性。3.1.4提出方案和评价标准通过深入调查研究,使真正有待解决的问题得以最终确定,使产生问题的主要原因得到明确,在此基础上就可以有针对性地提出解决问题的备选方案。备选方案是解决问题和达到咨询目标可供选择的建议或设计,应提出两种以上的备选方案,以便提供进一步评估和筛选。为了对备选方案进行评估,要根据问题的性质和客户具备的条件。提出约束条件或评价标准,供下一步应用。3.1.5方案评估根据上述约束条件或评价标准,对解决问题备选方案进行评估,评估应该是综合性的,不仅要考虑技术因素,也要考虑社会经济等因素,评估小组应该有一定代表性,除咨询项目组成员外,也要吸收客户组织的代表参加。根据评估结果确定最可行方案。49 3.1.6提交可行方案最可行方案并不一定是最佳方案,它是在约束条件之内,根据评价标准筛选出的最现实可行的方案。如果客户满意,则系统分析达到目标。如果客户不满意,则要与客户协商调整约束条件或评价标准,甚至重新限定的问题,开始新一轮系统分析,直到客户满意为止。3.2系统功能结构图结构化设计方法使用的描述方式是系统结构图,也称结构图或控制结构图。它表示了一个系统(或功能模块)的层次分解关系,模块之间的调用关系,以及模块之间数据流和控制流信息的传递关系,它是描述系统物理结构的主要图表工具。系统结构图是对软件系统结构的总体设计的图形显示。在需求分析阶段,已经从系统开发的角度出发,把系统按功能逐次分割成层次结构,使每一部分完成简单的功能且各个部分之间又保持一定的联系,这就是功能设计。在设计阶段,基于这个功能的层次结构把各个部分组合起来成为系统。处理方式设计:确定为实现软件系统的功能需求所必需的算法,评估算法的性能。确定为满足软件系统的性能需求所必需的算法和模块间的控制方式(性能设计)。确定外部信号的接收发送形式。图3-1ATM系统功能结构图该系统主要实现银行卡用户的存取款,以及进行一些简单的查询和取款业务,同时能够在系统里面进行客户密码的修改,实现简单的机器与客户交互。49 3.3系统主要处理流程图3.3.1系统办理所有业务流程图选择界面(查询、取款、转帐、修改密码、取消)登录界面(卡号、密码、验证码、取消等选项)待机界面(按确定键进入登录界面)密码错误,请从新输入!修改密码查询取款转帐交易完成点击退出谢谢使用,再见!图3-2业务流程图49 该系统主要实现银行卡用户的存取款,以及进行一些简单的查询和取款业务,同时能够在系统里面进行客户密码的修改,实现简单的机器与客户交互。3.3.2用户登录流程图图3-3用户登录流程图该模块主要实现银行卡用户的登录流程,登录模块时需要进行账号和密码的验证,直到账号和密码同时正确才能登录成功。3.3.3用户修改密码流程图图3-4用户修改密码流程图49 该模块主要实现银行卡账户的密码修改功能,在密码修改过程中需要验证新密码和旧密码的输入是否正确,直到旧密码输入正确,两次输入新密码一致且和旧密码不相同才能修改成功。3.3.3用户转账流程图图3-5用户转账流程图通过该功能用户可以选择给对方转账,只要输入对法的卡号的所转入的金额就可以实现转账功能。但是前提是需要与数据库中的账号进行余额匹配,只有在输入的所转入的金额小于自己账号的余额时才能实现转账成功,如果输入的所转金额大于自己的账号余额,那么就会出现错误,此部分的代码设计中使用了人为的异常抛出功能,将出现的所转金额大于余额时的异常抛出,从而提示用户选择其他的操作来阻止错误的发生。49 4系统设计4.1系统设计概述这个阶段的任务是设计软件系统的模块层次结构,设计数据库的结构以及设计模块的控制流程,其目的是明确软件系统"如何做"。这个阶段又分两个步骤:概要设计和详细设计。在系统分析的基础上,设计出能满足预定目标的系统的过程。系统设计内容主要包括:确定设计方针和方法,将系统分解为若干子系统,确定各子系统的目标、功能及其相互关系,决定对子系统的管理体制和控制方式,对各子系统进行技术设计和评价,对全系统进行技术设计和评价等。系统设计通常应用两种方法:一种是归纳法,另一种是演绎法。应用归纳法进行系统设计的程序是:首先尽可能地收集现有的和过去的同类系统的系统设计资料;在对这些系统的设计、制造和运行状况进行分析研究的基础上,根据所设计的系统的功能要求进行多次选择,然后对少数几个同类系统作出相应修正,最后得出一个理想的系统。演绎法是一种公理化方法,即先从普遍的规则和原理出发,根据设计人员的知识和经验,从具有一定功能的元素集合中选择能符合系统功能要求的多种元素,然后将这些元素按照一定形式进行组合(见系统结构),从而创造出具有所需功能的新系统。在系统设计的实践中,这两种方法往往是并用的。4.1.1系统设计原则(1)阶段开发原则系统框架和数据结构全面设计,具体功能实现分阶段进行。网站的建设过程可以采取以下三期:第一期工程搭建网站的基本构架,实现电子商务网的大部分功能,初步实现网上交易;第二期工程实现网上竞价系统的全部功能;第三期工程实现网站在线的BtoB交易。(2)易用性原则方便上网客户浏览和操作,最大限度地减轻后台管理人员的负担,做到部分业务的自动化处理。(3)业务完整性原则对于业务进行中的特殊情况能够做出及时、正确的响应,保证业务数据的完整性。(4)业务规范化原则在系统设计的同时,也为将来的业务流程制定了较为完善的规范,具有较强的实际操作性。(5)可扩展性原则系统设计要考虑到业务未来发展的需要,要尽可能设计得简明,各个功能模块间的耦合度小,便于系统的扩展。如果存在旧有的数据库系统,则需要充分考虑兼容性。4.1.2系统设计的方法系统设计的方法主要包括结构化生命周期法(又称瀑布法)、原型化方法(迭代法)、面向对象方法。按时间过程来分,开发方法分为生命周期法和原型法,实际上还有许多处于中间状态的方法。原型法又按照对原型结果的处理方式分为试验原型法和演进原型法。试验原型法只把原型当成试验工具,试了以后就抛掉,根据试验的结论做出新的系统。演进原型法则把试好的结果保留,成为最终系统的一部分。按照系统的分析要素,可以把开发方法分为三类:49 1、面向处理方法(ProcessingOriented,简称PO);2、向数据方法(DataOriented,简称DO);3、向对象的方法(ObjectOriented,简称OO)。4.2系统总体结构设计根据业务流程图转化为软件的体系结构,进而用软件结构图建立物理模型,得系统活动图,如下:图4-1系统结构图该图按照实际的ATM系统顺序进行大体设计,分为三大层。从储户的登入进入主界面,在该界面中设计了ATM的主要模块功能,如取款、查询、修改密码以及转账业务,用户可以进入想要实现的模块中进行相关业务的处理;同时可以在任何一个界面选择退出系统,来终止错误的操作。此图根据业务流程图转化为软件的体系结构,进而用软件结构图建立物理模型,软件人员根据物理模型对软件进行系统总体结构设计,继而细化为对各个模块的代码实现,系统结构图是对软件系统结构的总体设计的图形显示。在详细阶段确定为满足软件系统的性能需求所必需的算法和模块间的控制方式(性能设计)。确定外部信号的接收发送形式。在需求分析阶段,已经从系统开发的角度出发,把系统按功能逐次分割成层次结构,使每一部分完成简单的功能且各个部分之间又保持一定的联系,这就是功能设计。在设计阶段,基于这个功能的层次结构把各个部分组合起来成为系统。49 图4-2系统活动图49 4.3系统详细设计4.3.1系统详细设计概述对概要设计的一个细化,就是详细设计每个模块实现算法,所需的局部结构。详细设计的实现根据结构程序设计原理,将每个模块的功能用相应的标准语句表示出来。4.3.2基本任务(1)为每个模块进行详细的算法设计。用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。(2)为模块内的数据结构进行设计。对于需求分析、概要设计确定的概念性的数据类型进行确切的定义。(3)为数据结构进行物理设计,即确定数据库的物理结构。物理结构主要指数据库的存储记录格式、存储记录安排和存储方法,这些都依赖于具体所使用的数据库系统。(4)其他设计:根据软件系统的类型,还可能要进行以下设计:①代码设计。为了提高数据的输入、分类、存储、检索等操作,节约内存空间,对数据库中的某些数据项的值要进行代码设计。②输入/输出格式设计。③人机对话设计。对于一个实时系统,用户与计算机频繁对话,因此要进行对话方式、内容、格式的具体设计。(5)编写详细设计说明书。(6)评审。对处理过程的算法和数据库的物理结构都要评审。4.4系统逻辑设计数据库设计指对系统所采用的数据模式、子模式、应用程序、数据库等根据用户的具体要求进行分析和设计。它也是管理信息系统设计的重要组成部分。数据库设计的基本原则是尽可能提高数据组织的相对独立性,简化其结构,即用规范化方法设施数据存储的结构,提高数据的可维护性、完整性、一致性。通过收集和分析用户需求,确定了数据库要保存的信息,我将此次数据库设计为二个如下所示表的设计如下:表4-1用户信息设计表1、客户表(user)CardID字段信息字段名称类型宽度小数位数空特性姓名unamevarchar30性别usexvarchar20身份证号uidvarchar30N卡号ucnovarchar30N用户信息表定义了用户的姓名、性别、身份证号码和卡号,其中身份证号是主键,用于在查询卡信息的时候,从数据库中提取出相关数据显示在用户的交互界面,方便用户查看相关信息。49 而卡号是账户信息的表中的主键,在此表中属于外键,定义了用户表和账户信息表的关系。表4-2账户信息设计表2、账户表(card)CardID字段信息字段名称类型宽度小数位数空特性卡号ucnovarchar30N账户余额cbalint20N密码cpwdint20N账户信息设计表主要设计了账户的卡号,账户余额以及密码等字段,其中卡号是该表的主键。数据库设计如下:1.名字:用户登录信息描述:助记词登录时,用于确认身份定义:登录信息=帐号+密码2.名字:修改密码信息描述:用户确认修改后的信息定义:修改密码信息=原密码+新密码+确认密码3.名字:转账信息描述:用户所要转入账户的信息定义:转账信息=用户账号余额+对方账号+转入金额4.名字:查询余额信息描述:用户需要清楚的知道自己账户中的信息定义:查询余额信息=用户余额4.5界面模块设计用户界面设计目前已成为评价软件质量的一条重要指标,所谓用户界面是批软件系统与用户交互的接口,通常包括输入、输出设计、人机对话的界面设计。4.5.1首页设计的窗体实现当插入现金卡之后出现如上欢迎界面,系统出现选择确定和取消的登入方式,点击按钮之后(确定)出现后对话框://首页设计窗体classPanel01extendsJPanel{JLabellabel1,label2,label3,label4;JPasswordFieldtextA;JTextFieldtextC;staticJTextFieldtextB;chart[]=newchar[4];Panel01(){setLayout(newGridLayout(4,4));49 for(inti=0;i<4;i++){t[i]=(char)(Math.random()*26+'A');}Stringmm=newString(t);label2=newJLabel("请输入卡号:");label1=newJLabel("请输入密码:");label3=newJLabel();label4=newJLabel("请输入验证码:");add(textB);add(textA);add(textC);}}classPanel02extendsJPanel{JButtonbutton1,button2;Panel02(){setLayout(newGridLayout(3,6));button1=newJButton("确定");button2=newJButton("取消");}}该代码对首页的组件进行了设计,用户在使用过程需要将卡号,密码和验证码都输入正确才能进入下一步的操作,如果其中一个出现问题则不能成功登陆,也不能实现后面相对应的操作。//首页添加监听器并添加actionclassClient00extendsJFrameimplementsActionListener{publicvoidactionPerformed(ActionEvente){char[]passwords=panel1.textA.getPassword();Stringpassword=newString("1234");//此处设置账号123456的初始密码为1234,每输入一次都有提示,在连续输入三次不正确后系统自动退出。if(e.getActionCommand().equals("确定"))if(panel1.textC.getText().equals(panel1.label3.getText())){right();}elseif(e.getActionCommand()=="取消"){this.setVisible(false);newClient08("");}49 }publicvoidright(){if(panel1.textA.getText().equals("")||panel1.textB.getText().equals("")){JOptionPane.showMessageDialog(frame,"请输入账号、密码!");return;}Stringurl="jdbc:mysql://localhost:3306/atm?useUnicode=true&characterEncoding=gbk";//定义与连接数据库的urltry{Class.forName("com.mysql.jdbc.Driver");//加载mysql数据库驱动Connectioncon=DriverManager.getConnection(url,"root","123");//连接URL为jdbc:mysql//服务器地址/数据库名,后面的2个参数分别是登陆用户名和密码Statementsql=con.createStatement();Stringql=panel1.textB.getText();ResultSetrs=sql.executeQuery("selectcpwdfromcardwhereucno="+ql+"");在此时输入的数据会与数据库进行数据匹配,因此可能会出现错误的信息,那么要对错误的信息进行处理,于是针对输入密码的错误次数设置了处理过程,相应的处理过程写成下面的代码:if(rs.next()){Stringqerycpwd=panel1.textA.getText();Strings=rs.getString(1);if(qerycpwd.equals(s)){JOptionPane.showMessageDialog(frame,"连接成功!");this.setVisible(false);newClient01("用户取款系统");}else{if(i!=2){i++;j=3-i;JOptionPane.showMessageDialog(frame,"密码有误!你还有"+j+"次机会,请你再仔细想想.");panel1.textA.setText("");}else{JOptionPane.showMessageDialog(frame,"对不起,你输入的密码次数达三次,下次再见。");System.exit(0);}}49 con.close();frame.repaint();}else{JOptionPane.showMessageDialog(null,"该用户不存在,重新输入!","警告!",JOptionPane.YES_NO_OPTION);return;}}图4-3登录界面登录模块采用的是密码、验证码的方式,需要用户输入卡号、密码和验证码然后点击确认进行验证登录,程序将根据输入卡号查找对应密码,第一如果账号找到则继续下一步,在这里我用了输入验证码的方式,输入正确则继续,程序系统将根据卡号调用后台数据库查找与卡号对应的密码并与用户输入的密码相对比。密码正确则继续,否则当输入的错误密码次数达到三次时,系统将提示你需要与前台服务员取得联系。第二如果没有找到,则提示输入账号错误。4.5.2查询信息页面的设计//查询余额页面窗体设计classPanel06extendsJPanel{JLabellabel1,label2;JTextFieldtextA;JFrameframe;Panel06(){setLayout(newGridLayout(4,4));label1=newJLabel("你的余额为:");textA=newJTextField(6);}49 图4-4查询模块在查询模块中,将通过用户所使用的账户账号来进行余额的查询,将显示账户的实际余额,点击“查询”按钮,在程序中通过按钮的Action方法进行方法的调用,就可以实现查询余额的功能并且把查询到的账户余额显示在此界面上。当用户点击“继续”时,程序则返回到初始主界面。classPanel07extendsJPanel{JButtonbutton1,button2;Panel07(){setLayout(newGridLayout(3,6));button1=newJButton("继续");button2=newJButton("查询");classClient03extendsJFrameimplementsActionListener{Panel06panel1;Panel07panel2;publicvoidactionPerformed(ActionEvente){if(e.getActionCommand().equals("继续")){this.setVisible(false);newClient01("选择服务种类");}elseif(e.getActionCommand()=="查询")showcbal();}publicvoidshowcbal(){Stringurl="jdbc:mysql://localhost:3306/atm";//定义与连接数据库的urltry{Class.forName("com.mysql.jdbc.Driver");//加载mysql数据库驱动Connectioncon=DriverManager.getConnection(url,"root","123");//连接URL为jdbc:mysql//服务器地址/数据库名,后面的2个参数分别是登陆用户名和密码49 ResultSetrs=sql.executeQuery("selectcbalfromcardwherecno="+ql+"");if(rs.next()){Stringucbal=rs.getString(1);}con.close();}catch(Exceptionex){ex.printStackTrace();}}}图4-5查询卡信息模块这个功能用来显示账户的基本信息包括用户名、性别、身份证、卡号等,点击查询按钮后系统将根据与输入的卡号相一致的字段信息查询后台数据库进行比较,并将匹配的信息显示在此页面上。当点击“取消”按钮时,系统将返回到初始主界面。4.5.3修改密码界面的设计//修改密码页面窗体设计Panel10(){setLayout(newGridLayout(10,6));label1=newJLabel("请输入原密码:");label2=newJLabel("请输入新密码:");label3=newJLabel("再次确认密码:");button1=newJButton("确定");button2=newJButton("取消");修改密码过程需要对数据库进行操作,首先要找到该账户的账户信息进行匹配,只有输入的原密码正确了才能进行下面的修改,而且两次输入的新密码必须一致,如果不一致也不能进行修改,如果都正确则需要更新数据库中已经存入的密码。publicvoidupdateM(){Stringurl="jdbc:mysql://localhost:3306/atm";49 //定义与连接数据库的urltry{Class.forName("com.mysql.jdbc.Driver");//加载mysql数据库驱动Connectioncon=DriverManager.getConnection(url,"root","123");//连接URL为jdbc:mysql//服务器地址/数据库名,后面的2个参数分别是登陆用户名和密码Statementsql=con.createStatement();Stringcno=Panel01.textB.getText();ResultSetrs=sql.executeQuery("selectcpwdfromcardwherecno="+cno+"");}classbankSystem05{publicstaticvoidmain(String[]args){newClient02("修改密码服务");}}图4-6修改密码模块这个模块需要用户输入旧密码后,再次输入两次新密码来进行确认,然后点击“确定”按钮进行密码的修改,修改成功后将给出提示信息,其中还考虑到了一些用户可能的输入错误问题,在程序设计时我做出了一些异常的判断和处理,比如空输入,输入两次新密码不一致以及原密码输入不正确等问题。修改更新密码的完成,依然采用的是“确定”按钮控件的Action事件来进行完成。4.5.4转账页面的窗体设计//转账页面窗体设计Panel08(){setLayout(newGridLayout(4,4));label1=newJLabel("输入预转账号:");label2=newJLabel("输入预转金额:");}classClient04extendsJFrameimplementsActionListener{publicvoidactionPerformed(ActionEvente){49 if(e.getActionCommand().equals("确定")){zhuanzhang();//程序根据输入账号调用数据库,修改对应金额数。this.setVisible(false);newClient01("用户取款系统");}publicvoidzhuanzhang(){if(panel1.textA.getText().equals("")||panel1.textB.getText().equals("")){JOptionPane.showMessageDialog(frame,"请输入欲转账号、金额!");return;}Stringurl="jdbc:mysql://localhost:3306/atm";//定义与连接数据库的urltry{Class.forName("com.mysql.jdbc.Driver");//加载mysql数据库驱动Connectioncon=DriverManager.getConnection(url,"root","123");//连接URL为jdbc:mysql//服务器地址/数据库名,后面的2个参数分别是登陆用户名和密码ResultSetss=sql.executeQuery("selectcnofromcardwherecno="+cno+"");intshbal=Integer.parseInt(ybal);if(ss.next()){ResultSetrs=sql.executeQuery("selectcbalfromcardwherecno="+ql+"");转账时用户将根据需要自己输入预转账号和预转金额,这个模块的设计其实质是具体的SQL语句操作,系统根据输入的账号查找与之对应的用户数据表,从而根据操作修改金额。第一,系统首先根据本账号,后台数据库进行本卡金额与输入的金额对比,如果找到且在金额允许范围,就提示转账成功,并更新本账号的数据信息。第二,如果没有找到输入的预转账号,则提示没有该用户,并跳转回来重新输入预转账号。if(rs.next()){Stringquerybal=rs.getString(1);intqybal=Integer.parseInt(querybal);if(shbal

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭