银行储蓄系统方案与开发文献_第1页
银行储蓄系统方案与开发文献_第2页
银行储蓄系统方案与开发文献_第3页
银行储蓄系统方案与开发文献_第4页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、个人资料整理 仅限学习使用密级:公开银行储蓄管理系统的设计与开发TheDesign And Development ofankSavings Management System学 院:信息科学与工程学院专业班级:计算机科学与技术 0801班学 号:080405027学生姓名:林宁宁指导教师:靳鹏 讲师)201两06月摘要随着计算机应用范围的不断扩大,其优越的性能已逐渐被人们所接受,在 社会不断进步的大环境下,计算机技术进行的各种管理也给人们带来了很大的 方便。在现代化的银行中,银行储蓄管理系统有着十分重要的作用。为了提高银行的存取款工作效率,降低工作的人力、物力开支,提高工作 的准确性、正确性

2、,并且便于用户信息存取,需要建立一个高效的、方便的计 算机银行储蓄管理系统。该系统利于银行管理人员对储户进行相应的管理,方 便储户对现金形成更好的管理和使用。使银行能够为储户提高更好更及时的服 务,提高银行工作效率,满足用户的需求,为更快、更好的适应现今日益发展 的社会,建立高效的服务平台。银行储蓄管理系统是针对银行储蓄的日常管理而设计。银行储蓄管理系统 不仅要求操作方便而且要求界面简洁,它还需要实现储蓄管理,客户查询和数 据统计等功能。针对上述情况和要求,采用软件工程的开发原理,依据软件流程过程规 范,按照需求分析、总体设计、详细设计、程序编码、测试等过程开发了一个 银行储蓄管理系统。该系统

3、在 Windows XP平台下开发,采用Java作为编程语 言,使用工具Eclipse设计实现。关键词:银行储蓄;查询统计;服务平台;信息存取AbstractWith the expanding range of computer applications, its superior performance has gradually been accepted, by social progress, in the environment of social progressingthe management of a variety of computer technology bring

4、s a lot of convenience. In modern banking, bank deposit management system has a very important role.In order to improve the efficiency of the bank deposit, to reduce the work of human and material expenses,to improve the accuracy of work, and user-friendly access to information, it is needed to esta

5、blish an efficient, convenient computer bank savings management system. The system is conducive to the bank managers to manage the customers appropriately, with better management and use of convenient depositor of cash. Itenables banks to improve better and faster service to the depositors, improve

6、the efficiency of bank to meet the needs of users for faster, better adapt to the social development of todays increasingly efficient service platform.Bank savings management system is designed for day-to-day management of the bank savings. Bank savings management system is not only easy to operate

7、and simple interface, it also needs to realize the savings management, customer inquiries and statistics functions.In response to these circumstances and requirements, the development of software engineering principles, in accordance with the process specification of the software process, in accorda

8、nce with the requirements analysis, preliminary design, detailed design, program coding, testing, process development managementsystem for a bank savings. The system is developed under windows XP platform, using Java as a programming language design and implementation of the use of tools eclipse to

9、build.Keywords: Bank Savings Query Statistics Service Platform。Information Access目 录第1章引言系统开发背景及意义随着科技发展和社会进步,尤其是计算机大范围的普及,计算机应用逐渐 由大规模科学计算的海量数据处理转向大规模的事务处理和对工作流的管理, 这就产生了以台式计算机为核心的管理信息系统在大规模的事务处理和对工作 流的管理等方面的应用,在银行储蓄管理之中的应用日益增加。近年来我国信息产业发展迅速,手工管理方式在银行储蓄管理等需要大量 事务处理的应用中已显得不相适应,采用 IT技术提高服务质量和管理水平势在 必

10、行。目前,对外开放必然趋势使银行业直面外国银行巨头的直接挑战,因 此,银行必须提高其工作效率,改善其工作环境。这样,储蓄管理的信息化势 在必行。现代商业银行的竞争和发展,已突破传统业务的框架,为了提高银行的业 务竞争能力,扩大客户群,培育新的利润增长点,务必大力改良其帐目管理系 统,因此建立一个功能齐全可靠的储蓄管理系统成为银行当前业务发展的迫切 之需。在传统的银行储蓄管理中,其过程往往是很复杂的,繁琐的,储蓄管理以 入帐和出帐两项内容为核心,在此过程中又需要经过若干道手续,因为整个过 程都需要手工操作,效率十分低下,且由于他们之间关联复杂,统计和查询的 方式各不相同;且会出现信息的重复传递问

11、题,因此该过程需要进行信息化 以利用计算机进行储蓄管理。系统开发的整体任务是实现银行储蓄管理的系统化、规范化、自动化和智 能化,从而达到提高企业管理效率的目的。Java语言介绍银行储蓄管理系统采用 Java语言进行编程。Java是一种简单的,跨平台 的,的,分布式的,解释的,健壮的安全的,结构的中立的,可移植的,性能 很优异的多线程的,动态的语言。Java语言是一种很优秀的语言,是目前软件设计中极为壮健的编程语言,只要提供了 Java解释器,Java编写的软件在执行 码上兼容。Java作为一种程序设计语言,它简单、面向对象、不依赖于机器的结构、 具有可移植性、安全性、并且提供了并发的机制,具有

12、很高的性能。其次,它 最大限度地利用了网络,Java的小应用程序(appleq在网络上运行而不受CPU和环境的限制。另外,Java还提供了丰富的类库,使程序设计者可以很方 便地建立自己的系统1-4。Java语言有如下特点:1)平台无关性平台无关性是指Java能运行于不同的平台。Java引进虚拟机 原理,并运 行于虚拟机,实现不同平台的 Java接口之间。使用Java编写的程序能在世界范 围内共享。Java的数据类型与 机器无关,JavaJava Virtual Machine)是建立在 硬件和之上,实现 Java二进制代码的解释执行功能,提供于不同平台的接口的。2)安全性Java的编程类似C+

13、,学习过C+的人将很快掌握Java的精髓。Java舍弃 了 C+的对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样 可以避免病毒通过指针侵入系统。Java对程序提供了安全管理器,防止程序的 非法访问。3)面向对象Java吸取了 C+面向对象的概念,将于类中,利用类的优点,实现了程序 的简洁性和便于维护性。类的封装性、继承性等有关对象的特性,使程序代码 只需一次编译,然后通过上述特性反复利用。程序员只需把主要精力用在类和 接口的设计和应用上。Java提供了众多的一般对象的类,通过继承即可使用父 类的方法。在Java中,类的继承关系是单一的非多重的,一个子类只有一个 父类,子类的父类又

14、有一个父类。Java提供的Object类及其子类的继承关系如 同一棵倒立的树形,根类为 Object类,类功能强大,经常会使用到它及其它派 生的子类。4)分布式Java建立在扩展网络平台上。提供了用和协议传送和接受信息的方法。这 使得程序员使用网络上的文件和使用本机文件一样容易。5)健壮性Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开 发早期出现的错误。自己操纵内存减少了内存出错的可能性。Java还实现了真,避免了覆盖数据的可能,这些功能特征大大提高了开发Java应用程序的周期。并且Java还提供了 Null指针检测、数组边界检测、异常出口、 Byte code 校验等功

15、能。6)解释型C, C+等语言,都是针对CPU芯片进行编译,生成机器代码,该代码的运 行就和特定的CPU有关。Java不像C或C+,它不针对CPU芯片进行编译, 而是把程序编译成称为自字节码的一种“中间代码”。字节码是很接近机器码 的文件,可以在提供了 java虚拟机JVM)的任何系统上被解释执行。7)动态Java程序的基本组成单元就是类,有些类是自己编写的,有些是从类库 中引入的,而类又是运行时动态装载的,这就使得Java可以在分部环境中动态的维护程序及分类,而不像C+那样,没档期类库升级以后,如果想让程序具有新类库提供的功能,就需要修改程序,重新编译。1.3系统开发工具Eclipse 工具

16、简介Eclipse是一个开放源代码的、基于 Java的可扩展开发平台。该平台为 编程人员提供了一流的Java集成开发环境。作为一套开源工具,可用于构建Web Services J2EE等各种类型的应用,其所提供的功能不亚于、甚至超过由专 业的集成环境供应商所提供的商业化产品,如JBuilder。在JAVA的程序开发环境jdk1.7.0_04下Eclipse不需要安装,下载后解压即可使用。就其本身而言,它只是一个框架和一组服务,用于通过组件构建开发环 境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具JavaDevelopment Kit , JDK)。Eclipse 还包

17、括 插件开发环境 Plug-in Development Environment , PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。由于 Eclipse中的每样东西都是插件,对于给 Eclipse提供插件,以及给用户提供一致和统一的集成开发环境 而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于Java开发工具。尽管 Eclipse是使用Java语言开发的,但它白用途并不限于 Java语言;例如,支持诸如C/C+和COBOL等编程语言的插件已经可用,或预计将会推出。Eclipse框架还可用来作为与软件开

18、发无关的其他应用程序类型的基础,比如内容管理系统58 0第2章系统总体设计系统分析本节针对银行储蓄管理系统的设计任务进行论述,对整个银行储蓄管理系统进 行问题分析,阐述一个比较好的银行储蓄管理系统主要具体的特征,需求分 析,预期目标及功能等9-110需求分析通过与银行工作人员交流了解:随着银行业务的推陈出新以及这些业务为 客户带来的便利,使银行吸引了越来越多的客户,一切都使银行储蓄的管理越 来越重要。银行储蓄管理系统是针对银行储蓄业务的日常管理而设计。银行操作系统 不仅要求操作方便而且要求界面简洁,它需要实现储蓄管理,客户查询和数据 统计等几个功能。其中储蓄管理又包含了开户、销户、存款、取款和

19、修改信息 的功能;客户查询,可以通过姓名、账号、电话、家庭地址等不同的方式来查 询需要的客户信息。通过该系统的设计实现,使银行部门更好地进行业务管理,为客户提供更 佳优质的服务。软件具有友好的界面,操作简捷方便,便于与用户交互。预期实现目标及功能对于银行储蓄管理系统的要求主要有以下几个方面:1)系统能够完成银行储蓄管理系统的主要功能;2)系统界面简洁,容易操作;3)具有一定的稳定性,安全性;4)访问速度快。银行储蓄管理系统包括五个模块,分别为系统选项、储蓄管理、数据统 计、用户查询和帮助模块。其中储蓄管理还包含了开户、销户、存款、取款和 修改信息功能。用户查询包含了姓名查询、地址查询、账号查询

20、和电话查询。系统功能的模块图,如图2-1所示:图2-1系统功能模块图银行储蓄管理系统包括五个模块,分别为系统选项、储蓄管理、客户查 询、数据统计和帮助。其具体的功能如下:储蓄管理模块:主要处理用户的日常储蓄操作。1)开户:新建一个账户,为其指定一个唯一的账号来标志该用户。2)销户:将指定用户的账号删除。用户输入密码经过验证成功后,把账 户的余额全部取出,最后删除该账户。3)存款:向指定的账户中存入一笔钱,经用户输入密码确认后,方可存 入。4)取款:从指定的账户中取出一笔钱。取款前用户需要输入密码确认, 取款后账户余额不得少于账户的最低存款额,否则不予处理。5)修改信息:选择一个存在的账户,然后

21、输入密码经确认后进入用户信 息窗口,可对里面的密码、联系电话和家庭住址进行修改,而账号和账户上的 金额不能被用户修改。客户查询模块:按照指定方式进行查找账户信息,包括按姓名、账号和联 系电话进行查找,也可以按照地址进行模糊查找。数据统计模块:对银行的数据进行统计,如对账户数量的统计。帮助模块:可查看系统帮助及软件版本说明。数据库设计在信息世界中,从周围获得信息,然后将获得的信息转化为数据,再将数 据返回到现实世界中。而软件系统的开发工作需要考虑系统开发所需要的数 据,以及如何对这些数据进行操作。这两个问题贯穿了整个软件系统的开发过 程,这也就是数据库的设计问题,软件设计的一个核心 12-130

22、概念结构设计将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计。在系统中采用的是自底向上的概念结构设计方法,通过 实体联系模型二E-R模型)来描述数据库的结构与语义,以对现实世界进行第一次抽象。E-R模型直接从现实世界抽象出实体类型及实体间联系,然后用E-R图来表示数据模型。逻辑结构设计1)数据库设计1)管理员信息表user:包括用户名 主要用于登录),密码;如表2-1所 示。2)账户信息表account:此表用来保存客户的姓名,账号,密码,账户余 额,家庭住址以及电话;如表2-2所示。3)账单信息表bill :此表用于保存客户进行储蓄操作的姓名,账号,类型,金额,账户余额

23、,流水号以及日期;如表 2-3所示。表2-1管理员信息表UsernameString20PasswordString20表2-2账户信息表nameString50idString20passwordString20VmoneyDouble50addressString50phoneString20表2-3账单信息表nameString50accountIdString20typeString50moneyDouble50balanceDouble50billNumberInt16dateDate50和对象输出流(ObjectOutputStream。当使用对象流写入和读出数据时,要保证 对象是

24、序列化的,一个类如果实现了Serializable接口,则这个类创建的对象就是序列化的对象。对象输出流使用writeObject(Object obj方法将一个对象 obj写入到一个文件,对象输入流使用readObject(Object obj方法读取一个对象到程序中。在程序中对数据的操作是使用链表来实现的,所有对数据的操作都能在链 表中表现出来,如数据的增加、删除、修改等。程序中有两张链表存储账户数 据的链表(listAccount和存储所有存取清单的账单链表(BillList ,链表是通过Java.util包中的LinkedList类来创建。用户的所有操作都被记录在这两张链表 中,当链表中

25、的内容发生改变时,程序会调用对象输出流的writeObject(Objectobj方法将文件中的内容更新,从而实现数据的一致性。在存款,取款,修改 信息还有销户的时候首先要在存取帐户信息的链表中找到这个相对应的账号, 然后在进行操作。借助 Iterator类实现遍历链表,一个链表对象可以使用 iterator方法遍历链表。账户数据的链表listAccount建立的代码如下:/存储账户数据的链表,且只能存储 Account类private LinkedList listAccount = new LinkedList(。在链表中查询帐户的代码为:以销户为例Iterator iterator =

26、data.getAccountList(.iterator(。/根据选择的行获得标志该账户的唯一IDString delId = (Stringdm.getValueAt(table.getSelectedRow(,1/根据ID在账户链表中找到该账户并返回该账户的引用while (iterator.hasNext(account = (Accountiterator. next(。if(account.getId(.equals(delId建立新的账户并把它保存在链表,实现的代码如下:public void addAccount(Account account listAccount.add(

27、account读取帐户信息并保存到链表,实现的代码如下: FileInputStream fis = new FileInputStream(file。ObjectInputStream ois = new ObjectInputStream (fis listAccount = (LinkedListois.readObject(。ois.close(。系统详细设计登录界面在登录界面输入管理员姓名和密码,点击“确定”按钮,通过 if(username.equals(getUsername(&password.equals(getPassword( 旬进行 比较。判断是否通过验证,如果通过则释

28、放,显示主窗体,进入操作主界面, 如图3-1所示14-26。图3-1登录界面示意图当管理员打开登录界面后,如果不想登录,点击“退出”按钮退出系统,其代码如下:System.exit(0。在登录时如果管理员输入错误的帐号或密码,通过JOptionPane.showMessageDialog(this,昔误的用户名或密码 !”。提示管理员操作。为防止暴力破解,设计三次输入错误密码,则自动退出系统的机制.其代码如下: count+。if( elseif(count = 3 JOptionPaneshowMessageDialoqthis,”连续三次输入错误, 退出系统!。doExit( o 为了防止

29、下个用户看到上个用户的信息,利用setUsername(。和 setPassword(o来清空用户名和密码输入框中的内容。在设计登录界面的框架时,通过public class LoginWindow extends JFrameimplements ActionListener。定义一个登录窗口类,它继承于 JFrama在设计好登录界面的框架后,要初始化所有控件,实现的部分代码如下:public void initComponent( Container contentPane = this.getContentPane(contentPane.setLayout(nullabelUserna

30、me= new JLabel(管理员帐号: labelPassword = new 儿abel(管理员密码:。 txtUsername= new JTextField(。txtPassword= new JPasswordField()btnConfirm= new JButton(确定”。btnCancel= new JButton(退出。系统主界面在操作主界面,可以进行各种操作,包括显示全部信息、存款、取款、开 户、销户、修改信息和以姓名、账号、家庭地址或电话的方式查找客户信息, 而且界面简洁易于操作,如图3-2所示。图3-2系统主窗体界面在设计银行储蓄管理系统的操作主界面时,先利用pub

31、lic class MainWindow extends JFrame implements ActionListener来定义3个主窗 口类MainWindow ,然后在里面定义所需要的全部变量,变量定义为 private型。在MainWindow类中,功能属性的代码如下:public MainWindow(String title setTitle(title。setSize(WIDTH,HEIGHT。setResizable(falsesetDefaultCloseOperation(EXIT_ON_CLOSE。initMenu(。initComponent(。center(。loadA

32、ccountData(。loadBillData(。操作主界面的设计主要包括几部分:一是菜单栏的设计,二是中间部分表 格的设计,三是下面部分按钮的设计。主要设计过程如下:菜单栏的设计是先创建好菜单项,然后把菜单项添加到对应的菜单中,再 将菜单添加至菜单栏中,最后把菜单添加到主窗体中。例如,设计好操作主界 面后,点击“数据统计”按钮,出现如图 3-3所示的下拉菜单。图3-3菜单栏示意图实现的主要代码如下:public void initMenu( =new JMenuBar(。menuBar/创建菜单=new JMenu(数据统计。 queryCountMenu/创建菜单项=new JMenuI

33、tem(账户总数。queryCountMI/给菜单项添加监听器,监听菜单项的单击事件queryCountMI.addActionListener(this。/菜单项添加到菜单里面 queryCountMenu.add(queryCountMI0setJMenuBar(menuBarx操作主界面的表格如图3-4所示。表格主要包含了姓名、账号、卡上余额、家庭住址和电话,主要是方便查看信息.姓名帐号卡上余额家府住址电话图3-4表格示意图表格部分的设计主要代码如下:/设置表格的列标题final String strColName = 姓名,帐号,卡上余额,家庭住址 7电话。/获得表格的所显示数据的Ta

34、bleModeldm = (DefaultTableModel table.getModel(。/把列标题添加到表格中for ( int i = 0。i dm.addColumn(strCOLNamei。窗体下面部分的控件的设计主要就先将控件创建出来,冉将不同功能的控 件分组放置,便于操作。面板被只能创建一次,如果已经创建了该这块面板,直接返回创建好了的 面板,提高效率。其实现代码如下: if(bottomPanel != nullreturn bottomPanel。 该面板的控件分三部分创建,分别放置在三个面板中,将实现不同功能的控件 放在不同的面板中,达到界面美观,操作方便的目的。如图

35、3-5所示。施柞直找方式篁姓名c城三口岸庭住址C电话查找存就 眼黏ip-ffp 的户修改信且显示金都图3-5操作主界面的面板示意图三个面板通过程序中的三个方法 getBottomLeftPanel(, getBottomMiddlePanel(以及 getBottomRightPanel(。这样的划分增强了程序的可以读性,不同的方法实现不同的功能,一目了然。实现的主要代码如下:private JPanel getBottomPanel( if(bottomPanel != null return bottomPanel。bottomPanel = new JPanel(bottomPanel.

36、setLayout(new GridLayout(1,3。bottomPanel.add(getBottomLeftPanel(bottomPanel.add(getBottomMiddlePanel(x bottomPanel.add(getBottomRightPanel(x return bottomPaneb储蓄管理模块1)存款和取款存款和取款的操作方法都是一样的,都是首先在如图3-2所示的操作主界面里选中一个需要存款 取款)的账户,如图3-6所示,然后点击按钮 存款或 取款按钮),弹出输入密码的信息框,账户输入密码经验证后。银行碣为骨母系缄ITJ5 区系籁褴项 解番管埋 客户查询 戮

37、掘续计 郁助姓名低号卡上拿颍家庭住址电话张明100004898.0沈阳市林西区12454234李审100005300.0沈阻砥醐1342424242后1000064000DJ沈阳市于洪区1390000202020Lisa1000071200.0沈阳市铁西区12313456壬玉10001QI4500.0沈阳市和平霖1O0011S501.0沈阳市被西区葩希街02412121212王子尾1000134253.0沈阳市重工街1111号13Q93SS393910001458100.D沈阳市保工街999母133DS765432图3-6账户被选中示意图 /如果没有选中记录,提示先选

38、中记录才能存款JOptionPane.showMessageDialog(this,请先选择要存款的帐户!”。选中要存款的账户后,点击存款按钮,弹出输入密码框,账户要输入密码验证后才能存款操作,当没有输入的密码或者输错3次,会自动退出系统,实现的代码如下:else/根据选择的行获得标识该账户的唯一IDString delld = (Stringdm.getValueAt(table.getSelectedRow(, 1。/根据ID在账户链表中找到该账户并返回该账户的引用while(iterator.hasNext(account = (Accountiterator.next(。if(acco

39、unt.getId(.equals(delId break。/找到要存款的帐户后,要用户输入密码确认进行存款操作int number = 0。while(true String strPassword = JOptionPane.showInputDialog(this,靖输入密码:。if(strPassword = null return。 else if (account.getPassword(.equals(strPassword break。 else if(+number JOptionPane.showMessageDialog(this,密码错误!请重新输 入!”。contin

40、ue。JOptionPane.showMessageDialog(this,密码输错三次帐号被 锁定!。return。验证密码通过后,在输入框中输入存款金额,金额必须为数字,如果输入 其他信息,系统会报错,如图3-7所示。图3-7操作错误提示框实现的代码如下:/存款数目只能是数字String strNumber = null。while (true strNumber = JOptionPane.showInputDialog(thisJ青输入存款金额:。if(strNumber = null return o else if (strNumber.matches(1-90-9* break。

41、JOptionPane.showMessageDialog(this,输入错误!请输入数字!。通过 account.setMoney(account.getMoney( + Integer.parseInt(strNumber。来实现存款操作。存款完后显示一张存取信息表,如图 3-8所示。产生的存取清单会存储到 存取消单链表中去,点击“显示全部”按钮,显示新的信息,此时的账户余额 信息已经发生变化,通过图3-8和图3-9可以发现金额的变化根希I 0001 4图3-8存款后的信息表5B150.0流阳市保工街蛆3-9账户余额变化实现的代码如下:bill = new Bil

42、l( 。/生成新的存取清单bill.setAccountId(account.getId(。 bill.setMoney(Integer.parseInt(strNumber。 bill.setBalance(account.getMoney(。 bill.setName(account.getName(。bill.setType(存款”。/保存帐户信息到文件FileOutputStream fos = new FileOutputStream(file。 ObjectOutputStream oos = new ObjectOutputStream (fos oos.writeObject(

43、listAccount。 oos.close(。.matches(1-90-9* JOptionPane.showMessageDialog(this,请输入正确的存款!。return o密码和电话号码是可以不填,密码不填写时默认是000000,如果要输入必须是六位数字,电话号码输入的话必须是合法的电话号码,主要验证代码如/验证密码是否合法if(!getPassword(.matches(0-96 JOptionPane.showMessageDialog(this,请输入六位数字的密码!。return o/验证电话是否有效if(getPhone(.length( 0 & !getPhone(

44、.matches(0-970-9* JOptionPane.showMessageDialog(this,请输入正确的电话号码!。return o确认输入信息无误后,单击保存按钮,弹出提示框“操作成功”,单击消息框中确定按钮,如图3-11所示:存取信息未用户名:张希嵯号:100014类暨二开户金颤二 56000.0陈户余额:56000.0流水号:38日期: Tue Jun 12 1B:00;00 CST 2012确定图3-11存取信息表消息框 信息收集完成后,保存该账户的信息,并生成一张开户清单,将清单保存 到另外的一个文件中备份。主要代码如下: /将账户数据添加到账户数据链表data.add

45、Account(accountx/保存账户信息到文件FileOutputStream fos = new FileOutputStream(file。ObjectOutputStream oos = new ObjectOutputStream (fos oos.writeObject(listAccount。 oos.close(。/将新的存取清单添加到存取清单链表 billData.addBill(bill 。/保存存取清单数据到文件FileOutputStream fos = new FileOutputStream(file。ObjectOutputStream oos = new O

46、bjectOutputStream (fos oos.writeObject(listBill。 oos.close(。3)销户在如图3-2所示的系统操作主界面单击右下角的“显示全部”按钮后选中 一个要销户的账户,然后点击 销户”按钮,弹出输入密码的信息框,经过验证 后单击“确定”按钮能完成销户功能,同时弹出一个如图3-12所示的信息框,显示存取信息,里面包含有用户名、账号、操作类型、金额、余额、流水号和 操作日期等信息。在销户的时候同时取完账户上的存款金额,最后完成销户功能。点击图3操作主界面的 显示全部”按钮,可以看到销户的账户已经不存在 了图3-12销户成功后的存取信息表当找到要销户的账

47、户之后,账户要输入密码确认进行销户操作,具体的代码如下:/找到要取款的账户后,要用户输入密码确认进行销户操作String strPassword = while(true JOptionPane.showInputDialog(this/请输入密码:。if(strPassword = null return。if(account.getPassword(.equals(strPasswordelsebreak。 else if(+i JOptionPane.showMessageDialog(this,密码错误!请重新输入!。continue。JOptionPane.showMessageDi

48、alog(this,密码输错三次,帐号被锁定! =return o用户确认后,将帐户中的余额全部取出。先删除帐户链表中该帐户的信息,然后在删除外部文件中该帐户的数据,打印出销户清单,主要的代码如下:/将新的存取清单添加到存取清单链表中data.getAccountList(.remove(account。/保存帐户信息到文件FileOutputStream fos = new FileOutputStream(file。ObjectOutputStream oos = new ObjectOutputStream (fos oos.writeObject(listAccount。 oos.close(。/将新的存取清单添加到存取清单链表 billData.addBill(bill 。/保存存取清单数据到文件FileOutputStream fos = new FileOutputStream(file。ObjectOutputStream oos = new ObjectOutputStream (fos oos.writeObject(listBill。 oos.close(。4)修改信息修改信息的窗口和开户窗口是一样的,他们继承于同一个类,但是他们完 成的功能不一样。点击如图3-2所示操作主界面的“修改密码”按钮,弹出输入密码提示框,验证

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论