大学毕业设计项目文档移动图书管理系统Word格式.docx
《大学毕业设计项目文档移动图书管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《大学毕业设计项目文档移动图书管理系统Word格式.docx(33页珍藏版)》请在冰豆网上搜索。
![大学毕业设计项目文档移动图书管理系统Word格式.docx](https://file1.bdocx.com/fileroot1/2022-11/24/b4a0bf7f-a55a-4daa-ab7f-c03ceb73bfab/b4a0bf7f-a55a-4daa-ab7f-c03ceb73bfab1.gif)
传统的借书方式是让用户办理借书证,然而用借书证借书需要到图书馆登记借书。
而移动借书摆脱了传统的用户借书的流程,用户能在网上浏览所有的书籍,并且每本书都配有简介,书籍信息更新速度快。
图书馆管理员还可根据用户的选择而进行相应的配送。
移动借书系统较传统的借书方式,节约了人力和物力,给用户提供了借书便利,同时减少了借书环节中错误的发生。
选题研究的主要内容和技术方案:
移动借书系统是一个用户通过android系统的手机端浏览页面并按照流程完成对某图书的借阅的app。
我们把移动借书分为两大部分:
客户端和服务端;
客户端的操作主要是用户的登陆,用户信息的增删改,用户借阅图书、查找图书、续借图书、归还图书,查看馆内公告与咨询管理QQ等。
服务端要完成对借书用户的增删改查,图书信息及种类的增删改查,馆内公告的发布等,这些操作会直接反映在客户端。
本系统所用到的技术方案是android+PHP+MySQL5.0,借助采用ThinkPHP框架快速构建服务端网站系统,服务端运行在xampps集成环境中,数据库采用的是MySQL。
毕业设计工作时间
2015年9月20日至2015年12月15日
毕业设计工作日程安排
时间段
工作内容
9月20日-9月21日
确定选题
9月22日-9月23日
开题
9月24日-9月30日
需求分析
10月01日-10月05日
概要设计
10月06日-10月17日
系统数据库设计
10月18日-12月07日
详细设计并编码
12月8日-12月9日
测试和调试
12月10日-12月15日
定稿,上交毕业设计到指导教师处
指导教师意见:
成果要求:
完整的作品(作品设计+文档说明)
签字:
2015年9月27日
毕业设计小组任务分配表
序号
姓名
班级
毕业设计工作任务分配
1
2班
系统总体分析、设计,客户端图书管理模块以及服务端的用户管理模块
2
系统服务端的图书管理模块与服务管理模块
3
系统客户端的用户管理和服务管理
移动借书系统
(重庆信息技术职业学院软件学院重庆万州404000)
摘要:
移动借书系统采用的是CS结构,客户端运行在Android智能机上,通过网络访问服务端获取图书信息,浏览图书列表,向用户提供了在线订书借书的主要功能。
本系统摆脱了传统的图书馆借书方式,用户可以在任何地方任何时间借书,解决了借书找书难,节省了时间,同时提高了图书管理员的办事效率。
本文详细介绍了移动借书系统的实现,以及本人在此系统中完成的功能模块。
关键词:
移动互联,android,借书系统
绪论
随着互联网的发展,计算机和智能手机成为了我们的必备品,使用手机或计算机我们就能够查阅各种消息。
移动借书系统就是在这样的背景下产生的。
传统的借书方式下,用户需要花费大量的时间去找书,图书馆有可能没有用户需要的书籍,而且用户容易忘记借书日期导致超过还书日期,借书证丢失后无法借书等问题。
移动借书系统不仅避免了以上传统借书方式的问题,而且在客户端还可以查看图书信息,用户只需要在客户端登录就能够直接借书,并且通过分类查找就能够快捷地查到是否有需要的图书,在借阅书籍后就能够在客户端和服务端查看到借书记录,用户只需要在客户端查看借书记录就能够看到还书日期。
本系统采用的是CS结构,使用的开发工具有eclipse、zend-eclipse、MySQL5.0、xampps。
我们在eclipse中开发系统的Android客户端。
用zend-eclipse开发系统的Web服务端,用MySQL5.0来创建数据库。
移动借书系统的客户端和服务端又分别分为用户管理,图书管理和服务管理三个模块。
在服务端,用户管理的功能有:
新增用户、删除用户、用户重置密码,图书管理的功能有:
新增图书、修改图书、删除图书、分类查找图书、查看借书记录,服务管理的功能有:
更新公告。
在客户端,用户管理的功能有:
查看用户信息,修改用户信息,图书管理的功能有:
查看图书、借阅图书、查看个人借书记录,服务管理的功能有:
查看公告、咨询QQ。
最后形成移动借书系统。
软件项目描述
目标任务概述
图书信息管理
图书信息管理实现的功能:
新书入库、书籍信息的添加、书籍信息的修改、书籍信息的删除、图书分类设置,新书入库功能是对于新进的图书进行图书资料的信息录入功能。
借阅信息管理
借阅信息管理实现的功能:
读者借阅信息和读者归还信息。
读者信息管理
读者信息管理实现的功能:
读者信息添加、读者信息的修改以及读者信息的删除。
系统管理
系统管理实现的功能:
密码的重置、馆内公告以及咨询QQ。
软件项目背景
移动借书系统产生的条件
随着计算机技术的广泛应用和发展,我们已经步入数字化、网络化的时代,图书馆是学校的文献中心,是为全校教学和科学研究服务的学术性机构,是学校信息化的重要基地。
图书馆原有的人工借书管理系统凸显出以下缺点和不足:
(1)人工登记借书信息难免出现遗漏和疏忽,造成图书馆书籍的丢失;
(2)人工登记借书信息使工作效率低下,在图书借阅人流高峰期难免造成师生多工作的不满和抱怨;
(3)借阅信息由于是人工登记难免会容易让人投机取巧的修改,从而产生不必要的麻烦。
为了改变传统图书借阅系统的种种缺点,同时为了提高图书馆的工作效益、服务质量和管理水平,并使图书馆管理人员从繁琐的工作中解脱出来,从而开发了本系统。
移动借书系统的发展趋势
移动图书馆是现代图书馆建设的发展趋势,而移动通信技术和移动终端在高校读者中的高普及率为移动图书馆服务带来了发展契机,同时也促进它的变化。
移动图书馆将为读者提供便捷、有效的资源服务,打破了传统图书馆服务的界限,是图书馆系统发展的必然趋势。
开发日程计划
表2-1开发日程计划
阶段名称
起止时间
阶段产品
项目开发计划
9月20日-9月23日
让各个同学明确自己的职责以及了解整个项目进度的安排
《项目开发计划》
软件需求分析
《需求分析文档》
10月1日-10月5日
画出系统结构图,列出系统的功能模块清单
《概要设计文档》
数据库设计
10月6日-10月17日
数据库的设计
《数据库设计文档》
编码
10月18日-12月7日
实现系统结构图中的所有功能
程序代码
结项
12月8日-12月15日
对整个项目进行总结
《项目开发文档》
项目总体设计
系统结构
移动借书系统分为服务端和客户端,有用户管理、图书管理、服务管理三大模块,模块下有子模块。
具体结构图如下图3.1:
图3-1系统结构图
服务端:
●用户管理:
实现管理员的登陆和管理员对用户的新增、修改、删除及密码重置。
●图书管理:
实现管理员对图书的新增、修改、删除、查找、用户的借阅记录查询以及用户借阅状态的修改等;
●服务管理:
管理员发布公告,方便用户及时了解相关信息;
客户端:
实现对用户的个人信息查看及修改;
实现对图书的查询、借阅、归还以及借阅记录的查询;
实现对馆内公告的查看,以及咨询QQ
表3-1服务端功能
功能名称
功能需求标识
优先级
用户管理
管理员的信息管理,对用户的新增、修改、删除及密码重置
高
图书管理
完成图书信息的更改,包括图书的新增、修改、删除,用户借阅的记录的更改
服务管理
信息的公告,方便用户及时了解
中
表3-2客户端功能
完成对用户的个人信息查看及修改
完成对图书的查询、借阅、归还以及借阅记录的查询
完成对馆内公告的查看,以及咨询管理员QQ
移动借书系统
Ø
管理员用例图
图3-2管理员用例图
用户用例图
图3-3用户用例图
移动借书系统设计
数据库类图
图3-4数据库类图
数据库E-R图
管理员E-R图如图3-5所示
图3-5管理员E-R图
读者E-R图如图3-6所示
图3-6读者E-R图
图书与图书种类E-R图如图3-7所示
图3-7图书与图书种类E-R图
借书E-R图如图3-8所示:
图3-8借书表E-R图
公告E-R图如图3-9所示:
图3-9公告E-E图
个人工作内容概述
本人的任务是完成对客户端图书管理功能模块的一些功能,工作内容包括:
图书浏览、图书搜索、图书续借、借书记录;
还要完成对服务端用户管理功能模块的一些功能,工作内容包括:
新增用户、修改用户、删除用户,给用户重置登录密码。
本模块在系统中的作用
移动借书系统的模块包括服务端的用户管理,和客户端的图书管理。
用户管理模块的使用者是图书管理员,管理员使用这个模块管理读者用户的信息,能够对其用户信息修改,对新的用户添加用户信息,就是给用户读者登记,提供客户端的登录账号和密码,必要时还能删除用户信息,注销用户在客户端的登录账号和密码;
而图书管理模块的使用者是读者用户,用户使用这个模块可选择查看分类下的图书列表,还能看某个图书的详细信息,提供了每个图书的借书功能,还能续借。
所借的图书都会集中在一个借书记录里面,以便查看和确认收书。
个人完成的软件功能及数据详细设计
模块代码的分析
主要思想
移动借书系统下的服务端用户管理模块主要思想是通过管理员点击数据库中的某个用户ID,用户ID记录了此图书的所有属性,管理员通过这个ID来对用户信息进行数据库操作,实现对用户信息的增加、修改、删除。
移动借书系统下的客户端图书管理管理模块主要思想就是通过用户点击某图书分类ID,然后将ID发送到服务端,从服务端获取的此分类ID下的所有图书列表,用户再点击图书列表项对应的图书ID,就能获取此图书详细信息,然后就能发出借书请求,向服务端发送图书ID请求借此图书。
涉及到的文件:
/BorrowBookServer/server/admin/Tpl/User/index.html用户列表页面
/BorrowBookServer/server/admin/Tpl/User/add.html用户添加页面
/BorrowBookServer/server/admin/Tpl/User/read.html用户修改页面
/BorrowBookServer/server/admin/Lib/Action/UserAction.class.php处理用户信息的类
运行效果如图5-1所示:
图5-1用户管理页面图
在登录系统成功后会先显示系统的首页,然后去选择“用户管理”按钮,进入用户管理页面查看用户列表,操作可添加用户信息、修改用户信息、删除用户信息,重置用户的登录密码。
1)添加用户时,添加用户的页面运行效果如图5-2所示:
图5-2添加用户的页面
添加用户时,具体代码如下:
publicfunctioninsert(){
$user=D('
User'
);
if(!
$user->
create()){
$this->
error($user->
getError());
}
$name=$user->
name;
if($user->
where('
name="
'
.$name.'
"
)->
select()){
error('
该用户名已存在'
$user->
password='
12345'
;
time=date('
Y-m-dH:
m:
s'
time());
$result=$user->
add();
if($result){
success('
添加成功!
登录密码是12345,请用户及时修改密码'
}else{
添加失败!
}
2)修改用户时,更新用户信息的界面如图5-3所示:
图5-3更新用户的页面
更新用户时,具体代码如下图:
publicfunctionedit(){
save();
$result){
更新失败!
更新成功!
3)当删除指定用户时,具体代码如下:
publicfunctiondelete($id=0){
$order=M('
order'
$data=$order->
uid='
.$id)->
select();
if(count($data)>
0){
删除失败!
此用户有订书记录'
$user=M('
user'
$reslut=$user->
field('
name'
find($id);
$borrow=M('
borrow'
$data=$borrow
->
reader="
.$reslut['
].'
ANDstatue="
.'
已借书"
ORstatue="
未还书"
)
if(count($data)>
$this->
此用户有记借书或者未还书记录'
}else{
$reslut=$user->
delete($id);
if($reslut){
$this->
删除成功!
}else{
}
}
4)当用户重置密码,代码如下:
publicfunctionreset($id=0){
$user=M('
find($id)){
$user->
$result=$user->
if($result){
重置密码成功!
密码是12345'
重置密码失败!
图书管理涉及到的文件:
/BorrowBook/src/com/cqxxxy/borrowbook/activity/BooksActivity.java图书浏览界面
/BorrowBook/src/com/cqxxxy/borrowbook/activity/BookActivity.java图书详细界面
/BorrowBook/src/com/cqxxxy/borrowbook/activity/SearchActivity.java图书搜索界面
/BorrowBook/src/com/cqxxxy/borrowbook/activity/MainActivity.java需继承的主界面
/BorrowBook/src/com/cqxxxy/borrowbook/adapter/BookListAdapter.java图书列表适配器
/BorrowBook/src/com/cqxxxy/borrowbook/service/SynchServer.java服务器通信类
/BorrowBook/src/com/cqxxxy/borrowbook/unit/Book.java图书列表项类
/BorrowBook/src/com/cqxxxy/borrowbook/common/PublicMethod.java公用函数库类
上面的都是在客户端的图书管理模块中需要用到的一些文件,供参考。
1)图书浏览
图书浏览界面运行效果如下图5-4所示:
图5-4图书浏览界面
图书浏览的实现代码:
在BooksActivity.java文件中
1.首先与服务端通信,获取图书的分类数据,在界面的水平菜单中显示,部分代码如下:
JSONObjectobject=null;
if(MainActivity.server!
=null)object=MainActivity.server.getBooksType(MainActivity.id);
if(object!
=null){
Stringmessage=object.getString(SynchServer.JSON_MESSAGE);
intret=object.getInt(SynchServer.JSON_RET);
if(message.equals(SynchServer.JSON_MESSAGE_SUCCESS)&
&
ret==MainActivity.id){
JSONArrayarray=object.getJSONArray(SynchServer.JSON_DATA);
String[]types=newString[array.length()];
for(inti=0;
i<
array.length();
i++){
JSONObjectja=array.getJSONObject(i);
types[i]=ja.getString("
tname"
Messagemsg=newMessage();
msg.what=MainActivity.RETURN_SUCCESS;
msg.obj=types;
handler.sendMessage(msg);
handler.sendEmptyMessage(MainActivity.RETURN_ERROR);
}else{
handler.sendEmptyMessage(MainActivity.RETURN_ERROR);
}
2.再从服务端获取指定分类下的所有图书列表,具体代码如下:
=null)object=MainActivity.server.getTypeToBooks(
MainActivity.id,typename);
if(message.equals(SynchServer.JSON_MESSAGE_SUCCESS)&
JSONArraydata=object.getJSONArray(SynchServer.JSON_DATA);
ArrayList<
Book>
books=newArrayList<
();
Bookbook;
JSONObjectjb;
data.length();
jb=data.getJSONObject(i);
book=newBook(-1,null,null,0,jb.getInt("
gid"
));
book.setName(jb.getString("
gname"
book.setCount(jb.getInt("
gcount"
book.setContent("
author:
+jb.getString("
author"
books.add(book);
msg.what=MainActivity.RETURN_SUCCESS+1;
msg.obj=books;
handler.sendEmptyMessage(MainActivity.RETURN_ERROR);
}else{