




已阅读5页,还剩82页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕毕业业论论文文 设设计计 BACHELOR DISSERTATION 论文题目 基于奇异值分解的编码捕获方法 基于基于 J2MEJ2ME 的手机水电费查询系统的设计与实现的手机水电费查询系统的设计与实现 中中 文文 摘摘 要要 J2ME是JAVA的一个重要分支 不仅保留了JAVA的传统特性 更是将JAVA的优势 扩展到了无线领域 它主要针对消费型和嵌入式设备而开发 克服了这些小型设备电力 网络等物理环境相对较弱的缺点 为这些设备提供资源利用率高的可开发环境 随着生 活中小型嵌入式设备利用率的提高 J2ME也越来越受到大家的青睐 本文是在深入研究J2ME平台的基础上 设计并实现了基于J2ME的手机水电费查询系 统 该系统总体上采用MVC3层架构 基于HTTP协议 其中手机客户端使用J2ME语言作 为编程平台 实现各种界面显示 控制层HTTPCommunication负责程序跳转 处理客户端 的请求 调用模型层进行处理 服务器端采用Mysql数据库 以JDBC作为数据连接技术 运用通用分组无线业务技术 本系统可以使手机终端实现几乎所有柜台功能 包括 普通用户的缴费 各种信息查询 个人信息修改 抄表员的抄表功能等 做到了可随时 随地查询所需的水电费信息 突破了目前只能到水电部门缴费 查询的现状 能快速完 整地开发出高效GPRS应用 本系统的实现为E时代的用户提供了更多便利 关键词 水电费查询 关键词 水电费查询 J2ME MVC JDBC Servlet Mysql 通用分组无线业务 通用分组无线业务 The Design and Implementation of Mobile Phone Utilities Inquiring System Based on J2ME ABSTRACT J2ME is an important branch of JAVA it not only keeps JAVA s traditional characteristics but expands JAVA s advantage to wireless J2ME is developed for comsumptive and embedded equipments mainly which overcomes the weak physical envirment of these equipments such as power network and so on so it provides high resource utilization for these equipment With the more and more extendsive use of these equipment J2ME is favored more and more This article is based on the deep research of J2ME platform then designs and implements the mobile phone Utilities Inquiring System based on J2ME As a whole MVC 3 tier architecture is adopted in this system which is based on HTTP protocol In the system the mobile client terminal uses J2ME as Programming platform to achieve a variety of screen displays Control layer HTTPCommunication is responsible for the program jumps deals with requests from client terminal and calls model layer to deal Server side adopts Mysql as database and uses JDBC as database connection skill Combining with GPRS mobile terminal achieves all counter founctions including common user s payment information being searched information being modified and worker s meter reading Client can search all information about utilities anytime and anywhere almostly which breaks the status that people can only pay and search in hydropower sector and develops efficient GPRS application quickly and completely This system provides more convenience to clients in E age KEY WORD Utilities iquiring J2ME MVC JDBC Servlet Mysql GPRS 目目 录录 第一章 前言 1 1 1 开发背景 1 1 2 项目的主要研究工作 1 第二章 理论基础 2 2 1 JAVA 2 2 1 1 JAVA 概念 2 2 1 2 JAVA 主要特点 2 2 2 J2ME 3 2 2 1 J2ME 概念 3 2 2 2 J2ME 架构 3 2 2 3 J2ME 开发流程 4 2 2 4 J2ME 的优势 5 2 3 Mysql 数据库 5 2 3 1 数据库 5 2 3 2 Mysql 数据库 6 2 3 3 Mysql 数据库特点 6 2 4 关键技术 6 2 4 1 多线程技术 6 2 4 2 序列化和反序列化 7 2 4 3 无线网络开发技术 7 2 4 4 GPRS 技术 8 2 4 5 数据库连接技术 8 2 4 6 域名解析技术 9 第三章 系统的配置与使用 10 3 1 硬件环境配置 10 3 2 软件环境配置 10 3 2 1 JDK 的安装及设置 10 3 2 2 Tomcat 安装及设置 11 3 2 3 Eclipse 的安装 11 3 2 4 Mysql 的安装和配置 12 第四章 手机水电费查询系统分析 13 4 1 系统需求分析 13 4 2 系统功能分析 13 4 3 系统架构 14 第五章 公共类设计 15 5 1 用户信息类的设计 15 5 1 1 类图 15 5 1 2 类的结构 15 5 1 3 核心代码 16 5 2 抄表员信息类的设计 16 5 2 1 类图 16 5 2 2 类的结构 17 5 2 3 核心代码 17 5 3 银行卡类的设计 17 5 3 1 类图 17 5 3 2 类的结构 18 5 3 3 核心代码 18 5 4 缴费类的设计 19 5 4 1 类图 19 5 4 2 类的结构 19 5 4 3 核心代码 19 5 5 消费类的设计 20 5 5 1 类图 20 5 5 2 类的结构 20 5 5 3 核心代码 21 第六章 数据库详细设计 22 6 1 概念设计 22 6 1 1 实体集及其属性 22 6 1 2 系统 E R 图 23 6 2 逻辑设计 24 6 3 物理设计 28 第七章 客户端的设计与实现 29 7 1 客户端通信流程 29 7 2 欢迎界面的设计与实现 30 7 2 1 界面设计 30 7 2 2 设计思路 30 7 2 3 核心代码 30 7 3 登录功能的设计与实现 31 7 3 1 界面设计 31 7 3 2 设计思路 32 7 3 3 核心代码 33 7 4 抄表功能的设计与实现 36 7 4 1 界面设计 36 7 4 2 设计思路 37 7 4 3 核心代码 37 7 5 缴费功能的设计与实现 38 7 5 1 界面设计 38 7 5 2 设计思路 39 7 5 3 核心代码 40 7 6 查询功能的设计与实现 41 7 6 1 界面设计 41 7 6 2 设计思路 42 7 6 3 核心代码 43 7 7 设置账户信息功能的设计与实现 45 7 7 1 界面设计 45 7 7 2 设计思路 46 7 7 3 核心代码 47 7 8 网络处理模块的设计与实现 49 7 8 1 设计思路 49 7 8 2 核心代码 49 第八章 服务器端的设计与实现 51 8 1 服务器端的通信流程 51 8 2 解析登录功能的设计与实现 52 8 2 1 设计思路 52 8 2 2 核心代码 53 8 3 解析缴费功能的设计与实现 54 8 3 1 设计思路 54 8 3 2 核心代码 54 8 4 解析查询功能的设计与实现 55 8 4 1 设计思路 55 8 4 2 核心代码 56 8 5 解析设置账户信息功能的设计与实现 58 8 5 1 设计思路 58 8 5 2 核心代码 58 第九章 系统的发布与测试 60 9 1 系统的发布 60 9 2 系统的测试 61 第十章 总结 63 参考文献 64 致谢 66 附录 67 第一章第一章 前言前言 1 1 开发背景开发背景 随着移动通信技术的突飞猛进 移动开发慢慢成为开发者关注的热点 J2ME专为嵌 入式 移动设备而开发 是嵌入式 移动应用平台的王者 它把JAVA的使用范围扩展到所 有的电子设备开发上 所以 J2ME是本系统开发语言的第一选择 1 随着人们生活水平质量的提高 传统的水电费缴纳方式已不能满足人们的要求 特 别是当消费者对水电费结算产生质疑时 水电费详单的查询就显得非常重要 目前 国 内居民的水电费都是到柜台进行缴纳和查询 如何才能够给客户提供更方便的服务成为 水电部门面临的重要问题之一 众所周知 由于移动通信突飞猛进的发展和手机智能化程度的加强 手机在日常生 活中得到广泛应用 移动开发也成为软件开发的热点 因此 利用手机的便捷性是解决 问题的有效途径 利用本系统 用户和抄表员可以随时随地进行水电费的相关操作 如 普通用户的缴费 信息查询 信息修改 抄表员的抄表等 而我国移动用户数量居世界 首位 移动终端的硬件性能也在不断提高 2 所以本系统的研究与实现具有很大的应用价值和市场前景 1 2 项目的主要研究工作项目的主要研究工作 本项目要完成的任务即是设计一个系统 基于HTTP协议 使用J2ME语言作为编程平 台 结合Mysql数据库实现普通用户的缴费 信息查询 信息修改 抄表员的抄表等 做 到可随时随地查询所需的水电费信息 系统可以用手机模拟器进行模拟 最终可以在手机上利用GPRS技术成功运行 第二章第二章 理论基础理论基础 2 1 JAVA 2 1 1 JAVA 概念 JAVA 是一种重要的编程语言 是由 Sun Microsystems 公司推出的 已经在世界范围 内被软件开发商所接受 很多团队将 JAVA 作为通用编程语言 是因为 JAVA 的易于编 程和安全特性使用户可以快速地产生工作代码 而多线程支持符合时新的基于网络和图 形用户界面的应用程序 这些应用程序必须同时参加多个任务 同时异常处理机制则简 化了错误情况的处理 尽管 JAVA 的内建工具很强大 但它仍然是一门简单的语言 程 序员能够很快地上手 又因为 JAVA 的可移植性 程序员只要编写一次代码 不必关心 应用程序在各个软硬件平台上的移植问题 JAVA 不仅是编程语言 还是一个程序开发和发布平台 给程序员提供了许多工具 如编译器 解释器 文档生成器 文件打包工具和运行时环境 JRE JAVA runtime environment 等 3 目前针对不同的市场目标和设备进行定位 JAVA 被划分成 J2EE J2SE J2ME 三个 平台 J2EE 即 JAVA2 Enterprise Edition 主要是为企业提供一个应用服务器的运行和开 发平台 其本身是一个开放的标准 任何软件厂商都可以推出自己的符合 J2ee 标准的产 品 使用户可以有多种选择 J2SE 即 JAVA2 Standard Edition 主要是为台式机和工作 站提供一个开发和运行的平台 J2ME 即 JAVA 2 Micro Edition 主要是面向嵌入式设备 和消费电子产品 使得 JAVA 程序能够在手机 机顶盒 PDA 等小型设备上运行 2 1 2 JAVA 主要特点 1 跨平台 与平台无关可以说是 JAVA 最大的优势 当其他语言编写的程序面临因为操作系统 的变化 处理器升级以及核心系统资源的变化而导致程序出现错误或无法运行的困境时 JAVA 虚拟机成功地解决了这个问题 实现了 一次编成 处处运行 的目标 4 2 多线程 线程是程序中一个单一的顺序控制流程 所谓的多线程就是指 在单个程序中同 时运行多个线程完成不同的工作 线程机制是 JAVA 的又一大亮点 通过使用多线程 可以分别用不同的线程完成特定的行为 而不需要采用全局的事件循环机制 这样就很容 易实现网络上实时的交互行为 通过提高资源使用效率 进而提高系统的 效率 3 简单 一方面 JAVA 语言的语法与其他语言很接近 所以大多数学者很容易学习和使用 JAVA 另一方面 JAVA 丢弃了其他语言中很少使用的 令人难以理解的的特性 并且 JAVA 语言提供了自动垃圾回收机制 程序员不必单独考虑内存管理的问题 5 4 丰富的类库和网络功能 JAVA 类库就是一些已写好 可供调用的类的集合 JAVA 将这些类整理在一个个包 中 每一包里都包含一些特定功能的类和接口 当这些包被用 import 引入程序后 用户 就可以访问包中类和接口 不需要再重新设计 2 2 J2ME 2 2 1 J2ME 概念 美国 Sun 公司是 IT 界为全球用户提供最具实力的硬件 软件与服务的领先供应 商 而 J2ME 是 Sun 公司专门针对嵌入式 消费类电子产品推出的开发平台 是一种高 度优化的运行环境 J2ME 的另一种称法是 JAVA ME 是 JAVA 的一个组成部分 与 J2SE J2EE 并称 由于 JAVA 的跨平台性 遵循 J2ME 规范开发的 JAVA 程序可以移植 到各种不同的小型电子设备上 允许移动无线设备之间共享应用程序 2 2 2 J2ME 架构 J2ME 架构从上至下分为简表 Profile 配置 Configuration 和主机操作系统 Host Operating System 6 如图 1 图 1 J2ME 架构 1 简表 简表 Profile 是专门针对某种特定的设备而制定的功能接口 它为相同消费电子设 备的不同的生产商提供了标准化的 JAVA 类库 现今已经有五个简表有了规范 分别是 Mobile information devices profile MIDP Personal digital assistant profile Foundation profile Personal profile RMI profile 本系统主要利用的简表是 MIDP 它定义了一个标 准 JAVA API 集合 2 配置 JAVA 是边解释边运行的程序 所有的程序都被编译成二进制代码并运行在 JAVA 虚 拟机 JVM JAVA Virtual Machine 上 而配置决定了所使用的 JVM 配置包括核心库 虚拟机等 当前 J2ME 存在两种配置 CDC Connected Device Configuration 连接设备配置 CLCD Connected limited device configuration 有限连 接设置配置 CDC 面向强大的可以间歇式地与网络连接的设备 即有稳定的电源供应 设备性能强劲的设备 CLCD 面向微型设备和嵌入式设备 JAVA 虚拟机是所用 JAVA 程 序的基础 在手机出厂前已经固化在手机中了 7 配置与简表一起提供了一个面向移动信息设备的完整J2ME 应用程序运行环境 3 主机操作系统 主机操作系统是在物理计算机上运行的操作系统 在它之上运行虚拟机软件 2 2 3 J2ME 开发流程 1 J2ME 开发的第一步就是要详细了解客户的需求 针对客户的需求来编写适合客 户的应用软件 2 配置自己的开发环境 然后进行编码 生成 JAVA 文件 3 对 JAVA 文件进行编译 生成 class 文件 4 打包成 jar 文件 下载发布到移动设备上 8 开发步骤如图 2 图 2 J2ME 开发步骤 2 2 4 J2ME 的优势 与 J2SE 和 J2EE 相比 J2ME 不是一个单独的技术规范 而是一系列技术规范的总称 其总体的的运行环境和目标也更加多样化 具有独特的优势 首先 J2ME 是为了使用有限的电力 网络连接以及有限图形界面设计用户的开发 通过剪裁某些小型设备上不需要的功能 以达到减少 JAVA 虚拟机体积以及相应运行库 体积的目的 目标是为小型设备提供资源利用率高的可开发环境 其次 J2ME 将 JAVA 的 一次编写 处处运行 的设计理念扩展到无限领域 对于 程序开发员而言 只要手机安装了 JAVA 虚拟机即可执行 JAVA 程序 提高程序的一致 性 对用户而言 也不必担心下载的程序无法运行 最后 无线设备上大多数的现有程序都是内置的且功能固定的 没有制造商的参与 很难进行软件安装与升级 J2ME 提供了动态部署机制 可以通过无线网络下载和安装程 序 不仅为厂商和开发者提供了低成本的软件产品发布方式 还允许用户按需动态地下 载并个性化定制自己的程序 2 3 Mysql 数据库数据库 2 3 1 数据库 数据 Data 是用物理符号记录下来的可以识别的信息 不同的物理符号体现出数据 的不同表现形式 如数字 图形 文字等 而数据库 DB Database 就是长期存储在 计算机内的数据集合 9 数据库的系统由操作系统 数据库管理系统 应用开发工具 应用系统 软件和数据 库系统管理员组成 其系统图如下图 3 图 3 数据库系统 2 3 2 Mysql 数据库 Mysql 是众多数据库中的一种 它是一个小型开放源代码的 关系型数据库管理系统 最常用的数据库管理语言 是结构化查询语言 SQL 2 3 3 Mysql 数据库特点 与其他数据库相比 Mysql 数据库具有以下特点 1 是目前市场上运行速度最快的数据库系统 2 提供 TCP IP ODBC 和 JDBC 等多种数据库连接途径 3 同时访问数据库的用户数量不受限制 4 可以处理上千万条记录 5 支持多线程 正因为 Mysql 具有的这些特点 所以被许多中小型网站选为网站数据库 10 2 4 关键技术关键技术 2 4 1 多线程技术 线程是程序中一个单一的顺序控制流程 每个线程共享其所附属的进程的所有资 源 多线程就是指在单个程序中同时运行多个线程完成不同的工作 当多线程执行时 该程序对应的进程就有多个控制流在同时运行 意味着一个程序的多条执行语句同时执 行 多线程技术使系统速度更快 通信实现更容易 11 2 4 2 序列化和反序列化 1 序列化 数据序列化是将对象转换为二进制数据流的一种方法 这种转换可以使对象保存在 文件中或在网络中传输 2 反序列化 反序列化是序列化的相反过程 即在另一程序中打开字节流并重构对象 这两个过程结合起来使得数据能被轻松传输和存储 简化了对象持久化的实现 2 4 3 无线网络开发技术 1 GCF 由于受移动信息设备处理能力和内存的限制 J2ME 有自己的联网框架 通用连接 框架 GCF Generic Connection Framework 由 CLDC 定义 层次结构如图 4 图 4 GCF 层次结构 2 HTTP 连接 在 MIDP 规范中规范的设备是必须支持 HTTP 和 HTTPS 的 HTTP 属于无状态协议 其工作机制是请求和响应 也就是说当用户输入了一个网站的地址 其实质就是发送了 一个请求 那这时浏览就会给予响应 返回给用户所需要的页面 一个 HTTP 连接会经过三种状态 setup connected closed 当一个 HTTP 被打开 但请求未发送之前为 setup 状态 这时应用程序设置与服务器进行连接的各种信息 用 setRequestMethod 和 setRequestProperty 两种方法完成 在 HTTP 被打开和被关闭之间为 connected 状态 连接关闭时 就进入了 closed 状态 12 2 4 4 GPRS 技术 GPRS 通用分组无线服务 General Packet Radio Service 是一种基于全球移动通信 系统 GSM Global System for Mobile Communications 的无线分组交换技术 其实现的 方法就是以 分组 的形式将数据信息传送到用户端 GPRS 工作时 它在移动用户和数 据网络之间提供一种连接 通过路由管理来进行寻址和建立数据连接 13 2 4 5 数据库连接技术 JAVA 语言提供了一套访问关系数据库的应用程序编程接口 即 JDBC API JDBC 代表 JAVA 数据库互联 包含一组 JAVA 语言编写的类和接口 是 JAVA 数据库应用的 基础 它定义了一个底层的 API 用来支持独立任何特定 SQL 实现基本 SQL 功能 其主 要特点是与任何关系式数据库协同工作的方式完全相同 在许多不同的数据库连接模块 的顶端提供了统一的接口 也就是说 访问所有数据库时无需分别写程序 在创建数据库之前必须先加载JDBC驱动 然后才可以创建数据库连接 与数据库建 立连接后 应用程序在此连接上可创建SQL语句对象 以便执行用户定义的特定SQL语句 执行后的SQL语句将返回结果 查询语句返回的是一个结果集对象 然后用next 方法 在记录中移动游标定位结果集中的记录 最后关闭数据库连接 14 JDBC使用流程如图5 图 5 JDBC 连接数据库流程 2 4 6 域名解析技术 IP地址是网路上标识站点的数字地址 其重要性可想而知 但比起IP地址 现实生活 中在使用网络资源时人们更熟识的是域名 例如合肥学院的IP为 221 130 162 35 而 我们通常用域名 来代替IP地址 这是便于记忆的一种方式 反过来 说 当我们注册了域名后 只对自己的域名具有使用权 只有解析成IP才可使用 域名的解析工作由DNS服务器完成 分为静态和动态两种 本系统所运用的是动态域 名解析 即将固定的互联网域名和动态IP地址实时对应解析的服务 相对于传统的静 态DNS而言 它可以将一个固定的域名解析到一个动态的 IP地址 不管用户何时 何 地 以何种方式上网 IP地址是否变化 都能保证通过一个固定的域名就能访问到用 户的计算机 15 第三章第三章 系统的配置与使用系统的配置与使用 开发之前 首先准备一下自己的开发环境 设计本系统时需要硬件和软件两方面的 配置 3 1 硬件环境配置硬件环境配置 安装 Windows xp 操作系统的三星笔记本电脑一台 开通 GPRS 型号为 OPPO A125 的手机一部 3 2 软件环境配置软件环境配置 3 2 1 JDK 的安装及设置 1 JDK 的安装 JDK JAVA Development Kit 是 JAVA 开发工具包 是一切 JAVA 应用程序的基础 其安装步骤如下所述 1 下载 JDK 安装文件 JDK1 7 0 2 解压文件 双击安装文件 jdk1 7 0 exe 单击 接受 按钮进入下一步 3 选择安装内容及路径 中间列表是要安装的可选功能 单击每个可选功能左边 的按钮 将弹出下拉菜单 我们选择系统默认的第一项 此功能将安装在本地硬盘驱动 器上 安装路径选择 D JDK 设置好安装内容及路径后 单击 下一步 系统开始在选择的安装路径下安装所 选的内容 4 安装 JRE 安装方法和 3 中所述相同 安装目录为 D JDK jre 设置好安装内容及路径后 单击 下一步 系统开始在选择的安装路径下安装所 选的内容 系统提示提示 JDK 安装完成 16 2 设置环境变量 设置环境变量的方法如下所述 1 重启电脑 右击 我的电脑 选择 属性 命 打开 系统属性 选择 高级 选项卡 单击 环境变量 按钮 打开 环境变量 对话框 2 单击 用户变量 中的 新建 按钮 打开 新建系统变量 对话框 将变量 名设置为 JAVA HOME 变量值设置为 JDK 安装目录 D JDK 3 新建一个系统变量 变量名设置为 classpath 变量值设置为 D JDK lib D JDK lib tools jar D JDK lib servlet api jar 表示搜索 JAVA 类的路径 包含一些 Jar 归档文件相应的目录 JAVA 程序执行时往往会从 classpath 中选择并添加自己需要的类路 径 变量值最前面的 表示当前路径不同值之间用 隔开 4 新建一个系统变量 变量名设置为 Path 变量值设置为 D JDK bin 5 环境测试 单击 开始 运行 输入 cmd 输入 JAVA version 按 Enter 键 出现如下界面 安装成功 17 图 6 测试成功界面 3 2 2 Tomcat 安装及设置 1 Tomcat 安装 1 下载 Tomcat 压缩文件 Apache Tomcat 5 5 2 解压文件到 D tomcat 下即可 2 设置环境变量 1 按 3 2 1 中的方法 新建用户变量 其中变量名设置为 TOMCAT HOME 变量 值设置为 D tomcat 2 修改用户变量 classpath 在变量值后面添加 TOMCAT HOME commo n lib servlet api jar 3 修改用户变量 path 在变量值后面添加 TOMCAT HOME bin 18 3 2 3 Eclipse 的安装 1 下载 Eclipse 压缩包 2 将压缩包进行解压 双击安装文件 Eclipse exe 安装过程中导入 JDK 的安装目录 即可 3 2 4 Mysql 的安装和配置 1 下载 Mysql 压缩文件 2 解压文件 在解压后的文件中双击安装文件 Setup exe 开始安装 在 Setuptype 窗 口中 Custom 单击 Next 3 设定 Mysql 的组件包和安装路径 单击 Next 按钮 直至出现 Finsh 勾上 Configure the MySQL Server now 单击按钮即完成 Mysql 的安装 4 配置 Mysql 服务器 1 在 Mysql 配置向导启动界面 选择配置方式 Detailed Configuration 单击 Next 2 选择服务器安装类型界面选择 Server achine 单击 Next 3 选择安装类型为 Transactional Database Only 单击 Next 4 选择网站允许链接 Mysql 的最大数目为 Online Transaction Processing OLTP 单击 Next 5 设置 Mysql 端口 选中 Enable TCP IP Networking 选项 设置 Port Number 值为 3306 单击 Next 6 设置字符集 选择第三项 在 Character Set 下拉框里选择 gbk 单击 Next 7 注册数据库 选中 Install As Windows Service 选项 单击 Next 8 权限设置 New root password 项填写新密码 Confirm 重输一次密码 设置完毕单击 Next 按钮直至出现 finish 单击 finish Mysql 安装完毕 19 如图 7 图 7 Mysql 安装完成 第四章第四章 手机水电费查询系统分析手机水电费查询系统分析 4 1 系统需求分析系统需求分析 随着人们生活水平的不断提高 手机逐步成为被大众依赖的通信工具 如果能够开 发出一套水电费查询系统使用户能够使用手机就进行信息查询 缴纳与设置 不仅给用 户带来方便 也可以给水电部门节约成本 所以本系统无论从实用性还是从市场前景方 面考虑 都是非常必要的 20 4 2 系统功能分析系统功能分析 根据使用对象不同 系统可以实现不同的功能 当使用对象为抄表员时 可以实现 登录 抄表的功能 当使用对象为普通用户时可以完成登录 缴费 查询 设置账户信 息等功能 1 抄表员 首先 当抄表员进入系统 输入正确的用户账号和密码后即可登录成功 用户不存 在或密码不正确均不可登录并提示错误 登录成功后的抄表员可以输入用户的水电费使用情况 系统会将数据发送给数据库 端 并将数据添加到用户的消费表中 2 普通用户 首先 和抄表员一样 当用户进入系统 输入正确的用户账号和密码后即可登录成 功 用户不存在或密码不正确均不可登录并提示错误 用户登录成功后可以进行功能选择 可供选择的功能有缴费 查询和设置账户信息 当用户选择缴费功能时 系统会自动获取当前北京时间 提醒用户所欠的水费 电 费 账户余额以及银行卡余额 用户可根据信息提示输入所缴纳的费用 当用户选择查询功能 用户可进行个人信息查询 水电费消费记录查询和缴费记录 查询 个人信息包括用户名 用户账号 联系号码 账户余额和银行卡余额 如果进行 消费和缴费记录查询 用户输入时间即可查到相关信息 如果想查全部消费或缴费信息 就无需输入时间 想查一年的信息输入年份 如 2011 就可以查到 2011 这一年的信 息了 想查某个月的信息就输入年份和月份 如 201104 就可以查到 2011 年 4 月份 的信息了 当用户需要修改登录密码 用户姓名 联系号码时 可以在登录后选择设置账户信 息功能 如选择修改密码 用户只要输入正确的原始密码 新密码以及新密码确认就可 修改成功 4 3 系统架构系统架构 系统采用 MVC 设计模式 视图层负责和用户交互 然后把模型层的数据显示到页面 上 当模型层变化的时候 能实现自动更新 它也负责把视图层的数据传送给控制器 控制器主要负责程序的跳转 处理客户的请求 调用模型层进行处理 模型层负责执行 具体的商业逻辑 21 具体来说 就是客户端程序通过 HTTP 向服务器端发送请求 服务器接受并解析请 求后向数据库查询相关信息 然后将结果返回给客户端 系统整体架构如图 8 图 8 系统整体架构 在客户端和服务器端交换的信息过程中 需要交互很多信息 但是通过 HTTP 方式 与服务器进行网络传输时只能传输二进制数据 所以需要把对象进行序列化 因此需要 把要交互的信息以序列化的方式编写成多个类 这些类是客户端与服务器端都需要使用 的 一个手机的 MIDP 客户端开发包和服务器端开发包都需要调用通用的信息传递包 如图 9 图 9 交互信息 第五章第五章 公共类设计公共类设计 为了提高系统的可维护性和可重用性 可以设计一些公共类 在客户端程序和服务 器端同时使用 在这些类中对对象进行序列化和反序列化 5 1 用户信息类的设计用户信息类的设计 5 1 1 类图 图 10 UserInfo 类图 5 1 2 类的结构 用户信息类 UserInfo 用来封装用户的用户 ID 用户密码 用户名 银行卡号 电话 号码 账户余额 性别等信息 private String userID 用户 ID private String password 用户密码 private String userName 用户名 private String bankID 银行卡号 private String phoneNum 电话号码 private float accountmoney 0 账户余额 private int sex 0 性别 5 1 3 核心代码 实现用户信息类 UserInfo 的核心代码为 public String getUserID return userID public void setUserID String userID this userID userID Password userName bankID phoneNum accountmoney sex 的实现方法与 UserID 方法相同 省略 public byte serialize throws IOException 序列化信息 ByteArrayOutputStream bout new ByteArrayOutputStream DataOutputStream dataStream new DataOutputStream bout dataStream writeUTF userID 序列化 userID password bankID userName sex phoneNum accountmoney 省略 return bout toByteArray public void deserialize byte data throws IOException 反序列化信息 ByteArrayInputStream bin new ByteArrayInputStream data DataInputStream dataStream new DataInputStream bin userID dataStream readUTF 反序列化 userID password bankID userName sex phoneNum accountmoney 省略 5 2 抄表员信息类的设计抄表员信息类的设计 5 2 1 类图 图 11 WorkerInfo 类图 5 2 2 类的结构 抄表员信息类 WorkerInfo 用来封装抄表员的用户账号 用户密码 用户名 性别 电 话号码等信息 private String workerID 用户账号 private String workerPassword 用户密码 private String workerName 用户名 private String sex 性别 private String phoneNum 电话号码 5 2 3 核心代码 实现抄表员信息类 WorkerInfo 的核心代码为 public void setworkerID String workerID this workerID workerID public String getworkerID return workerID workerPassword workerName sex phoneNum 的实现方法与 workerID 方法相同 省略 public byte serialize throws IOException 序列化信息 ByteArrayOutputStream bout new ByteArrayOutputStream DataOutputStream dataStream new DataOutputStream bout dataStream writeUTF workerID 序列化 workerID workerPassword workerName sex phoneNum 省略 public void deserialize byte data throws IOException 反序列化信息 ByteArrayInputStream bin new ByteArrayInputStream data DataInputStream dataStream new DataInputStream bin workerID dataStream readUTF 反序列化 workerID workerPassword workerName sex phoneNum 省略 5 3 银行卡类的设计银行卡类的设计 5 3 1 类图 图 12 BankcardInfo 类图 5 3 2 类的结构 银行卡类 BankcardInfo 用来封装用户银行卡的银行卡号 持卡人 卡内余额 电话 号码等信息 private String bankID 银行卡号 private String userName 持卡人 private String money 卡内余额 private String phoneNum 电话号码 5 3 3 核心代码 实现银行卡类 BankcardInfo 的核心代码为 public void setbankID String bankID this bankID bankID public String getbankID return bankID userName money phoneNum 的实现方法与 bankID 方法相同 省略 public byte serialize throws IOException 序列化 ByteArrayOutputStream bout new ByteArrayOutputStream DataOutputStream dataStream new DataOutputStream bout dataStream writeUTF bankID 序列化 bankID userName money phoneNum 省略 public void deserialize byte data throws IOException 反序列化 ByteArrayInputStream bin new ByteArrayInputStream data DataInputStream dataStream new DataInputStream bin bankID dataStream readUTF 反序列化 bankID userName money phoneNum 省略 5 4 缴费类的设计缴费类的设计 5 4 1 类图 图 13 PayInfo 类图 5 4 2 类的结构 缴费类 PayInfo 用来封装缴费信息的账单号 用户 ID 缴费日期 水费 电费等信息 private int billID 0 账单号 private String userID 用户 ID private String billDate 缴费日期 private float shuifei 0 水费 private float dianfei 0 电费 5 4 3 核心代码 实现缴费类 PayInfo 的核心代码为 public void set userID String userID this userID userID public String ge userID return userID billDate shuifei dianfei 的实现方法与 bankID 方法相同 省略 public byte serialize throws IOException 序列化 ByteArrayOutputStream bout new ByteArrayOutputStream DataOutputStream dataStream new DataOutputStream bout dataStream writeUTF userID 序列化 bankID billDate shuifei dianfei 省略 public void deserialize byte data throws IOException 反序列化 ByteArrayInputStream bin new ByteArrayInputStream data DataInputStream dataStream new DataInputStream bin userID dataStream readUTF 反序列化 bankID billDate shuifei dianfei 省略 5 5 消费类的设计消费类的设计 5 5 1 类图 图 14 ConsumeInfo 类图 5 5 2 类的结构 消费类 ConsumeInfo 用来封装消费信息的账单号 用户 ID 消费日期 消费的水费 消费的电费等信息 private int billID 0 账单号 private String userID 用户 ID private String bill date 消费日期 private float shuifei 0 消费的水费 private float dianfei 0 消费的电费 5 5 3 核心代码 实现消费类 ConsumeInfo 的核心代码如下 public void set billID String billID this billID billID public String ge billID return billID bill date shuifei dianfei 的实现方法与 bankID 方法相同 省略 public byte serialize throws IOException 序列化 ByteArrayOutputStream bout new ByteArrayOutputStream DataOutputStream dataStream new DataOutputStream bout dataStream writeUTF billID 序列化 bankID bill date shuifei dianfei 省略 public void deserialize byte data throws IOException 反序列化 ByteArrayInputStream bin new ByteArrayInputStream data DataInputStream dataStream new DataInputStream bin billID dataStream readUTF 反序列化 bankID bill date shuifei dianfei 省略 第六章第六章 数据库详细设计数据库详细设计 6 1 概念设计概念设计 概念模型是面向现实世界的 就是在理解数据需求的基础上 确定在数据库中存储 和处理什么数据 22 6 1 1 实体集及其属性 根据需求 本系统需要五个实体集 分别是 用户 抄表员 银行卡 消费 缴费 属性是实体的重要部分 本数据库各实体集属性如下所述 1 用户实体 实体集用户的属性有 用户账号 密码 用户名 银行卡号 性别 联系电话 账 户余额 实体图如图 15 图 15 用户实体图 2 抄表员实体 实体集抄表员的属性有 用户账号 密码 用户名 性别 联系电话 实体图如图 16 图 16 抄表员实体图 3 银行卡实体 实体集银行卡的属性有 银行卡号 持卡人 银行卡余额 联系电话 实体图如图 17 图 17 银行卡实体图 4 消费实体 实体集消费的属性有 账单号 用户账号 消费日期 水费 电费 实体图如图 18 图 18 消费实体图 5 缴费实
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 桥梁养护知识培训课件
- 2026届甘肃省兰州市兰州第一中学高一化学第一学期期中预测试题含解析
- 2026届江西省吉安市安福中学化学高二第一学期期末质量检测模拟试题含答案
- 2025年客户服务经理面试技巧全解析高级模拟题及答案
- 2025年陪诊师考试重要提示与试题及答案
- 投标文件中售后应急预案方案
- 2025年城市经济与可持续发展课程考试题及答案
- 2025年环保技术与可持续发展相关考试题及答案
- 2025年村级儿童之家档案员招聘考试重点回顾
- 公务员转任面试题目及答案
- DL∕T 782-2001 110kV及以上送变电工程启动及竣工验收规程
- 人教版初一数学课程讲义+练习(教师整合版)
- 科技园区建设规划
- DL∕T 5161.1-2018 电气装置安装工程质量检验及评定规程 第1部分:通则
- 思想政治教育原理方法论
- 2024广西公需课高质量共建“一带一路”谱写人类命运共同体新篇章答案
- 客舱安全与应急处置(含活页实训手册) 课件 模块四 客舱失火处置
- JJG 692-2010无创自动测量血压计
- 医务人员职业暴露报告卡
- GB/T 43677-2024生态系统评估陆地生态资产核算技术指南
- 四年级上册语文文学常识
评论
0/150
提交评论