版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档倾情为你奉上精选优质文档倾情为你奉上专心专注专业专心专注专业精选优质文档倾情为你奉上专心专注专业宁宁波大红鹰学院Android开发基础项目名称基于Android的图书管理应用的设计与实现所在学院信息工程学院班 级13软工1班姓 名许格学 号 2016 年 6月 20日目录TOC o 1-3 h u 一、开发背景 移动互联网时代的来临,说明一个崭新的时代开始了。所谓移动互联网是将移动通信和互联网整合在一起,移动设备(包括手机和上网本)可以随时随地地访问互联网资源和应用。?智能手机是移动互联网时代一个标志性的客户端工具,它和传统的手机是有区别的,它就像一台“小电脑”,具有独立的操作系统
2、,可以自由安装、卸载软件,具有强大的计算和存储能力,可以通过移动通信网络来实现无线网络接入。?对于移动终端设备飞速发展的今天,传统WEB上的应用出现在手机终端是一个大的趋势。而基于Android开发的图书馆管理系统手机客户端,正是对这一趋势的良好体现,Android平台下的图书馆管理系统的开发,能很好的为用户提供方便,用户能通过它能随时随地的了解系统的实时信息,做到信息的实时化。通过Android平台下的图书馆管理系统客户端的开发,与传统WEB应用进行良好的互补。?同时,对于校内的图书馆管理系统来说,手机对于学生是必不可少的一个物品,手机客户端这种形式的图书馆管理系统,能更加贴近学生的生活习惯
3、,并且适合学生年龄段的习性,这对学生更多的接触到图书馆的信息有一定得促进作用。?二、需求分析2.1 功能分析 基于Android平台开发的图书馆管理系统客户端从设计者的角度来看,用户角色主要为学生用户;功能包括注册、登录、投稿、翻译、娱乐、书籍查询、图书实时更新,借阅图书共八大部分。学生用户可以根据学号进行快捷注册,学生在投稿区写文章发表,在广场互动,翻译功能可以帮助解决学习上遇到不理解的英文进行翻译,娱乐功能中有两个小游戏,用户可以适时放松一下。当然主要功能当然是查询借阅书籍。2.2 开发技术分析 该系统是基于Eclipse 软件并连接Android SDK进行开发的基于Android平台开
4、发的图书管理系统,数据库采用较小速度快的SQLite,是嵌入式移动设备中常用的轻量级数据库。软件UI通常使用xml技术设计,由于布局的使用,并且布局之间可以互相嵌套,使得android软件UI的设计变得非常灵活,力求图书馆与学生之间更加亲近方便。 三、系统设计3.1系统目标系统采用人机交互的方式,界面美观友好,信息查询灵活、方便,数据存储安全可靠;?能够让学生更好更方便的了解图书馆和借阅图书;?丰富学生知识,增加学生阅读积极性;?能够对学生信息进行有效的管理;?能够准确、详细地了解学生的每月阅读量;?系统应最大限度地实现易维护性和易操作性。3.2系统功能本系统的具体功能如下:1、 图书管理:新
5、增、浏览馆藏图书。2、 借阅图书:学生查找图书进行预约,预约成功可前往图书馆借阅。3、 投稿:学生可以在平台发布文章,发布的文章可在阅读界面查看,可对文章点赞,评论和分享。4、 翻译:学生可以使用翻译功能在线翻译,如学习时遇到看不懂的英文句子以及单词。5、 娱乐:娱乐功能开发了两个休闲小游戏,打地鼠游戏和扫雷游戏。学生可在学习之余放松一下。6、 个人:学生可使用学号进行注册和登录。本系统的系统结构功能图如图3-1所示。 图3-1系统结构功能图3.3系统用例图3.4数据库设计 由于本系统是在校学生使用的软件,需要充分考虑图书管理和学生借阅需求等问题,而SQLite是一款轻型的数据库,它占用资源非
6、常的低,在中,可能只需要几百K的内存就够了。处理速度快,效率高,正好满足了手机app的需求,所以本系统采用SQLite 数据库。根据数据库的概念设计,可以进一步进行数据库的逻辑设计。本人所设计的数据库命名为Tushu,数据库中包括以下的数据表:1、学生信息表(student) 2、借阅表(cord) 3、图书表(books) 4、留言表(reads)(一)学生信息表(student)表1 student表结构字段名数据类型说明IdInt主键S_NumVarchar(10)学号S_NameVarchar(20)姓名S_ClassVarchar(20)班级S_PhoneVarchar(11)联系方
7、式S_pwdVarchar(20)密码(二)借阅表(cord)表2 cord表结构字段名数据类型说明ISBNInt图书编号,主键B_NameVarchar(20)书名S_NumVarchar(20)学号ReturnTimeDatetime归还时间(三)图书表(books)表3 books表结构字段名数据类型说明ISBNInt图书编号,主键B_NameVarchar(20)书名B_AuthorVarchar(20)作者B_PmVarchar(255)书本介绍(四)留言表(reads)表4 reads表结构字段名数据类型说明NumberInt留言编号,主键TitleVarchar(50)标题Art
8、icleVarchar(255)内容四、系统功能实现4.1主界面该系统分为三大功能模块:图书管理、预约图书、翻译、投稿、娱乐、登录注册六个功能,下面分别介绍这七大块,界面如图4-1所示。 图4-1会员管理界面图Activity关键代码实现如下:/主界面GridView 六个菜单适配,新建适配器 MuneAdapter.Java: public class MuneAdapter extends BaseAdapterint imageId =R.drawable.j,R.drawable.h,R.drawable.o,String text=书架,阅读,签到,投稿,翻译,娱乐;private
9、Context context;public MuneAdapter(Context context)this.context=context;public int getCount() return 6;public Object getItem(int position) return null;public long getItemId(int position) return 0;public View getView(int position, View convertView, ViewGroup parent) icon.setImageResource(imageIdposit
10、ion);tv.setText(textposition);return view; /在主界面进行适配,然后进行跳转。 gView.setAdapter(new MuneAdapter(MainActivity.this); gView.setOnItemClickListener(new OnItemClickListener() public void onItemClick(AdapterView parent, View view, int position,long id) switch (position) case 0: startActivity(BookActivity.c
11、lass);break;4.2.客户端登录4.2.1学生登录 学生登录客户端主要用于查询想借阅的图书和借书。登录界面如图4-2-1所示,学生可以登录注册进入客户端。在登录界面中,首先提醒您输入登录信息,并且把登录的用户名和密码输入其文本框内。图4-2-1登录界面图技术分析:创建了一个名为LoginActivity.java实现登录,查询数据库中的学号和密码是否匹配,如果没有账号点击注册跳转到注册页面。代码实现如下: String name=user.getText().toString(); String pass=pwd.getText().toString(); Log.i(TAG,nam
12、e+_+pass);StudentDao dao=new StudentDao(this);boolean flag=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();Intent intent =new Intent()
13、;intent.setClass(LoginActivity.this, MeActivity.class);intent.putExtra(name, user.getText().toString();startActivity(intent);elseLog.i(TAG,登录失败!);Toast.makeText(LoginActivity.this, 登录失败!学号或密码不正确!, Toast.LENGTH_LONG).show(); 4.2.2学号快捷注册 学生登录客户端没有账号可点击登录按钮右下方的“学号快捷注册”进行注册。注册界面如图4-2-2所示,学生可以注册个人信息然后进行登
14、录。在注册界面中,首先提醒您输入个人信息,注册成功后跳转到登录界面。图4-2-2注册界面代码实现如下: String S_Num=S_num.getText().toString().trim();String S_Name=S_name.getText().toString().trim();String S_Class=S_class.getText().toString().trim();String S_Phone=S_phone.getText().toString().trim();String S_pwd=S_Pwd.getText().toString().trim();if
15、(TextUtils.isEmpty(S_Num)|TextUtils.isEmpty(S_pwd) Toast.makeText(this, 学号和密码不能为空!, 0).show();return; else Student student =new Student();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.thi
16、s,注册成功!, 0).show();finish();break; 4.2.3 个人信息数据库/ Studentdao.java public class StudentDaoprivate DBOpenHelper helper;private SQLiteDatabase db;public StudentDao(Context context)super(); helper=new DBOpenHelper(context);public boolean add(Student student)db=helper.getWritableDatabase();ContentValues
17、values =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);long rowid=db.insert(student, null, values);if (rowid=-1) return false;else return true; public bo
18、olean login(String S_Num,String S_pwd)db=helper.getReadableDatabase();String sql=select * from student where S_Num=? and S_pwd=?;Cursor cursor=db.rawQuery(sql, new StringS_Num,S_pwd);if(cursor.moveToFirst()=true) cursor.close(); return true; return false;4.3 图书管理4.3.1 图书添加图书管理员可以进行图书的添加删除和修改。及时的更新书库
19、图书信息和增加新书,点击下方茶杯按钮即可添加图书,图书添加界面如图4-3-1所示。图4-3-1添加图书界面图技术分析: 在SQLite中添加books表,进行增删查改。创建了一个名为AddbookActivity.java实现添加图书信息。代码实现如下: / AddbookActivity.java 添加图书: String B_Name=bookname.getText().toString().trim();String B_Author=author.getText().toString().trim();String B_pm=pm.getText().toString().trim(
20、);if (TextUtils.isEmpty(B_Name)|TextUtils.isEmpty( B_Author) Toast.makeText(this, 书名不能为空!, 0).show();return;else Book book =new Book(); 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图书信息显示 BookActivi
21、ty.java显示数据库中所有图书信息,用listview 显示,创建一个BookActivity.Java实现listview的适配。如图4-3-2图书信息界面图。图4-3-2图书信息界面图技术分析:通过BookActivity.Java实现listview的适配。代码实现如下:/BookAdapter.java 适配器把数据库的图书信息显示在listview上,关键代码如下: public View getView(final int position, View convertView, ViewGroup parent) ViewHolder holder= null; if (con
22、vertView=null) holder=new ViewHolder();convertView.setTag(holder);else holder=(ViewHolder) convertView.getTag();return convertView; static class ViewHolderTextView bookname; TextView author; TextView bookpm; TextView record; View shu; /BookActivity.java使用listview显示所有图书信息。 mListView.setOnScrollListen
23、er(new OnScrollListener() public void onScrollStateChanged(AbsListView view, int scrollState) switch (scrollState) case OnScrollListener.SCROLL_STATE_IDLE:int lastVisiblePosition=mListView.getLastVisiblePosition();if (lastVisiblePosition=pagebook.size()-1) pagenumber+;if (pagenumber*pagesize=totalNu
24、mber) Toast.makeText(BookActivity.this,没有更多的数据了, 0).show();else pagebook.addAll(dao.getPageBook(pagenumber, pagesize);adapter.notifyDataSetChanged();break;public void onScroll(AbsListView view, int firstVisibleItem, int VisibleItemCount, int totalItemCount) );4.3.3图书数据库操作public class BookDao private
25、 DBOpenHelper helper;private SQLiteDatabase db;public BookDao(Context context) super();helper=new DBOpenHelper(context);public boolean add(Book book) db=helper.getWritableDatabase();ContentValues values =new ContentValues();values.put(B_Name, book.B_Name); values.put(B_Author, book.B_Author);values.
26、put(B_Pm, book.B_Pm); long rowid=db.insert(books, null, values);if (rowid=-1) return false;else return true;public boolean delete(Book book) db=helper.getWritableDatabase();int rowname=db.delete(books,B_Name=? , new String book.B_Name);if (rowname=0) return false;else return true;4.4 投稿阅读4.4.1投稿每个学生
27、都可以投稿写文章然后发布,发布出去的文章可以在阅读界面查看。阅读界面相当于广场,用户可以在广场上看到文章。投稿界面如图4-4-1所示:图4-4-1投稿界面图技术分析:输入标题和文章内容发布,用户可以在阅读“广场”上看到发布的内容。代码实现如下: /Tougao.java关键代码 String Title=title.getText().toString().trim();String Article=article.getText().toString().trim();if (TextUtils.isEmpty(Title) Toast.makeText(this, 标题不能为空!, 0).
28、show(); return; else Write write =new Write();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 实现一个适配器功能显示
29、到listview上,显示广场上所有文章。关键代码如下:public View getView(int position, View convertView, ViewGroup parent) ViewHolder holder= null;if (convertView=null) holder=new ViewHolder();convertView.setTag(holder);else holder=(ViewHolder) convertView.getTag(); return convertView; static class ViewHolder TextView title
30、; TextView article;/ReadAdapter.java关键代码:public void onScrollStateChanged(AbsListView view, int scrollState) switch (scrollState) case OnScrollListener.SCROLL_STATE_IDLE:int lastVisiblePosition=mListView.getLastVisiblePosition();if (lastVisiblePosition=pagewrite.size()-1) pagenumber+;if (pagenumber*
31、pagesize=totalNumber) Toast.makeText(ReadActivity.this,没有更多的数据了, 0).show();else pagewrite.addAll(dao.getPagewrite(pagenumber, pagesize);adapter.notifyDataSetChanged();break;public void onScroll(AbsListView view, int firstVisibleItem, int VisibleItemCount, int totalItemCount) );4.4.3 投稿数据库操作public cl
32、ass RecordDao private DBOpenHelper helper;private SQLiteDatabase db;public RecordDao(Context context) super(); helper=new DBOpenHelper(context); public boolean add(Record record) db=helper.getWritableDatabase();ContentValues values =new ContentValues(); values.put(B_Name, record.B_Name); values.put(
33、S_Num, record.S_Num); values.put(ReturnTime, record.ReturnTime); long rowid=db.insert(cord, null, values);if (rowid=-1) return false; else return true; public boolean delete(Record record)db=helper.getWritableDatabase();int rowname=db.delete(cord,S_Num=? , new String record.S_Num);if (rowname=0) ret
34、urn false; else return false;4.5 预约图书4.5.1 预约卡学生可以在借书功能界面进行图书预约,输入图书名和学号还有归还时间。界面图如4-5所示。图4-5-1预约图书界面图代码实现如下:/JieyueActivity.java关键代码:String B_Name=booknam.getText().toString().trim();String s_Num=snum.getText().toString().trim();String time=returntime.getText().toString().trim();if (TextUtils.isEmp
35、ty(B_Name) Toast.makeText(this, 书名不能为空!, 0).show();return; else Record record=new Record(); record.B_Name=B_Name;record.S_Num=s_Num; record.ReturnTime=time;dao.add(record); Toast.makeText(JieyueActivity.this,预约成功!, 0).show();finish(); break; 4.5.2 预约数据库/预约数据库实现,关键代码实现如下:public class RecordDao privat
36、e DBOpenHelper helper;private SQLiteDatabase db;public RecordDao(Context context) super();helper=new DBOpenHelper(context); public boolean add(Record record)db=helper.getWritableDatabase();ContentValues values =new ContentValues();values.put(B_Name, record.B_Name); values.put(S_Num, record.S_Num);va
37、lues.put(ReturnTime, record.ReturnTime);long rowid=db.insert(cord, null, values);if (rowid=-1) return false; else return true; public boolean delete(Record record)db=helper.getWritableDatabase();int rowname=db.delete(cord,S_Num=? , new String record.S_Num);if (rowname=0) return false; else return fa
38、lse; 4.6 翻译图书馆应用具有翻译功能这是一个创新,可以使学习英语的学生可以方便的当做英文字典。图4-6翻译界面图技术分析: 翻译功能使用http实现网页在线翻译,在webview中放一个有道的API网页。代码实现如下:/FanyiActivity.java关键代码: myWebView1.setWebViewClient(new WebViewClient()public boolean shouldOverrideUrlLoading(WebView view,String url)view.loadUrl(url);return super.shouldOverrideUrlLoa
39、ding(view, url); );4.7 娱乐 娱乐功能里有两个休闲小游戏,打地鼠和扫雷游戏。可提供用户休息时娱乐。点击打地鼠游戏,在屏幕上会随机显示地鼠,触摸地鼠后,该地鼠将不显示,同时屏幕上会显示打到了几只地鼠,打地鼠游戏界面如下图4-7所示:4-7 娱乐界面技术分析:地鼠随机的出现通过生成地鼠的随机位置,并使用线程控制出现时间间隔,确定地鼠是否打中则借助触摸监听器onTouch()方法实现。代码实现如下:/DadishuActivity.java关键代码: private int i=0;private ImageView mouse,exit;private Handler handler;public float position =new float31,625,424,349,300,520, 221, 256 , 100, 296 , 150, 220 , 367, 292 , 333, 600 ;/地鼠位置数组 mouse.setOnTouchListener(new OnTouchListener() public boolean onTouch(View view, MotionE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度年福建省高校教师资格证之高等教育法规强化训练试卷B卷附答案
- 2024年通风消声器项目资金筹措计划书代可行性研究报告
- 成考英语成人高考(高起专)试卷及解答参考
- 2024年解除劳动关系协议模板
- 2024年洒水车租赁协议模板
- 城市中心2024停车场地租赁协议
- 2024年工程承包协议格式
- 2024年度新鲜猪肉购销协议模板
- 2024专业修路工程协作协议
- 2024小食品买卖协议书
- 国防教育的课程设计
- 2024年中国电信笔试题库
- 王总结数学全套讲义
- 2024黔东南州事业单位第二批遴选人员调减遴选历年(高频重点复习提升训练)共500题附带答案详解
- 老年心房颤动诊治中国专家共识(2024)解读
- 安全防护设施台账
- 惠州市2025届高三第一次调研考试试题含答案
- 2024年酱香型白酒 相关公司行业营销方案
- 助产专业职业生涯规划
- S7-1200PLC技术及应用 课件 项目7 跑马灯控制
- 项目二任务二《木质汤锅架的设计》课件浙教版初中劳动技术八年级上册
评论
0/150
提交评论