基于Android开发的图书管理系统报告Word格式文档下载.docx
《基于Android开发的图书管理系统报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于Android开发的图书管理系统报告Word格式文档下载.docx(24页珍藏版)》请在冰豆网上搜索。
五、 总结与收获18
一、开发背景
移动互联网时代得来临,说明一个崭新得时代开始了。
所谓移动互联网就是将移动通信与互联网整合在一起,移动设备(包括手机与上网本)可以随时随地地访问互联网资源与应用。
智能手机就是移动互联网时代一个标志性得客户端工具,它与传统得手机就是有区别得,它就像一台“小电脑”,具有独立得操作系统,可以自由安装、卸载软件,具有强大得计算与存储能力,可以通过移动通信网络来实现无线网络接入。
对于移动终端设备飞速发展得今天,传统WEB上得应用出现在手机终端就是一个大得趋势。
而基于Android开发得图书馆管理系统手机客户端,正就是对这一趋势得良好体现,Android平台下得图书馆管理系统得开发,能很好得为用户提供方便,用户能通过它能随时随地得了解系统得实时信息,做到信息得实时化。
通过Android平台下得图书馆管理系统客户端得开发,与传统WEB应用进行良好得互补.
同时,对于校内得图书馆管理系统来说,手机对于学生就是必不可少得一个物品,手机客户端这种形式得图书馆管理系统,能更加贴近学生得生活习惯,并且适合学生年龄段得习性,这对学生更多得接触到图书馆得信息有一定得促进作用。
二、需求分析
2、1功能分析
基于Android平台开发得图书馆管理系统客户端从设计者得角度来瞧,用户角色主要为学生用户;
功能包括注册、登录、投稿、翻译、娱乐、书籍查询、图书实时更新,借阅图书共八大部分。
学生用户可以根据学号进行快捷注册,学生在投稿区写文章发表,在广场互动,翻译功能可以帮助解决学习上遇到不理解得英文进行翻译,娱乐功能中有两个小游戏,用户可以适时放松一下。
当然主要功能当然就是查询借阅书籍。
2、2开发技术分析
该系统就是基于Eclipse软件并连接AndroidSDK进行开发得基于Android平台开发得图书管理系统,数据库采用较小速度快得SQLite,就是嵌入式移动设备中常用得轻量级数据库。
软件UI通常使用xml技术设计,由于布局得使用,并且布局之间可以互相嵌套,使得android软件UI得设计变得非常灵活,力求图书馆与学生之间更加亲近方便。
三、系统设计
3、1系统目标
●系统采用人机交互得方式,界面美观友好,信息查询灵活、方便,数据存储安全可靠;
●能够让学生更好更方便得了解图书馆与借阅图书;
●丰富学生知识,增加学生阅读积极性;
●能够对学生信息进行有效得管理;
●能够准确、详细地了解学生得每月阅读量;
●系统应最大限度地实现易维护性与易操作性.
3、2系统功能
本系统得具体功能如下:
1、图书管理:
新增、浏览馆藏图书.
2、借阅图书:
学生查找图书进行预约,预约成功可前往图书馆借阅。
3、 投稿:
学生可以在平台发布文章,发布得文章可在阅读界面查瞧,可对文章点赞,评论与分享。
4、翻译:
学生可以使用翻译功能在线翻译,如学习时遇到瞧不懂得英文句子以及单词。
5、 娱乐:
娱乐功能开发了两个休闲小游戏,打地鼠游戏与扫雷游戏。
学生可在学习之余放松一下。
6、个人:
学生可使用学号进行注册与登录。
本系统得系统结构功能图如图3—1所示。
图3-1系统结构功能图
3、3系统用例图
3、4数据库设计
由于本系统就是在校学生使用得软件,需要充分考虑图书管理与学生借阅需求等问题,而SQLite就是一款轻型得数据库,它占用资源非常得低,在嵌入式设备中,可能只需要几百K得内存就够了。
处理速度快,效率高,正好满足了手机app得需求,所以本系统采用SQLite数据库。
根据数据库得概念设计,可以进一步进行数据库得逻辑设计。
本人所设计得数据库命名为Tushu,数据库中包括以下得数据表:
1、学生信息表(student) 2、借阅表(cord) 3、图书表(books)4、留言表(reads)
(一)学生信息表(student)
表1 student表结构
字段名
数据类型
说明
Id
Int
主键
S_Num
Varchar(10)
学号
S_Name
Varchar(20)
姓名
S_Class
Varchar(20)
班级
S_Phone
Varchar(11)
联系方式
S_pwd
Varchar(20)
密码
(二)借阅表(cord)
表2cord表结构
ISBN
图书编号,主键
B_Name
Varchar(20)
书名
S_Num
Varchar(20)
ReturnTime
Datetime
归还时间
(三)图书表(books)
表3 books表结构
Int
B_Name
Varchar(20)
B_Author
Varchar(20)
作者
B_Pm
Varchar(255)
书本介绍
(四)留言表(reads)
表4reads表结构
Number
Int
留言编号,主键
Title
Varchar(50)
标题
Article
Varchar(255)
内容
四、系统功能实现
4、1主界面
该系统分为三大功能模块:
图书管理、预约图书、翻译、投稿、娱乐、登录注册六个功能,下面分别介绍这七大块,界面如图4—1所示。
图4-1会员管理界面图
Activity关键代码实现如下:
//主界面GridView六个菜单适配,新建适配器MuneAdapter、Java:
public classMuneAdapterextendsBaseAdapter{
ﻩint[] imageId ={R、drawable、j,R、drawable、h,R、drawable、o,
R、drawable、p,R、drawable、k,R、drawable、i};
String[]text={”书架”,"阅读","
签到",”投稿","
翻译"
,"
娱乐"
};
privateContextcontext;
ﻩpublicMuneAdapter(Contextcontext){this、context=context;
}
publicintgetCount(){return6;
ﻩpublicObjectgetItem(intposition){returnnull;
publiclonggetItemId(int position){return 0;
}
ﻩpublicViewgetView(intposition,View convertView,ViewGroupparent){
Viewview=View、inflate(context,R、layout、item_mune,null);
ﻩﻩImageView icon=(ImageView)view、findViewById(R、id、iv);
ﻩTextViewtv=(TextView)view、findViewById(R、id、tv);
ﻩicon、setImageResource(imageId[position]);
ﻩtv、setText(text[position]);
returnview;
} }
//在主界面进行适配,然后进行跳转.
gView、setAdapter(newMuneAdapter(MainActivity、this));
gView、setOnItemClickListener(new OnItemClickListener(){
publicvoidonItemClick(AdapterView<
?
〉 parent,Viewview, intposition,longid){
switch(position) {
case 0:
startActivity(BookActivity、class);
ﻩﻩﻩbreak;
4、2、客户端登录
4、2、1学生登录
学生登录客户端主要用于查询想借阅得图书与借书。
登录界面如图4-2-1所示,学生可以登录注册进入客户端。
在登录界面中,首先提醒您输入登录信息,并且把登录得用户名与密码输入其文本框内.
图4—2-1登录界面图
技术分析:
创建了一个名为LoginActivity、java实现登录,查询数据库中得学号与密码就是否匹配,如果没有账号点击注册跳转到注册页面。
代码实现如下:
String name=user、getText()、toString();
ﻩStringpass=pwd、getText()、toString();
ﻩLog、i("TAG”,name+"_"
+pass);
StudentDaodao=newStudentDao(this);
ﻩbooleanflag=dao、login(name, pass);
ﻩif (TextUtils、isEmpty(name)||TextUtils、isEmpty(pass)){
Toast、makeText(this,"学号与密码不能为空!
",0)、show();
ﻩelse if(flag){Log、i("
TAG"
登录成功!
”);
Toast、makeText(LoginActivity、this, "登录成功”, Toast、LENGTH_LONG)、show();
ﻩﻩﻩIntentintent=newIntent();
ﻩﻩintent、setClass(LoginActivity、this,MeActivity、class);
ﻩﻩintent、putExtra(”name", user、getText()、toString());
ﻩﻩstartActivity(intent);
ﻩﻩﻩ}else{Log、i("
TAG”,"登录失败!
"
);
Toast、makeText(LoginActivity、this,”登录失败!
学号或密码不正确!
,Toast、LENGTH_LONG)、show();
}}
4、2、2学号快捷注册
学生登录客户端没有账号可点击登录按钮右下方得“学号快捷注册"
进行注册.注册界面如图4—2—2所示,学生可以注册个人信息然后进行登录。
在注册界面中,首先提醒您输入个人信息,注册成功后跳转到登录界面。
图4—2-2注册界面
代码实现如下:
StringS_Num=S_num、getText()、toString()、trim();
ﻩﻩﻩStringS_Name=S_name、getText()、toString()、trim();
StringS_Class=S_class、getText()、toString()、trim();
ﻩﻩString S_Phone=S_phone、getText()、toString()、trim();
ﻩﻩStringS_pwd=S_Pwd、getText()、toString()、trim();
ﻩﻩif(TextUtils、isEmpty(S_Num)||TextUtils、isEmpty(S_pwd)){
ﻩﻩﻩToast、makeText(this,"
学号与密码不能为空!
",0)、show();
return;
}else{Student student=newStudent();
student、S_Num=S_Num;
student、S_Name=S_Name;
ﻩstudent、S_Class=S_Class;
student、S_Phone=S_Phone;
student、S_pwd=S_pwd;
dao、add(student);
ﻩﻩToast、makeText(ZhuceActivity、this,"
注册成功!
”,0)、show();
ﻩfinish();
break;
}
}
4、2、3个人信息数据库
// Studentdao、java
publicclassStudentDao{
privateDBOpenHelperhelper;
private SQLiteDatabase db;
public StudentDao(Contextcontext){
super();
helper=newDBOpenHelper(context);
publicbooleanadd(Student student){
db=helper、getWritableDatabase();
ContentValuesvalues =new ContentValues();
values、put("S_Num",student、S_Num);
ﻩvalues、put(”S_Name",student、S_Name);
ﻩﻩvalues、put("S_Class",student、S_Class);
ﻩﻩvalues、put("S_Phone”,student、S_Phone);
ﻩvalues、put("
S_pwd”, student、S_pwd);
ﻩlongrowid=db、insert(”student"
null, values);
ﻩif(rowid==—1) {returnfalse;
ﻩﻩ}else{returntrue;
} }
public boolean login(StringS_Num,StringS_pwd){
ﻩdb=helper、getReadableDatabase();
ﻩStringsql="select*from studentwhereS_Num=?
andS_pwd=?
";
ﻩCursorcursor=db、rawQuery(sql,newString[]{S_Num,S_pwd});
ﻩif(cursor、moveToFirst()==true){cursor、close();
returntrue;
}
ﻩreturnfalse;
}
4、3图书管理
4、3、1图书添加
图书管理员可以进行图书得添加删除与修改。
及时得更新书库图书信息与增加新书,点击下方茶杯按钮即可添加图书,图书添加界面如图4-3-1所示。
图4-3-1添加图书界面图
在SQLite中添加books表,进行增删查改。
创建了一个名为AddbookActivity、java实现添加图书信息。
//AddbookActivity、java添加图书:
StringB_Name=bookname、getText()、toString()、trim();
ﻩﻩStringB_Author=author、getText()、toString()、trim();
ﻩﻩString B_pm=pm、getText()、toString()、trim();
ﻩﻩif (TextUtils、isEmpty(B_Name)||TextUtils、isEmpty(B_Author)){
ﻩToast、makeText(this,"
书名不能为空!
",0)、show();
ﻩﻩﻩreturn;
ﻩ}else{
ﻩﻩBookbook=newBook();
book、B_Name=B_Name;
ﻩﻩ book、B_Author=B_Author;
book、B_Pm=B_pm;
dao、add(book);
}
ﻩﻩToast、makeText(AddbookActivity、this,”添加成功!
,0)、show();
ﻩﻩfinish();
break;
}}
4、3、2图书信息显示
BookActivity、java显示数据库中所有图书信息,用listview显示,创建一个BookActivity、Java实现listview得适配。
如图4-3-2图书信息界面图。
图4-3-2图书信息界面图
通过BookActivity、Java实现listview得适配.
//BookAdapter、java适配器把数据库得图书信息显示在listview上,关键代码如下:
public ViewgetView(final int position,ViewconvertView,ViewGroupparent) {
ﻩﻩViewHolderholder=null;
if(convertView==null){
convertView=View、inflate(context,R、layout、item_book,null);
ﻩﻩholder=newViewHolder();
ﻩﻩﻩholder、bookname=(TextView)convertView、findViewById(R、id、bookname);
ﻩﻩﻩholder、author=(TextView) convertView、findViewById(R、id、author);
ﻩholder、bookpm=(TextView)convertView、findViewById(R、id、pm);
convertView、setTag(holder);
ﻩﻩ}else{holder=(ViewHolder)convertView、getTag();
ﻩ}holder、bookname、setText(books、get(position)、B_Name);
ﻩﻩﻩholder、author、setText(books、get(position)、B_Author);
ﻩholder、bookpm、setText(books、get(position)、B_Pm);
ﻩreturnconvertView;
staticclassViewHolder{
ﻩﻩTextViewbookname;
TextViewauthor;
TextView bookpm;
TextView record;
ﻩView shu;
//BookActivity、java使用listview显示所有图书信息。
mListView、setOnScrollListener(new OnScrollListener() {
ﻩﻩpublicvoidonScrollStateChanged(AbsListView view, int scrollState){switch (scrollState){
ﻩcaseOnScrollListener、SCROLL_STATE_IDLE:
ﻩﻩint lastVisiblePosition=mListView、getLastVisiblePosition();
ﻩﻩif(lastVisiblePosition==pagebook、size()-1){pagenumber++;
ﻩif(pagenumber*pagesize〉=totalNumber) {
Toast、makeText(BookActivity、this,"
没有更多得数据了”, 0)、show();
ﻩﻩﻩ}else{pagebook、addAll(dao、getPageBook(pagenumber,pagesize));
ﻩﻩﻩﻩadapter、notifyDataSetChanged();
}}
ﻩﻩbreak;
ﻩpublicvoid onScroll(AbsListViewview,intfirstVisibleItem,intVisibleItemCount,
inttotalItemCount) {ﻩ
ﻩ} });
4、3、3图书数据库操作
publicclassBookDao{
private DBOpenHelperhelper;
ﻩprivateSQLiteDatabasedb;
ﻩpublicBookDao(Contextcontext){super();
helper=newDBOpenHelper(context);
publicbooleanadd(Bookbook){db=helper、getWritableDatabase();
ﻩContentValuesvalues=newContentValues();
ﻩﻩvalues、put("
B_Name”,book、B_Name);
values、put("
B_Author"
book、B_Author);
ﻩvalues、put("B_Pm", book、B_Pm);
longrowid=db、insert("
books"
null,values);
ﻩﻩif (rowid==-1){ﻩreturnfalse;
}else{ﻩreturntrue;
ﻩ}}
publicbooleandelete(Book book){db=helper、getWritableDatabase();
introwname=db、delete(”books"
B_Name=?
newString[] {book、B_Name}ﻩ);
ﻩﻩif (rowname==0){returnfalse;
ﻩ}else{ﻩreturn true;
}}
4、4投稿阅读
4、4、1投稿
每个学生都可以投稿写文章然后发布,发布出去得文章可以在阅读界面查瞧。
阅读界面相当于广场,用户可以在广