北京联合大学毕业设计(论文)开题报告
题目:               移动图书信息管理系统的设计实现                  
专业:          通信工程             指导教师:                      
学院:          信息学院             学号:                              
班级:                   姓名:                          
一、课题任务与目的
传统WEB应用只能在PC机上使用,不能做到随时随地的使用,为了解决这样的不足,基于Android平台的图书馆管理系统客户端就应运而生。本设计阐述了在Android平台下图书馆管理系统的设计与实现过程,其目的是让人们能够在基于Google Android平台的移动设备上享用传统WEB上图书馆管理系统的基本功能。本系统采用C/S结构, MVC软件开发模式,使用android布局技术完成UI的设计,基于Java语言开发完成,在不同型号的设备模拟器上测试通过。系统实现了用户注册、登录、查询图书以及学生用户管理和图书管理等功能。
1、总体任务
基于Android平台的图书馆管理系统手机客户端是依据现在的形式所开发的,它是一套基于开放性的图书馆管理系统,它有传统WEB上图书馆管理系统的大部分功能。
2、各模块任务
整个系统分为前台界面管理和后台服务器管理两部分,划分为用户管理、图书管理、信息管理等三个部分。在前台管理中,用户进行注册、登录、查询特定图书等功能;后台管理模块,负责控制前台界面管理的所有功能;本系统设置了学生用户和管理员两类,两类用户都是使用同一个平台,只是权限不同。学生用户只能注册、查询图书等功能;管理员拥有最高权限,可以对已经毕业的学生用户账号进行删除,查询学生用户信息,实时更新图书馆的新书,发布图书馆最新信息等权限。
本图书馆管理系统,能够适用于各类图书馆,具有良好的可操作性,可以随时的查询你所需要的图书信息,只要你的智能手机安装了本系统客户端,系统大大的方便了学生的图书查询的。
3、整合各模块功能
本系统采用C/S结构,后台服务器使用Servlet编写服务器,同时用Tomcat发布服务,前台客户端环境使用的是ANDROID控件。通过JDBC来调用Oracle数据库,来实现手机客户端与服务器之间数据传输。
二、调研资料情况
1、课题的现状
目前国内的基于Android平台的图书馆管理系统客户端还不成熟,大多数的图书馆管理系统都出现在传统的WEB应用上,在这个环境下,基于Android平台的图书馆管理系统客户端属于一个崭新的应用。作为一个不太成熟的应用,大多数图书馆管理系统都是出现在学习android开发的一个项目中,作为学习中的一个练习项目。目前,绝大部分的网络应用都还是传统的WEB应用,但面对Android手机如此迅速发展的今天,传统WEB的应用不能满足人们随时随地体验网络应用的想法,所以,出现在手机终端的应用将会越来越多,同时其发展的速度也会越来越快。校内图书馆管理系统作为传统WEB应用,也必将在手机客户端上得到应用。
2、开发工具介绍和关键技术
1)Eclipse的介绍
Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Kit,JDK)。
Eclipse的发展史,版本代号 平台版本 主要版本发行日期 SR1发行日期 SR2发行日期,如下:
表2-1 Eclipse的版本号
| 
 版本代号  | 
 平台版本  | 
 主要版本发行日期  | 
 SR1发行日期  | 
 SR2发行日期  | 
| 
 Callisto  | 
 3.2  | 
 2006年6月26日  | 
 N/A  | 
 N/A  | 
| 
 Europa  | 
 3.3  | 
 2007年6月27日  | 
 2007年9月28日  | 
 2008年2月29日  | 
| 
 Ganymede  | 
 3.4  | 
 2008年6月25日  | 
 2006年9月24日  | 
 2009年2月25日  | 
| 
 Galileo  | 
 3.5  | 
 2009年6月24日  | 
 2006年9月25日  | 
 2010年2月26日  | 
| 
 Helios  | 
 3.6  | 
 2006年6月23日  | 
 2006年9月24日  | 
 2011年2月25日  | 
| 
 Indigo  | 
 3.7  | 
 2006年6月22日  | 
 2006年9月23日  | 
 2012年2月24日  | 
| 
 Juno(预定)  | 
 3.8及4.2  | 
 2006年6月27日  | 
 2006年9月28日  | 
 2013年2月22日  | 
| 
 Kepler  | 
 4.3  | 
 2006年6月26日  | 
 2006年9月27日  | 
 2014年2月28日  | 
Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成——Eclipse Platform、JDT、CDT和PDE。JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。Eclipse Platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。
Android工程是在Eclipse工具上编写的,进行android工程的编写,首先需要在Eclipse上安装ADT插件,然后指定SDK所在的路径,便可以创建android虚拟机了。
在Eclipse下创建虚拟机的步骤如下:
(1)安装ADT插件
(2)导入AndroidSDK
(3)创建虚拟机
2)MyEclipse与Tomcat介绍
MyEclipse是一个十分优秀的用于开发Java, J2EE的Eclipse插件集合。MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,支持HTML,Struts,JSP,Javascript, Hibernate,MyEclipse,CSS, Spring,SQL的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。
在结构上,MyEclipse的特征可以被分为7类:
     1. JavaEE模型
     2. WEB开发工具
     3. EJB开发工具
     4. 应用程序服务器的连接器
     5. JavaEE项目部署服务
     6. 数据库服务
     7. MyEclipse整合帮助
    对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错,MyEclipse6.0以前版本需先安装Eclipse。MyEclipse6.0以后版本安装时不需安装Eclipse。
本系统是基于C/S架构的,所以需要在MyEclipse上创建服务器端,利用Java EE中的servlet来提供服务,并将其部署在Tomcat下。需要解决的是创建不同的servlet来提供不同的服务。
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。目前最新版本是7.0。
Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。
Tomcat 是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你  Apache Tomcat运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为7.0.27 Released。
3、关键技术介绍
本软件采用java作为开发语言,布局和数据存储是开发本软件的关键技术,布局用来设计用户交互界面,用户界面的设计是否美观和合理直接影响用户体验,因此运用好布局技术是直接和用户相关的,而数据存储技术则记录了用户所有的操作数据和用户所需要提取的数据。
在android中,软件UI通常使用xml技术设计,而xml中控件的位置和状态则离不开布局的使用,android中常用的布局有5种,分别是:AbsoluteLayout、LinearLayout、RelativeLayout、FrameLayout、TableLayout,由于布局的使用,并且布局之间可以互相嵌套,使得android软件UI的设计变得非常灵活,即使是一些非常复杂的界面设计,只要合理的使用布局,也会使开发变得很容易。
Android中数据存储技术主要有:文件存储、preference、sqlite、ContentProvider和网络存储,文件存储是以流的形式读写文件,可以以文格的格式,也可以以二进制的形式,在java语言中要使用流,则写入文件的对象必须进行序列化,sqlite是嵌入式移动设备中常用的轻量级数据库,可看作计算机上使用的sql server、oracle数据库。本系统中,采用的是Oracle数据库进行储存图书馆里的基本信息。
三、初步设计方法与实施方案
本系统采用C/S模式开发的,该系统的客户端和服务器端是独立分开的,这样的分开也就形成了前台管理和后台管理。前台管理注重用户的交互是否简便,后台管理注重功能的逻辑和与数据库数据交互的功能。
1、前台管理
前台客户端的所有功能画出的功能流程图如下:

图1 前台客户端流程图
1) 注册
用户通过手机客户端主界面上的注册按钮注册新的学生用户,注册用户的信息通过服务器端和数据库连接,数据库中的用户表则会生成你注册的信息,同时在手机客户端提示注册成功。
2) 用户登录
用户登录分为两类用户:管理员和学生用户。可以通过登录界面中选定身份登录,服务器根据登录选定的信息选择数据库中的数据表进行匹配,用户名和密码正确则登录成功。
3) 图书查询
在查询界面输入所需查询书籍的书名和作者名,通过服务器端查询数据库返回你所查询的书籍信息,书籍信息包括:书名、作者、出版社名、是否被接、剩余本数等信息。
在图书查询功能中,运用到了ANDROID的一个自动完成文本的控件,该控件可以通过你输入的查询信息列出带有你输入字的书名,以方便你的检索。通过此控件,大大的提高了用户检索书籍的效率,同时满足了模糊查询的功能,是用户查询书籍方便、快捷。
4) 用户管理
用户管理模块是管理员对学生用户账号的管理,对于某些特殊原因账号不使用了,比如:学生毕业等原因不再使用账号的问题,管理员有权利对这类账号进行删除,同时可以学生用户的用户名查询学生用户的信息。
5) 图书管理
这个功能也只有管理员身份才能拥有,管理员通过此功能,可以对图书进行增加、删出功能。
通过这个模块,管理员可以对新进的图书进行添加处理,并能实时发布新增书籍。对于删除功能,管理员可以把一些已经下架,不再外借的书籍进行删除,以便造成不必要的麻烦。
2、后台管理
后台服务器端的任务是根据客户端送发送过来的请求,根据客户端不同功能模块,通过检索数据库不同表格,把检索结果返回给客户端显示给以用户,其基本流程图如下:

图2 后台服务器端流程图
1) 注册管理
注册用户提交:向服务器提交用户注册的信息,同时更新到数据库。 
注册管理是后台的一个重要内容,注册只提供学生用户的注册,这样可以保证图书馆用户权限的稳定和安全。通过注册用户,用户才能享受来自手机客户端的所有功能。通过手机客户端注册用户,来作为以后通过手机客户端登录图书馆管理系统的唯一身份认证。
2) 登录管理
登录管理:根据你登录的信息向服务器发送请求,然后和数据库信息进行对比,来确认用户登录的成功与否。 
登录时候,首先你必须选定你的登录身份,是以学生用户还是管理员身份登录,根据你选择的不同身份,服务器向不同的数据库表来核对信息,以通过对用户信息的核对,以确定所登录的账号密码是否正确。
3) 图书查询管理
图书查询管理主要通过图书的几个关键信息进行查询,根据图书名字和图书作者向数据库提交信息进行条件检索。通过输入信息的检索,返回检索书籍的基本信息,比如:图书名字、图书作者、出版社名、是否被借、剩余数量等基本信息。
4) 用户管理
后台的用户管理,是处理管理员对有特殊情况的学生用户和查询特定学生用户的服务,是与数据库进行数据更新与交互的服务。
5) 图书管理
后台的图书管理,是处理管理员把新书添加到书籍数据库表的服务,通过添加到数据库表,学生用户才能在书籍查询功能中查询到新更新的书籍信息。同时,对于不再外借的书籍从数据库删除,以此来更新数据库中的书籍名称。
3、数据库结构设计
1)服务器端数据库设计
采用的是Oracle数据库。在本系统中采用了简易版的Oracle,即数据库的名字为Oracle XE,首先要解决的是在该数据库里某个用户下创建表。
管理员用户有用户名和密码两个属性,通过这两个属性来确定管理员用户的身份是否合法,其中ID为主键,其E-R图如下:

图3 管理员E-R图
学生用户有用户名、密码身份证号、入学年份、性别、所在学院名称等属性,通过这些属性,来确认学生信息表的信息,其中主键为ID,其E-R图如下:

图4 学生用户E-R图
书籍信息表,是用来存储书籍的基本信息,其数星星包括书名、作者名、书籍位置、出版社名称、所属科目、是否借出、最大借阅时间等,其中自动分配的ID和书名作为联合主键,其E-R图如下:

图5 书籍信息E-R图
外借书籍信息表是用来存储外借书籍的有关信息,通过此表格,来获取该外借书籍的基本状态,其属性有书籍编号、书籍名、书籍作者、最大外借时间、实际外借时间、外借时间、借阅者ID,其E-R图如下:

图6 书籍外借信息E-R图
对于各个实体之间的关系E-R图如下:

图7 实体关系图
2)数据库物理结构设计
依据数据库的原理,并结合以上E-R图,经过转化,即可进行数据库的物理设计。基于以上数据库的逻辑设计,考虑程序设计的简易性,同时考虑题目的时间,该系统的数据库采用Oracle简易版本建立一个数据库,在其下创建4个数据表,其结构分别如下各表:
表1 数据表清单
| 
 表名  | 
 说明  | 
| 
 管理员用户表  | 
 用于存储管理员信息表格  | 
| 
 普通用户表  | 
 用于存储普通用户信息表格  | 
| 
 书籍信息表  | 
 用于存储书籍基本信息表格  | 
| 
 书籍外借信息表  | 
 用于储存外借书籍的基本信息  | 
表2 管理员用户信息表
| 
 字段名  | 
 数据类型  | 
 长度  | 
 主键  | 
 备注  | 
| 
 ID  | 
 自动编号  | 
 10  | 
 是  | 
 由数据库sequence自动生成  | 
| 
 Adminname  | 
 Varchar2  | 
 50  | 
 否  | 
 管理员的登录账号  | 
| 
 Password  | 
 Varchar2  | 
 50  | 
 否  | 
 管理员登录的密码  | 
表3 普通用户信息表
| 
 字段名  | 
 数据类型  | 
 长度  | 
 主键  | 
 备注  | 
| 
 ID  | 
 自动编号  | 
 10  | 
 是  | 
 由数据库sequence自动生成  | 
| 
 Username  | 
 Varchar2  | 
 50  | 
 否  | 
 唯一标识用户,不可缺  | 
| 
 Password  | 
 Varchar2  | 
 50  | 
 否  | 
 普通用户用户登录密码  | 
| 
 Indentityid  | 
 Varchar2  | 
 100  | 
 否  | 
 用户注册的身份证号  | 
| 
 Year  | 
 Varchar2  | 
 50  | 
 否  | 
 用户入学年份  | 
| 
 Gender  | 
 Varchar2  | 
 30  | 
 否  | 
 用户性别  | 
| 
 College  | 
 Varchar2  | 
 50  | 
 否  | 
 用户所在学院  | 
表4 书籍信息表
| 
 字段名  | 
 数据类型  | 
 长度  | 
 主键  | 
 备注  | 
| 
 ID  | 
 自动编号  | 
 10  | 
 联合主键  | 
 由数据库sequence自动生成  | 
| 
 Bookname  | 
 Varchar2  | 
 50  | 
 联合主键  | 
 书籍名称  | 
| 
 Bookauthor  | 
 Varchar2  | 
 50  | 
 否  | 
 书籍作者名  | 
| 
 Phname  | 
 Varchar2  | 
 50  | 
 否  | 
 出版社名称  | 
| 
 Location  | 
 Varchar2  | 
 60  | 
 否  | 
 所在位置  | 
| 
 Category  | 
 Varchar2  | 
 80  | 
 否  | 
 所属科目  | 
| 
 Status  | 
 Varchar2  | 
 20  | 
 否  | 
 书籍状态  | 
| 
 Renttime  | 
 Varchar2  | 
 20  | 
 否  | 
 最大借阅时间  | 
表5 外借书籍信息表
| 
 字段名  | 
 数据类型  | 
 长度  | 
 主键  | 
 备注  | 
| 
 ID  | 
 Varchar2  | 
 10  | 
 是  | 
 由数据库自动生成  | 
| 
 Book_date  | 
 Varchar2  | 
 50  | 
 否  | 
 外借时间  | 
| 
 Act_ret_date  | 
 Varchar2  | 
 50  | 
 否  | 
 实际的外借时间  | 
| 
 Exp_ret_date  | 
 Varchar2  | 
 50  | 
 否  | 
 最大的外借时间  | 
| 
 Book_id  | 
 Varchar2  | 
 10  | 
 否  | 
 书籍编号  | 
| 
 Bookname  | 
 Varchar2  | 
 50  | 
 否  | 
 书籍名字  | 
| 
 Authorname  | 
 Varchar2  | 
 50  | 
 否  | 
 书籍作者名  | 
| 
 User_id  | 
 Varchar2  | 
 10  | 
 否  | 
 借阅者id  | 
四、预期结果
完成基于Android平台的图书管理系统的设计以及论文,本图书管理系统实现一般传统WEB上的图书管理系统所必备的基本功能,并且提供了友好的用户交互界面,让用户操作起来极为方便和快捷。
五、进度计划
毕业设计进度计划表
| 
 时间  | 
 完成任务  | 
| 
 第一周  | 
 整理相关资料并熟悉开发环境及工具  | 
| 
 第二周  | 
 需求分析完成系统综合需求描述  | 
| 
 第三周  | 
 完成系统总体设计  | 
| 
 第四周  | 
 完成系统详细设计  | 
| 
 第五周  | 
 各功能模块的程序编写  | 
| 
 第六周  | 
 各功能模块的程序编写  | 
| 
 第七周  | 
 各功能模块的程序编写  | 
| 
 第八周  | 
 各功能模块的程序编写  | 
| 
 第九周  | 
 各功能模块的测试及调试工作  | 
| 
 第十周  | 
 各功能模块的测试及调试工作  | 
| 
 第十一周  | 
 系统的测试及调试工作  | 
| 
 第十二周  | 
 系统的测试及调试工作  | 
| 
 第十三周  | 
 撰写毕业论文  | 
| 
 第十四周  | 
 撰写毕业论文  | 
| 
 第十五周  | 
 准备答辩内容  | 
| 
 第十六周  | 
 答辩  |