![银行账户管理系统样本_第1页](http://file4.renrendoc.com/view12/M08/21/2D/wKhkGWX1OQCAc0BPAAI0O9XlTsI967.jpg)
![银行账户管理系统样本_第2页](http://file4.renrendoc.com/view12/M08/21/2D/wKhkGWX1OQCAc0BPAAI0O9XlTsI9672.jpg)
![银行账户管理系统样本_第3页](http://file4.renrendoc.com/view12/M08/21/2D/wKhkGWX1OQCAc0BPAAI0O9XlTsI9673.jpg)
![银行账户管理系统样本_第4页](http://file4.renrendoc.com/view12/M08/21/2D/wKhkGWX1OQCAc0BPAAI0O9XlTsI9674.jpg)
![银行账户管理系统样本_第5页](http://file4.renrendoc.com/view12/M08/21/2D/wKhkGWX1OQCAc0BPAAI0O9XlTsI9675.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
文献综述一、概述ATM自动取款机是由计算机控制持卡人自我服务型金融专用设备。ATM是英文AutomaticTellerMachine缩写。ATM是最普遍自助银行设备,可以提供最基本银行服务之一,即出钞交易,有些全功能产品还可以提供信封存款业务。在ATM自动取款机上也可以进行账户查询、修改密码和转账业务。同步在制作这个系统过程中也应用了数据库知识,这个相对于想从事软件开发人来说是比较重要内容,这个也是本次设计重点知识,同步数据库链接是必要要学会,由于这个是最核心内容,培养自己坚实逻辑表达能力和沟通能力,和培养自己良好文案能力,规定掌握ATM取款机详细工作原理以及java简朴系统设计办法。二、内容(一)ATM研究现状众所周知随着信息时代科技飞速发展和随着全球金融行业兴起,使用ATM取款机、计算机信息技术以及计算机科学技术发展,给人们生活带来了翻天覆地变化,同步这些技术在人们生活中运用,随着科学技术进步,经营方式转变,解决信息系统内容和形式也在发生变化。当前,以计算机和通信技术为基本信息系统正处在蓬勃发展时期,ATM取款系统可充分运用网络技术和数据库技术发展,形成一种全新运作方式。随着因特网形成和发展,基于网络技术信息系统除了它老式功能外,实现了特定地方刷卡消费等。不但提高了银行业务解决能力,并且大大节约了人们取钱所耗费时间和价值;并且在有效防止了某些非法业务操作,对于某些复杂信息,就可以充分发挥它们优越性。据悉,中华人民共和国近来几年ATM增长速度维持在10%以上,而世界其他国家ATM增长率大体为3%。当前,中华人民共和国已经成为全球最大ATM市场。但是,市场研究机构同步以为,国内此后几年发展势头将较过去几年慢下来,不再维持过去两位数高增长率,由于大都市ATM拥有量已达一定限度,而二线都市ATM则需要一定配套设施方能开始高速度发展。当前,国内ATM最多只有七八种功能,相对于其他国家,如新加坡,功能的确少某些。新加坡ATM交易功能多达40各种。在发达国家,各种新技术应用于ATM,使ATM使用更加便捷,功能也更多。持卡人无需携带银行卡,虹膜辨认、手纹辨认ATM可通过辨认客户独有生物特性进行交易。借助无线通ATM,持卡人可以远程在手机上先行操作交易,并在ATM上按最后一种交易指令。此外,有ATM可以打印彩色地图、销售电影票和邮票等。从技术上讲,这些最先进ATM随时可以提供应中华人民共和国商业银行。但ATM是一种终端,其功能需要银行主机配合。并且中华人民共和国银行业正对外资银行加速开放,进入中华人民共和国外资银行此后一定会将最新ATM带入中华人民共和国。(二)ATM取款机系统影响ATM取款机诞生可以说是世界金融行业一大进步,也是历史性转折点。ATM自动取款机不但能提高了银行业务解决能力,还能大大节约人们取钱所耗费时间和价值;并且在有效防止了某些非法业务操作,对于某些复杂信息,就可以充分发挥它们优越性。ATM系统对金融业变革产生了和正在产生着深远影响。从当代金融业新概念来看,ATM系统就是电子信息技术在金融业金融管理一种应用。它避免了对于顾客信息资料、以及资金记录等用人工办理。数据信息解决工作量大,繁琐,数据解决手工操作,工作量大,工作时需实时认真办理,一但浮现错误将带来很大损失。从而解决了顾客信息和资金信息繁杂问题,对于ATM取款系统数据记录和核算等都是采用卡号进行核对,进而实现了数据精确性、完整性、及时性,避免了工作人员和管理员工作时间一长,再进行查询,就得在众多资料中翻阅、查找了,导致查询费时、费力。同步也得顾客可以安全进行操作,便捷,迅速进行取款以及完毕某些商业上交易,大大提高办公效率,可以及时、精确、有效帮顾客办理各种繁琐手续,也减缓了银行工作人员压力。(三)ATM自动取款机系统展望近年来国内信息产业发展迅速,手工管理方式在银行帐目管理等需要大量事务解决应用中已显得不相适应,采用IT技术提高服务质量和管理水平势在必行。当前,对外开放必然趋势使银行业直面外国银行巨头直接挑战,因而,银行必要提高其工作效率,改进其工作环境。这样,帐户管理信息化也势在必行。此外,ATM需要是更高人性化和更强大中间业务,当前ATM都是穿墙或者是大堂,如果要重新设计话,可以设计更轻便但是又安全ATM,例如说可以放在汽车上,火车上,甚至是飞机上。将来ATM应当不是按键式,也许会发展成语音操作式,只要人机语音对话就能实现,这对某些残障人士更有协助。(四)开发语言和开发平台选取与简介本文运用面向对象开发办法,联系实际ATM应用界面,采用MyEclipse开发工具,以windows7操作系统、MySql小型数据库为后台以及运用java语言和通过实现JDBC数据库连接开发出了一套模仿自动取款机系统。Java是一种可以撰写跨平台应用软件面向对象程序设计语言,是由SunMicrosystems公司于1995年5月推出Java程序设计语言和Java平台(即JavaSE,JavaEE,JavaME)总称。Java技术具备卓越通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同步拥有全球最大开发者专业社群。在全球云计算和移动互联网产业环境下,Java更具备了明显优势和辽阔前景。MySQL是一种关系型数据库管理系统,由瑞典MySQLAB公司开发,当前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同表中,而不是将所有数据放在一种大仓库内,这样就增长了速度并提高了灵活性。MySQLSQL语言是用于访问数据库最惯用原则化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,特别是开放源码这一特点,普通中小型网站开发都选取MySQL作为网站数据库。由于其社区版性能卓越,搭配PHP和Apache可构成良好开发环境。MyEclipse公司级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE扩展,运用它咱们可以在数据库和JavaEE开发、发布以及应用程序服务器整合方面极大提高工作效率。它是功能丰富JavaEE集成开发环境,涉及了完备编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。MyEclipse是一种十分先进用于开发Java,J2EEEclipse插件集合,MyEclipse功能非常强大,支持也十分广泛,特别是对各种开源产品支持十分不错。MyEclipse当前支持JavaServlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse几乎囊括了当前所有主流开源产品专属eclipse开发工具。总结本文运用java语言面向对象、跨平台、分布应用等特点,采用MyEclipse开发工具,以windows7操作系统、MySql数据库为后台开发出了一套自动取款机系统,基本上实现了账户查询、修改密码、转账和取款等业务。随着计算机技术飞速发展及其应用领域扩大,特别是计算机网络和电子商务发展,极大地变化了商业银行老式经营和管理模式。可觉得客户提供以便、快捷、安全服务,也能有效减少银行运营成本,这是银行管理系统追求目的。当前,对于当代化银行运营规定是客户可以实现随时随处业务交易,银行职工可以进行高效合理工作管理,实现银行业务电子化。参照文献[1]孙卫琴.Java面向对象程序设计[M].北京:电子工业出版社,.7[2]王国辉,吕海涛.Java数据库系统开发案例精选[M].北京:人民邮电出版社[3]陈国君,陈锡祯.Java2程序设计基本[M].北京:清华大学出版社[4]袁海燕.Java实用程序设计100例[M].北京:人民邮电出版社[5]朱站立、沈伟.Java程序设计实用教程[M].电子工业出版社[6]印旻编、许伟.Java2从入门到精通[M].北京:清华大学出版社[7]杨树林,胡洁萍.Java语言最新实用案例教程.北京:清华大学出版社,.7:141–232[8]李刚等.Java数据库技术详解.北京:化学工业出版社,.7[9][美]LiangYD.Java语言程序设计.王镁,等译.北京:机械工业出版社,.[10][美]KathyWalrath等.JFCSwing原则教材.北京:电子工业出版社,.[11]郑莉,王言行,马素霞.Java语言程序设计.北京:清华大学出版社,.[12]朱喜福,林建民,唐永新.Java程序设计.北京:人民邮电出版社,.[13]朱喜福.Java程序设计.北京:清华大学出版社,.摘要:21世纪是催人奋进时代,科学技术飞速发展,金融业ATM取款机诞生可以说是世界金融行业中一大进步,更是其发展历史性转折点。本文以实际提款机应用为背景,阐述了系统开发过程开发办法、系统分析和普通环节。全文共分为ATM系统综述、ATM系统开发办法、系统分析、系统设计、系统实现和系统维护与评价七个某些,运用JAVA语言强大功能,并具备面向对象开发等特点,联系实际ATM应用界面,采用MyEclipse开发工具,以windows7操作系统、MySQL数据库为后台开发出了一套自动取款机系统,基本上实现了账户查询、修改密码、转账和取款等业务。针对这一系列问题,咱们运用JAVA语言在MyEclipse下设计了这样一种系统,使得顾客可以安全进行操作,便捷,迅速进行取款以及完毕某些商业上交易,大大提高办公效率,可以及时、精确、有效帮顾客办理各种繁琐手续,也减缓了银行工作人员压力。核心字:ATMJavaMyEclipseMySQLAbstract:The21stcenturyistheeraofinspiring.Withtherapiddevelopmentofscienceandtechnology,thebirthoftheATMcashmachinesinthefinancialindustrydeservestobecalledatremendousprogressandahistoricturningpointintheworld'sfinancialindustry.Thispaperdescribedthesystemdevelopmentprocess,systemanalysisandgeneralstepsofthedevelopmentmethodology.ThispaperiscomposedbytheATMsystem,theATMsystemdevelopmentmethodology,systemanalysis,systemdesign,systemimplementationandsystemmaintenance,andevaluation.Takegoodadvantageofthepowerfulfeaturesandthecharacteristicsofobject-orienteddevelopmentoftheJAVAprogramminglanguage,usingMyEclipsedevelopmenttools,window7operatingsystem,MySqldatabaseasabackgroundtodevelopanautomatictellermachinesystem,andbasicallyrealizedaccountinquiries,modifypassword,transfersandwithdrawalsbusiness.Forthisseriesproblem,weuseJAVAlanguagetodesignsuchasysteminthetheMyEclipseenvironmentsothattheusercanoperatesafelyandconveniently.Besides,notonlyitcanfastenthecompletionofcommercialtransactions,butalsogreatlyimprovingtheefficiencyoftheoffice,.Mostimportantofall,ATMcantimelyandaccurateeffectivelyhelpusershandlethecumbersomeprocedures,andalsoslowdownthepressureofthebankstaff.Keywords:ATMJavaMyEclipseMySQL目录TOC\o"1-3"\h\u264目录 1150541.ATM系统开发办法 1222671.1系统办法概述 1184071.2本系统用法概述 2325122.系统分析 2280442.1系统初步调查 246252.2可行性研究 243402.3系统详细调查及提出 3225683.系统设计 6233923.1开发环境 666353.2系统总体构造设计 7198793.3系统详细设计 9195973.3.1数据库设计 922973.3.2界面模块设计 10210034.系统实现 18160724.1程序设计与调试 1861184.1.1程序设计 1823044.1.2程序调试 19289314.2试运营 19135565.系统维护 19111126.系统评价 2078417.结束语 2010468参照文献 2226434附件(论文源代码) 2314818附一主界面 2326952附二登陆界面 2413306附三功能菜单界面 267463附四修改密码界面 2718949附五结束对话框界面 3032168附六退出信用卡界面 306582附七查询余额界面 3112183附八取款界面 3217155附十查询服务界面 344098附十一查询顾客信息界面 3516364附十二转账界面 369581道谢 391.ATM系统开发办法1.1系统办法概述软件开发办法是一种使用早已定义好技术集及符号表达习惯来组织软件生产过程。开发目的是在规定投资和时间内,开发出符合顾客需求高质量软件。任何系统均有其产生、发展、成熟、消灭或更新换代过程。这个过程称为系统生命周期。系统生命周期法提供思路、逻辑、技能、工具与工作规范,是系统开发、解决管理信息系统建设中各类实际问题重要基本,对复杂系统建设具备重要指引意义。系统开发是管理信息系统建设中工作任务最为繁重,也是最重要一种阶段。从项目开发到结束整个过程,称为系统开发生命周期。系统开发生命周期普通分为系统分析、系统设计和系统实行。构造化生命周期法是一种面向数据流开发办法。该办法简朴实用、应用较广、技术成熟,办法指引思想是自顶向下、逐渐求精,基本原则是能动分解与抽象,特别适合于数据解决领域问题,随着开发项目规模变化,该办法也就暴漏出了它缺陷:(1)对于规模大、特别复杂项目不太适应(2)难于解决软件重用问题(3)难于适应需求变化问题,难于彻底解决维护问题。到了90年代,主流开发办法是面向对象开发办法,它基本出发点是尽量按照人类结识世界办法和思维方式来分析和解决问题。面向对象办法支持软件重用和原型概念,提高了系统开发效率,因而得到了ATM系统各计算机界极大关注。该办法涉及面向对象分析、面向对象设计、面向对象实现。系统开发工作自动化、计算机化是提高系统开发效率与质量重要途径。计算机辅助软件工程(简记为CASE)也是当前信息系统领域和计算机应用领域热门话题。CASE技术目的是实现系统开发生命周期内各阶段工作基于计算机自动化。这将导致系统开发工作主线变化。1.2本系统用法概述比较各种开发办法特点,结合银行取款系统实际状况,整个系统采用构造化生命周期法,以原型法和面向对象开发办法作为辅助,即系统总体上采用构造化生命周期法进行系统分析和系统设计,系统实行等环节采用面向对象办法。本系统开发工具使用是基于Java可扩展开发平台MyEclipse。2.系统分析系统分析是管理系统开发起始阶段,也是MIS(管理信息系统)开发工作中最重要一环。系统分析阶段重要活动有:系统初步调查、可行性研究、系统详细调查、新系统逻辑方案提出。系统分析目的是明确系统开发目的和顾客信息需求,提出系统逻辑方案。为系统设计做好准备。2.1系统初步调查系统初步调查是系统分析阶段第一项活动,也是系统开发第一项活动,初步调查重要目的是从系统分析人中和管理人员角度看新系统开发有无必要和也许。通过亲身体验总结各银行ATM提款机界面流程,得到本系统开发重要流程界面(重要功能取款、转账、查询、修改密码等)。并决定亲自开发取款机系统,测试自己水平。2.2可行性研究可行性研究(FeasibilityStudy),是指在调查基本上,通过市场分析、技术分析、财务分析和国民经济分析,对各种投资项目技术可行性与经济合理性进行综合评价。可行性研究基本任务,是对新建或改建项目重要问题,从技术经济角度进行全面分析研究,并对其投产后经济效果进行预测,在既定范畴内进行方案论证选取,以便最合理地运用资源,达到预定社会效益和经济效益。可行性研究必要从系统总体出发,对技术、经济、财务、商业以至环保、法律等各种方面进行分析和论证,以拟定建设项目与否可行,为对的进行投资决策提供科学根据。项目可行性研究是对多因素、多目的系统进行不断分析研究、评价和决策过程。它需要有各方面知识专业人才通力合伙才干完毕。可行性研究不但应用于建设项目,还可应用于科学技术和工业发展各个阶段和各个方面。可行性研究目就是用最小代价在最短时间内拟定该软件项目与否可以开发,与否值得去开发。实质上就是进行一次简化、压缩了需求分析、设计过程。可从如下三个方面分析研究每种解决问题可行性:a.技术可行性:对项目功能、性能、限制条件进行分析,拟定在既有资源条件下项目与否能实现。(开发风险、资源有效性、技术)b.社会可行性:要开发项目与否存在任何侵犯、妨碍等责任问题,要开发项目运营方式在顾客组织内与否行得通,既有管理制度、人员素质、操作方式与否可行。c.经济可行性:进行开发成本估算以及理解得到效益评估,拟定要开发项目与否值得投资开发。对银行业来说,是靠存款贷款之间差额来生存,因此要尽量拉拢更多客户使用本行,ATM取款机是为了能让为客户更便捷服务,从而更具备吸引力。从银行角度出发还是非常乐意把一某些资金投入到这方面。2.3系统详细调查及提出系统详细调查是在可行性研究基本上进一步对现行系统进行全面、进一步调查和分析,弄清现行系统运营状况,发现其薄弱环节,保证新系统比原系统更有效。详细调查重点在于对系统内部状况更详细和详细理解,从而可以提供在新系统建设时改进或更换内容。明确顾客信息需求,明确新系统逻辑功能。重要工作是对顾客需求进行进一步调查分析,创立新系统逻辑模型。逻辑模型重要以数据流程图和数据字典为重要描述工具。普通登陆模块只输入账号、密码,固然在实际应用中没有规定顾客输入账号,这是由于在磁卡上有个感应区,设计此模块时加上了验证码。银行帐目管理系统是针对银行帐目寻常管理而设计。银行操作系统不但规定操作以便并且规定界面简洁,它需要实现帐户管理,顾客查询和查询记录等几种功能。其中帐目管理又包括了开户、存款、取款和修改信息功能。顾客可以通过不同方式来查询需要信息。通过该系统设计实现,使银行部门更好地进行业务管理,为客户提供更加优质服务。通过仔细调查得如下功能图和业务流程图:图3-1功能图ATM取款机系统ATM取款机系统退出模块功能模块退出模块功能模块登入模块退卡查卡信息转账修改密码取款查询余额验证码输入账号输入密码退卡查卡信息转账修改密码取款查询余额验证码输入账号输入密码 该系统重要实现银行卡顾客存取款,以及进行某些简朴查询和转账业务,同步可以在系统里面进行客户密码修改,实现简朴机器与客户交互。图3-2业务流程图:待机界面待机界面(按任意键进入登录界面)登录界面登录界面(卡号、密码、验证码、取消等选项)密码错误,请从新输入!选取界面(查询、取款、转帐、修改密码、取消)密码错误,请从新输入!选取界面(查询、取款、转帐、修改密码、取消)修改密码转帐取款查询修改密码转帐取款查询交易完毕交易完毕点击退出点击退出谢谢使用,再会!谢谢使用,再会!3.系统设计系统设计阶段重要目是将系统分析所提出反映顾客信息需求系统逻辑方案转换成可以实行基本计算机(ATM取款机)与通信系统物理(技术)方案。系统设计重要涉及系统总体构造设计和详细设计。系统设计根据重要有系统分析成果、现行技术、顾客需求、系统运营环境。3.1开发环境(1)、软件开发工具选取本系统采用Java作为编程语言,采用MyEclipse软件开发环境,MyEclipse对数据库应用强大支持,使数据库应用开发功能更强大,控制更灵活,编译后程序运营速度更快。MyEclipse公司级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE扩展,运用它可以在数据库和J2EE开发、发布,以及应用程序服务器整合方面极大提高工作效率。它是功能丰富J2EE集成开发环境,涉及了完备编码、调试、测试和发布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate。(2)、数据库管理系统选取由于本次设计所采用是MySql小型数据库,这种数据库用来存储少量数据,在设计和实行上有很大优势,依照之前所做功能分析,以及ATM柜员机自身所具备功能。MySQL是一种小型关系型数据库管理系统,开发者为瑞典MySQLAB公司,在1月16号被Sun公司收购。MySQL被广泛地应用在Internet上中小型网站中。由于其体积小、速度快、总体拥有成本低,特别是开放源码这一特点,许多中小型网站为了减少网站总体拥有成本而选取了MySQL作为网站数据库。 (3)、开发平台选取windows平台以其全新界面简朴快捷操作方式而成为软件开发趋势。依照本系统运营环境和实际状况,选取Windows7(旗舰版)作为开发测试和运营平台。3.2系统总体构造设计系统总体构造是指整个系统由哪些某些构成,以及各某些在物理上、逻辑上互有关系,涉及硬件某些和软件某些,该设计涉及:系统总体布局方案拟定、软件系统总体构造设计、计算机硬件方案选取和设计、数据存储总体设计。依照业务流程图转化为软件体系构造,进而用软件构造图建立物理模型,得系统活动图,如下:图4-1系统构造图:图4-2系统活动图:3.3系统详细设计详细设计实现依照构造程序设计原理,将每个模块功能用相应原则语句表达出来。涉及代码设计、数据库设计、顾客界面设计、解决过程设计。代码设计是指把系统管理对象数字化或字符化,便于计算机解决。遵循代码设计原则:合理性、简要性、系统性、稳定性、可扩充性、原则化、便于辨认和记忆。数据库设计指对系统所采用数据模式、子模式、应用程序、数据库等依照顾客详细规定进行分析和设计。它也是管理信息系统设计重要构成某些。数据库设计基本原则是尽量提高数据组织相对独立性,简化其构造,即用规范化办法设施数据存储构造,提高数据可维护性、完整性、一致性。3.3.1数据库设计通过收集和分析顾客需求,拟定了数据库要保存信息,我将本次数据库设计为二个如下所示表:1、客户表(user)CardID字段信息字段名称类型宽度小数位数空特性姓名userNamevarchar10N性别userSexvarchar2N身份证号userIDvarchar10N卡号userCardNovarchar10N图4-3顾客信息设计表2、账户表(card)CardID字段信息字段名称类型宽度小数位数空特性卡号cardNovarchar10N账户余额cardBalancedecimal102N密码cardPassWordvarchar6N图4-4账户信息设计表3.3.2界面模块设计顾客界面设计当前已成为评价软件质量一条重要指标,所谓顾客界面是指软件系统与顾客交互接口,普通涉及输入设计、输出设计、人机对话界面设计。图4-5登录模块重要代码如下:publicvoidactionPerformed(ActionEvente){ if(e.getActionCommand()=="中文"){ this.setVisible(false); newClient00("输入密码"); }elseif(e.getActionCommand()=="英文"){ StringinputValue=JOptionPane .showInputDialog("Pleaseinputavalue"); } }//监听是选取中文输入还是英文输入}publicclassATM{ publicstaticvoidmain(String[]args){ newClient("ATM自动取款系统"); }}当插入钞票卡之后浮现界面,系统浮现选取中英文登入方式,点击按钮之后(中文)浮现后对话框:图4-6登录界面登录模块依然采用是密码验证方式,需要顾客输入卡号、密码和验证码然后点击确认进行验证,程序将依照输入卡号查找密码,第一没有找到提示,找到继续下一步,在这里我用了验证码方式,输入对的继续,程序系统将依照卡号调用后台数据库查找与卡号相应密码并与顾客输入密码相对比。密码对的继续,否则当输入次数达到三次时,系统将提示你与前台服务员获得联系。第二如果没有找到,提示输入账号错误。重要代码如下:(1)从后台获得账号信息,用于与顾客输入账号密码对照 Class.forName("com.mysql.jdbc.Driver");//加载驱动Connectioncon=DriverManager.getConnection(url,"root", null);//建立连接Statementsql=con.createStatement();//获得一种statement对象 Stringql=panel1.textB.getText();//获取账号ResultSetrs=sql.executeQuery("selectcnimafromcardwhere cno="+ql+"");//依照账号搜索密码,获得成果集系统生成验证码并验证顾客输入验证码publicvoidactionPerformed(ActionEvente){ char[]passwords=panel1.textA.getPassword(); Stringpassword=newString("112626");//设立账号初始密码为112626,每输入一次均有提示,在持续输入三次不对的后系统自动退出。 if(e.getActionCommand().equals("拟定")) if(panel1.textC.getText().equals(panel1.label3.getText())) {heshi(); }else{ JOptionPane.showMessageDialog(frame,"你输入验证码有误, 请重新输入。"); } elseif(e.getActionCommand()=="取消"){ this.setVisible(false); newClient08(""); } }//当输入验证码有误是弹出一种提示窗口图4-7首页设计首页设计重要是设计了查询余额、取款、转账、密码更改及退出按钮等ATM某些原则操作界面。重要代码如下:本界面设立了五个按钮 button1=newJButton("查询"); button2=newJButton("取款"); button3=newJButton("转账"); button4=newJButton("退出");button5=newJButton("修改密码");(2)点击以上五个按钮可以触发进入相应操作界面publicvoidactionPerformed(ActionEvente){ if(e.getActionCommand()=="取款"){ this.setVisible(false); newClient02("请选取取款金额"); } elseif(e.getActionCommand()=="查询"){ this.setVisible(false); newClient06("查询服务"); } elseif(e.getActionCommand()=="修改密码"){ this.setVisible(false); newClient05("修改密码服务"); } elseif(e.getActionCommand()=="转账"){ this.setVisible(false); newClient04("顾客转账服务"); } elseif(e.getActionCommand()=="退出"){ this.setVisible(false); newClient08(""); }}图4-8查询模块在此模块中,将通过顾客所使用账户编号来进行余额查询,将显示账户实际余额,点击“查询”按钮,通过按钮Action办法进行办法调用,就可以实现查询功能并把查询到账户余额显示到界面上。当顾客点击“返回”时,程序返回到初始主界面。图4-9查询卡信息模块此功能用来显示持卡人基本信息涉及姓名、性别、身份证、卡号等,点击查询按钮后系统将依照与输入卡号相一致字段信息,显示输出在该页面上。当点击取消按钮时系统将返回到初始主界面。图4-10修改密码模块此模块需要顾客输入旧密码后,两次输入新密码进行确认,然后,点击拟定,修改密码,成功后给出提示信息,其中考虑到某些顾客输入错误问题,我做出了某些异常判断和解决,空输入,输入两次新密码不匹配和原密码不对的等问题。修改更新密码完毕依然依托按钮控件Action事件完毕。修改密码重要代码如下:if(newString(passwords1).equals(newString(passwords2))){ this.setVisible(false); JOptionPane.showMessageDialog(frame,"输入新密码和和原密码一致,请重新输入。"); panel10.text1.setText(""); panel10.text2.setText(""); panel10.text3.setText(""); return; } if(newString(passwords2).equals(newString(passwords3))){ this.setVisible(false); JOptionPane.showMessageDialog(frame,"正修改原密码,请等待"); updateM(); }//程序依照输入原密码,查找数据库表格user进而修改密码数据表数据。 else{ JOptionPane.showMessageDialog(frame,"两次输入新密码不一致,请重新输入。"); panel10.text2.setText(""); panel10.text3.setText(""); } //} if(panel10.text1.getText().equals("")||panel10.text2.getText().equals("")||panel10.text3.getText().equals("")){ JOptionPane.showMessageDialog(frame,"请输入原密码及新密码!"); return; } else{ if(newString(passwords1).equals(newString(passwords2))){ JOptionPane.showMessageDialog(frame,"输入新密码和原密码一致,请重新输入。");panel10.text2.setText("");panel10.text3.setText("");return;} if(newString(passwords2).equals(newString(passwords3))){ JOptionPane.showMessageDialog(frame,"正修改原密码,请等待");updateM();}//程序依照输入原密码,查找数据库表格user进而修改密码数据表数据。 else{ JOptionPane.showMessageDialog(frame,"两次输入新密码不一致,请重新输入。"); panel10.text2.setText(""); panel10.text3.setText("");}}图4-11转账业务模块在此模块,顾客依照需要自己输入卡号及欲转金额,这里设计其实最后归结于详细SQL语句而言,系统将依照输入卡号查找与之相应顾客数据表,从而修改金额。第一,系统一方面依照本卡号,查找本卡金额与输入金额对比,如果找到,且金额容许就提示转账成功。第二,如果,没有找到输入卡号,提示没有该顾客,重新输入欲转账号。图4-12取款模块取款模块是一种相对比较重要模块,由于ATM机就要功能就是取款业务,顾客选取账户名点击取款金额然后点击取款进行取款操作,因此几种数字按钮设计比较大,以便顾客操作,其中某些提示信息也相应地给出,以防顾客误操作。由于此模块不需要顾客输入,因此没有对输入异常解决。依照所查资料我所采用SQL语句调用办法是预解决指令办法,这种办法对于解决此程序具备很大益处,并且可以防止非法SQL注入。当顾客点击数组按钮后系统将依照输入卡号查找卡号余额并与按钮数字相对比,如果选取金额不不大于本卡余额将提示(不容许透支)。图4-13退卡模块退卡模块相对简朴多了,没有什么详细界面设计,只是一种消息提示,也是一种和谐解决方式,以防止顾客误操作办法。4.系统实现系统实行是ATM系统开发过程中最后一种阶段。它目的是将技术设计转化成物理实现。系统实行阶段重要任务有:按总体设计方案购买和安装计算机网络系统、建立数据库、编程与调试、整顿基本数据、培训操作人员、程序试运营和系统切换。4.1程序设计与调试4.1.1程序设计程序设计语言选取普通考虑到项目应用领域、软件开发办法、软件执行环境、算法和数据构造复杂性、和软件开发人员知识。程序设计是指使用选定程序设计语言,把通过概要设计和详细设计所得到信息解决过程,转换成能在计算机上运营程序源代码。本系统中用MyEclipse编程工具,采用构造化编程办法对模块进行程序编写。详细源程序见附件。4.1.2程序调试软件测试目是尽量多发现程序中错误,而调试则是在进行了成功测试之后才开始工作。程序调试是指在系统测试基本上,将发现问题进行改正,使之符合设计原则。本系统采用重要办法如下:单元测试:是指原程序中每个程序单元进行测试,检查各个模块与否正的确现规定功能,从而发现模块在编码中或算法中错误。采用白盒法对各模块进行逻辑错误排查,用黑盒法录入某些有特性数据从不同角度验证成果。集成测试:在单元测试基本上,将所有模块按照设计规定组装成一种完整系统进行测试。确认测试(有效性测试):它任务是检查软件功能与性能与否与需求规格阐明书中拟定指标相符合。普通分为用黑盒进行确认测试,再检查软件所有文档完整性、对的性——软件配备审查。4.2试运营系统试运营是指对系统运营环境和资源进行设立、系统运营和控制参数设定、数据加载以及调节系统与业务工作同步等。系统维护系统维护是软件生存周期中时间最长一种阶段,所耗费精力和费用也是最多一种阶段,系统维护目是保证系统中各个要素随着环境变化始终处在最新、对的工作状态。系统维护是信息系统可靠运营重要技术保障,咱们应予以足够注重。系统维护内容有校正性维护、适应性维护、完善性维护和防止性维护四种。校正性维护:为了辨认和纠正错误,修改软件性能上缺陷,进行拟定和修改错误过程。适应性维护:为了使应用软件适应变化而修改软件过程完善性维护:为了适应变化,应用软件本来功能和性能需要扩充和增强。从而达到提高软件运营效率,增强软件性能而进行维护。(4)防止性维护:为了提高软件可维护性和可靠性而对软件修改。6.系统评价系统评价应是贯穿系统整个生命周期各个阶段重要决策手段和工作环节。狭义上系统评价是指系统投入运营后从功能性能、经济效益、社会效益上评价本系统基本实现了取款、查询余额、转账、修改密码等功能,但由于时间短、知识水平有限,经验局限性,系统仍存在局限性,该系统重要有如下特点:1、程序可读性强,易懂易维护2、顾客界面简洁,以便了顾客使用。3、安全性好,系统依然使用输入密码方式,保证了系统安全。4、系统稳定,基本达到预期功能规定。5、系统还存在着许多局限性,特别是在数据库链接上,在代码编写上也存在着诸多局限性,代码存在着诸多缺陷。6、在系统界面效果上也存在局限性,系统界面显示应在屏中间。总来说,本次设计当中存有许多局限性之处,基本上设计出了和自己预想中效果,但同步在设计上也还存在着诸多,诸多事没有什么用代码,我想是由于时间和经验问题,后来多练习就必定能提高,UI设计方面,仔细地看,尚有某些小问题,系统运营时警告就多达36处,但不会影响程序运营,只会在美观方面有一定影响,此后一定改进。7.结束语 1.通过java编写简朴ATM登录系统设计,我不但复习了上学期java编程设计基本知识,并且增强了我对java语言领悟和应用,同步也更深刻懂得了学好学会了并不是代表可以真正在实践中运用得流畅,这次实践给了咱们一种既动手又动脑独立实践机会,但其中也包括了自我寻找资料能力和同窗间合伙能力。这个系统将理论和实践相结合,提高自己分析、解决问题能力,并且让我明白了计算机技术一定要从实际出发才干真正提高自己能力。 2.通过了一种多月设计和编写这个系统,我深刻结识到了自己局限性和缺陷,自己处在什么水平,和同窗相比自己差距有多大,但是我也发现了自己长处和长处,不论怎么样,通过这次学习,我懂得了如何取长补短,充分运用网络资源重要性。参照文献[1]夏宽理.Java语言程序设计.北京:机械工业出版社,.4.[2]张孝祥.Java就业培训教程.北京:清华大学出版社,.6.[3]陆丽娜.软件工程.北京:经济科学出版社,.3.[4]丁宝康.数据库系统原理.北京:经济科学出版社,.[5]孙卫琴.Java面向对象程序设计[M].电子工业出版社,.7.[6]王国辉,吕海涛.Java数据库系统开发案例精选[M].北京:人民邮电出版社.[7]陈国君,陈锡祯.Java2程序设计基本[M].北京:清华大学出版社.[8]袁海燕.Java实用程序设计100例[M].北京:人民邮电出版社.[9]朱站立、沈伟.Java程序设计实用教程[M].电子工业出版社.[10]印旻编、许伟.Java2从入门到精通[M].北京:清华大学出版社.[11]杨树林,胡洁萍.Java语言最新实用案例教程.北京:清华大学出版社,.7:141–232[12]李刚等.Java数据库技术详解.北京:化学工业出版社,.7[13][美]LiangYD.Java语言程序设计.王镁,等译.北京:机械工业出版社,.[14][美]KathyWalrath等.JFCSwing原则教材.北京:电子工业出版社,.[15]郑莉,王言行,马素霞.Java语言程序设计.北京:清华大学出版社,.[16]朱喜福,林建民,唐永新.Java程序设计.北京:人民邮电出版社,.[17]朱喜福.Java程序设计.北京:清华大学出版社,.附件(论文源代码)附一主界面classPanel1extendsJPanel{ JLabellabel1,label2; Panel1(){ setLayout(newGridLayout(4,1)); label1=newJLabel(""+"银行存取款系统"); label2=newJLabel(""+"欢迎你成为本行顾客,你可以选取中文或英文方式"); add(newJLabel());add(label1);add(label2);add(newJLabel());}}classPanel2extendsJPanel{ JButtonbutton1,button2; Panel2(){ setLayout(newGridLayout(3,6)); button1=newJButton("中文");button2=newJButton("英文"); add(newJLabel());add(newJLabel());add(newJLabel());add(newJLabel()); add(newJLabel());add(newJLabel());add(newJLabel());add(button1); add(newJLabel());add(newJLabel());add(button2);add(newJLabel()); add(newJLabel());add(newJLabel());add(newJLabel());add(newJLabel()); add(newJLabel());dd(newJLabel());}}classClientextendsJFrameimplementsActionListener{ Panel1panel1;Panel2panel2;JFrameframe;Client(Strings){ super(s);Containercon=this.getContentPane(); con.setLayout(newGridLayout(2,1));panel1=newPanel1();panel2=newPanel2();con.add(panel1);con.add(panel2);panel2.button1.addActionListener(this); panel2.button2.addActionListener(this); this.setVisible(true);this.pack();} publicvoidactionPerformed(ActionEvente){ if(e.getActionCommand()=="中文"){ this.setVisible(false);newClient00("登陆界面"); }elseif(e.getActionCommand()=="英文"){ StringinputValue=JOptionPane.showInputDialog("Pleaseinputavalue");}}}publicclassATM{ publicstaticvoidmain(String[]args){ newClient("银行账户管理系统"); }}//ATM.java附二登陆界面classPanel01extendsJPanel{ JLabellabel1,label2,label3,label4;JPasswordFieldtextA; JTextFieldtextC;staticJTextFieldtextB;chart[]=newchar[4]; Panel01(){ setLayout(newGridLayout(4,4)); for(inti=0;i<4;i++){ t[i]=(char)(Math.random()*26+'a'); } Stringmm=newString(t);//获得验证码label2=newJLabel("请输入卡号:");label1=newJLabel("请输入密码:"); label3=newJLabel();label4=newJLabel("请输入验证码:"); label3.setBackground(Color.white);label3.setForeground(Color.red); textC=newJTextField(10);textC.setForeground(Color.blue); label3.setText(mm);textA=newJPasswordField(6); textA.setEchoChar('*');textB=newJTextField(""); for(inti=0;i<5;i++){ add(newJLabel()); } add(label2);add(textB);add(newJLabel());add(newJLabel()); add(label1);add(textA);add(newJLabel());add(newJLabel()); add(label4);add(textC);add(label3);}}classPanel02extendsJPanel{ JButtonbutton1,button2; Panel02(){ setLayout(newGridLayout(3,6));button1=newJButton("拟定"); button2=newJButton("取消"); for(inti=0;i<7;i++){ add(newJLabel());} add(button1);add(newJLabel());add(newJLabel());add(button2); for(inti=0;i<6;i++){ add(newJLabel());}}}classClient00extendsJFrameimplementsActionListener{ Panel01panel1;Panel02panel2; JFrameframe=this;//有改动请注意 //JFrameframe; inti=0,j=0; Client00(Strings){ super(s);Containercon=this.getContentPane(); con.setLayout(newGridLayout(2,1));panel1=newPanel01(); panel2=newPanel02();con.add(panel1);con.add(panel2);panel2.button1.addActionListener(this);panel2.button2.addActionListener(this); this.setVisible(true);this.pack();} publicvoidactionPerformed(ActionEvente){ char[]passwords=panel1.textA.getPassword(); Stringpassword=newString("112626");//设立账号初始密码为112626,每输入一次均有提示,在持续输入三次不对的后系统自动退出。 if(e.getActionCommand().equals("拟定")) if(panel1.textC.getText().equals(panel1.label3.getText())){ heshi(); }else{ JOptionPane.showMessageDialog(frame,"你输入验证码有误,请重新输入。");} elseif(e.getActionCommand()=="取消"){ this.setVisible(false);newClient08("");}} publicvoidheshi(){ if(panel1.textA.getText().equals("") ||panel1.textB.getText().equals("")){ JOptionPane.showMessageDialog(frame,"请输入账号、密码!");return; } Stringurl="jdbc:mysql://localhost/BankAccountSystem";//程序直接使用当前类目录下数据库文献 try{ Class.forName("com.mysql.jdbc.Driver"); Connectioncon=DriverManager.getConnection(url,"root",null); Statementsql=con.createStatement(); Stringql=panel1.textB.getText();//获取账号 ResultSetrs=sql.executeQuery("selectcnimafromcardwherecno=" +ql+"");//依照账号搜索密码 if(rs.next()){ Stringqerycmima=panel1.textA.getText(); Strings=rs.getString(1); if(qerycmima.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);}} con.close();//关闭连接frame.repaint(); }else{JOptionPane.showMessageDialog(null,"该顾客不存在,重新输入!","警告!",JOptionPane.YES_NO_OPTION); panel1.textA.setText("");panel1.textB.setText(""); panel1.textC.setText("");return;} }catch(SQLExceptiong){ System.out.println("ECode"+g.getErrorCode()); System.out.println("EM"+g.getMessage()); }catch(Exceptione){ e.printStackTrace();}}}classbankSystem00{ publicstaticvoidmain(String[]args){ newClient00("登陆界面");}}//LoginWindows.java附三功能菜单界面classPanel03extendsJPanel{ JButtonbutton1,button2,button3,button4,button5; Panel03(){ setLayout(newGridLayout(8,6));button1=newJButton("查询");button2=newJButton("取款");button3=newJButton("转账");button4=newJButton("退出");button5=newJButton("修改密码"); for(inti=0;i<7;i++) {add(newJLabel());} add(button1);add(newJLabel());add(newJLabel());add(button2); for(inti=0;i<8;i++){add(newJLabel());} add(button3);add(newJLabel()); add(newJLabel());add(button5); for(inti=0;i<17;i++){add(newJLabel());} add(button4); for(inti=0;i<7;i++){ add(newJLabel());}}} classClient01extendsJFrameimplementsActionListener{ Panel03panel1;JFrameframe; Client01(Strings){ super(s);Containercon=this.getContentPane();panel1=newPanel03(); con.add(panel1);panel1.button1.addActionListener(this); panel1.button2.addActionListener(this);panel1.button3.addActionListener(this); panel1.button4.addActionListener(this);panel1.button5.addActionListener(this); this.setVisible(true);this.pack(); } publicvoidactionPerformed(ActionEvente){ if(e.getActionCommand()=="取款"){ this.setVisible(false);newClient02("请选取取款金额");} elseif(e.getActionCommand()=="查询"){ this.setVisible(false);newClient06("查询服务");} elseif(e.getActionCommand()=="修改密码"){ this.setVisible(false);newClient05("修改密码服务");} elseif(e.getActionCommand()=="转账"){ this.setVisible(false);newClient04("顾客转账服务");} elseif(e.getActionCommand()=="退出"){ this.setVisible(false);newClient08("");}}} classbankSystem01{ publicstaticvoidmain(String[]args){ newClient01("顾客取款系统");}}//functionOperation.java附四修改密码界面classPanel10extendsJPanel{ JLabellabel1,label2,label3;JPasswordFieldtext1,text2,text3;JButtonbutton1,button2; Panel10(){ setLayout(newGridLayout(10,6));label1=newJLabel("请输入原密码:"); label2=newJLabel("请输入新密码:");label3=newJLabel("再次确认密码:"); button1=newJButton("拟定");button2=newJButton("取消"); text1=newJPasswordField(6);text1.setEchoChar('*'); text2=newJPasswordField(6);text2.setEchoChar('*'); text3=newJPasswordField(6);text3.setEchoChar('*'); for(inti=0;i<=7;i++) add(newJLabel());add(label1);add(text1); for(inti=0;i<=9;i++)add(newJLabel());add(label2);add(text2); for(inti=0;i<=9;i++)add(newJLabel());add(label3);add(text3); for(inti=0;i<=8;i++)add(newJLabel());add(button1); add(newJLabel());add(newJLabel());add(button2);for(inti=0;i<=12;i++) add(newJLabel());}}classClient05extendsJFrameimplementsActionListener{Panel10panel10;JFrameframe=this;Client05(Strings){ super(s);Containercon=this.getContentPane(); panel10=newPanel10();con.add(panel10); panel10.button1.addActionListener(this);panel10.button2.addActionListener(this); this.setVisible(true);this.pack();}publicvoidactionPerformed(ActionEvente){ char[]passwords1=panel10.text1.getPassword(); char[]passwords2=panel10.text2.getPassword(); char[]passwords3=panel10.text3.getPassword(); if(e.getActionCommand()=="拟定"){ if(newString(passwords1).equals(newString(passwords2))){ this.setVisible(false);JOptionPane.showMessageDialog(frame,"输入新密码和和原密码一致,请重新输入。"); panel10.text1.setText("");panel10.text2.setText("");panel10.text3.setText(""); return;} if(newString(passwords2).equals(newString(passwords3))){ this.setVisible(false);JOptionPane.showMessageDialog(frame,"正修改原密码,请等待");updateM(); }//程序依照输入原密码,查找数据库表格user进而修改密码数据表数据。 else{JOptionPane.showMessageDialog(frame,"两次输入新密码不一致,请重新输入。"); panel10.text2.setText("");panel10.text3.setText("");}//} if(panel10.text1.getText().equals("")||panel10.text2.getText().equals("")||panel10.text3.getText().equals("")){JOptionPane.showMessageDialog(frame,"请输入原密码及新密码!");return;} else{if(newString(passwords1).equals(newString(passwords2))){JOptionPane.showMessageDialog(frame,"输入新密码和原密码一致,请重新输入。");panel10.text2.setText("");panel10.text3.setText("");return;} if(newString(passwords2).equals(newString(passwords3))){JOptionPane.showMessageDialog(frame,"正修改原密码,请等待");updateM
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小数除以整数同步作业题带答案
- 三年级数学万以内加减混合两步运算题质量作业试题带答案
- 企业合同纠纷预防与解决
- 重庆市商业租赁合同
- 广告投放合同示范文本
- 股权转让合同模板与风险防范
- 2025年度城市更新项目过桥垫资管理合同
- 起劳动合同两年期限强制执行细则
- 采购合同范本(第二部分)
- 2025年度建筑材料运输与仓储服务合同范本
- 中国氢内燃机行业发展环境、市场运行格局及前景研究报告-智研咨询(2024版)
- 《自然保护区划分》课件
- 2025年普通卷钉项目可行性研究报告
- 2024年湖南高速铁路职业技术学院高职单招数学历年参考题库含答案解析
- 上海铁路局招聘笔试冲刺题2025
- 2025年建筑施工春节节后复工复产工作专项方案
- 学校食堂餐厅管理者食堂安全考试题附答案
- 《商用车预见性巡航系统技术规范》
- 国旗班指挥刀训练动作要领
- 春季安全开学第一课
- 植物芳香油的提取 植物有效成分的提取教学课件
评论
0/150
提交评论