基于Android开发的图书管理系统报告.docx
- 文档编号:11315056
- 上传时间:2023-02-26
- 格式:DOCX
- 页数:19
- 大小:24KB
基于Android开发的图书管理系统报告.docx
《基于Android开发的图书管理系统报告.docx》由会员分享,可在线阅读,更多相关《基于Android开发的图书管理系统报告.docx(19页珍藏版)》请在冰豆网上搜索。
基于Android开发的图书管理系统报告
宁宁波大红鹰学院
《Android开发基础》
项目名称
基于Android的图书管理应用的设计与实现
所在学院
信息工程学院
班级
13软工1班
姓名
许格
学号
2016年6月20日
一、开发背景
移动互联网时代的来临,说明一个崭新的时代开始了。
所谓移动互联网是将移动通信和互联网整合在一起,移动设备(包括手机和上网本)可以随时随地地访问互联网资源和应用。
?
智能手机是移动互联网时代一个标志性的客户端工具,它和传统的手机是有区别的,它就像一台“小电脑”,具有独立的操作系统,可以自由安装、卸载软件,具有强大的计算和存储能力,可以通过移动通信网络来实现无线网络接入。
?
对于移动终端设备飞速发展的今天,传统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)
表1student表结构
字段名
数据类型
说明
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
Int
图书编号,主键
B_Name
Varchar(20)
书名
S_Num
Varchar(20)
学号
ReturnTime
Datetime
归还时间
(三)图书表(books)
表3books表结构
字段名
数据类型
说明
ISBN
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:
publicclassMuneAdapterextendsBaseAdapter{
int[]imageId={R.drawable.j,R.drawable.h,R.drawable.o,
String[]text={"书架","阅读","签到","投稿","翻译","娱乐"};
privateContextcontext;
publicMuneAdapter(Contextcontext){this.context=context;}
publicintgetCount(){return6;}
publicObjectgetItem(intposition){returnnull;}
publiclonggetItemId(intposition){return0;}
publicViewgetView(intposition,ViewconvertView,ViewGroupparent){
icon.setImageResource(imageId[position]);
tv.setText(text[position]);returnview;}}
//在主界面进行适配,然后进行跳转。
gView.setAdapter(newMuneAdapter(MainActivity.this));
gView.setOnItemClickListener(newOnItemClickListener(){
publicvoidonItemClick(AdapterView
>parent,Viewview,intposition,longid){
switch(position){
case0:
startActivity(BookActivity.class);
break;
4.2.客户端登录
4.2.1学生登录
学生登录客户端主要用于查询想借阅的图书和借书。
登录界面如图4-2-1所示,学生可以登录注册进入客户端。
在登录界面中,首先提醒您输入登录信息,并且把登录的用户名和密码输入其文本框内。
图4-2-1登录界面图
技术分析:
创建了一个名为LoginActivity.java实现登录,查询数据库中的学号和密码是否匹配,如果没有账号点击注册跳转到注册页面。
代码实现如下:
Stringname=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();}
elseif(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();
StringS_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{Studentstudent=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;
privateSQLiteDatabasedb;
publicStudentDao(Contextcontext){
super();helper=newDBOpenHelper(context);}
publicbooleanadd(Studentstudent){
db=helper.getWritableDatabase();
ContentValuesvalues=newContentValues();
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;}}
publicbooleanlogin(StringS_Num,StringS_pwd){
db=helper.getReadableDatabase();
Stringsql="select*fromstudentwhereS_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();
StringB_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上,关键代码如下:
publicViewgetView(finalintposition,ViewconvertView,ViewGroupparent){
ViewHolderholder=null;
if(convertView==null){
holder=newViewHolder();
convertView.setTag(holder);
}else{holder=(ViewHolder)convertView.getTag();
returnconvertView;}
staticclassViewHolder{
TextViewbookname;TextViewauthor;TextViewbookpm;TextViewrecord;
Viewshu;}
//BookActivity.java使用listview显示所有图书信息。
mListView.setOnScrollListener(newOnScrollListener(){
publicvoidonScrollStateChanged(AbsListViewview,intscrollState){switch(scrollState){
caseOnScrollListener.SCROLL_STATE_IDLE:
intlastVisiblePosition=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;}}
publicvoidonScroll(AbsListViewview,intfirstVisibleItem,intVisibleItemCount,
inttotalItemCount){
}});
4.3.3图书数据库操作
publicclassBookDao{
privateDBOpenHelperhelper;
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(Bookbook){db=helper.getWritableDatabase();
introwname=db.delete("books","B_Name=?
",newString[]{book.B_Name});
if(rowname==0){returnfalse;}else{returntrue;}}
4.4投稿阅读
4.4.1投稿
每个学生都可以投稿写文章然后发布,发布出去的文章可以在阅读界面查看。
阅读界面相当于广场,用户可以在广场上看到文章。
投稿界面如图4-4-1所示:
图4-4-1投稿界面图
技术分析:
输入标题和文章内容发布,用户可以在阅读“广场”上看到发布的内容。
代码实现如下:
//Tougao.java关键代码
StringTitle=title.getText().toString().trim();
StringArticle=article.getText().toString().trim();
if(TextUtils.isEmpty(Title)){
Toast.makeText(this,"标题不能为空!
",0).show();
return;}else{Writewrite=newWrite();
write.Title=Title;write.Article=Article;
dao.add(write);}
Toast.makeText(TougaoActivity.this,"发布成功!
",0).show();
break;
}
4.4.2阅读广场
用户可以在阅读广场查看发布的文章,可以评论、点赞和分享。
图4-4-2阅读界面图
技术分析:
使用listview来显示发布的文章,创建一个ReadAdapter.java适配器。
代码实现如下:
//创建一个ReadAdapter.java实现一个适配器功能显示到listview上,显示广场上所有文章。
关键代码如下:
publicViewgetView(intposition,ViewconvertView,ViewGroupparent){
ViewHolderholder=null;
if(convertView==null){
holder=newViewHolder();
convertView.setTag(holder);
}else{holder=(ViewHolder)convertView.getTag();}
returnconvertView;}
staticclassViewHolder{
TextViewtitle;
TextViewarticle;}
//ReadAdapter.java关键代码:
publicvoidonScrollStateChanged(AbsListViewview,intscrollState){
switch(scrollState){
caseOn
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Android 开发 图书 管理 系统 报告