资源描述
重庆师范大学 课程名称:软件工程课程设计试题题目:银行卡管理测试系统姓 名:* 学 号:20090512196专 业:2009级计算机科学与技术(非师范)学 院:计算机与信息科学学院时 间:2012年1月4号目录一、开发背景与目标51.1开发背景51.2开发目标与思想5二、需求分析说明52.1系统介绍62.2系统面向的用户群体62.3系统的功能需求72.4 系统非功能性需求72.4.1软硬件环境需求72.4.2软件质量需求72.4.3用户界面需求7三、可行性分析报告83.1 经济可行性分析83.2操作可行性分析83.3技术可行性分析83.4时间、设备可能性8四、开发环境与项目规划94.1开发环境94.2项目规划与管理94.2.1开发人员安排94.2.2开发进度安排9五、结构化分析与设计105.1结构化分析105.2结构化设计14六、面向对象分析与设计18七、数据库分析与设计247.1数据库环境说明257.2数据库命名标准与规范257.3数据库逻辑设计267.3.1逻辑设计步骤267.4数据库物理设计267.4.1数据库物理设计步骤267.4.2表、视图汇总267.4.3各表、视图设计详解27八、人机界面设计278.1界面设计原则278.2系统窗口汇总288.3主界面设计338.4子界面设计34九、项目系统实现359.1实现环境与技术359.2核心模块实现技术代码35十、软件测试信息报告3610.1测试范围与主要内容3610.2测试方法3710.3系统测试步骤3710.4系统优点37十一、软件使用说明书3811.1软件概述3811.2使用说明38十二、系统开发评价38附:参考资料和源代码部分39一、开发背景与目标1.1开发背景本系统选题为银行卡管理测试系统,是模拟银行卡管理开发的。随着计算机的飞速发展及应用领域的扩大,特别是计算机网络和电子商务的发展,极大的改变了商业银行传统的经营模式。能够为客户提供方便、快捷、安全的服务,也能够有效的降低银行的营运成本,这是银行卡管理系统追求的目标。目前,对于现代化银行运营的要求是客户可以实现随时随地的业务交易,银行职员可以进行高效合理的工作管理,实现银行业务电子化。1.2开发目标与思想本系统的设计指导思想是一切为使用者着想,利用JAVA语言在Eclipse下设计了这么一个系统,界面美观,使得用户可以安全的进行操作,便捷,快速的进行取款以及完成一些商业上的交易,大大提高办公效率,能够及时、准确、有效的帮用户办理各种繁琐的手续,也减缓了银行工作人员的压力。具体表现为:(1)系统应该符合银行卡管理的规定,满足相关人员使用系统的基本需要并要求达到操作过程中,直观、方便、实用、安全等需求;(2)系统采用模块化程序设计方法,便于系统功能的各种组合和修改,又便于未参加开发的程序人员补充、维护;(3)系统具备数据库维护功能,及时根据用户需要进行数据添加、删除等操作;(4)采用软硬件环境及先进的管理系统开发方案,利用现有资源,提高系统开发水平和应用效果的目的。二、需求分析说明需求分析说明是管理系统开发的起始阶段,也是MIS开发工作中最重要的一环。需求分析的目标是明确系统开发的目标和用户信息需求,提出系统的逻辑方案。为系统设计做好准备。2.1系统介绍 银行卡管理系统是由计算机控制的持卡人自我服务型的金融业专用设备。是最普遍的自助银行设备,可以提供最基本的银行服务之一,即取钱交易,有些功能全的设备还可以提供自助存、款业务。由银行卡管理系统应用的ATM自动取款机上还可以进行账户查询、修改密码和转账等简便业务。同时在制作这个系统的过程中也应用了数据库的知识,数据库链接是本系统的设计的重点。银行卡管理系统可以分为管理员管理系统与用户操作系统,管理员管理系统负责用户数据的创建、修改与管理;用户操作系统接受用户操作命令以后,执行并上报给管理员管理系统,。由管理员管理系统修改用户数据库,用户操作系统只能执行用户命令,不能修改用户数据。银行卡管理测试系统结构如图:2.2系统面向的用户群体 金融业中应用银行储蓄卡的广大用户,简单的操作,比如:取款(2000以内)、存款(少量金额)、转账、修改密码等简易的银行卡操作。2.3系统的功能需求通过银行卡管理系统一方面加快了客户的服务,提高的服务质量,另一方面减轻了员工的工作复杂度,提高了工作效益,实现了银行卡账户管理的的系统化、规范化、自动化、和智能化。系统具体实现如下:(1) 键盘操作,快速响应(2) 对用户输入的数据,系统会进行严格的检验,尽量避免人为错误(3) 实现银行开户、取款、存款、查询、转账、修改密码等功能(4) 系统运行稳定,可靠(5) 系统人性化,符合用户操作习惯(6) 使用控制台进行操作2.4 系统非功能性需求2.4.1软硬件环境需求(1)软件环境: Win7、Window XP等32位操作系统(2)硬件环境:1)Pentium(R) Dual-Core CPU T4300 2.10GHz 2.10GHz 安装内存(RAM):3.00GB 2)AMD A6-3400M APU with Radeon(tm)HD Graphics1.4GHz 安装内存(RAM):2.00GB 3)Celeron(R) Dual-Core CPU T3100 1.90GHz1.90GHz 安装内存(RAM):2.00GB2.4.2软件质量需求 软件开发所用的系统要能够应用Oracle和运行java 的软件Eclipse2.4.3用户界面需求 用户界面需求就是陈述所需要的用户界面的软件组件。描述每个用户界面的逻辑特征。以下是可能要包括的一些特征。(1)将要采用的图形用户界面(GUI)标准或产品系列的风格 (2)屏幕布局或解决方案的限制(3)将出现在每个屏幕的按钮、功能或导航链结(例如一个帮助按钮)。(4)快捷键(5)错误信息显示标准(按照ATM自动取款机的应用界面为标准)以Windows窗口形式显示,标题栏为银行卡管理测试系统名称,右上角有最小按钮、最大化按钮、关闭按钮,不同窗口中有不同的按钮盒选择菜单。三、可行性分析报告 可行性研究的目的就是用最小的代价在最短的时间内确定该软件项目是否能够开发,是否值得去开发。实质上就是进行一次简化、压缩了的需求分析、设计过程。可从三个方面分析研究每种解决问题的可行性3.1 经济可行性分析经济可行性:进行开发成本的估算以及了解得到效益的评估,确定要开发项目是否值得投资开发。对银行业来说,是依靠存款、贷款之间的差额来生存的,所以要尽可能的拉拢更多的客户使用本行,银行卡管理系统是为了能让为客户更便捷的服务,从而更具有吸引力。从银行角度出发还是非常愿意把一部分资金投入到这方面研究当中的。3.2操作可行性分析开发的银行卡管理测试系统需要根据银行卡管理规定操作,不得有侵害他人隐私盗取金额为目的。银行卡管理测试系统方便运行操作,组内人员有着良好的道德修养。会根据用户的实际需要来开发此程序,操作快捷,易于掌握。3.3技术可行性分析 技术可行性:对项目的功能、性能、限制条件进行分析,确定在现有的资源和技术件下系统是否能实现。(开发的风险、资源的有效性、技术)通过对开发风险、资源有效性和技术分析后,认为开发银行卡管理系统风险小,资源充足,技术可以应付,但是一定要以生活中的银行卡管理过程中的信息为基础。3.4时间、设备可能性开发人员可以根据自己时间充分发挥编译操作,也可以在上机时进行研究,时间充足,每个开发人员都有可以操作的电脑,可以查阅资料在图书馆。四、开发环境与项目规划4.1开发环境 利用Java语言强大功能,并具有面向对象开发等的特点,联系实际银行卡管理系统的应用界面,采用Eclipse开发工具,以Win7、Window XP等32位操作系统、Oracle为后台开发出了一套银行卡管理测试系统,基本上实现了账户查询、修改密码、转账、充值和取款等业务。4.2项目规划与管理4.2.1开发人员安排 开发人员主要是经过大家兴趣一致、自愿组合的一个小组,由于本系统设计面广,操作复杂,信息要求强,所以我们选择三个人为一个小组,采取分工合作、共同探讨的原则,努力编辑并且完善系统应用。组内成员有*、*和*。4.2.2开发进度安排10月13日 开始讨论(给予两周时间进行调查分析探讨,确保进行项目研究据充足) 讨论内容:1)系统名的确定 2)运行环境 3)系统应用价值 4)用户群体 5) 需求分析说明 6)可行性分析 7)项目规划 8)编译语言11月3日 经过小组成员查阅资料并做出讨论,最终做出决定,我们组将要开发银行卡管理测试系统,其具有强大的市场,应用价值广泛,应用知识广泛能够充分利用教材所学知识,由于Java语言具有面向对象开发等特点,所以选择Java语言进行编译。分工如下,*负责整体编译模块连接分出编译模块和用户注册模块,*负责转账、充值、取款模块和数据库设计,*负责账户查询、修改密码和文档编辑。(每周四上课时间进行进度汇报,组长并根据进度进行调整和规划)五、结构化分析与设计 结构化分析与设计方法是一种面向数据流的传统软件开发方法,它以数据流为中心构建软件的分析模型和设计模型。结构化分析、结构化设计和结构化程序设计构成了完整的结构化方法。早期的结构化分析方法的分析结果包括:一套分层的数据流图、一本数据字典(包括E-R图)、一组加工规约以及其他补充资料(如非功能性需求等)。5.1结构化分析数据流图是描述输入数据流到输出数据流的变换(即加工),用于对系统的功能建模。银行卡管理测试系统的流程图如下: 流程图:银行卡测试系统0层图:银行卡管理测试系统顶层图: 银行卡管理测试系统加工1子图:银行卡管理系统加工2:从前面的描述中可以看出数据流和数据字典是密不可分的,两者结合起来构成软件的逻辑模型(分析模型)。通过仔细调查得出E-R图数据字典为下图:卡号的数据字典名称:卡号别名:user简述:唯一标识用户清单里的一个特定的唯一的一个编号数据类型:int取值范围:000000999999处理的数据字典名称:处理别名:dealway简述:对卡内信息进行处理的方法数据流组成:取款+存款+转账+修改密码+余额查询+退出数据流来源:卡号处理命令库数据流去向:打印凭条数据量:但系统内余额为0时卡号信息的数据字典名称:卡号信息别名:card-message简述:对用户的信息进行管理文件组成:卡号+身份证号+卡内余额+电话号码5.2结构化设计结构化设计是将结构化分析数据流图映射成软件体系结构的一种设计方法,SD强调模块化、自顶向下逐步求精、信息隐藏、高内聚低耦合等设计准则。在结构化设计中用结构图来描述软件系统的体系结构,指出一个软件系统由那些模块组成以及模块之间的调用关系,如下图所示:结构图第一分解图:卡号注册第一级分解图:卡号注册第二级分解图:卡号处理第一分解图:卡号处理第二级分解图:该系统主要实现银行卡用户的存款、取款,以及进行一些简单的查询和转账业务,同时能够在系统里面进行客户密码的修改,实现简单的机器与客户交互。六、面向对象分析与设计面向对象方法是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,是建立在对象概念(对象、类和继承)基础上的方法,简称OO方法。面向对象分析的目标是完成对所解问题的分析,确定待建的系统要做什么,并建立系统模型。用况视图是列出系统中的用况和执行者,并显示了哪个执行者参与了哪个用况的执行,此系统的用况图如下:下面给出部分用况的详细描述。(1)开户用况描述用况名称:开户参与的执行者:银行职员(客户代理),客户前置条件:一个合法的银行职员(客户代理)已登录到该系统事件流: 1.当选择开户功能时用况开始 2.输入客户信息(姓名、地址、身份证号等) 3.从账户管理系统获取新的账号4.请客户输入密码 5.请客户再次输入密码 6.如果两次密码不一致则回到第4步,否则继续 7.在账户库中增加新客户 8.打印存折,用况结束后置条件:在账户库中增加了一个新账户,得到一张新银行卡(2)取款用况描述用况名称:取款参与的执行者:银行职员(客户代理)前置条件:一个合法的银行职员(客户代理)已登录到该系统事件流:基本路劲: 1、当选择取款功能时,用况开始 2、当输入客户信息时(姓名、账号等)后 (a)如果客户信息与账户不一致,显示错误信息,可以重新输入或结束用况 (b)如果该账户被冻结(如因挂失而冻结),显示冻结信息并结束用况 3、输入并校验密码 4、输入取款金额,如果该账户的余额小于取款金额,显示错误信息,要求重新输入 5、打印取款单 6、建立取款事件记录,更新账户信息 7、用况结束可选路劲: 第3步校验密码时,如果发现密码不一致,则重新输入密码,或用况结束后置条件:如果取款成功,客户账户的余额被更新(减少、增加),否则余额不变活动图描述用况可以用活动图描写用况的活动顺序。系统活动图如下:取款用况的活动图:存款用况的活动图:注册用况的活动图:七、数据库分析与设计数据库设计指对系统所采用的数据模式、子模式、应用程序、数据库等根据用户的具体要求进行分析和设计。它也是管理信息系统设计的重要组成部分。数据库设计的基本原则是尽可能提高数据组织的相对独立性,简化其结构,即用规范化方法设施数据存储的结构,提高数据的可维护性、完整性、一致性。通过收集和分析用户需求,确定了数据库要保存的信息,我将此次数据库设计为二个如下所示表的设计如下:用户信息设计表1、客户表(user)CardID字段信息字段名称类型宽度小数位数空特性用户名unamevarchar18身份证号uidint18N卡号ucnoint18N 账户信息设计表2、账户表(card)CardID字段信息字段名称类型宽度小数位数空特性卡号cnoint18N账户余额cjineint18N密码cnimaint18N7.1数据库环境说明Oracle 数据库,运行环境是Windows x p.。7.2数据库命名标准与规范数据库命名为system,密码为beyond。规范与标准:1. 其中表明尽量避免中文拼音和特殊字符。尽多使用英文。2. 不能使用毫无意义的单词。缩写要基本能表达单词的意思。3. 当出现对象命名重名时,是不同类型是,应该加前缀加以表示。4. 名称一律大写,放表数据转移。其中有两张表。注册表存储本卡之内的相关信息。如取款,余下金额,修改密码等!其他表存储本卡之外所有卡的相关信息。数据库登陆界面:7.3数据库逻辑设计7.3.1逻辑设计步骤1需求分析:了解用户的数据需求、处理需求、安全性及完整性要求;2概念设计:通过数据抽象,设计系统概念模型,一般为E-R模型;3逻辑结构设计:设计系统的模式和外模式,对于关系模型主要是基本表和视图;7.4数据库物理设计7.4.1数据库物理设计步骤1.物理结构设计:设计数据的存储结构和存取方法,如索引的设计;2系统实施:组织数据入库、编制应用程序、试运行;3运行维护:系统投入运行,长期的维护工作。7.4.2表、视图汇总创建表的语句,和图。表和视图的视图:注册表视图:其他表视图:7.4.3各表、视图设计详解创建注册表的语句为:Create table qita1 (Y h m varchar2(20),S f z varchar2(20),M I ma varchar2(20),Q r mm varchar2(20),Ye varchar2(20);Create table qita1 (Y h m varchar2(20),S f z varchar2(20),M I ma varchar2(20),Q r mm varchar2(20),Ye varchar2(20);表中用户名,密码等考虑到有复杂字符,所以都是设计成varchar2型的。而余下金额整形不够大所以也是设计成字符型。后来根据需要改成了number型,这更实用。八、人机界面设计8.1界面设计原则(1)遵循一致原则,确立标准并遵循(2)(Color)颜色使用恰当,遵循对比原则(3)(Resource)资源(4)(Font)字体(5)(Text)文字表达(6)(Style)控件风格,不要使用错误控件,控件功能要专一(7)(Align)控件布局,窗口不拥挤,按功能组合控件(8)Tab顺序(9)快捷键、加速键和弹出菜单(10)用户交互(11)联机帮助(12)发行时阐明规则8.2系统窗口汇总用户界面设计目前已成为评价软件质量的一条重要指标,所谓用户界面是指软件系统与用户交互的接口,通常包括输入、输出设计、人机对话的界面设计。一般登陆模块只输入账号、密码,当然在实际应用中没有要求用户输入账号,这是因为在磁卡上有个感应区,所以在编程序时加上了请输入账号。登陆模块输入界面登录模块依然采用的是密码输入的方式,需要用户输入卡号、密码然后点击确认,程序将根据输入卡号查找密码,程序系统将根据卡号调用后台数据库查找与卡号对应的密码并与用户输入的密码相对比。密码正确继续,否则当输入的次数达到三次时,系统将提示你与前台服务员取得联系。登陆错误界面登陆成功界面余额查询界面在此模块中,将通过用户所使用的账户编号来进行余额的查询,将显示账户的实际余额,点击“查询”按钮,通过按钮的Action方法进行方法调用,就可以实现查询的功能并把查询到的账户余额显示到界面上。当用户点击“返回”时,程序返回到初始程序主界面。取款界面取款模块是一个相对比较重要的模块,因为ATM机就要的功能就是取款业务,用户选择账户名点击取款金额然后点击取款进行取款操作,所以几个数字按钮的设计比较大,方便用户操作,其中一些提示信息也相应地给出,以防用户误操作。由于此模块不需要用户输入,所以没有对输入的异常处理。根据所查资料我所采用的Oracle语句调用方法是预处理指令方法,这种方法对于处理此程序具有很大的益处,而且可以防止非法Oracle注入。当用户点击数组按钮后系统将根据输入的卡号查找卡号余额并与按钮的数字相对比,如果选择的金额大于本卡余额将提示(不允许透支)。充值界面用户输入将要存入的金额,经后台分析,要求放入存款数目,识别后把金额存入账户,账户余额被更新(增加)。转账界面在此模块,用户根据需要自己输入卡号及欲转金额,这里的设计其实最终归结于具体的Oracle语句而言,系统将根据输入的卡号查找与只对应的用户数据表,从而修改金额。第一,系统首先根据本卡号,查找本卡金额与输入的金额对比,如果找到,且金额允许就提示转账成功。第二,如果,没有找到输入的卡号,提示没有该用户,重新输入欲转账号。更改密码界面 此模块需要用户输入旧密码后,两次输入新密码进行确认,然后,点击确定,修改密码,成功后给出提示信息,其中考虑到一些用户的输入错误问题,我做出了一些异常的判断和处理,空输入,输入两次新密码不匹配和原密码不正确等问题。修改更新密码的完成仍然依靠按钮控件的Action事件完成。退卡模块相对简单多了,没有什么具体的界面设计,只是一个消息的提示,也是一种友好的处理方式,以防止用户误操作的方法数据库查询8.3主界面设计 界面设计是帮助程序员提前了解要开发的系统的界面操作怎么样的,可以更好的帮助程序员在编写程序时理清思路,所以在每次项目之前做好界面设计的工作是必需的。首页设计界面首页的设计主要是设计了查询余额、取款、转账、密码更改及退出按钮等银行卡管理的一些标准操作界面。8.4子界面设计九、项目系统实现9.1实现环境与技术本系统采用Java作为编程语言,采用Eclipse软件开发环境,Eclipse对数据库应用的强大支持,使数据库应用开发功能更强大,控制更灵活,编译后的程序运行速度更快。9.2核心模块实现技术代码此系统的功能实现主要取决于是否链接数据库。充值中int a=stmt.executeUpdate( update zc set ye=ye+str1+ where yhm=+登陆界面.username+ );为核心代码;登陆:ResultSet rs = stmt.executeQuery(select * from zc where yhm=+str1+ and mm=+str2+);更改密码:ResultSet rs = stmt.executeQuery(select * from zc where mm=+str1+); if(rs.next() if(str2!=str3) int b=stmt.executeUpdate( update zc set mm=+str2+ where yhm=+登陆界面.username+ );取款:int a=stmt.executeUpdate( update zc set ye=ye-+str1+ where yhm=+登陆界面.username+ );查询:ResultSet rs = stmt.executeQuery(select ye from zc where yhm= +登陆界面.username+);注册:int a= stmt.executeUpdate(insert into zc values(+str1+,+str2+,+str3+,+str4+,+0+);转账: int a=stmt.executeUpdate( update zc set ye=ye+str3+ where yhm=+str1+ ); int b=stmt.executeUpdate( update zc set ye=ye-+str3+ where yhm=+登陆界面.username+ );十、软件测试信息报告测试软件前,需要测试若干个测试用例,每个测试用例由测试输入数据和预期结果组成,测试时通过输入数据,运行被测程序,如果运行的实际输出与预期结果不一致,则表明发现了程序中的错误。10.1测试范围与主要内容程序设计语言的选择通常考虑到项目的应用领域、软件开发方法、软件执行环境、算法和数据结构的复杂性、和软件开发人员的知识。程序设计是指使用选定的程序设计语言,把经过概要设计各详细设计所得到的信息处理过程,转换成能在计算机上运行的程序源代码。本系统中用Eclipse编程工具,采用结构化的编程方法对模块进行程序编写。具体源程序见附页。10.2测试方法 软件测试的目的是尽可能多的发现程序中的错误,而调试则是在进行了成功的测试之后才开始的工作。程序调试是指在系统测试的基础上,将发现的问题进行改正,使之符合设计标准。本系统采用的主要方法如下:(1) 单元测试:是指原程序中每个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。采用白盒法对各模块进行逻辑错误排查,用黑盒法录入一些有特征的数据从不同角度验证结果。(2) 集成测试:在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行测试。(3) 确认测试(有效性测试):它的任务是检查软件的功能与性能是否与需求规格说明书中确定的指标相符合。一般分为用黑盒进行确认测试,再检查软件所有文档的完整性、正确性软件配置审查。10.3系统测试步骤测试过程一般分为4个步骤,即单元测试、集成测试、确认测试和系统测试及发版测试。开始是单元测试,集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确实现规定的功能。集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。确认测试则是要检查已实现的软件是否满足了需求规格说明中的确定了的各种需求,以及软件配置是否完全、正确。系统测试把已经经过确认的软件纳入实际运行环境中,与其他系统成分组合在一起进行测试。10.4系统优点界面美观简约,易于用户操作,可以减轻银行管理人员的工作量。程序可读性强,易懂易维护用户界面简洁,方便了用户使用,安全性好,系统仍然使用输入密码方式,保证了系统的安全,系统稳定,基本达到预期的功能要求。十一、软件使用说明书11.1软件概述ATM自动取款机是由计算机控制的持卡人自我服务型的金融专用设备。银行卡管理测试系统是最普遍的自助银行设备,可以提供最基本的银行服务之一,即取款功能,有些全功能的产品还可以提供信封存款业务。在ATM自动取款机上也可以进行账户查询、修改密码和转账的业务。同时在制作这个系统的过程中也应用了数据库的知识,这个相对于我们专业来说是比较重要的内容,这个也是这个学期学习的重点知识,同时数据库链接是必须要学会的,因为这个是最核心的内容,培养自己坚实的逻辑表达能力和沟通能力,和培养自己良好的文案能力。掌握ATM取款机的具体工作原理以及java简单系统的设计方法。11.2使用说明windows 平台以其全新的界面简单快捷的操作方式而成为软件开发的趋势。根据本系统的运行环境和实际情况,选择Win7作为开发测试和运行的平台。按照界面提示完成即可。十二、系统开发评价系统评价应是贯穿系统整个生命周期各个阶段的重要决策手段和工作环节。狭义上的系统评价是指系统投入运行后从功能性能、经济效益、社会效益上的评价本系统基本实现了取款、查询余额、转账、修改密码等功能,但由于时间短、知识水平有限,经验不足,系统仍存在不足,该系统主要有以下特点: 1、程序可读性强,易懂易维护2、用户界面简洁,方便了用户使用。3、安全性好,系统仍然使用输入密码方式,保证了系统的安全。4、系统稳定,基本达到预期的功能要求。5、系统还存在着许多不足,特别是在数据库的链接上,在代码的编写上也存在着很多的不足,代码存在着很多的缺陷。6、在系统的的界面效果上也存在不足,系统界面显示应在屏中间。总的来说,本次设计当中存有许多的不足之处,基本上设计出了和自己预想中的效果,但同时在设计上也还存在着很多的,很多事没有什么用的代码,我想是因为时间和经验的问题,以后多练习就肯定能提高,UI设计方面,仔细地看,还有一些小问题,系统运行时的警告就多达36处,但不会影响程序的运行,只会在美观方面有一定的影响,今后一定改善。附:参考资料和源代码部分参考资料:参考文献1Java 程序设计精讲 主编 许焕新 丁宏伟 清华大学出版社2Sql Server 实用教程 主编 郑阿奇 电子工业出版社3数据库系统开发案例精选 主编 杨湖 李凤蕾 人民邮电出版社参考网络资源1 豆丁网 .html2 百度知道 3 百度文库 源代码:/ 充值package rjgc;import java.awt.*;import java.awt.event.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import javax.swing.*;public class 充值 extends JFrame implements ActionListenerJTextField tf1;JButton bt1;public 充值()JLabel l1=new JLabel (充值);JLabel l2=new JLabel(充 值:);tf1 = new JTextField(0,18);bt1=new JButton(确定);bt1.addActionListener(this);JPanel p1=new JPanel();l1.setFont(new Font(隶书,Font.BOLD+Font.ITALIC,30);p1.add(l1);JPanel p2=new JPanel();p2.add(l2);p2.add(tf1);p2.setLayout(new FlowLayout(FlowLayout.LEFT,25,30);p2.add(bt1);add(p1,North);add(p2,Center);setSize(360, 200);setVisible(true);setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);this.setResizable(false);this.setLocation(430, 220); public void actionPerformed(ActionEvent e) String str1; if(e.getSource()=bt1) str1=tf1.getText(); try Class.forName(oracle.jdbc.driver.OracleDriver); String url=jdbc:oracle:thin:localhost:1521:orcl; Connection conn =DriverManager.getConnection(url,system,beyond); Statement stmt=conn.createStatement();/ int a=stmt.executeUpdate( update zc set ye=ye+str1+ where yhm=+登陆界面.username+ ); if(a=1) this.dispose(); JOptionPane.showMessageDialog(null,恭喜你充值成功!); stmt.close(); conn.close(); catch (Exception ex) ex.printStackTrace(); / 登录代码package rjgc;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import javax.swing.*;import java.sql.*;public class 登陆界面 extends JFrame implements ActionListener JButton bt1;JButton bt2; JTextField tf1;JPasswordField pwf1;public static String username=null;public 登陆界面() bt1 = new JButton(登陆);bt2= new JButton(注册);tf1 = new JTextField(请输入您的账号或名称,16);pwf1 = new JPasswordField(,16);JLabel l1 = new JLabel(银行卡管理测试系统);JLabel l2 = new JLabel(用户名:);JLabel l3 = new JLabel(密 码:);JLabel l4 = new JLabel(版权所有2011 corporation);JPanel p2 = new JPanel();/ centerp2.setLayout(new FlowLayout(FlowLayout.LEFT,25,30);p2.add(l2);p2.add(tf1);p2.add(bt1);p2.add(l3);p2.add(pwf1);p2.add(bt2);p2.setBackground( new Color(254,254,254); JPanel p3=new JPanel();/north l1.setFont(new Font(隶书,Font.BOLD+Font.ITALIC,30);/italic斜体 p3.setLayout(new FlowLayout(FlowLayout.CENTER,10,5); p3.add(l1); p3.setBackground( new Color(244,244,245); JPanel p1=new JPanel(); l4.setFont(new Font(宋体,Font.BOLD,15);p1.add(l4);/southp1.setBackground( new Color(244,244,245);bt2.addActionListener(this);bt1.addActionListener(this);add(p3,North);add(p1,South);add(p2,Center); setSize(400, 270);setVisible(true); setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);this.setResizable(false);this.setLocation(430, 220);public static void main(String args) 登陆界面 f = new 登陆界面();public void actionPerformed(ActionEvent e) if (e.getSource()= bt2) new 注册界面();this.dispose();if(e.getSource()= bt1)String str1=tf1.getText();username=tf1.getText();String str2=pwf1.getText();try Class.forName(oracle.jdbc.driver.OracleDriver); String url=jdbc:oracle:thin:localhost:1521:orcl; Connection conn =DriverManager.getConnection(url,system,beyond); Statement stmt=conn.createStatement();/ ResultSet rs = stmt.executeQuery(select * from zc where yhm=+str1+ and mm=+str2+); if(rs.next() this.dispose(); JOptionPane.showMessageDialog(null,恭喜你登入成功!); new 登陆成功主界面(); else JOptionPane.showMessageDialog(null,你输入有错,请重新输入!); rs.close(); stmt.close(); conn.close(); catch (Exception ex) ex.printStackTrace(); / 更改密码package rjgc;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;public class 更改密码 extends JFrame implements ActionListener JPasswordField pwf1;JPasswordField pwf2;JPasswordField pwf3;JButton bt1;public 更改密码()JLabel l1= new JLabel(当前密码:);JLabel l2= new JLabel(新 密 码:);JLabel l3= new JLabel(确认密码:);pwf1 = new JPasswordField(,16);pwf2 = new JPasswordField(,16);pwf3 = new JPasswordField(,16);bt1 = new JButton(确认);JPanel p1 = new JPanel();p1.setLayout(new FlowLayout(FlowLayout.LEFT,25,30);p1.add(l1);p1.add(pwf1);p1.add(l2);p1.add(pwf2);p1.add(l3);p1.add(pwf3);p1.add(bt1);bt1.addActionListener(this);add(p1,Center);setSize(330, 300); setVisible(true); setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); this.setResizable(false);this.setLocation(430, 220); public void actionPerformed(ActionEvent e)if(e.getSource()=bt1)String str1=pwf1.getText();String str2=pwf2.getText();String str3=pwf3.getText();try Class.forName(oracle.jdbc.driver.OracleDriver); String url=jdbc:oracle:thin:localhost:1521:orcl; Connection conn =DriverManager.getConnection(url,system,beyond); Statement stmt=conn.createStatement(); ResultSet rs = stmt.executeQuery(select * from zc where mm=+str1+); if(rs.next() if(str2!=str3) int b=stmt.executeUpdate( update zc set mm=+str2+ where yhm=+登陆界面.username+ ); if(b=1) this.dispose(); JOptionPane.showMessageDialog(null,修改密码成功!); / if(str2=str3) else JOptionPane.showMessageDialog(null,两次输入的密码不一致!); / if(b=1) else JOptionPane.showMessageDialog(null,当前密码输入错误!请重新输入); stmt.close(); conn.close(); catch (Exception ex) ex.printStackTrace(); /this.dispose();/ 取款package rjgc;import java.awt.*;import java.awt.event.*;import java.sql.Connection;import ja
展开阅读全文