基于JAVA的毕业设计论文_第1页
基于JAVA的毕业设计论文_第2页
基于JAVA的毕业设计论文_第3页
基于JAVA的毕业设计论文_第4页
基于JAVA的毕业设计论文_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

基于 JAVA 的无线人员定位管理软件设计 摘 要 近年来,随着监狱在押人员的不断上升,仅依靠传统的视频监控或门禁报警系统已显得独木难支,不能做到全方位、多功能的监控。因此 ,提高看守所安防管理水平,建立综合高效的信息监管平台已成必然趋势。 本课题研究的主要内容是设计一个无线人员定位管理软件,此软件具有对 看守所在押 人员 的 基本信息 的 增 加 、查询、删除、修改 , 人员路径再现 以及用户帐户管理等功能。本软件以流行的 Java 语言为开发语言,以开源的 Eclipse 为开发开台,以免费的 MySQL 作为后台开发数据库,并利用引路蜂 地图开发包实现人员定位功能的一个跨平台的人员管理系统。 本文首先对 Java 程序编程的基础知识, JDBC 数据库技术,图形界面开发技术,引路蜂地图开发包等软件开发的相关技术做出了简单的介绍。在此基础之上,介绍了本课题的创新点,给出了软件的总体设计方案和各功能模块的实现。 关键词: 无线定位; Java;引路蜂; JDBC; Eclipse;跨平台 Abstract In recent years, with the number of prisoners on the rise, we can not only relay on the traditional video surveillance or access control alarm system for they cannot do the all-round, multi-function monitoring. Therefore, it has become an inevitable trend to establish a comprehensive and efficient monitoring platform to improve the detention center security management level. The main content of this research project is to design a wireless positioning management software. The software has the function of add, query, delete, modify and export the basic information held in detention center. Whats more, it also has user account management function. The cross-platform personnel management system is a software that uses Java as a develop language, the open source Eclipse as Integrated Development Environment, the free MySQL as development database, and the Guidebee Map Development Kit for positioning . First I make a brief introduction to Java programming, the JDBC database technology, Graphical User Interface programing, and Guidebee Map development technology. On this basis, I give the overall design of the software and the design of each functional module. Key words: wireless positing; Java; Guidebee Map; JDBC; Eclipse; cross-platform 目 录 摘 要 Abstract 第 1 章 绪论 .1 1.1 课题意义及目的 . 1 1.2 课题主要研究的内容 . 1 第 2 章 软件开发相关技术介绍 .3 2.1 Java 程序编程基础 . 3 2.1.1 Java 的起源及其发展 . 3 2.1.2 Java 程序运行原理 . 3 2.2 Eclipse 开发平台 . 5 2.3 数据库技术 . 6 2.2.1 SQL 语言 概述 . 6 2.2.2 JDBC 模型 . 7 2.2.3 JDBC 的工作方式 . 8 2.2.4 MySQL 数据库 . 10 2.4 图形界面开发技术 . 10 2.4.1 Swing 组件类的层次 . 11 2.4.2 Swing 事件处理机制 . 13 2.4.3 Swing 中的布局管理 . 13 2.4.4 设置应用程序外观 . 16 2.5 引路蜂电子地图开发技术 . 17 2.5.1 引路蜂地图 API 概述 . 17 2.5.2 地图开发包类的定义 . 18 2.5.3 地图对象类的层次关系 . 20 2.5.4 地图图片读取类层次关系 . 21 2.5.5 图形子系统 . 22 2.5.6地图配置 . 24 第 3 章 系统总体设计 . 25 3.1 系统功能描述 . 25 3.2 软件总体设计 . 26 3.2.1 软件总体结构图 . 26 3.2.2 系统开发原则 . 26 3.3 系统的通信协议 . 27 第 4 章 软件各模块的实现 . 28 4.1 用户登录的设计 . 28 4.2 在押人员管理模块设计 . 28 4.2.1 查询在押人员信息模块 . 29 4.2.2 新增在押 人员信息模块 . 30 4.3.3 修改在押人员基本信息模块 . 30 4.3.4 删除在押人员信息模块 . 31 4.3.5 导出在押人员信息模块 . 32 4.2.6 显示在押人员路径模块 . 32 4.3 用户管理模块设计 . 33 4.3.1 增加帐户模块 . 34 4.3.2 删除帐户模块 . 34 4.3.3 修改帐户密码模块 . 35 4.4 数据库中表的设计 . 35 4.5 本章小结 . 38 第 5 章 项目创新点 . 39 5.1 软件的平台无关性 . 39 5.2 基于桌面系统的 Java 地图应用 . 39 5.3 采用最新的地图显示技术 . 39 第 6 章 结束语 . 39 参考文献 . 41 致 谢 . 42 1 第 1 章 绪论 1.1 课题意义及目的 近年来,虽然监控技术高速发展,但看守所中在押人员的狡诈意识也逐渐增强,犯罪种类有增无减,常常出现聚众斗殴、自残、逃跑等现象,因此,提高看守所安防管理水平,建立综合高效的信息监管平台已成必然趋势 1。 目前,已有的安防系统大都只能实现对定点人群的定位,无法对移动人群进行定位,因此对于出逃在外的在押人员,监 管人员无法判断其出逃方向,更无法获得其出逃路线,不利于高效地追捕。因此,设计一套无线人员定位管理系统,可以解决移动人群的追踪定位问题,具有广泛的社会需求和广阔的市场前景。 在信息技术不断发展的今天,利用无线人员定位管理系统,能够有效地监控高危在押人员,防止在押人员的出逃,追查及跟进暴力事件的发生,最大限度的保障监管人员和在押人员的人身安全,并促进监狱安全技术防范系统向集成化、网络化、智能化的进一步发展,具有一定的创新意义及实用价值。 1.2 课题主要研究的内容 本课题以 Windows XP 为开发平台,以 Java 为开发语言,以 Eclipse 作为集成开发工具, MySQL 作为后台开发数据库。本文从上位机软件出发,利用面向对象、数据库、 Swing、多线程等技术,采用引路蜂的 J2SE 地图开发包,设计并实现无线人员定位管理系统软件。此软件具有 看守所 在押 人员 的 基本信息阅览、新增、查询、删除、修改 , 人员路径再现 以及用户帐户管理的功能 。通过这个软件查看每个 在押 人员的基本信息,并进行修改, 并且 可以结合 引路蜂地图 ,查看 在押 人员的行进路线。为了提升系统的安全性,所有用户只有在登录后才可以使用本系统。 同时,为了方便不同的人员对在押人 员进行管理,软件中设置了帐户管理的功能。 2 本论文的主要研究内容如下 : (l)学习和掌握 Java 编程语言、 Eclipse 开发平台、 JDBC 数据库技术、 Swing 应用程序开发包和引路蜂地图开发包的使用。 (2)分析整个无线定位管理软件系统的总体框架及其功能特点。 (3)根据用户需求设计出无线定位管理软件系统,给管理人员提供可视化界面,实现对 看守所 在押 人员 的 基本信息 的 阅览、新增、查询、删除、修改 , 人员路径再现 等功能 。 (4)对软件进行现场测试,以验证设计的可行性、准确性和优越性。 3 第 2 章 软件开发相关技术介绍 2.1 Java 程序编程基础 2.1.1 Java 的起源及其发展 Java 是 Sun 公司开发出来的一套编程语言,最早来源于一个叫 Green 的项目。这个项目原来的目的是为家用电子消费产品开发一个分布式的代码系统,这样就可以通过网络对家用电器进行控制。开始 Sun 公司的工程师准备采用 C+2,但由于 C+过于复杂,安全性差,最后决定基于 C+开发一种新语言( Oak 语言)。 Oak 是一种用于网络 ,精巧而安全的语言, Sun 公司曾以此投标过一个交互式电视项目,结果被 SGI打败。恰巧此时 Mark Andreessen 开发的 Mosaic 和 Netscape 启发了 Oak 的成员, Sun的工程师们用 Java 编制了 HotJava 浏览器,触发了 Sun 进军 Internet3。 Java 语言发展到至今经历了一系列的过程, Java 在 1995 年 5 月 23 日推出了 JDK 1.0 版本,此版本标志着 Java 正式进军 Internet 的开始。在 1998 年, Sun 公司推出了JDK 1.2 开发包,该版本加入了大量的轻量级组件,从此以后 Java 正式被命名为 JDK 2。在此之后, Sun 公司也陆续发布了一系列的 Java 开发包版本, 目前最新版本的 JDK 为JDK 74。 2.1.2 Java 程序运行原理 Java 中有两类应用程序,一类是有自己独立运行入口点的 Java 应用程序,另一类是嵌入在 Web 页面中由 Web 浏览器来控制运行的 Java 小程序( Applet5)。在运行时,它们都需要 Java 运行系统的支持,对于 Java 运行程序, Java 运行系统一般是指 Java解析器;而对于 Applet, Java 运行系统一般是指运行 Applet 的与 Java 相兼容的 Web 浏览器,并且其中包含了支持 Applet 运行的环境。 Java 运行系统的功能是对字 节码进行解析和执行,其工作过程可以分为以下三步。 ( 1)由类装载器完成字节码的装载。在装载过程中,程序运行时所需要的所有代 4 码都被装载。完成后,节节码中便保留了地址的符号引用信息,运行系统通过建立的地址符号引用信息与内存之间的对照来确定程序的内存分配。 ( 2)由字节码检验器对字节码进行安全性检查。这种检查可以排除字节码中可能存在的违反访问权限,不规范数据类型以及非法调用等问题。 ( 3)字节码的翻译和执行。 Java 字节码的运行可能有两种方式,一种是通过代码生成器,先将字节码翻译成适用于本系统的机器码,然后再送到 硬件去执行,这是一种编译性工作方式。另一种是通过解析器将字节码翻译成机器码,然后由即时运行部件将机器码送到硬件去执行,这是一种解析性工作方式。 Java 运行系统一般采用第二种工作方式,只有对那些运行速度要求较高,才采用编译性工作方式,这时就需要使用特定的代码生成器来完成编译,从而保证 Java 程序代码的高性能 6。 5 2.2 Eclipse 开发平台 Eclipse 是一个开放源代码的,基于 Java 的可扩展开发平台,它通过插件组件构成开发环境。 Eclipse 附带了一个标准的插件集,其中最著名的插件当属 Java 开发 工具( Java Development Tools, JDT) 7,其界面的主界面如图 2-1 所示。最初主要用来 Java语言开发,但是目前亦有人通过外挂程式使其作为其他计算机语言比如 C+和 Python的开发工具。 Eclipse 本身只是一个框架平台,但是众多外挂程式的支持使得 Eclipse拥有其他功能相对固定的 IDE 软体很难具有的灵活性。许多软体开发商以 Eclipse 为框架开发自己的 IDE。 Eclipse 最初由 IBM 公司开发, 2001 年 11 月贡献给开源社区,现在它由非营利软体供应商联盟 Eclipse 基金会( Eclipse Foundation)管理 8。 图 2-1 Eclipse 程序主界面 在用最新版本的 Eclipse 开发桌面应用程序时,既可以直接编写代码来设计应用程序界面,也可以使用 Eclipse 的 Visual Swing Designer 来进行界面的可视化设计。 Visual Swing Designer 是一个 Swing 界面设计工具插件 ,代码的生成和解析不需要依赖于form 文件,而且生成的代码可读性很好,支持代码跟界面实时的切换。它还支持表格和树的可视化设计,程序员在设计表格和树模型时,不需要编写复 杂的代码,直接从 6 采用界面操作便可以生成表格和树的数据模型代码。在一般情况下,可以通过 Visual Swing Designer 来设计程序的基本界面,再通过用户定制一些代码往往能更快地进行应用程序的快速开发。 Eclipse 的使用大大减少了程序员开发程序的工作量,尤其是在程序界面设计方面。同时拥有对代码错误信息的实时提示功能,当程序代码出现错误时, Eclipse 会在代码左边显示出错误提示,点击它能够帮助程序员自动更正错误。 2.3 数据库技术 程序设计中离不开数据库的支持,每个程序的设计都是使用数据库保存数据。 JDBC是 Java程序连接和存取数据库的应用程序接口,是 Java核心 API的一部分。 JDBC使程序员能够利用当前最新的数据库特征,如同时连接多个数据库等。 JDBC 支持静态和动态的 SQL 语句(在运行时组建查询和更新语句)。 JDBC 最大的特点是无论后台是何种数据库,对于 Java 程序员而言,它的工作方式完全相同。 JDBC 为许多不同的数据库连接模块的前端提供了统一的接口,这样就不用为连接不同的数据库而烦恼了。当需要为程序修改数据库时,程序基本上只要修改在代码中修改数据库的驱动,URL,用户名,密码,其他的地方基本 上是没有发生变化的。 2.3.1 SQL 语言概述 SQL(Structure Query Language,结构化查询语言 ),是一个功能强大的数据库语言。SQL 语言的主要功能就是同各种数据库建立联系,进行沟通 9。 20 世纪 80 年代初,美国国家标准局( ANSI)开始着手定制 SQL 标准,最早的ANSI 标准于 1986 年完成,叫做 SQL-86。标准的出台使 SQL 作为标准关系数据库语言的地位得到了加强。 SQL 标准目前已几经修改,更趋完善。 正是由于 SQL 语言的标准化,所以大多数关系型数据库都支持 SQL 语言,它已经发展成为多种平台进行交互操作的底层会话语言。 7 SQL 语句主要可以划分为以下 3 个类别。 ( 1) DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段、数据库、表列、索引等数据库对象的定义。常用的语句关键字主要包括create、 drop 等。 ( 2) DML(Date Manipulation Language)语句:数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性。常用的语句关键字主要包括 insert、 delete、update 和 select 等。 ( 3) DCL( Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。 2.3.2 JDBC 模型 JDBC 由 编 程 语 言 编 写 的 类 及 接 口 组 成,同时它也为程序开发人员提供了一组用于实现对数据库访问的 API,并支持 SQL 语言。利用 JDBC 可以将 Java代码连接到 Oracle, SQL Server, MySQL 等数据库,从而实现对数据库中数据的相关操作 10。 JDBC 为数 据库应用开发人员和数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯 Java 语言编写完整的数据库应用程序 用 JDBC 写的程序能够自动地将 SQL 语句传送给相应的数据库管理系统。不但如此,使用 Java 编写的应用程序可以在任何支持 Java 的平台上运行,不必在不同的平台上编写不同的应用程序 11。 JDBC 由两层组成,上面一层是 JDBC API,下面一层是 JDBC 驱动程序 API。 JDBC API 负责与 JDBC 管理器驱动程序 API 进行通信,将各个不同的 SQL 语句发送给它。驱动 程序管理器与实际连接到数据库的第三方驱动程序进行通信,并且返回查询的信 8 息,或者执行由查询规定的操作 12。它主要由以下四个部分组成。 (l)Java 程序 Java 程序包括应用程序, Applet 和 Servlet 等 ,这些类型的程序都可以利用 JDBC方法完成对数据库的访问和操作。完成的主要任务有:请求与数据库建立连接、向数据库发送 SQL 请求,为结果集定义存储应用和数据类型、查询结果、处理错误、递交及关闭等操作。 ( 2) JDBC 驱动程序管理器 JDBC 驱动管理器能够动态地管理和维护数据库查询所需要的所有厂商或第三 方所提供的驱动程序对象,实现 Java 任务与特定驱动程序的连接,从而体现 JDBC 与驱动无关这一特点。它完成的任务有为:为特定的数据库选择驱动程序,处理 JDBC 初始化调用,为每个驱动程序提供 JDBC 功能的入口,为 JDBC 调用执行参数。 (3)驱动程序 驱动程序一般由数据库厂商或者第三方提供,它由 JDBC 方法调用,向特定的数据库发送 SQL 请求,并为 Java 程序取得结果。驱动程序可以完成下列任务:建立与数据库的连接,向数据库发送请求等。 (4)数据库 数据库是指 Java 程序所需要的数据库,如 MySQL, SQL Server, Oracle。在本课题中,使用了 MySQL 数据库。 2.3.3 JDBC 的工作方式 JDBC 功能强大非常强大,但使用简单。无论连接何种数据库,只要做好下列步骤即可: ( 1)与数据源建立连接 通过 DriverManager 类建立与数据库的连接,这个连接将作为一个数据操作的起 9 点。 例如,在本程序中,使用以下语句与 MySQL 数据库建立了连接。 protected static String dbClassName = org.gjt.mm.mysql.Driver;/ 数据库连接驱动类 protected static String dbUrl = jdbc:mysql:/localhost:3306/gps;/ 数据库连接 URL protected static String dbUser = root; / 数据库用户名 protected static String dbPwd = admin; / 数据库密码 private static Connection conn = null; / 数据库连接对象 Class.forName(dbClassName); / 加载驱动类 conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);/ 与数据库建立一个连接 ( 2)向数据库发送 SQL 命令 通过 Statement 或者 PreparedStatement 类发送 SQL 命令。在命令发送后,调用类中的 excute 方法来执行结果。例如,下列语句将会执行 sql 语句指定的操作。 Statement stmt=conn. createStatement (sql);/通过 SQL 语句创建 Statement stmt.execte();/执行 sql 语句指定的操作 ( 3)处理数据源返回的结果 数据库处理了 SQL 命令后,将返回处理结果。对于查询将会返回一个 ResultSet结果集,在 Java 程序中遍历这个结果集就可以执行想要的操作了。例如,下列语句则会从数据库的 tb_operator 表中返回具有指定用户名和密码的查询结果,并存放在ResultSet 中。 String sql = select * from tb_operator where name= + name+ and password= + password + ;/查询字符串 10 ResultSet rs = Dao.executeQuery(sql);/ 执行查询 2.3.4 MySQL 数据库 近几年来,开源数据库逐渐流行起来。由于具有免费使用、配置简单、稳定性能好、性能优良等优点,开源数据库在中低端应用中占据了很大的市场人人份额,而MySQL 正是开源数据库的杰出代表。 MySQL13-14数据库隶属于 MySQL AB 公司,总部位于瑞典。 MySQL 几乎支持所有的操作系统,并且支持很大的表,这些特性使得 MySQL 的发展非常迅猛,目前已经广泛应用 在各个行业中。 MySQL 数据库目前分为社区版( Community Server)和企业版( Enterprise),它们最重要的区别在于:社区版是自由下载而且完全免费的,但是官方不提供任何技术支持,适用于大多数普通用户;企业版是收费的,不能在线下载,相应地,它提供了更多的功能和更完备的技术支持,更适合于对数据库的功能和可靠性要求比较高的企业客户。在本程序中,使用了 MySQL 数据库的社区版来对程序中相关的人员信息进行维护。 2.4 图形界面开发技术 Swing15是一个用于开发 Java 图形界面应用程序的开 发工具包,它是以抽象窗口工具包( AWT) 16为基础,使跨平台应用程序可以使用任何的外观风格。 Swing 开发人员通过使用少量的代码,就可以利用 Swing 包中丰富、灵活的功能和模块化组件类来开发令人满意的用户界面。 Swing 是 Sun 公司推出的第二代图形用户接口工具包,通过 Swing 可以开发出功能强大,界面优美的客户应用程序。 Swing 中不但提供了许多功能完善的控件,而且还有良好的扩展能力。 Swing 组件实现不包括任何与平台相关的代码。 Swing 组件是纯 Java 语言编写,没有本地代码,是一种轻量级组件 17。 11 目前利用 Swing 开发的可视化桌面程序已经非常成熟,并且很多工具已经在业界产生了巨大影响。例如 IBM Lotus notes 办公套件, Eclipse 和 NetBeans 开发工具。其中这 Eclipse 和 NetBeans 是用来开发 Java 应用程序的,本来也是使用 Swing 开发出来的一套工具,在全世界普及。近年来, NetBeans 的发展,已经在程序员中产生了良好的口碑,特别是它的可视化桌面程序设计器,拖拽方式设计桌面窗口,以及各种各样良好的辅助设计功能,让之前可视化拖拽设计工具 Delphi 的设计人员也大大赞赏。特别是 Swing 设计的桌面程序,在不同平台几乎不需要做什么修改就可以直接使用,让目前的软件厂商找到了非常好的跨平台编程工具 18。 2.4.1 Swing 组件类的层次 Swing 中的组件的层次结构如图 2-2 所示, Swing 的组件可以分为两种类型,一种是 JComponent 类,另一种是 Window 类。其中 Window 组件类主要包括了一些可以独立显示的组件,而 JComponent 组件类主要包括了一些不能独立显示的组件。什么是可以独立显示的组件呢?独立显示的组件是指当运行一 个程序时,这个组件无须托付在其他组件上就可以显示,即它可以直接显示出来,例如 JFrame 类,它可以独立显示,无须任何其他的组件。而不可独立显示的组件则必须依靠可独立显示的组件来显示,例如文本框组件、按钮组件、必须依托在 JFrame 等上面才能显示出来。 12 图 2-2 Swing 组件类的层次结构图 以上的示意图只是从显示效果上划分,其实从其功能上划分,在 javax.swing 包中Swing 组件共有三种类型:顶层组件、中间组件、基本组件。顶层组件又被称为顶层容 器,而中间组件又分为中间容器和特殊中间组件,如图 2-3 所示。 图 2-3 Swing 组件从功能上划分 (1)顶层组件类:所谓的顶层组件类是指可以独立显示的组件。主要有 JFrame,JApplet, JDialog, JWindow 等。 (2)中间容器类:所谓的中间容器类是指那些可以充当载体,但也是不可以独立显示的组件。通俗地说,就是一些基本控件可以放在其中,但是它不能独立显示,必须Component Container JComponent Window JPanel JTable JTree JTextField JButton JTextField JFrame JDialog Swing 组件 顶层组件类 中间组件类 基本组件类 中间容器类 特殊中间容器类 13 依托在顶层容器上才能显示。常用的中间容器有 JPanel, JScrollPane, JSplitPane,JToolBar. (3)特殊中间组件类:在 GUI 上起特殊作用的中间层,如 JInternalFrame。 (4)基本组件类:基本组件是指那些只能依托在中间窗口上才能被显示的组件,如JButton, JComboBox,JMenu 等。 2.4.2 Swing 事件处理机制 图形用户界面程序都需要对环境中发生的各种事件(包括鼠标的单击、值的改变、焦点的获取或者丢失、键盘输入等 )进行监控并根据事件的类型进行相应的处理。Swing 中采用了委托事件模型,也叫授权事件模型来处理系统发生的各类事件 19。 在授权事件模型中,主要包含 3 个对象。 (1)事件:发生在用户界面上的用户交互行为所产生的一种效果。 (2)事件源:产生事件的对象。 (3)事件监听器:接收事件并对其进行处理的对象。 组件作为事件源可以触发事件,一个事件源可以注册一个或多个事件监听器。当特定事件发生时,事件被委托到特定的事件监听器进行处理。具体来说,首先通过组件的 Add Listener 方法注册事件监听器,一个组件可以注册多个事件监听器。 监听器监听特定的事件,如果组件触发了相应类型的事件,此事件被传送给已经注册的监听器,事件 监听器负责处理事件。 委托事件模型具有如下优点: (1)事件对象只传给注册的监听器,不会被其他组件或上层窗口捕获和处理。 (2)可以实现过滤的功能,只监听和处理感兴趣的事件。 (3)实现了将事件源和事件监听器分开处理的功能。 2.4.3 Swing 中的布局管理 14 Java 中的布局管理管理功能,没有 Visual Basic, Visual C+等可视化软件所带的表单设计器,可以在画板上直接将组件按照程序员的意愿进行排列。在 Java 中只能通过编写代码来规范每个控件在顶层窗口中的位置。不同的代码代表着不同的代码 布局方式,不同的布局方式代表着不同的布局格调。 为了将添加到容器中的 Swing 组件和其他容器进行布局, Swing 采用了两种布局方式:无布局管理器布局和基于布局管理器的布局。其中无布局管理器的布局是通过指定 Swing 组件在窗体上的绝对位置来实现的。基于布局管理器的布局 20是 Swing 为了实现跨平台的动态布局效果而提出的布局方式。在这种方式下,需要调用容器类( JFrame, JDialog 或者 JPanel 等)的 setLayout 方法设置布局管理器,常用的布局管理器有 FlowLayout, BorderLayout, GridLayout 等多种方式。不同的布局管理器使用不同的算法和策略来决定组件在窗口内的布局。设置好布局管理器后,窗口内的所有组件的布局就由布局管理器来负责,包括组件的排列顺序,组件的大小,位置,当窗口移动或调整组件大小后该如何变化等。 无布局管理器的布局 Swing 中提供了 setLocation(),setSize(),setBounds()等布局方法,但 Swing 中存在一个默认的布局管理器,因此这些方法都会失效。如果需要设置组件的大小或位置,则应取消布局管理器,方法为调用容器的 setLayout() 方法,并将布局管理器设置为 null。 采用无布局管理对组件进行布局时,相对于基于布局管理器的布局方式在对组件的大小和位置的控制上较为灵活,但这种布局方法会导致平台相关,在不同的平台上可能产生不同的显示效果。如果想要使应用程序在不同的平台上运行,则需要采用基于布局管理器的布局方式。 FlowLayout 容器采用 FlowLayout 布局其组件的放置规律是从左到右,从上到下进行设置,如 15 果容器足够宽,第一个组件先添加到容器中第一行的最左边,后续的组件依次添加到上一个组件的右边,如果当前行已经放置不下该组件,刚放到 下一行的最左边。当容器的大小发生变化时,用 FlowLayout 管理的组件会发生变化,其变化规律是:组件的大小不变,但是相对位置会发生变化。 BorderLayout BorderLayout 布局管理器把容器分为五个区域: North, South, East, West, Center。每个区域只能放置一个组件。如果使用了 BorderLayout 布局,那么当容器的大小发生变化时,其变化规律为:组件的相对位置不变,大小发生变化。例如容器变高了,则North、 South 区域不变, West、 Center, East 区域变高。 如果窗口变宽了,则 West 和East 不变, North、 Center 和 South 区域变宽。不一定所有的区域都有组件,如果四周的区域没有组件,则用 Center 去补充。 GridLayout GridLayout 将组件按网格型排列,每个成员尽可能地占据网格的空间,每个网格也同样尽可能地占据空间,从而各个成员按一定的大小比例放置。如果你改变大小, GridLayout 将相应地改变每个网格的大小,以使各个网格尽可能地大,占据 Container容器全部的空间。 GridLayout 基本布局策略是把容器的空间划分成若干行 乘以若干列的网格区域,组件就位于这些划分出来的小区域中,所有的区域大小一样。组件按从左到右,从上到下的方法加入。 使用构造函数 GridLayout(int rows, int cols)可以创建 具有指定行数和列数的网格布局。 构造函数里的行数和列数能够有一个为零,但是不能都为零。当容器里增加控件时候,容器内将向 0 的那个方向增长。例如,如果是如下语句: GridLayout layout= new GridLayout( 0, 1);在增加控件时,会保持一个列的情况下,不断把行数增长。 面板及容器的嵌套 16 由于任何一 种布局管理器的能力都很有限,所以在设计复杂布局时,通常采用容器嵌套的方式,即把组件添加到一个中间容器中,再把中间容器作为组件添加到另外一个容器中,从而实现复杂的布局。为实现这个功能,经常使用 JPanel 类,该类是JCompoent 类的子类。 JPanel 类是一个通用的容器,既可以把它放入其他容器中,也可以把它放入其他容器和组件,因此这种窗口经常在构造复杂布局中作为中间容器,但它不能单独显示,需要放到 JFrame 等顶层容器中。 使用面板容器作为中间容器构建图形用户界面的一般思想是:先将组件添加到面板上,然后将面 板作为一个组件再添加到顶层容器中。如果要作用面板作为中间容器,首先需要创建面板对象, JPanel 的构造方法如下: Public JPanel(LayoutManager layout):创建一个面板对象,使用指定的布局管理器对旬( layout)设置面板的布局。 Public JPanel();使用默认的布局管理器创建一个面板对象,面板的默认布局管理器是 FlowLayout。也可以在创建面板对象后重新设置它的布局,方法是使用面板对象的setLayout()方法。 2.4.4 设置应用程序外观 Java 程序是跨 平台的,为了使 Java 图形界面应用程序在不同系统下显示的外观完全一致, Java 应用程序可以指定界面显示外观( Look and Feel)。图形界面程序外观包括 Java 外观( Metal 风格外观), Windows 外观, CDE/Motif, Mac OS 外观等。 在程序中指定一种外观很方便,只要调用 UIManager 类的 setFeelAndLook()方法即可,该方法的参数是 LookAndFeel 类的实例或类名。例如:如果用当前平台的外观则可使用: UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName(); UIManager 类的 getSystemLookAndFeelClassName()返回当前系统使用的外观类 17 名。将该段代码放入应用程序 main()方法的开头就可以设置应用程序的外观。 如果要指定跨平台的外面,即 Java 外观,可以使用下面的代码: UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName();设置应用程序外观,还可以在 setLookAndFeel()方法的参数中指定外观类的名字,例如 ( 1)使用 Java 外观 UIManager.setLookAndFeel(“javax.swing.plaf.metal.MetalLookAndFeel”); ( 2)使用 Windows 外观 UIManager.setLookAndFeel(“com.sun.java.swing.plaf.windows.WindowsLookAndFeel”); ( 3)使用 CDE/Motif 外观 UIManager.setLookAndFeel(“com.sun.java.swing.plaf.motif.MotifLookAndFeel”); ( 4)使用 Mac OS 外观,但只能用在 Mac OS 平台 UIManager.setLookAndFeel(“javax.swing.plaf.mac.MacLookAndFeel”); 2.5 引路蜂电子地图开发技术 2.5.1 引路蜂地图 API 概述 目前流行的电子地图应用中,主要基于 Google 地图、百度地图、高德地图等进行开发的。如果是基于 Google Earth 的应用程序,可以使用 KML 语言 21来进行开发。如果是用来进行网站 开发,一般采用 Google Map API21来进行开发。 Google Map API 是一种通过 JavaScript21 将 Google 地图嵌入到您的网页的 API。该 API 提供了大量实用工具用以处理地图,并通过各种服务向地图添加内容,从而在网站上创建功能全面的地图应用程序。百度地图和高德地图提供的 API 提供的都是基于浏览器的网页地图,采用 JavaScript 语言进行开发。对于标准的 Java 语言它们没有提供相应的 API。 18 引路蜂地图开发包 24提供了几乎对所有软件平台(桌面和移动平台) 的支持,采用统一的接口使用包括 Google 地图, Bing 地图在内的多达 20 多种地图类型,并在同一地图中支持矢量地图,离线地图的显示。 图 2-4 显示了引路蜂地图开发包所支持的开发平台,软件包以三个不同的开发包提供对各个平台的支持。 图 2-4 引路蜂地图开发包支持平台 2.5.2 地图开发包类的定义 图 2-5 为引路蜂地图开发包中关键的几个类的定义及其关系图 19 图 2-5 开发包关键类及其关系图 AbstractGraphicsFactory,DigitalMapService,MapTileAbstractReader 分别用于对不同平台用户界面,不同地图服务,不同地图图片的支持。引路蜂地图开发包在对地图图片和地图服务进行了抽象,其中地图图片主要用于显示地图图片,地图图片可以来源于三个方面: (1)在线地图:可以连接包括 Google 地图, Bing 地图等二十多种地图,并支持自定义地图。在本程序中,仅使用了在线地图。 (2)离线地图:可以读取本地地图包 (3)矢量地图:可以读取 MapInfo 格式的矢量地图。 而地图服务是指地址查询,路径查询,本地查询等。引路蜂地图开发包支持谷歌地图服务,在中国也支持 MapABC, Bing 地图。而且地图服务也是可以扩展的。地图图片和地图服务两个部分相对独立,如我们可以在显示 Bing 地图的同时使用谷歌地图的服务,也可以在显示谷歌地图的时候使用 Bing 地图服务。 引路蜂地图开发包是跨平台的,因为它对不同平台的地图开发包进行了抽象,在 20 Gis.Drawing 包中定义了 IImage, IGraphics,IFont, AbstractGraphicsFactory 抽象类和抽象接口。这样对于不同的平台,只要实现相应的接口,就可以使用同一个开发包。 引路蜂地图开发包主要以 Java 和 C#两种语言提供,尽管 Java 和 C#是两种不同的语言,但开发包提供的两种语言的开发接口却非常类似。 下表列出了引路蜂地图开发包所定义的类包。 2.5.3 地图对象类的层次关系 图 2-6 地图对象类的层次关系图 图 2-6 显示了各个地图对象类及其关系。 MapLayer 定义了通用的地图操作,如设置地图的中心点,放大,缩小,移动,以及坐标变换(从屏幕坐标到地图坐标或从地图坐标到屏幕坐标),它是所有地图类的基类。 MapLayerContainer 是一个集合类,它 21 定义了一组 MapLayer 的集合及它们的上下层次关系,并且使这些 MapLayer一些移动,放大,缩小等。 DigitalMap 定义了地图服务,如地址查询,路径查询,它包含了对不同地图服务的支持。 RasterMap 定义了对在线地图,离线地图的支持,内部支持多线程获取图片,并提供回调函数用于了解图片的下载进度等。 VectorMap 为 RasterMap的一个子类,主要是提供类似 MapInfo 的适量地图的支持。矢量地图通过读取地图矢量数据并将其栅格化成图像显示。 2.5.4 地图图片读取类层次关系 图 2-7 地图图片读取类层次关系 不管是在线地图,离线地图还是矢量地图,对于 RasterMap 来说都是一张张 256 256 的图像,在线地图是从服务器上下载图片,离线地图是从本地图片包中读取,而矢量地图是将矢量数据栅格化处理。如图 2-7 所示, RasterMap 类有一个MapTileDownloadManager 实例,这个对象用于管理所用地图图片的下载,读取线程。这些线程都是 MapTileAbstractReader 的子类, MapTileDownloader 用于在线下载地图图片,而 VectorMapRender 用于栅格化矢量地图数据。大部分商用的地图服务器都采用了类似的地图分片方法,将地图分为 1-17 级,每张图片都是大小为 256 个像素的正 22 方形图片。图 2-8 显示了从一级到三级的地图分级方法 。 图 2-8 地图分级图 2.5.5 图形子系统 如前文所述,引路蜂地图开发包中 Gis.Drawing 类定义了几个抽象类或接口,对不同平台的图形系统进行了抽象。通过抽象处理,引路蜂地图开发包就直接调用平台相关的图形类方法。 Gis.Drawing 定义了地图开发包中所需要的最小功能集,如果在开发过程中不需要矢量图,则可以将与矢量图形相关的方法设置为空。 在 Gis.Drawing 包中抽象类 AbstractGraphicsFactory,接口 IGraphics, IFont, IImage。 抽象类 AbstractGraphicsFactory 是抽象图形类工厂,主要用于创建新的图像对象。以 Java 为例,它定义的方法如下表 2-1 所示。 23 表 2-1AbstractGraphicsFactory 类中定义的方法 接口 IGraphics 类中定义了一些用于图形绘制的方法。它定义的方法如表 3-2 所示。 表 2-2 IGraphics 接口中定义的方法 接口 IFont 中定义了字体,如果在应用中不使用矢量图,可以不实现该类。它定义的方 法如表 2-3 所示。 表 2-3 IFont 接口中定义的方法 接口 IImage 中,定义了获取图片大小等一系列的方法。它定义的方法如表 2-4 所示。 24 表 2-4 IFont 中定义的方法 2.5.6 地图配置 地图配置主要是通过类 MapConfiguration 和 SearchOption 来设置。这里介绍最常用的几个配置。 工作线程数 引路蜂地图开发包允许用户配置同时工作的最大线程数,这些工作线程主要用于从地图服务器上下载图片,默认情况下工作线程数量为 4 。这是通过MapConfiguration.WORKER_THREAD_NUMBER 来配置的。例如,下面的程序将工作线程数量设置为 16。 MapConfiguration.setParameter(MapConfiguration.WORKER_THREAD_NUMBER,16); 使用缓存 引路蜂地图开发包默认是使用缓存来提高地图的显示效率的,但是缓存的使用会占用一定的内存空间,大小可以通过程序进行配置,默认大小为 256K。如果设置的内存比较小,最好将缓存进行关闭。对程序来说,内存是足够的,因此,在程序中使用了缓存。缓存的大小是通过 MapConfiguration.MAP_CACHE_SIZE_IN_BYTES 来配置的,开启关闭缓存是通过 MapConfiguration.IS_CACHE_ON 来设置的。 25 第 3 章 系统总体设计 3.1 系统功能描述 本小组所要研究的对象是电子防脱逃装置,由电子腕带(在押人员佩戴)、手持机(监管人员佩戴)和专用管理软件(本软件)三部分组成。手持机(监管人员佩戴)和电子腕带(在押人员佩戴)分别安置有 GPS25模块,手持机通过无线传感网络获取两点 GPS 位置坐标,进而进行距离计算,从而确定电子腕带同手持移动控制终端的距离,如距离超出警 戒范围则进行报警等操作。专用上位机监管软件可同手持机进行通讯,能够更新在押人员的基本信息和获得人员路径信息。 基于上述工作机理,对研究内容进行分解,包含以下三个部分: 1、电子腕带设计 电子腕带主要实现功能有如下几点: GPS 位置信息获取、位置信息的无线传输、报警功能、防撬功能以及电量检测与充电等功能。 2、手持机设计 手持机主要实现功能有如下几点: GPS 位置信息获取、无线组网获取电子腕带位置信息、实时时钟、电量检测与充电、人机界面、人员信息存储、事件记录、与专用管理软件通信等功能。 3、无线人员定位管理软件 本软件是 Java 为开发语言,以 Eclipse 为开发平台,采用 MySQL 作为开发数据库,再结合引路蜂地图开发包来完成的。它是一个集成了看守所在押人员的基本信息阅览、新增、查询、删除、修改以及人员路径再现的综合性系统。可以通过这个软件查看每个在押人员的基本信息,并进行修改等,并且可以引路蜂地图开发包,查看在押人员的行进路线。为了提升系统的安全性,所有用户只有在登录后才可以使用本系统。 本软件包含的主要功能有: 26 新增:出现“新增在押人员基本信息”窗口,手动录入相关信息。 删除:删除表格中指定行的记录,同 时 MySQL 中相应的记录也被删除。 查询:按给定的条件查询出符合条件的在押人员基本信息,并显示在表格中。 修改:出现“在押人员基本信息修改”窗口,修改其中的各信息。 帐户管理:包括增加帐户,修改密码和删除帐户等功能。 人员定位:打开 txt 或 csv 文件,在地图上显示某一在押人员的路径。 导出:导出在押人员的基本信息,以 txt 文件的形式保存到其他位置。 关于:显示软件的基本信息。 3.2 软件总体设计 3.2.1 软件总体结构图 无线人员定位管理软件的总体结构图如图 3-1 所示。 图 3-1 软件总体结构图 3.2.2 系统开发原则 在系统的开发中始终坚持“结构化、标准化、模块化”的设计原则,做到界面清晰、接口标准、技术先进、安全稳定和有效集成。有关应用软件开发将依据以下原则:无线人员定位管理软件 用户登录 在押人员管理 用户帐户管理 查询在押人员信息 新 增 在 押 人 员 信 息 修改 在 押 人 员 信 息 显示在押人员路径 管理员登录 操作员 登录 增加用户帐户 删除用户帐户 修改用户密码 导 出在押人员信息 删除在押人员信息 27 ( 1)现代化的管理模式原则 在系统设计时,既要看到当前现状,又要想到长远,对系统进行合理的、全面的功能设计,尽量考虑系统的今后发展,为系统的扩充留有充分的接口,尽量延长系统的生命周期。 (2) 应用当前最先进、最成熟的开发平台技术。 采用名牌产品:采用 Java 编程语言, MySQL 数据库管理 系统和 Window XP 操作系统,提高系统的安全性与稳定性。 ( 3)集成性原则 本系统涉及到不同种类的数据,与其他应用软件的接口。为了保证系统能够协同性工作,保证系统数据能够畅通无阻,必须坚持系统集成性原则,采用国际标准,提供标准的系统内、外接口。 ( 4)可管理、易维护原则 选择合理的软件体系结构和网络结构,提供功能强大而灵活的软件系统管理工具,使系统易于管理、易于维护、易于今后的扩充和升级。 ( 4)操作简便、界面友好原则 用户对应用软件的认识和使用是从界面开始的。因此应用软件界面设计好坏,直接关系到软件使 用的方便性、友好性和易操作性。一个好的用户界面设计能帮助使用者更好的理解自己所作的工作,能减少工作疲劳,提供工作效率。 3.3 系统的通信协议 本软件通过 USB 数据线与手持机进行连接,用户路径信息保存在 csv 文件或 txt文件中。当管理员想要了解相应的在押人员的实时路径信息时,可以通过打开相应的在押人员的路径文件就可以在软件上实现人员的路径显示。 28 第 4 章 软件各模块的实现 4.1 用户登录的设计 用户登录模块分为两种情况,管理员登录和操作员登录。在程序第一次运行的时候,只有一个默认的管理员,没有操作员。如果想要 增加新的操作员,首先必须以管理员登录,然后在登录后增加相应的操作员。软件中所有的帐户信息都是保存在MySQL 数据库的。设计界面如图 4-1 所示。 图 4-1 用户登录模块界面设计 用户登录模块的具体设计流程图如图 4-2 所示。 返回 是 图 4-2 登录模块流程图 4.2 在押人员管理模块设计 用户登录窗口 用户名和密码是否正确 弹出登录错误信息 进入程序主界面 29 在押人员管理模块是本软件的核心部分,它由在押人员信息查询,新增在押人员信息,修改在押人员信息,在押人员中路径显示,在押人员信息导出共五个子模块组成。它实现了对看守所在押人员的基本信息增加、查询、删除、修改、导出以及人员路径再现的综合性系统。可以通过这个软件查看每个在押人员的基本信息,并进行修改等,并且可以引路蜂地图开发包,查看在押人员的行进路线。下面对在押人员管理的各个子模块作一个详细的介绍。 4.2.1 查询在押人员信息模块 查询在押人员信息 界面如图 4-3 所示。 图 4-3 查询在押人员信息界面 本软件开发时采用了多文档界面,在用户登录系统后可以显示程序的主界面。程序在默认情况下所有的子窗口是关闭的。当用户按下基本操作菜单下的人员信息查询或者工具栏的人员信息查询按钮,就显示如上界面。在查询界面的左边是查询类型,查询条件以及相关人员的头像。当用户选择查询类型,并在其下的文本框中输入相应的查询内容,并按下查询按钮就可以在查询界面的右边的表格中显示相关人员的信息。相关人员的信息在数据库中是按照其在数据库中原来的顺序列出的。当用户在查询结 30 果的相应行单 击时,就会在界面的左上角显示相应人员的头像。 4.2.2 新增在押人员信息模块 新增在押人员信息的界面如图 4-4 所示。 图 4-4 新增在押人员基本信息界面 用户可以在新增在押人员基本信息界面中输入相关的信息,对于某些要格式要求的信息,当用户输入的信息有误时,有出现相关的提示信息。在这里主要用到了 JLabel,JButton, JTextFiled, JFormattedTextField, JComboBox 等。当用户按下添加按钮时,如果出现添加成功对话框,表明已经成功地向数据库中添加一条记录,否则表明往数据库 添加记录失败。当用户认为输入的信息有许多错误时,可以通过重置按钮来使各个组件恢复到初始状态。 4.2.3 修改在押人员基本信息模块 在押人员基本信息修改界面如图 4-5 所示。当用户在查询结果的表格中选中某一条记录并按下表格下方的修改按钮,就会出现如上图所示的界面,在修改界面中,会出现未修改前的在押人员基本信息。当修改完成后,只要按下修改按钮,若修改成功,就会出现修改成功的对话框。 31 图 4-5 修改在押人员信息模块 4.2.4 删除在押人员信息模块 删除在押人员信息界面如图 4-6 所示。在押人员信息删除是基于在押 人员信息查询模块的。当用户在查询结果的表格中选中某一条记录并按下表格下方的删除按钮,会出现如下所示的删除提示对话框,当用户点击是按钮时,就会将相关人员的一条记录删除。 32 图 4-6 删除在押人员信息界面 4.2.5 导出在押人员信息模块 导出在押人员信息的文件的截图如图 4-7 所示。人员信息导出也是基于在押人员信息查询模块的。要想导出相关的数据,首先必须按照相关的条件作一次查询,然后才能导出查询结果的数据。导出的数据默认是以 txt 格式保存的。 图 4-7 导出在押人员信息图 4.2.6 显示在押人员路径模块 在 押人员信息显示模块是本程序中最为核心的模块,其界面如图 4-8 所示。 33 图 4-8 在押人员路径显示界面 它除了具备常用的地图操作,如放大,缩小,移动外,还能在地图上显示在押人员的路径。同时,地图也可以通过按下清除按钮来清除已经显示的地图的路径。如果用户想在地图上进行在押人员的路径显示,必须以管理员的身份登录,否则会出现图4-9 所示界面。 图 4-9 非管理员操作界面 4.3 用户管理模块设计 34 用户管理模块主要分为增加帐户子模块,删除帐户子模块和修改帐户密码子模块。 4.3.1 增加帐户模块 增加用户帐户只有管 理员有这个功能,若用户以非管理员身份(操作员)登录,会出现图 4-10 所示对话框。 图 4-10 警告对话框 如果用户以管理员身份登录,将会出现图 4-11 所示的新增帐户对话框。 图 4-11 增加帐户对话框 4.3.2 删除帐户模块 删除帐户模块可以从数据库中删除一些已经存在的用户帐户(包括管理员和操作员)。管理员有权限删除数据库中的所有帐户信息,但操作员只能删除数据库中的其他操作员,不能删除帐户中的管理员,删除帐户模块的界面如图 4-12 如示。图中帐户是以管理员身份登录的,所示在表格中列出了所有的帐户信息, 选中相应的记录,点击删除就可以从数据库中彻底删除相应的帐户信息。 35 图 4-12 删除帐户对话框 4.3.3 修改帐户密码模块 修改帐户密码模块的界面如图 4-13 所示,用户只能修改当前登录用户自身的密码,不能修改别的用户的密码。用户只需要在密码文本框中和密码确认文本框中两次输入相同的密码,并按下修改按钮,就可以修改当前用户的密码了。同时在修改密码的过程中,也是不能够修改当前用户的权限。 图 4-13 修改密码对话框 4.4 数据库中表的设计 在程序中,后台数据库使用了 MySQL 数据库,通过命令行在程序中创建 名为 gps的数据库。在 gps 数据库中创建了用户信息表和在押人员信息表。 36 ( 1)用户信息表:该表记录了所有用户的信息。所有用户分为两类:普通用户和管理员,两种用户具有不同的权限。普通用户具有的权利管理员都具有。管理员可以对所有用户进行管理,包括增加、删除某个用户,修改或查询某个用户的信息。普通用户可以对自己的密码进行修改,但是不能修改或察看别的用户的信息,用户信息表tb_operator 的表的结构如表 5-1 所示。 表 4-1 用户信息表 字段 类型 说明 id INT(11) id 号,自动增加 name VARCHAR(12) 姓名 sex VARCHAR(2) 性别 admin VARCHAR(12) 用户等级 password VARCHAR(12) 密码 其创建的代码如下所示。 CREATE TABLE gps.tb_operator ( id INT(11) NOT NULL AUTO_INCREMENT, name VARCHAR(12) NOT NULL DEFAULT , sex VARCHAR(2) NOT NULL DEFAULT , admin TINYINT(1) NOT NULL DEFAULT 1, password VARCHAR(12) NOT NULL DEFAULT , PRIMARY KEY (id) ); ( 1)在押人员信息表:该表记录了所有在押人员的信息,表的结构如表 5-2 所示。 37 表 5-2 在押人员信息表 字段 类型 说明 idtb_man_basicinfo INT(10) id 号,自动增加 manpic LONGBLOB 用户头像 bianhao VARCHAR(15) 编号 xinming VARCHAR(45) 姓名 jianyuhao VARCHAR(45) 监狱号 age INT(5) 年龄 birthdate DATETIME 出生日期 sex VARCHAR(8) 性别 edubackground VARCHAR(15) 教育背景 jiguan VARCHAR(15) 籍贯 anyou VARCHAR(45) 案由 youwubinshi VARCHAR(15) 有无病史 marriage VARCHAR(15) 婚姻情况 xinqi VARCHAR(45) 刑期 qinshu VARCHAR(15) 亲属 lianxifangshi VARCHAR(45 联系方式 创建该表的数据库脚本为 CREATE TABLE gps.tb_man_basicinfo ( idtb_man_basicinfo INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, manpic LONGBLOB, bianhao VARCHAR(15) NOT NULL, xinming VARCHAR(45) NOT NULL, jianyuhao VARCHAR(45), age INT(5) UNSIGNED, birthdate DATETIME, sex VARCHAR(8), 38 edubackground VARCHAR(15), jiguan VARCHAR(15), anyou VARCHAR(45), youwubinshi VARCHAR(15), marriage VARCHAR(15), xinqi VARCHAR(45), qinshu VARCHAR(15), lianxifangshi VARCHAR(45), PRIMARY KEY (idtb_man_basicinfo) ); 4.5 本章小结 本章给出了系统的软件设计的具体实现。在设计过程中,将系统整个模块化,然后根据模块的划分逐个设计。先给出每个模块的设计的实际效果图,然后根据需要重要介绍部分模块的实现过程。在最后,对系统中使用的数据库做了简要的介绍。 39 第 5 章 项目创新点 5.1 软件的平台无关性 本程 序是采用纯 Java 语言编写,因此用它编写的程序具有平台无关性。程序员不需要修改代码就可以在不同的平台上运行。目前,该程序可以既可以在流行的 Windows的各个版本的操作系统运行,也可以在 Linux 等操作系统上运行,并且程序的运行界面会随着本地的操作系统的风格的改变而改变。 5.2 基于桌

温馨提示

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

评论

0/150

提交评论