已阅读5页,还剩69页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
安徽工业大学 毕业设计 论文 任务书 课题名称银行账目管理系统 学 院 计算机学院 专业班级计算机科学与技术 093 班 姓 名吴 杨 杨 学 号099074094 毕业设计 论文 的主要内容 1 按照软件工程的方法结合管理系统设计的要求进行需求分析 总体设计 详细设 计 编码和测试 2 以 Java 为开发工具进行系统前台设计 各开发工具尽可能用高版本 以 Oracle 9i 为工具进行系统后台数据管理 使用 JDBC 技术实现数据库的连接和使用 能提 供一个界面良好 交互功能强 管理方便的基于 C S 的管理系统设计 3 要求系统至少具有用户开户 存款 取款 贷款 还贷款 设置透支额度 修改 信息和查询统计等功能 4 软件结构良好 具备一定的可维护性和可靠性 5 论文字数 1 5 2 万字 并完成相关英文资料 5000 字的翻译 参考文献资料不少 于 8 篇 其中外文资料不少于 2 篇 中英文摘要约 300 字 关键词 3 5 个 指导教师签字 安徽工业大学 毕业设计 论文 说明书 装 订 线 摘 要 随着我国信息产业发展迅速以及中国加入世界贸易组织 国内银行之间以及与 外国银行之间的竞争也越来越激烈 怎样发展业务以吸引更多顾客是各银行面队的 当务之急 而账目管理是银行业务流程过程中十分重要且必备的环节之一 在银行 业务流程当中起着相当重要的作用 现在银行的业务越来越多 吸引的客户也越来 越多 银行账目的管理就越显重要 银行账目管理系统是针对银行账目的日常管理而设计 银行账目管理系统不仅 要求操作方便而且要求界面简洁 它还需要实现用户开户 账目管理和查询统计功 能 针对上述情况和要求 采用软件工程的开发原理 依据软件流程过程规范 按 照需求分析 概要设计 详细设计 程序编码 测试等过程开发了一个银行账目管 理系统 采用 JAVA 作为编程语言 使用工具 eclipse3 1 设计实现了银行账目管理 系统 完成系统管理 账目管理 查询统计 用户查询等功能 关键词 用户开户 账目管理 查询统计 JAVA Eclipse3 1 安徽工业大学 毕业设计 论文 说明书 装 订 线 I AbstractAbstract Along with our country of information industry is developing quickly and China has acceded to WTO many banks have to compete against each other for attracting customers How to develop the business to attract more customers is the urgent matter that each bank confronts Bank account management is a very most part of the process of the bank business It plays a key role in the process of bank business The business of the bank is more and more at present so that the customers of the bank are more and more too The management of the bank account is very for customers The bank account management system is a usual management to aim at the bank account to design This operate system not only operates conveniently but also the interface is succinct and the system needs to achieve some functions such as open an account account management search statistics etc function Aiming at the above circumstance presents a practical method to implement a bank account management system based on software engineering according to the software process such as analyze the need essentials design detailed design program test etc Adopt JAVA programming language and use the tool of eclipse3 1 to design the bank account management system It can complete system management account management search statistics customer search etc function Key words Open an account Account management Search statistics JAVA Eclipse3 1 安徽工业大学 毕业设计 论文 说明书 装 订 线 II 目 录 第一章 引言 1 1 1 开发背景 1 1 2 开发意义 1 1 3 章节安排 2 第二章 系统需求分析 3 2 1 银行账目管理系统的需求 3 2 2 用户对系统的期望 3 2 3 编程语言和运行环境介绍 3 2 3 1 Java 语言 3 2 3 2 Eclipse 开发平台 4 2 3 3 ORACLE 数据库 5 第三章 功能模块设计 6 3 1 银行账目管理功能模块 6 3 2 功能模块介绍 6 第四章 系统设计 8 4 1 总体设计 8 4 1 1 数据库表 8 4 1 2 几种布局 9 4 1 3 类关系 11 4 1 4 客户端和服务器之间的通信 13 4 2 详细设计 15 4 2 1 操作主界面设计 15 4 2 2 开户面板的设计与实现 16 4 2 3 登录面板的设计与实现 17 4 2 4 交易面板的设计与实现 18 4 2 5 信息修改面板的设计与实现 22 4 2 6 忘记密码面板的设计与实现 23 4 2 7 查询面板的设计与实现 23 4 2 8 统计面板的设计与实现 25 4 2 9 销户面板的设计与实现 26 第五章 测试 28 5 1 Java 运行平台简介 28 5 2 系统测试 28 5 2 1 用户开户功能 28 5 2 2 交易功能 29 5 2 3 信息修改 33 5 2 4 查询 33 5 2 5 统计 34 致 谢 35 参考文献 36 附 录 37 安徽工业大学 毕业设计 论文 说明书 第 0 页 共 47 页 装 订 线 第一章第一章 引言引言 1 11 1 开发背景开发背景 随着科技发展和社会进步 尤其是计算机大范围的普及 计算机应用逐渐由大 规模科学计算的海量数据处理转向大规模的事务处理和对工作流的管理 这就产生 了以台式计算机为核心的管理信息系统在大规模的事务处理和对工作流的管理等方 面的应用 在银行账目管理之中的应用日益增加 近年来我国信息产业发展迅速 手工管理方式在银行账目管理等需要大量事务 处理的应用中已显得不相适应 采用 IT 技术提高服务质量和管理水平势在必行 目 前 对外开放必然趋势使银行业直面外国银行巨头的直接挑战 因此 银行必须提 高其工作效率 改善其工作环境 这样 账户管理的信息化势在必行 在传统的银行账户管理中 其过程往往是很复杂的 繁琐的 账户管理以入账 和出账两项内容为核心 在此过程中又需要经过若干道手续 因为整个过程都需要 手工操作 效率十分低下 且由于他们之间关联复杂 统计和查询的方式各不相同 且会出现信息的重复传递问题 因此该过程需要进行信息化 以利用计算机进行账目 管理 系统开发的整体任务是实现银行账户管理的系统化 规范化 自动化和智能化 从而达到提高企业管理效率的目的 1 21 2 开发意义开发意义 随着社会的进步和计算机技术的发展 尤其是网络技术的飞速进步 信息观念 已经深入人心 信息科学作为当代社会中的重要一环在国民经济中起着举足轻重的 作用 在中国经济蓬勃发展的今天 越来越庞大的储蓄用户数目和资金流通量对银 行账目管理的可靠性每天都在进行苛刻的考验 建立和发展功能较完善的银行账目 管理系统 不仅可以服务客户 联系客户 吸引客户 稳定客户 巩固银行业务经 营基础 而且通过服务社会 可以塑造银行自身的市场形象 体现银行的综合实力 还能够提高银行的存款总量 通过提供高效 优质的业务 吸引更多的客户来银行办 理业务 从而扩大了银行的客户群 加强了银行和客户的业务联系 也会带动其他 业务的发展 总之 现代商业银行的竞争和发展 已突破传统业务的框架 为了提 高银行的业务竞争能力 扩大客户群 培育新的利润增长点 务必大力改良其账目 管理系统 因此建立一个功能齐全可靠的账目管理系统成为银行当前业务发展的迫 切之需 安徽工业大学 毕业设计 论文 说明书 第 1 页 共 47 页 装 订 线 1 31 3 章节安排章节安排 第二章对此系统的需求分析 对系统的一些功能概述 第三章对此系统的功能模块的介绍 第四章是对此系统的详细设计 以及部分重要代码 第五章是对系统的测试 以及编程过程中遇到的一些问题以及解决办法 安徽工业大学 毕业设计 论文 说明书 第 2 页 共 47 页 装 订 线 第二章第二章 系统需求分析系统需求分析 2 12 1 银行账目管理系统的需求银行账目管理系统的需求 通过与银行工作人员交流了解 随着银行业务的推陈出新以及这些业务为客户 带来的便利 使银行吸引了越来越多的客户 一切都使银行账目的管理越来越重要 银行账目管理系统是针对银行账目的日常管理而设计 银行操作系统不仅要求 操作方便而且要求界面简洁 它需要实现用户开户 账目管理 信息修改 忘记密 码 查询 统计以及销户等功能 其中账目管理包括存款 取款 申请贷款 还贷 款和设置透支额度的功能 用户可以通过不同的方式来查询需要的信息 通过该系 统的设计实现 使银行部门更好地进行业务管理 为客户提供更佳优质的服务 2 22 2 用户对系统的期望用户对系统的期望 银行对账目管理系统的要求主要有以下几个方面 1 系统能够完成银行账目管理系统的主要功能 2 系统界面简洁 容易操作 3 具有一定的稳定性 安全性 4 访问速度快 2 32 3 编程语言和运行环境介绍编程语言和运行环境介绍 2 3 12 3 1 JavaJava 语言语言 银行账目管理系统采用 Java 语言进行编程 Java 语言是一种很优秀的语言 是目前软件设计中极为壮健的编程语言 只要提供了 Java 解释器 Java 编写的软 件在执行码上兼容 Java 作为一种程序设计语言 它简单 面向对象 不依赖于机 器的结构 具有可移植性 安全性 并且提供了并发的机制 具有很高的性能 其 次 它最大限度地利用了网络 Java 的小应用程序 applet 可在网络上运行而不受 CPU 和环境的限制 另外 Java 还提供了丰富的类库 使程序设计者可以很方便地 建立自己的系统 通过分析 Java 的特点 进一步指出它所具有的优点 Java 语言有下面一些特点 简单 面向对象 与平台无关 解释执行 多线程 安全 动态性 1 简单 Java 语言是一种面向对象的语言 它通过提供最基本的方法来完成 指定的任务 只需理解一些基本的概念 就可以用它编写出适合于各种情况的应用 程序 Java 略去了运算符重载 多重继承等模糊的概念 并且通过实现自动垃圾回 安徽工业大学 毕业设计 论文 说明书 第 3 页 共 47 页 装 订 线 收 大大简化了程序设计者的内存管理工作 2 面向对象 Java 语言的设计集中于对象及其接口 它提供了简单的类机制 以及动态的接口模型 对象中封装了它的状态变量以及相应的方法 实现了模块化 和信息隐藏 而类则提供了一类对象的原型 并且通过继承机制 子类可以使用父 类所提供的方法 实现了代码的复用 3 与平台无关 Java 解释器生成与体系结构无关的字节码指令 只要安装了 Java 运行时系统 Java 程序就可在任意的处理器上运行 这些字节码指令对应于 Java 虚拟机中的表示 Java 解释器得到字节码后 对它进行转换 使之能够在不同 的平台运行 4 解释型 Java 解释器直接对 Java 字节码进行解释执行 字节码本身携带 了许多编译时信息 使得连接过程更加简单 5 多线程 Java 还有一特点就是内置对多线程的支持 多线程支持完成多个 任务 6 安全 用于网络 分布环境下的 Java 必须要防止病毒的入侵 Java 不支 持指针 一切对内存的访问都必须通过对象的实例变量来实现 这样就防止程序员 使用 特洛伊 木马等欺骗手段访问对象的私有成员 同时也避免了指针操作中容 易产生的错误 7 动态 Java 的设计使它适合于一个不断发展的环境 在类库中可以自由地 加入新的方法和实例变量而不会影响用户程序的执行 并且 Java 通过接口来支持多 重继承 使之比严格的类继承具有更灵活的方式和扩展性 2 3 22 3 2 EclipseEclipse 开发平台开发平台 Eclipse 是一个开放源代码的 基于 Java 的可扩展开发平台 就其本身而言 它只是一个框架和一组服务 用于通过插件组件构建开发环境 幸运的是 Eclipse 附带了一个标准的插件集 包括 Java 开发工具 Java Development Kit JDK 虽然大多数用户很乐于将 Eclipse 当作 Java 集成开发环境 IDE 来使用 但 Eclipse 的目标却不仅限于此 Eclipse 还包括插件开发环境 Plug in Development Environment PDE 这个组件主要针对希望扩展 Eclipse 的软件开发 人员 因为它允许他们构建与 Eclipse 环境无缝集成的工具 由于 Eclipse 中的每 样东西都是插件 对于给 Eclipse 提供插件 以及给用户提供一致和统一的集成开 发环境而言 所有工具开发人员都具有同等的发挥场所 这种平等和一致性并不仅 限于 Java 开发工具 尽管 Eclipse 是使用 Java 语言开发的 但它的用途并不限于 Java 语言 例如 支持诸如 C C COBOL PHP 等编程语言的插件已经可用 或预 计将会推出 Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基 础 比如内容管理系统 基于 Eclipse 的应用程序的一个突出例子是 IBM Rational Software Architect 它构成了 IBM Java 开发工具系列的基础 安徽工业大学 毕业设计 论文 说明书 第 4 页 共 47 页 装 订 线 从 2006 年起 Eclipse 基金会每年都会安排同步发布 simultaneous release 至今 同步发布主要在 6 月进行 并且会在接下来的 9 月及 2 月释放出 SR1 及 SR2 版本 2 3 32 3 3 ORACLEORACLE 数据库数据库 ORACLE 是以高级结构化查询语言 SQL 为基础的大型关系数据库 通俗地讲它 是用方便逻辑管理的语言操纵大量有规律数据的集合 是目前最流行的客户 服务器 CLIENT SERVER 体系结构的数据库之一 ORACLE 数据库在逻辑上是由许多表空间构成 主要分为系统表空间和非系统表 空间 非系统表空间内存储着各项应用的数据 索引 程序等相关信息 我们准备 上马一个较大的 ORACLE 应用系统时 应该创建它所独占的表空间 同时定义物理文 件的存放路径和所占硬盘的大小 Oracle 数据库跟其他的数据库一样 具有数据库系统的通用性 1 数据库管理系统 我们知道 所谓的数据库就是一些结构化的数据的联合 体 要提供对这些数据的存取 增加 修改 删除或更加复杂的数据抽取等操作 需要有一个支撑系统 这就是数据库管理系统 DBMS Oracle 完全具有这方面的 功能 2 关系型数据库管理系统 在数据库的发展历程中 曾出现过多种不同形式 的数据库系统 但关系型数据库管理系统 RDBMS 以其优越性而被广为采用 象现 在几种广泛使用的数据库全为关系型数据库 同样 Oracle 也是关系型的数据库系 统 支持标准的结构化查询语言 Structured Query Language 3 开放源码数据库 同商业性的数据库相比 这是 Oracle 最大的特点 Oracle 的源码是公开的 这就意味着任何人 只要遵守 GPL 的规则都可以对 Oracle 的源码使用 修改以符合自己特殊的需求 4 技术特点 Oracle 是 C S 架构的服务器 服务器端是多线程的 为客户端 提供了不同的程序接口和链接库 如 C C Java Perl PHP Tcl 等 也提供了 简单的管理工具 安徽工业大学 毕业设计 论文 说明书 第 5 页 共 47 页 装 订 线 第三章第三章 功能模块设计功能模块设计 3 13 1 银行账目管理功能模块银行账目管理功能模块 银行账目管理系统 用 户 开 户 信 息 修 改 忘 记 密 码 查 询 统 计 销 户 用 户 登 录 存 款 取 款 申 请 贷 款 还 贷 款 设 置 透 支 额 度 用 户 姓 名 身 份 证 号 联 系 电 话 家 庭 住 址 贷 款 信 用 账 户 信 用 账 户 贷 款 储 蓄 账 户 储 蓄 账 户 总 账 户 图 3 1 银行账目管理系统模块图 3 23 2 功能模块介绍功能模块介绍 银行账目管理系统包括七个模块 分别为用户开户 账目管理 信息修改 忘 记密码 查询 统计和销户 其具体的功能如下 1 用户开户 新建一个账户 为其指定一个唯一的账号来标志该用户 2 账目管理 账户分为四种类型 分别是储蓄账户 信用账户 贷款储蓄账 户和贷款信用账户 用户成功登录之后 储蓄账户可以存款和取款 信用账户可以 存款 取款和设置透支额度 贷款储蓄账户可以存款 取款 申请贷款和还贷款 贷款信用账户可以存款 取款 申请贷款 还贷款和设置透支额度 安徽工业大学 毕业设计 论文 说明书 第 6 页 共 47 页 装 订 线 3 信息修改 选择一个存在的账户 然后输入密码经确认后进入用户信息窗 口 可对里面的账户类型 账户密码 用户姓名 身份证号 家庭住址 联系电话 和电子邮箱进行修改 而账号和账户上的金额不能被用户修改 4 忘记密码 选择一个存在的账户 输入新密码和密码重复 密码前后一致 即可更改该账户的密码 5 查询 按照指定方式进行查找账户信息 包括按姓名 身份证号和电话进 行查找 也可以按照地址进行模糊查找 6 统计 对银行的数据进行统计 如对账户数量的统计 7 销户 将指定用户的账号删除 用户输入密码经过验证成功后 把账户的 余额全部取出 最后删除该账户 安徽工业大学 毕业设计 论文 说明书 第 7 页 共 47 页 装 订 线 第四章第四章 系统设计系统设计 4 14 1 总体设计总体设计 4 1 14 1 1 数据库表数据库表 account 表用来存放账户的信息 包括账户类型 type 账号 id 密码 password 账户姓名 name 身份证号 personId 家庭住址 address 联 系电话 phone 电子邮箱 email 账户余额 balance 等 8 个字段 其中 账 号是主键 账户类型 账号和账户余额为数字类型 其它的字段为字符串类型 所 有的字段都不能为空 如表 4 1 所示 表 4 1 account 字符名数据类型是否允许空备注 typenumber 否账户类型 idnumber 否账号 主键 passwordvarchar2 50 否账户密码 namevarchar2 30 否账户姓名 personIdvarchar2 30 否身份证号 addressvarchar2 50 否家庭地址 phonevarchar2 30 否联系电话 emailvarchar2 50 否电子邮箱 balancenumber 否账户余额 loan account 表是用来存放贷款账户贷款额的信息 包括账号 id 和贷款额 loan 两个字段 其中 账号是主键 账号和贷款额这两个字段都是数字类型 都不能为空 如表 4 2 所示 表 4 2 loan account 字符名数据类型是否允许空备注 idnumber 否账号 主键 loannumber 否贷款额 credit account 表是用来存放信用账户透支额度的信息 包括账号 id 和透 支额度 ceiling 两个字段 其中 账号是主键 账号和透支额度这两个字段都是 数字类型 都不能为空 如表 4 3 所示 安徽工业大学 毕业设计 论文 说明书 第 8 页 共 47 页 装 订 线 表 4 3 credit account 字符名数据类型是否允许空备注 idnumber 否账号 主键 ceilingnumber 否透支额度 count account 表是用来存放各种账户类型的人数 包括储蓄账户人数 cSaving 信用账户人数 cCredit 贷款储蓄账户人数 cLoanSaving 和贷款 信用账户人数 cLoanCredit 表中四个字段都是数字类型 都不能为空 如表 4 4 所示 表 4 4 count account 字符名数据类型是否允许为空备注 cSavingnumber 否储蓄账户人数 cCreditnumber 否信用账户人数 cLoanSavingnumber 否贷款储蓄账户人数 cLoanCreditnumber 否贷款信用账户人数 4 1 24 1 2 几种布局几种布局 1 BorderLayout 布局 BorderLayout 布局是 Window 容器的默认布局 JFrame JDialog 都是 Window 类的间接子类 他们的内容面板的默认布局都是 BorderLayout 布局 BorderLayout 布局也是一种简单的布局策略 如果一个容器使用这种布局 那么容器空间简单地 划分为东 西 南 北 中五个区域 中间的区域最大 每加入一个组件都应该指 明把这个组件添加在哪个区域中 区域由 BorderLayout 中的静态常量 CENTER NORTH SOUTH WEST EAST 表示 例如 一个使用 BorderLayout 布局的 容器 con 可以使用 add 方法将一个组件 b 添加到中心区域 con add b BorderLayout CENTER 或 con add BorderLayout CENTER b 添加到某个区域的组件将占据整个这个区域 每个区域只能放置一个组件 如 果向某个已放置组件的区域再放置一个组件 那么先前的组件将被后者替换 使用 BorderLayout 布局的容器最多能添加 5 个组件 如果容器中需要添加的组件超过 5 个 就必须使用容器的嵌套或改用其他布局策略 2 GridLayout 布局 GridLayout 是使用较多的布局编辑器 其基本布局策略是把容器划分成若干行 若干列的网格区域 组件就位于这些划分出来的小格中 GridLayout 比较灵活 划 安徽工业大学 毕业设计 论文 说明书 第 9 页 共 47 页 装 订 线 分多少网格由程序自由控制 而且组件定位比较精确 使用 GridLayout 布局编辑器 的一般步骤如下 使用 GridLayout 的构造方法 GridLayout int m int n 创建布局对象 指定 划分网格的行数 m 和列数 n 例如 GridLayout grid new GridLayout 10 8 使用 GridLayout 布局的容器调用方法 add 将组件加入容器 组件进入容器 的顺序将按照第一行第一个 第一行第二个 第一行最后一个 第二行第一 个 最后一行第一个 最后一行最后一个 使用 GridLayout 布局的容器最多可添加 m n 个组件 GridLayout 布局中每个 网格都是相同大小 并且强制组件与网格的大小相同 由于 GridLayout 布局中每个网格都是相同大小 并且强制组件与网格的大小相 同 使得容器中容器中的每个组件也都是相同的大小 显得很不自然 为了克服这 个缺点 可以使用容器嵌套 例如 一个容器使用 GridLayout 布局 将容器分为三 行一列的网格 那么可以把另一个容器添加到某个网格中 而添加的这个容器又可 以设置为 GridLayout 布局 FlowLayout 布局 CardLayout 布局或 BorderLayout 布 局等 利用这种嵌套方法 可以设计出符合一定需要的布局 3 CardLayout 布局 使用 CardLayout 容器可以容纳多个组件 但实际上同一时刻容器只能从这些组 件中选出一个来显示 就像一叠 扑克牌 每次只能显示最上面的一张一样 这个 被显示的组件将占据所有的容器空间 JTabbedPane 创建的对象是一个轻容器 称为选项卡窗格 JTabbedPane 窗格的 默认布局是 CardLayout 布局 并且自带一些选项卡 不需用户添加 这些选项卡 与用户添加到 JTabbedPane 窗格中的组件相对应 也就是说 当用户向 JTabbedPane 窗格添加一个组件时 JTabbedPane 窗格就会自动指定给该组件一个选 项卡 单击该选项卡 JTabbedPane 窗格将显示对应的组件 选项卡窗格自带的选 项卡默认在该选项卡窗格的顶部 从左到右一次排列 选项卡的顺序和所对应的组 件的顺序相同 JTabbedPane 窗格可以使用 add String text Component c 方法将组件 c 添加到 JTabbedPane 窗格中 并指定和组件 c 对应的选项卡的文本提 示是 text 使用 JTabbedPane 窗格的构造方法 public JTabbedPane int tabPlacement 创建的选项卡窗格的选项卡的位置由参数tabPlacement指定 该参数的有效值为 JTabbedPane TOP JTabbedPane BOTTOM JTabbedPane LEFT JTabbedPane RIGHT 安徽工业大学 毕业设计 论文 说明书 第 10 页 共 47 页 装 订 线 4 1 34 1 3 类关系类关系 SavingAccount 类和 CreditAccount 类都继承了 Account 类 Account 类中有一 个 final 修饰的存款方法 deposit double money 和一个抽象的取款方法 withdraw double money SavingAccount 类和 CreditAccount 类实现了取款方法 LoanSavingAccount 类和 LoanCreditAccount 类分别继承了 SavingAccount 类 和 CreditAccount 类 LoanSavingAccount 类和 LoanCreditAccount 类都继承了 Loanable 接口 在 Loanable 接口中有贷款方法 requestLoan double money 还贷 方法 payLoan double money 和得到贷款的方法 getLoan LoanSavingAccount 和 LoanCreditAccount 类都实现了这三种方法 定义了 10 个面板类 分别是图片面板 PicturePanel 注册面板 RegisterPanel 登录面板 LoginPanel 交易面板 BusinessPanel 登录修改面板 LoginModifyPanel 修改信息面板 ModifyPanel 新密码面板 NewPassPanel 查询 面板 InquiryPanel 统计面板 StatisticsPanel 和销户面板 CancelPanel BAMClient 类中定义了这 10 个面板类的变量 并且将这 10 个面板类 的变量以 CardLayout 布局格式存入一个 JFrame 窗体中 当用户单击窗体中的按钮 时 就显示相应的面板 当用户单击这些面板中的按钮时 就调用相应的方法 BAMClient 类定义的方法有 窗体中部分对象监听方法 public void addListeners 1 开户 public void register 2 登录 public void login 3 交易 public void business 4 登录修改信息 public void loginModify 5 修改信息 public void modify 6 忘记密码 public void newPass 7 查询 public void inquiry 8 统计 public void statistics 9 销户 public void cancel 安徽工业大学 毕业设计 论文 说明书 第 11 页 共 47 页 装 订 线 BAMServer 类是服务器的一个类 在该类里声明了线程类 ServerThread 的变量 当客户端和服务器连接建立时 就调用 ServerThread 中的 run 方法 run 方法 负责判断客户端发来的操作类型是什么 是注册 登录 取款等等 并且获取操作 的信息 如账号 然后根据操作类型调用 Bank 类中相应的方法 由 Bank 类负责将 数据写进数据库 从数据库中将信息取出和更新数据库中的信息 Bank 类中的方法 有 根据 id 获取 Account 对象 public Account getAccount long id 注册 public Account registerAccount int type String password String name String personId String address String phone String email double balance 将账户信息写进数据库 public void writeToDB Account account 登录 public Account loginAccount long id 存款 public Account depositAccount long id double money 取款 public Account withdrawAccount long id double money throws BusinessException 设置透支额度 public Account setCeilingAccount long id double money 贷款 public Account requestLoan long id double money 还贷 public Account payLoan long id double money throws BalanceNotEnoughException LoanException 修改信息 public int modifyAccount int type long id String password String name String personId String address String phone String email 忘记密码 public Account newPassAccount long id String password 查询 public LinkedList inquiry int ok String key 统计 public HashMap statistics 安徽工业大学 毕业设计 论文 说明书 第 12 页 共 47 页 装 订 线 销户 public int cancelAccount long id String password 4 1 44 1 4 客户端和服务器之间的通信客户端和服务器之间的通信 IP 地址标识 Internet 上的计算机 端口号标识正在计算机上运行的进程 程 序 端口号与 IP 地址的组合得出一个网络套接字 Socket 端口号被规定为一个 16 位的整数 0 65535 其中 0 1023 被预先定义的服务通信占用 如 telnet 占用 端口 23 http 占用端口 80 等 除非我们需要访问这些特定服务 否则就应该使用 1024 65535 这些端口中的某一个进行通信 以免发生端口冲突 当两个程序需要通 信时 他们可以通过使用 Socket 类建立套接字对象并连接在一起 比如 有人让你 去 中山广场邮局 你可能反问 我去做什么 因为他没有告诉你 端口 你不 知处理何种业务 他说 中山广场邮局 8 号窗口 那么你到达地址 中山广场邮 局 找到 8 号 窗口 就知道 8 号窗口处理特快专递业务 而且必须有个先决条 件 就是你到达 中山广场邮局 8 号窗口 时 该窗口必须有一位业务员在等待客 户 否则就无法建立通信业务 1 套接字连接 需要注意的是 从套接字连接中读取数据与从文件中读取数据有着很大的不同 尽管二者都是输入流 从文件中读取数据时 所有的数据都已经在文件中了 而使 用套接字连接时 可能在另一端数据发送出来之前 就已经开始试着读取了 这就 会堵塞本线程 直到该读取方法成功读取到信息 本线程才继续执行后续的操作 连接建立后 服务器端的套接字对象调用 getInetAddress 方法可以获取一个 InetAddress 对象 该对象含有客户端的 IP 地址和域名 同样 客户端的套接字对 象调用 getInetAddress 方法可以获取一个 InetAddress 对象 该对象含有服务器 端的 IP 地址和域名 2 套接字关闭 套接字调用 close 方法可以关闭双方的套接字连接 只要一方关闭连接就 会导致对方发生 IOException 异常 代码如下 public class BAMServer 服务端 public static void main String args ServerSocket server null try server new ServerSocket 9007 Socket socket server accept ServerThread thread new ServerThread socket thread start catch IOException e e printStackTrace 安徽工业大学 毕业设计 论文 说明书 第 13 页 共 47 页 装 订 线 public class ServerThread extends Thread Socket socket ObjectInputStream in ObjectOutputStream out public ServerThread Socket socket this socket socket public void run try out new ObjectOutputStream socket getOutputStream 注 意 out 和 in 的先后顺序 in new ObjectInputStream socket getInputStream while true catch IOException e public class BAMClient 客户端 ObjectInputStream in ObjectOutputStream out public BAMClient Socket clientSocket try clientSocket new Socket localhost 9007 in new ObjectInputStream clientSocket getInputStream out new ObjectOutputStream clientSocket getOutputStream catch UnknownHostException e e printStackTrace catch IOException e e printStackTrace 安徽工业大学 毕业设计 论文 说明书 第 14 页 共 47 页 装 订 线 4 24 2 详细设计详细设计 4 2 14 2 1 操作主界面设计操作主界面设计 在操作主界面 可以进行的操作包括用户开户 用户登录 信息修改 忘记密 码 查询 统计和销户 界面简洁易于操作 如图 3 所示 在设计银行账目管理系 统的操作主界面时 第一步利用 public class MainPanel extends JPanel 来 定义一个主面板类 MainPanel 然后在里面定义所需要的全部变量 变量为 private 类型 主面板类 MainPanel 包括 8 个 JButton 按钮 可以通过调用 get 方法得到 相应的按钮 例如 得到用户开户按钮的 get 方法为 public JButton getRegisterButton return registerButton 第二步利用 public class PicturePanel extends JPanel 来定义一个图 片面板类 PicturePanel 第三步定义一个 BAMClient 类 定义一个 JFrame 窗体变量 bamFrame 再定义 左右两个面板 leftPanel 和 rightPanel 左面板添加主面板类 右面板添加图片 面板 并且设置左面板的颜色为白色 设置右面板的布局方式为 CardLayout 第四步定义一个 addListeners 方法 利用 public void addActionListener ActionListener 方法向每一个按钮增加动作监视器 图 4 2 操作主界面示意图 安徽工业大学 毕业设计 论文 说明书 第 15 页 共 47 页 装 订 线 4 2 24 2 2 开户面板的设计与实现开户面板的设计与实现 单击系统操作主界面中的 用户开户 按钮 进入注册面板 如图 4 3 所示 为了使得用户的成功注册 第一步利用 public class RegisterPanel extends JPanel 来定义一个注册面板类 RegisterPanel 用户注册需要填写的信息包括 账户类型 账户密码 用户姓名 身份证号 家庭住址 联系电话和电子邮箱 账户类型是一个下拉列表 JComboBox 变量 下拉列表是用户十分熟悉的一个 组件 用户可以在下拉列表看到第一个选项和它旁边的箭头按钮 当用户单击箭头 按钮时 选项列表打开 选项列表包含四个选项 分别是储蓄账户 信用账户 贷 款储蓄账户和贷款信用账户 用户注册时可以根据自己的需要选择相应的账户类型 JComboBox 类的变量可以通过调用 public void addItem Object anObject 增加选 项 账户密码和密码重复都是 JPasswordField 类型的变量 使用 JTextField 类的 子类 JPasswordField 可以建立一个密码框对象 密码框可以使用 setEchoChar char c 设置回显字符 默认的回显字符是 char getPassword 方法返回密码框中的密码 用户姓名 身份证号 家庭住址 联系电话和电子邮箱都是 JTextField 类型的 变量 JComponent 类的子类 JTextField 是专门用来建立文本框的 即 JTextField 类创建的一个对象就是一个文本框 用户可以在文本框中输入单行的文本 提交和返回按钮都是 JButton 类型的变量 JButton 类是专门用来建立按钮的 即 JButtton 类创建的一个对象就是一个按钮 JButton 类的构造方法 Button String text 创建名字是 text 的按钮 第二步定义一个消息类 Message Message 类有两个私有的成员变量 int 类 型的 operation 和 HashMap类型的 data operation 用来识别操作 的类型 data 用来保存操作的信息 以用户开户为例 operation 的值设置为 1 data 保存了账户类型 账户密码 用户姓名 身份证号 家庭住址 联系电话 和电子邮箱的信息 第三步为注册面板中的 提交 和 返回 按钮增加监视器 当单击 提交 按钮时 调用在 BAMClient 类中定义的方法 register 定义一个 Message 类对象 设置操作类型 operation 为 1 data 保存收集到的信息 在将收集的信息存入 Message 类对象之前 必须确保所有的注册项都不为空 联系电话和电子邮箱符合 一定的格式要求 第四步通过 ObjectOutputStream 输出流将 Message 类对象发送到服务器 服务 器收到 Message 对象之后 判断操作类型是 1 要执行的操作是用户开户 则调用 Bank 类的 registerAccount 方法 第五步定义一个账户类 Account Account 类的一个对象就是一个账户 Account 类包含一个账户的信息有账户的类型 整型 0 表示储蓄账户 1 表示信用账 安徽工业大学 毕业设计 论文 说明书 第 16 页 共 47 页 装 订 线 户 2 表示贷款储蓄账户 3 表示贷款信用账户 用户注册时并不需要自己填写账号 账号是系统自动生成的 第六步将 Message 中的信息取出 定义一个 Account 类对象 再将该对象写进 数据库 图 4 3 开户示意图 4 2 34 2 3 登录面板的设计与实现登录面板的设计与实现 单击系统操作主界面中的 用户登录 按钮 进入登录面板 如图 4 4 所示 登录面板的布局是 BorderLayout 布局 当用户单击登录面板中的确定按钮时 在 BAMClient 类中调用 login 方法 首先判断账号 id 是否为空 判断两个 String 类 型的变量是否相等 用 public equals String 方法 代码如下 if equals id 如果写出 if id equals 那么当用户登 录时 没有输入账号 id 时 即 id null 就会出现空指针异常 id 不为空的情况 下再判断密码是否为空 判断方法和判断 id 是否为空一样 当账号和密码都不为空 的情况下 定义一个 Message 类的对象 设置操作类型 operation 值为 2 只需将 用户输入的 id 存入 Mess
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 变压器处理工风险评估与管理水平考核试卷含答案
- 油气电站操作员岗位技能综合实践考核试卷含答案
- 康复辅助技术咨询师岗位责任制知识考核试卷含答案
- 2025年高考真题-生物(海南卷) 含解析
- 润滑油加氢装置操作工操作技能知识考核试卷含答案
- 花卉栽培工岗前安全演练考核试卷含答案
- 初中英语100个重点英语句型
- 山东省试题及答案
- 2026年医保工作自查报告(3篇)
- 营销活动节日赠礼
- 2025年最-新中小学教师D类考试试卷及答案
- 2026-2027学年九年级语文上册第一单元测试卷统编版
- 多磺酸粘多糖乳膏在常见皮肤疾病应用的专家指导意见
- 新版(2026秋新教材)人教版二年级上册数学《二 1-6的表内乘法》教案合集
- 2026年湖南高速铁路职业技术学院单招综合素质考试模拟试卷(培优A卷)附答案详解
- 2026秋新版小学湘科版科学六年级上册教学计划、教学设计(附目录)适用于新课标
- NPPV联合鼻咽通气道:AECOPD伴肺性脑病治疗新探索
- AI在华文教育中的应用
- 施工升降机安装验收实施方案
- 2026年T电梯修理操作证考试题及答案
- 设备购买意向金合同
评论
0/150
提交评论