已阅读5页,还剩66页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
银行信用卡管理系统 作者姓名作者姓名 指导教师指导教师 所学专业所学专业班级班级 所属院系所属院系 学习年限学习年限 2008 年年 9月至月至 2012 年年 6月月 二 一二年六 月 学号 学号 本 科 毕 业 论 文 设 计 目目 录录 摘 要 I 第 1 章 概述 1 1 1 项目开发背景 1 1 2 选择此项目的依据和目的 1 1 3 国内外动态 2 第 2 章 方案论述 3 2 1 系统可行性分析 3 2 2 技术可行性分析 3 2 3 经济可行性分析 4 2 4 社会可行性分析 4 第 3 章 需求分析 5 3 1 问题分析 5 3 2 需求分析 5 3 2 1 普通用户功能 6 3 2 2 贷款用户功能 6 3 2 3 信用用户功能 6 3 2 4 交易相关模块功能 7 3 2 5 贷款相关模块功能 7 3 2 6 透支相关模块功能 8 3 2 7 查看详情模块功能 8 3 2 8 用户管理模块功能 9 3 2 9 密码管理模块功能 9 3 2 10 用户注册功能模块 9 3 2 11 用户登录功能模块 9 3 3 设计 E R 模式 9 3 3 1 数据字典 9 3 3 2 E R 图 10 第 4 章 过程论述 13 4 1 系统目标 13 4 2 总体构想 13 4 3 概要设计 13 4 3 1 数据库概念结构设计 13 4 3 2 概念模型描述 15 4 4 功能分析 16 4 5 详细设计与代码实现 16 第 5 章 结果分析 50 5 1 软件测试分析及目标 50 5 1 1 白盒测试 50 5 1 2 黑盒测试 52 5 1 3 集成测试 53 5 1 4 界面测试 53 5 1 5 功能测试 53 5 2 集成测试与系统测试 59 5 3 程序的异常处理 60 5 3 1 打开错误处理功能 60 5 3 2 自己定义错误页面 60 5 3 3 输入内容的规范化 60 5 4 调试 60 结 论 63 致 谢 64 参考文献 65 Abstract 66 I 银行信用卡管理系统 内容提要 本文主要研究采用基于Java技术 应用Mysql数据库和面向对象思想开发设计的软 件 采用分层设计及工厂模式的信用卡管理系统 本系统采用客户端 服务器 C S 的开发结 构 选用简单 方便的Java作为开发语言 服务器可多平台 如Windows和Linux等均可 与后台数 据库的连接应用了Java强大的链接功能 与Mysql数据完美搭配 本文主要介绍了系统的构成 系 统的需求分析与详细设计 并给出了系统的实现方案及技术细节 包括运行环境的配置 数据库 的建立及功能模块的实现细节等 本系统结合企业实际的贸易信息和用户的普遍需求 经过实际 的需求分析 采用功能强大 可以使开发语言和开发平台友好结合的Eclipse作为开发工具 使 用 Java为编程语言 以Mysql作为数据库 而开发出来的信用卡管理系统 整个系统从符合操作简 便 实用 便捷 安全 灵活的要求出发 完成用户从登陆到退出的全过程 具有实现信用卡的登录 交易 贷款 透支 管理等功能 关键词 信用卡 Java C S Mysql 软件 1 全套设计加扣 3012250582 2 第第 1 章章 概述概述 1 1 项目开发背景项目开发背景 在上个世纪九十年代初期 信用卡市场面临着的处境 需要发展但如何发展的 局面 以花旗银行为首的外资银行为了抢占有限的市场资源 率先成立了信用卡营销 部门 采用类似于保险的经营策略和手段开发客户 取得了非常好的效果 1993 年 出于经营效率和经营成本的考虑 又率先将信用卡营销部门向社会企业开放 由社会 企业代理该行的信用卡市场营销工作 银行只负责信用卡的银行基础业务 信用卡营 销代理行业就是在这样的背景下出现 并在短时间内形成了独特的风格 使信用卡行 业在九十年代中后期达到了一个飞速发展的鼎盛时期 国内的信用卡市场自 1985 年由中国银行发行以来 一直是由银行高度垄断的行 业 办卡程序极为繁琐 发卡量形不成规模效应 用卡环境建设远远滞后 卡均消费 额和卡均信贷额等指针非常低 特别是由于受到传统的思维观念的影响 各家信用卡 发卡银行把信用卡的风险问题看得过于严重 直接束缚了中国信用卡市场的发展和壮 大 到了九十年代末期 以中国银行为代表的国内信用卡发卡银行 接受了来自台湾 这种信用卡经营模式 率先于 1997 年 9 月 17 日由其下属的北京分行与营销企业签约 向社会推出了信用卡服务 开创了国内信用卡发卡走向市场化的先河 促进了信用卡 的市场化发展 让更多的人体会到使用信用卡为我们的生活所带来的时尚 便捷和安 全的感受 信用卡的管理 已经逐渐成为中国信用卡行业走向市场化的重要组成部分 1 2 选择此项目的依据和目的选择此项目的依据和目的 随着国内金融市场开放的时间日益接近 对国内信用卡市场的关注越来越强烈了 将矛头直接指向信用卡业务 当年花旗银行就是这样打开了台湾的信用卡市场 这对 国内银行产生了巨大的压力 同时这种压力也会变成动力 它要求国内银行必须在受 保护的有限时间内 迅速而有效地占领市场 而这项工作单靠银行自身的力量会显得 势单力薄 并且银行还有很多基础业务要做 这就为专业的信用卡营销企业留出一块 生存的空间 以目前区区一百多万张信用卡的市场对应十几亿人口 显然这个市场留 给我们的想象空间似乎太大了 打铁当需自身硬 信用卡发展的空间的确非常大 现有的营销企业不是太多了 而是太少了 已经远远满足不了银行发展的需要 但由于起步晚 底子薄 各家营销 公司都没有形成经营规模 也缺乏与银行形成互动发展的能力 和自身的品牌效应 因此 让更多的人体会到使用信用卡为我们的生活所带来的时尚 便捷和安全的感受 3 信用卡的管理 已经逐渐成为中国信用卡行业走向市场化的重要组成部分 1 3 国内外动态国内外动态 银行信用卡的起源可以追溯到约翰比金斯时代 1946 年 比金斯推出了一项称 之为 记账吧 的信贷方案 该方案的特色在于由银行发行的一种能被当地商户接受的 小额购物券 当交易完成之后 商户只需将购物券直接存入其银行账户 而由银行根 据购物券金额向客户收取款项 但那时由于科技发展的局限 还没有使用信用卡的管 理系统 银行信用卡的激增很快就暴露出了支付体系中的一个巨大缺陷 持卡人只能在其 本地的商户持卡购物 也只能在那些与发卡银行签署协议的商户处购物 为弥补这一 缺陷 美洲银行开始与加利福尼亚州之外的十几家银行打成了许可协议 授权其发行 美洲银行卡 该卡在 1976 年改名为维萨卡 VISA 就这样 随着信用卡的使用越 来越多 而且计算机时代逐步发展壮大 信用卡的管理软件逐步问世 最初 人们使用的信用卡管理软件都是计算刚起步时的软件 速度慢 耗时 耗 力 功能也不完善 在计算机时代的二次革命后 计算机技术开始迅猛发展 硬件设 施也有了质的突变 并且在各个国家中信用卡的使用也越来越普遍 所以随之而来的 软件热潮中 信用卡的管理软件也是被逐步完善着 从最初的基于 Dos 系统的笨拙 低效的到后来基于 Windows 系统的相对美观 切快速的信用卡管理软件 都让人耳 目一新 现在随着软件业的发展 编程语言越来越多 信用卡管理软件也是多种多样了 每个银行都应用不同的信用卡管理软件 但是一些要应用到如 linux 的专业系统 和 如 Oracle 的数据库 那些系统和数据库消费高 应用不灵活 并不适合广泛使用 本系统应用了现阶段软件行业应用最广泛 切应用简单的 Java 语言 Java 语言的跨 平台性决定了其应用的广泛性 而且本系统的数据库使用的是费用小的 Mysql 数据库 Mysql 虽不是特别强大 但是他的功能足以支持本系统的运行 所以本系统在总体上 看是有很大发展前景的 4 第第 2 2 章章 方案论述方案论述 2 1 系统可行性分析系统可行性分析 也称为可行性研究 是在系统调查的基础上 针对新系统的开发是否具备必要性 和可能性 对新系统的开发从技术 经济 社会的方面进行分析和研究 以避免投资 失误 保证新系统的开发成功 可行性研究的目的就是用最小的代价在尽可能短的时 间内确定问题是否能够解决 该系统的可行性分析包括技术 经济 社会几个方面的 内容 当接受一个软件开发任务 就进入软件生命的第一个阶段 即进行可行性的研 究 并不是所有问题具有简单的解决办法 许多问题不能在预定的规模之内解决 因 此通过可行性的研究分析可以知道问题 有无可行性的解决方法 进而避免人力 物 力和才力的浪费 在现行系统初步调查的基础上就可以提出新系统目标 即新系统建 立后所要求达到的运行指标 这是系统开发和评价的依据 系统目标应充分体现 直 接为信用卡系统服务 并且 程序可以分期分批实现 但是 需要指出的是 系统目 标是不可能在总体规划阶段就提得非常具体 它还将在开发过程中逐步明确和定量化 以达到更加出色的程序系统 可是 目标的提法不尽相同 例如 提高管理工作者效 率 减轻劳动强度 提高信息处理速度和准确性 为实验室管理者提供更方便 科学 的服务项目 系统的目标确定后 就可以从以下四方面对能否实现新系统目标进行可 行性分析 调查研究表明 此系统开发目标已明确 在技术和经济等方面都可行 并且投入 少 见效快 因此系统的开发是完全可行的 2 2 技术可行性分析技术可行性分析 技术上的可行性分析主要分析技术条件能否顺利完成开发工作 硬 软件能否满 足开发者的需要等 根据客户提出的系统功能 性能及实现系统的各项约束条件 根 据新系统目标来衡量所需的技术是否具备 该管理系统采用了当前新兴的 Client Server 模式进行开发 结合了 Java 和数据库技术 数据库服务器选用简单方便 地 Mysql 数据库 它能够处理大量数据 同时保持数据的完整性并提供许多高级管理 功能 它的灵活性 安全性和易用性为数据库编程提供了良好的条件 因此 系统的 软件开发平台已成熟可行 硬件方面 科技飞速发展的今天 硬件更新的速度越来越 快 容量越来越大 可靠性越来越高 价格越来越低 其硬件平台完全能满足此系统 的需要 5 2 3 经济可行性分析经济可行性分析 估算新系统的成本效益分析 其中包括估计项目开发的成本 开发费用和今后的 运行 维护费用 估计新系统将获得的效益 估算开发成本是否回高于项目预期的全 部经费 并且 分析系统开发是否会对其它产品或利润带来一定影响 1 支出 硬件设备 PC 机 软件设备 Windows2000 XP Java SQL 软件设计和开发费用 经常性支出 软件维护费用 软件使用费用 2 效益 系统的效益可以从经济效益和社会效益两方面考虑 对于实验室设备管理系统则 应着重分析其社会效益 例如 系统投入运行后可以使实验室管理实现科学化 规范 化 增强了工作人员对管理工作者的管理能力 提高了工作效率 本系统作为一个毕业设计 无需开发经费 并且信用卡的费用在当代社会的经济 上是可以被每一个普通家庭接受的 并且本系统实施后可以显著提高信用卡的使用效 率 有助于信用卡的更广泛拓展 所以本系统在经济上是可行的 2 4 社会可行性分析社会可行性分析 目前 随着生活质量的提高 越来越多的人选择使用简单 轻便 快捷的信用卡 信用卡已是人们生活不可或缺的必备品 而且 随着社会的发展 生活方式的多样化 信用卡的发行量将不断增加 使用率将不断提高 所以本系统在社会上是可行的 6 第第 3 3 章章 需求分析需求分析 3 1 问题分析问题分析 信用卡管理系统是企业联系个人的关键 在企业与企业 企业与个人 个人与个 人之间的沟通和交易中起着重要作用 目前信用卡的管理已经很完善 但大多数业务 还是需要人工操作 这样的管理与操作模式费时 费力又不方便 因此本系统主要的 目的在于安全 功能齐全 从而达到便捷的目的 并且系统会提高办公效率和设备可 靠性 减少工作人员的劳动强度 提高现代化管理水平与信用卡使用的功能 企业面 对市场竞争的巨大压力 要求企业创造新的利润源 这为企业如何配置有限资源 利 用先进计算机技术不断开发出操作简便 界面友好 灵活 实用 安全 更具时效性 的管理系统有着更高的要求 传统的信用卡管理主要是以人工操作的运行模式 随着社会的进步 ATM 机的 出现 信用卡的使用开始逐步转化为智能操作 但是 ATM 机并不是万能的 它有着 很多的弊端 也有着很多无法完成的功能 而在当今社会 随着计算机时代的到来 网上银行渐渐成为主流 功能更齐全 使用更方便 这就奠定了信用卡要使用更自由 更便捷的要求前提 本系统的主要目的即完善信用卡的使用 需要完成九大功能 其中每个功能都将 被分化为具体的几个小功能 1 用户注册 2 用户登录 3 交易相关 4 贷款相关 5 透支相关 6 查询详情 7 用户管理 8 密码管理 9 退出 3 2 需求分析需求分析 简单来说 本系统主要完成了以下九大模块的分析 设计与实现 通过用户需求 点击执行相应功 用户注册 用户登录 交易相关 贷款相关 透支相关 查询详情 用户管理 密码管理 退出 用户分为三个等级 分普通用户 贷款用户和信用用户 7 3 2 1 普通用户功能普通用户功能 普通用户 即只能进行简单操作 不能进行贷款和透支 如图 3 1 普通用户 查 看 详 情 交 易 相 关 用 户 注 册 用 户 登 录 用 户 管 理 密 码 管 理 退 出 系 统 图 3 1 普通用户功能图 3 2 2 贷款用户功能贷款用户功能 贷款用户 即可以进行简单操作也可以进行贷款相关操作的用户 但不能进行透 支相关操作 如图 3 2 贷款用户 查 看 详 情 交 易 相 关 用 户 注 册 用 户 登 录 用 户 管 理 密 码 管 理 退 出 系 统 贷 款 相 关 图 3 2 贷款用户功能图 3 2 3 信用用户功能信用用户功能 信用用户 是级别最高 权限最大的用户 即可以进行简单操作也可以进行贷款 8 相关操作及透支相关操作的用户 其功能如图 3 3 所示 贷款用户 查 看 详 情 交 易 相 关 用 户 注 册 用 户 登 录 用 户 管 理 密 码 管 理 退 出 系 统 透 支 相 关 贷 款 相 关 图 3 3 贷款用户功能图 3 2 4 交易相关模块功能交易相关模块功能 交易模块 完成了信用卡的最基本交易功能 包括存款 取款和转账功能 交易相关 转 账 取 款 存 款 图 3 4 交易相关功能模块图 3 2 5 贷款相关模块功能贷款相关模块功能 贷款模块 完成了信用卡的贷款功能 对于有贷款权限和透支权限的用户可以进 行一定额度的贷款和还贷的操作 9 贷款相关 还 贷 贷 款 图 3 5 贷款相关模块功能图 3 2 6 透支相关模块功能透支相关模块功能 透支模块 完成了信用卡的透支功能 对于有透支权限的用户可以进行一定额度 的透支和还透支款的操作 贷透支相关 还 透 支 款 透 支 图 3 6 透支相关模块功能图 3 2 7 查看详情模块功能查看详情模块功能 查看详情模块 完成的功能为用户进入查看详情界面即可看到登录用户的所有信 息 包括登录名称 用户的卡号 用户真实姓名 用户性别 用户年龄 用户证件类 型 用户证件号码 用户电话 用户地址 用户邮编 用户邮箱 用户余额 用户爱 好及订阅信息等 10 3 2 8 用户管理模块功能用户管理模块功能 用户管理模块 完成的功能为用户进入用户管理界面即可修改用户详细信息 包 括登录名称 用户的卡号 用户密码 用户真实姓名 用户性别 用户年龄 用户证 件类型 用户证件号码 用户电话 用户地址 用户邮编 用户邮箱 用户余额 用 户爱好及订阅信息等 3 2 9 密码管理模块功能密码管理模块功能 密码管理模块 完成的功能为用户进入密码管理界面输入正确的旧密码 及符合 规定的新密码并确定新密码与输入的新密码一直 则用户密码被更改 3 2 10 用户注册功能模块用户注册功能模块 用户注册模块主要是为新用户开户设置的 新用户可以通过填写合法的信息来办 理信用卡 得到系统分配的信用卡号码 当然 为了方便已经注册过信用卡的用户也 可以重复注册 注册渠道分一下两种 1 在登录界面直接点击进入注册页面 2 在登录成功的前提下 在菜单界面点击进入注册页面 3 2 11 用户登录功能模块用户登录功能模块 用户登录模块 及在登录界面用户输入正确的登录名称及密码 在经过数据库确 认无误后用户即可登录 登录后用户可以进行权限相应的操作 3 3 设计设计 E R 模式模式 3 3 1 数据字典数据字典 数据字典是描述数据流图中数据的信息的集合 它对数据流图上每一个成分 数据项 文件 数据结构 数据流 数据存储 加 工和外部项等给以定义和说明 它主要由数据流描述 加工描述和文件描述三部分组 成 对用户来讲 数据字典为他们提供了数据的明确定义 对系统分析员来讲 数据字 典帮助他们比较容易修改已建立的系统逻辑模型 用户数据字典如下表 3 1 所示 表 3 1 数据文件 用户表 的字典条目 文件名 用户表 组 成 用户 id 用户登录名 用户密码 信用卡号 用户真实姓名 用户性别 用户年龄 证件类型 证件号码 用户类型 固定电话 手机号码 用户地址 用户邮编 用户 邮编 用户余额 用户贷款额 用户透支额 用户爱好 用户订阅信息 备 注 这是所有的用户信息表 11 3 3 2 E R 图图 E R 图为实体 关系图 是表示数据对象及其之间关系的图形语言机制 对于每 个模块的构建和如何进行模块之间数据的传递 是重要的依据 构成 E R 图的基本要素是实体型 属性和联系 其表示方法为实体型用矩形表 示 矩形框内写明实体名 属性用椭圆形表示 并用无向边将其与相应的实体连接起 来 联系 用菱形表示 菱形框内写明联系名 并用无向边分别与有关实体连接起来 同时在无向边旁标上联系的类型 1 1 1 n 或 m n 在需求分析阶段所得到的应用需求应该首先抽象为信息世界的结构 才能更好的 更准确的用数据库管理系统实现这些需求 根据需求分析的内容用 E R 图分别表示 出各个实体及其属性 以及用 E R 图表示实体之间的关系 具体如图 3 7 所示 12 用户 抵押物 资 登陆名 证件号 密码 手机号 订阅信 息 地址 邮箱 余额 性别 真实姓 名 卡号 邮编 固定电 话 用户类 型 用户 ID 爱好 年龄 证件类 型 关联用户账号 抵押物名称 关联 透支额 贷款额 1 n 抵押物资 ID 抵押物价值 用户信誉度 关联抵押物编号 图 3 7 系统总体 E R 图 13 图 3 8 信用卡管理系统流程图 14 第第 4 4 章章 过程论述过程论述 4 1 系统目标系统目标 基于 Java 的信用卡管理系统的研究 此系统可以用于信用卡的使用和管理 其 功能涵盖信用卡管理所涉及一系列业务功能 将信用卡的使用变得简单快捷 实现信 用卡的自由使用 减少人工及消费时间 提高效率 完成的功能有 注册 登录 存 款 取款 转账 贷款 还贷 透支 还透支款 查询详情 信息管理 密码管理 退出等 4 2 总体构想总体构想 随着 Java 技术的日益成熟 在软件开发领域中也出现了很多开发语言 但由于 Java 超强的跨平台能力和简单易操作的特性 它的应用却越来越广泛 本系统采用了 C S 设计的思想 应用了 Mysql 数据库 由于 Mysql 是开放源代码的 因此任何人都可 以在 General Public License 的许可下下载并根据个性化的需要对其进行修改 Mysql 因为其速度 可靠性和适应性而备受关注 大多数人都认为在不需要事务化处理的情 况下 Mysql 是管理内容最好的选择 Mysql 虽然功能未必很强大 但因为它的 开源 广泛传播 导致很多人都了解到这个数据库 由于本系统所采用的技术已 经发展得比较成熟 因此本系统在技术上是可行的 4 3 概要设计概要设计 4 3 1 数据库概念结构设计数据库概念结构设计 数据库的概念结构设计 是系统设计工作量比较大的一个部分 也是设计的关键 所在 好的数据库可以减少数据的冗余 提高系统的安全性 本系统包含了一个数据 库 根据系统需求 可以用户数据表来存放用户的有关信息 用户表 user 保存系统的用户信息 数据项包括用户 ID 用户登录名 用户密码 信用卡号 用户真实姓名 用户性别 用户年龄 证件类型 证件号码 用户类型 固定电话 手机号码 用户地址 用户邮编 用户邮编 用户余额 用户贷款额 用 户透支额 用户爱好 用户订阅 用户信誉度和用户的抵押物资信息等 用户表如表 4 1 所示 15 表 4 1 用户表 user 字字段段名名称称数数据据类类型型 长度长度 是否是否 主键主键 数据意义数据意义 user idint 11 Y 用户编号 user login namevarchar 20N 用户登录名 user passwordvarchar 50N 用户密码MD5 码 user namevarchar 11N 用户真实姓名 user sexvarchar 100N 性别 user ageint 100 N 年龄 user certificates typevarchar 10 N 证件类型 user certificates numvarchar 10N 证件号 user typevarchar 10N 用户类型 user phonevarchar 100 N 固定电话 user telephonevarchar 20 N 手机 user addressvarchar 100 N 用户地址 user zipvarchar100N用户邮编 user emailvarchar100N用户邮 user balanceint10N余额 user loanint10N贷款额 user overdraftint 10N透支额 user hobbyvarchar100N爱好 user creditworthinessint 11Y信誉度 ref mortgagevarchar10Y关联抵押物 user subscribevarchar100N订阅信息 16 抵押物资表 mortgage 保存用户贷款时的抵押物资相关信息 数据项包括抵押物 资的编号 抵押物名称 抵押物价值和抵押物关联用户的账号 抵押物资表如表 4 2 所示 表 4 2 抵押物资表 mortgage 字字段段名名称称数数据据类类型型 长度长度是否主键是否主键 数据意义数据意义 mortgage idint 4 Y 抵押物编号 mortgage namevarchar 20N 抵押物名称 mortgage worthdouble N 用户密码MD5 码 ref ccnint 11N 用户真实姓名 4 3 2 概念模型描述概念模型描述 在概要设计阶段 必须设计出系统的概念模型 这是实现系统功能的必经之路 在此过程中 根据各表的分析和对各种数据和系统功能进行综合 可得到软件初始结 构图 具体如图 4 1 所示 信用卡管理系统 注 册 登 录 交 易 相 关 存 钱 取 钱 转 账 贷 款 相 关 贷 款 还 贷 透 支 相 关 查 看 详 情 信 息 管 理 密 码 管 理 退 出 透 支 还 透 支 款 17 图 4 1 信用卡管理系统总体流程图 4 4 功能分析功能分析 基于 Java 的信用卡管理系统分为 交易模块 完成了信用卡的最基本交易功能 包括存款功能 取款功能和转账功 能 贷款模块 完成了信用卡的贷款功能 对于有贷款权限和透支权限的用户可以进 行一定额度的贷款和还贷的操作 透支模块 完成了信用卡的透支功能 对于有透支权限的用户可以进行一定额度 的透支和还透支款的操作 查看详情模块 完成的功能为用户进入查看详情界面即可看到登录用户的所有信 息 包括登录名称 用户的卡号 用户名称 用户性别 用户年龄 用户证件号码 用户证件号码 用户电话 用户地址 用户邮编 用户邮箱 用户余额 用户爱好及 订阅信息等 用户管理模块 完成的功能为用户进入用户管理界面即可修改用户详细信息 包 括 密码管理模块 完成的功能为用户进入密码管理界面输入正确的旧密码 及符合 规定的新密码并确定新密码与输入的新密码一直 则用户密码被更改 用户注册模块主要是为新用户开户设置的 新用户可以通过填写合法的信息来办 理信用卡 得到系统分配的信用卡号码 当然 为了方便已经注册过信用卡的用户也 可以重复注册 注册渠道分一下两种 1 在登录界面直接点击进入注册页面 2 在登录成功的前提下 在菜单界面点击进入注册页面 用户登录模块 及在登录界面用户输入正确的登录名称及密码 在经过数据库确 认无误后用户即可登录 登录后用户可以进行权限相应的操作 为了确定客户端的流程顺利 本系统采用了构造器注入方式 4 5 详细设计与代码实现详细设计与代码实现 服务器的实现 本系统采用了 C S 结构 即客户端 服务器的体系结构 在启动服务器之前要载 入配置文件 server properties 在配置文件中写好服务器的 IP 和端口号 然后调用服 务器的服务类 CreditServiceServer 的 listen 启动服务器 在 listen 中从配置文件中得 到服务器的端口号 port 用得到的端口号建立 ServerSocket 并用 ServerSocket 的 accept 方法得到客户端的请求信息 建立 Socket 并启动线程 在 CreditServiceServer 中有方法 processRequest 是真正的业务处理方法 此方法采用了放射的方式得到用户 请求类型获取客户端请求 根据请求调用业务逻辑的响应方法 并返回结果 18 服务器类 ServerMain 的主方法 Config config new Config server properties EntityContext context new EntityContext config CreditServiceServer server new CreditServiceServer context 服务器服务类 CreditServiceServer 的 listen 方法 int port context getConfig getInt ServerPort ServerSocket serverSocket new ServerSocket port while true 服务器用了 while 循环确保一直接收客户端的请求信息 CreditServiceServer 类的 processRequest 方法 这个方法主要是得到了服务器传回的请求应答信息 并且判断用户是否为第一次 发出请求 如果是第一次发出请求则 SessionId 为空 系统将随机一个 SessionId 赋给 当前登录用户 并将该对话编号装入到 Map 中 如果不是第一次发出请求 则用户 已经拥有 SessionIn 那就去存放 SessionId 的 Map 中查找信息 找到对话编号后 要 根据该编号得到用户请求的相关信息 包括方法名 参数类型列表 参数表 if sessionId null sessionId UUID randomUUID toString CreditService service new CreditServiceImpl context serviceMap put sessionId service CreditService service serviceMap get sessionId Class cls service getClass String methodName request getMethod Class argsTypes request getArgsTypes Object parames request getArgs Method method cls getDeclaredMethod methodName argsTypes Response response 用户登录模块 登录模块主要实现了登录功能 用户登录的前提是用户已经进行了注册 并且注 册成功 那么在系统的数据库中将存放有用户的信息 用户登录时系统根据用户输入 的登录名称去数据库中查找核对用户信息 找到并且用户填入的登录密码和数据库中 存放的密码一致 则用户登录成功 为了保护用户信息 数据库中存放的密码为经过 19 MD5 加密的密码子 功能实现是从登录界面 LoginFrame 类开始实现的 在 LoginFrame 类的构造器里注入客户端的控制器 ClientContext 类 在正确填入了登录 信息后点击确定按钮 触发调用 ClientContext 类的 login 方法 在此方法中通过 LoginFrame 的 getLoginName 和 getPwd 方法得到在登录界面输入的登录名和密码 再将得到的数据作为参数传递给接口 CreditService 的 login String loginName String pwd 方法 1 在 CreditService 的实现类服务器代理类 CreditServiceagentImpl 中有方法 login String loginName String pwd 此方法调用本类的 sendRequest 方法 此方法将 得到的登录信息发送给服务器 得到服务器返回结果 Response 判断应答是否成功 如果成功就将应答结果返回 不成功就抛出异常 2 在 CreditService 的实现类 CreditServiceImpl 类中有方法 login String loginName String pwd 此方法从实体控制 器类 EntityContext 中查找正在请求登录的用户信息 调用 EntityContext 类中的 getUser String loginName 方法查找用户 在 EntityContext 类中有 Map 类的 Users 用 于存放所有用户信息 以用户的登录名为 Key 用户为 Value 如果找得到了 则返 回该用户包装成用户 u 没有找到则抛出异常 找到用户后 要判断用户输入的密码 和所得到的用户密码是否一致 如果一致则将得到的用户赋给实现类所记录的登录用 户 loginUser 如果密码不一致则抛出异常 为了方便软件的维护 本系统选用了接口方法 CreditService 的实现类服务器代理类 CreditServiceagentImpl 的 login String loginName String pwd Response response sendRequest login new Class String class String class new Object loginName pwd if response isSuccess return User response getValue if response getState Consts ERR NAME OR PWD throw new NameOrPasswordException response getMessage 这是一个代理方法 它规定了客户登录时传递的请求规范 如 登录的方法名为 login 参数类型分别为 Stirng String 类型 参数为 loginName pwd 20 图 4 1 用户登录界面 图 4 2 登录时用户登录名错误提示 图 4 3 登录时密码错误 用户注册模块 注册模块主要实现了注册功能 功能实现是从注册界面 RegistFrame 类开始实现 的 在 RegistFrame 类的构造器里注入客户端的控制器 ClientContext 类 在正确填入 了注册信息后点击确定按钮 触发调用 ClientContext 类的 regist 方法 在此方法中 通过 RegistFrame 的 getLogin name jtf getName jtf getSex jtf getAge jtf getCtype jtf getCnum jtf getPwd jtf getRpwd jtf getUsertype jtf getTphone jtf getPhone jtf getAddress jtf getZip jtf getEmail jtf getBalance jtf getHobby jtf 和 getSubscribe jtf 方法得到在注册界面输入的登录名 loginName 真实姓名 name 性别 sex 年龄 age 证件类型 ctype 证件号码 cnum 密码 pwd 确认密码 rpwd 用户类型 userType 手机号码 tphone 固定电话 phone 21 地址 address 邮政编码 zip 邮箱 email 余额 balance 爱好 hobby 和订阅信息 subscribe 然后在判断密码和确认的密码一致后将得到的数据封装成一个用户 user 作 为参数传给服务器借口 CreditService 的 regist User user 方法 1 在 CreditService 的实 现类服务器代理类 CreditServiceagentImpl 中有方法 regist User user 此方法调用本类 的 sendRequest 方法 此方法将得到的注册信息发送给服务器 得到服务器返回结果 Response 判断应答是否成功 如果成功就将应答结果返回 不成功就抛出异常 2 在 CreditService 的实现类 CreditServiceImpl 类中有方法 regist String loginName String pwd 此方法调用到接口 Dao 中的 regist 方法 Dao 的实现类 DaoImpl 中有方 法 regist 实现与数据库的链接 将用户 user 的注册信息存入数据库中 并将 user 作为 返回结果返回 CreditService 是一个接口 其中有很多抽象的方法 而日 regist 方法是注册模块 中的一部分 此方法的参数是一个 User 类的对象 这个对象是用客户在客户端填入 的信息包装而成的 但是这些信息并不是用户的全部属性 例如 用户的信用卡的号 码是不用用户自己填写的 卡号是用户申请注册并成功后系统自动分配的 本系统由 于技术能力限制使用了随机数方法生成信用卡号码 还有用户的信誉度 刚注册的用 户要根据用户的余额来分配信用度 余额小于 1 万则信誉度为 0 余额在 1 万到 5 万 之间信誉度为 1 余额达到 5 万则信誉度为 2 以此向上 余额达到 5 万的 n 倍之间 信誉度为 n 1 这种计算信誉度的方法是程序员自己设计规定的 并没有实际根据 CreditService 的实现类服务器代理类 CreditServiceagentImpl 的 regist User user 方 法 public User regist User user throws NameOrPasswordException Response response sendRequest regist new Class User class newObject user if response isSuccess return User response getValue 这是服务器的代理类的一个方法 它实现了 CreditService 接口的 regist 方法 这 个传递的方法名为 regist 参数类型列表为 User class 参数为 user Dao 的实现类 DaoImpl 类中的 regist 方法 public User regist User user try con new ConnetionUtil open localhost xf root 1234 String sql insert into user user login name user password credit card number user name user sex user age user certificates ty e user certificates num user email user balance user hobby user subscribe user creditworthiness 22 values ps con prepareStatement sql ps setString 1 user getLogin name ps setString 2 MD5Util md5 user getPwd ps setLong 3 0 ps setString 4 user getName ps setString 5 user getSex ps setInt 6 user getAge ps setString 7 user getCtype ps setString 8 user getCnum ps setString 9 user getUserType ps setString 10 user getPhone ps setString 11 user getTphone ps setString 12 user getAddress ps setString 13 user getZip ps setString 14 user getEmail ps setDouble 15 user getBalance ps setString 16 user getHobby ps setString 17 user getSubscribe int creditworthiness 0 if user getBalance 0 creditworthiness 0 else if user getBalance 10000 creditworthiness int user getBalance 50000 1 ps setInt 18 creditworthiness int i ps executeUpdate if i 1 User u findByLoginName user getLogin name long ccn long Math random 1000000000 23 u findByCcn modifyCcn u ccn return u catch SQLException e e printStackTrace return null 这是 Dao 接口中 regist 的实现方法 此方法中应用了 PreparedStatement 这种方 式更方便我们写 sql 语句 也使 sql 语句更准确 避免错误 在此方法中将客户端传 来的用户的各个属性存入数据库中 然后执行更新 判断更新结果是否为一条 如果 是则随机产生信誉卡号码 并将新产生的卡号赋给刚刚注册的用户 最后将这个用户 返回并提示用户 如果不是一条 则系统抛出异常 图 4 4 注册界面 24 图 4 5 注册成功提示用户账号 菜单 菜单模块主要实现了显示菜单功能 功能实现是从登录界面 LoginFrame 类开始 实现的 在登录界面输入正确的信息 当登录成功后 ClientContext 类的 login 方法 会关闭登录界面 调用 ClientContext 类的 center menuFrame 方法设置菜单界面的显 示位置 并调用 CreditUtil 的 showView JFrame source 方法显示菜单界面 并为菜单 界面设置大小 菜单界面有九个不同的按钮 分别对应九个不同的功能 点击相应按 钮即可进行相应功能 i 交易相关 ii 贷款相关 iii 透支相关 iv 查看详情 v 信息管理 vi 密码管理 vii 登录 viii 注册 ix 退出 ClientContext 类的 center menuFrame 方法 25 public void center Container win Toolkit toolkit Toolkit getDefaultToolkit Dimension screen toolkit getScreenSize int x screen width win getWidth 2 int y screen height win getHeight 2 win setLocation x y center 设置了窗口在界面的位置为水平居中 垂直居中 这样可以让系统的界面 视觉效果更好 操作更舒适 所有的界面显示时都在 Context 类的相应方法中调用 center 方法 图 4 6 菜单界面 交易相关 交易相关模块主要实现了信用卡的基本交易功能 功能实现是从菜单界面 MenuFrame 类开始实现的 在菜单界面点击交易相关按钮后调用 MenuFrame 类的交 易相关 exchenge 按钮的监听器 关闭交易相关界面 调用 CreditUtil 类的 showView JFrame source 方法显示交易相关界面 交易相关界面 ExchangeFrame 有三 个不同的按钮 分别对应存款 取款 转账三个不同的功能 点击相应按钮即可进行 相应功能 MenuFrame 类的 createImgBtn String txt String img 方法 private JButton createImgBtn String txt String img 26 ImageIcon icon new ImageIcon getClass getResource img JButton button new JButton txt icon button setVerticalTextPosition JButton BOTTOM button setHorizontalTextPosition JButton CENTER return button 这个方法创建了可以添加图片和文字的按钮 先是创建 ImageIcon 类的 icon 用来 得到图片资源 然后创建一个以文本和图片为参数的按钮 再设置文字的位置 在水 平居中 垂直位置在按钮的最下 图 4 7 交易相关界面 i 存款 存款模块主要实现了信用卡的存款功能 功能实现是从交易相关界面类开始实现 的 在交易相关界面点击存款按钮 save 后调用 ExchangeFrame 类的存款按钮的监听 器 关闭交易相关界面 调用 CreditUtil 类的 showView JFrame source 方法显示存款界面 在 SaveMoneyFrame 类的构造器里注入客户端的控制器 ClientContext 类 在正确填入 了卡号 密码和存款金额后点击确定按钮 触发调用 ClientContext 类的 saveMoney 方法 在此方法中通过 SaveMoneyFrame 的 getCcn getPwd 和 getMoney 方法得 到在存款界面输入的账号 密码和存入金额 然后调用 CreditService 的 saveMoney long ccn Stri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山西中医药大学《旅游规划原理》2025-2026学年期末试卷
- 沈阳建筑大学《国际物流》2025-2026学年期末试卷
- 房地产财务岗项目核算考试题目及答案
- 纺丝凝固浴液配制工操作水平测试考核试卷含答案
- 聚乙烯醇制造工安全综合评优考核试卷含答案
- 避雷器装配工岗前竞争考核试卷含答案
- 加气混凝土切割工岗前岗位责任制考核试卷含答案
- 2026年智能交通系统设计与运营管理考试指南
- 电焊工岗前安全生产规范考核试卷含答案
- 生物饵料培养员安全综合能力考核试卷含答案
- 上海上海市宝山区2025年青年储备人才招聘28人笔试历年参考题库附带答案详解
- 2026中国科学院机关招聘应届毕业生5人参考题库必考题
- XRF介绍教学课件
- 2025年辽宁公务员考试试题及答案
- 消防设施安全培训教材课件
- 2026年浙江建设职业技术学院单招职业技能笔试备考试题带答案解析
- 《MySQL数据库基础与实践》高职全套教学课件
- 国开2025年秋《数学思想与方法》形考自测1-3下载考核答案
- 反渗透水处理操作规程与维护手册
- 监控基座施工方案
- 阳光运动-强健体魄课件
评论
0/150
提交评论