[开题报告+任务书+论文+PPT+源码]基于安卓的个人图书馆设计[包运行成功]

   计(论 文)开 题 报 告

1.结合毕业设计(论文)课题情况,根据所查阅的文献资料,每人撰写2000字左右的文献综述:
文 献 综 述一、系统开发的背景及意义随着信息技术地飞速发展,信息量的大爆炸,传统图书馆的服务能力与读者的需求矛盾越来越大。主要是因为传统图书馆的服务是有限的,它只能能让读者查询获取本馆的资源,而读者的需求是无限的。并且随着移动终端的普及和移动通信技术的发展,基于网络、手机等新媒体进行信息传播的方式渐成主流,人们的生活方式、知识获取方式、阅读方式都发生了重大变化。因此人们提出“移动图书馆”的概念。移动图书馆使人们不受时间、地点和空间的限制,通过移动设备来灵活方便地进行图书馆文献信息的查询、浏览和获取图书信息及相关服务。目前,IOS和Android是占有市场份额最大的两个平台。IOS是一个相当一致的系统,并且,其系统本身具备了相当良好的、内建流畅的用户交互实现。还有,苹果本身也提供了一个非常良好的IOS程序开发环境。Android本身源码的开放性,对于一些需要利用底层实现细节的开发者来说,是个很好的特性。而且从开发本身来说,Android 所采用的开发语言和环境, 相对来说比IOS 的门槛要低,这是它的优势所在。在技术层面上,首先,IOS对应用的限制较大,应用程序运行在一个单独的沙盒中,不能读写任何其他应用的数据,只能访问很少一部分系统允许应用访问的数据。而Android限制较少,绝大部分系统数据都能访问。第二,在安全性和隐私方面,应用能访问的系统数据越多,所能获得的用户信息也就越多,用户的隐私和数据安全就越来越难得以保障。从这个角度看,IOS更有优势。第三,IOS是非开源的,而Android是开源的。Android对比IOS还有以下优势:无尽的分享选项;众多的第三方输入选择;更多的免费应用;可视化的文件系统。所以我会选用Android作为开发平台。IOS开发工具是Xcode,Xcode具有统一的用户界面设计,编码/测试/调试都在一个简单的窗口内完成,但是Xcode的代码提示没有Android Studio智能。一般Android开发会使用Eclipse作为开发工具,Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。而Android Studio是Google推出的,专门为Android“量身订做”的,是Google大力支持的一款基于IntelliJ IDEA改造的IDE,Google的工程师团队肯定会不断完善,上升空间非常大。本课题研究的意义在于给爱阅读的人们提供了各类图书,人们可以通过智能手机查找自己想看的书籍,根据自己的喜好放入书架或者进行在线下载,阅读完之后也可进行删除。同时,个人图书馆也比较适合高校学生的阅读习惯,有利于合理利用碎片时间。科技的发展改变了人们的生活方式,使人们的生活日趋便捷。伴随着4G网络的日益发展和智能手机的日趋普及,传统的基于PC机的很多应用已经逐渐向手机客户端转移。手机终端正在改变人们的生活和沟通方式,而多种多样的智能手机软件的大量使用则可以满足不同群体的个性化需求。因此利用Android平台设计和开发出一款基于Android手机客户端的个人图书馆可以使读者随时、随地通过手机进行阅读,本设计称其为“口袋阅读”。本次毕业设计旨在设计一款基于Android的个人图书馆app,其最大的特色就是个性化关联。在推荐阅读模块中,当用户搜索书目时会推送同作者的其他书籍等相关功能。本系统拟采用Android开发技术,使用Android Studio开发环境和MySQL数据库技术。二、课题设计技术1.Android Studio开发工具Android Studio首先解决的一个问题是多分辨率。Android设备拥有大量不同尺寸的屏幕和分辨率,根据新的Studio,开发者可以很方便地调整在各个分辨率设备上的应用。同时Studio还解决语言问题,多语言版本(但是没有中文版本)、支持翻译都让开发者更适应全球开发环境,Studio还提供收入记录功能。最大的改变在于Beta测试的功能,Studio提供了Beta Testing,可以让开发者很方便试运行。Android Studio还有如下几个优点:(1)UI更漂亮:Studio自带的Darcula主题的黑界面很高大上。(2)更加智能:智能保存,效率会大大提升。(3)整合了Gradle构建工具:Gradle集合了Ant和Maven的优点,不管是配置、编译、打包都很棒。(4)强大的UI编辑器:除了吸收Eclipse和ADT的优点之外,还自带了多设备的实时预览。(5)内置终端:Studio内置终端对于习惯命令行操作的人来说再也不用来回切换。(6)更完善的插件系统:Studio下支持各种插件,如Git、Markdown、Gradle等等。(7)完美整合版本控制系统:安装的时候自带了如GitHub、Git、SVN等流行的版本控制系统,可以直接check out你的项目。所以我选择Android Studio作为开发工具。2.MySQL数据库MySQL 是一个完全多线程,支持多语言,多处理器的中、小型关系型数据库管理系统,它使用标准的 SQL 语言(结构化查询语言),支持多种存储引擎。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放 在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL有如下优点:(1)有多种列类型:1、2、3、4、和8字节长度自有符号/无符号整数、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、 TIMESTAMP、YEAR、和ENUM类型。(2)它通过一个高度优化的类库实现SQL函数库并像他们能达到的一样快速,通常在查询初始化后不该有任何内存分配,没有内存漏洞。(3)全面支持SQL的GROUP BY和ORDER BY子句,支持聚合函数(COUNT()、COUNT(DISTINCT)、AVG()、STD()、SUM()、MAX()和MIN())。你可以在同一查询中混来自不同数据库的表。(4) 所有列都有缺省值。你可以用INSERT插入一个表列的子集,那些没用明确给定值的列设置为它们的缺省值。参考文献:[1]李刚.疯狂Android讲义(第3版)[M].北京:电子工业出版社,2015.[2]高巍.Android操作系统软件自动化测试方案的设计与实施[D].北京:北京邮电大学,2012.[3]武洪萍,马桂婷.MySQL数据库原理及应用[M].北京:人民邮电出版社,2014.[4]张建源.Android开发技术的学习及应用[J].现代工业经济和信息化,2014,(12):62-64.[5]纪晓阳.线程在Android开发中的应用[J].软件,2013,(08).[6]李满玲.浅析Android开发环境的配置[J].商,2015,(31):243-243.[7]陈甫.Android Studio应用[J].软件设计开发,2014,(24).[8]杨略.基于Android平台的个人移动数字图书馆系统研究[J].情报探索,2012,(06):98-100.[9]杨艳妮,明均仁,张杰.基于Android的移动图书馆App功能设计与实现[J].图书馆学研究,2015,(07).[10]褚鹏.基于Android移动平台的图书借阅与管理系统设计与实现[D].华中师范大学,2014.[11]樊涛.基于Android平台的手机图书馆系统的设计与实现[D].南昌大学,2014.[12]H Kale,G Rane,S Shende.Digital Library Services based on Android using Public Cloud[J].International Journal of Emerging Technologies and Engineering,2014,171-174.[13]Domenico Amalfitano,Anna Rita Fasolino,Porfirio Tramontana,Bryan Robbins.Testing Android Mobile Applications,Strategies,and Approaches[J].Advances In Computers,2013,89:1-52.[14]郭霖.第一行代码Android[M].北京:人民邮电出版社,2014.[15]陈好敏.个人数字图书馆研究[D].华中师范大学,2012.[16]D.Porru,A.Parmigiani,D.Barletta,D.Choussos,S.Bassi,O.Miller,B.Gardella,R.E.Nappi,A.Spinillo,B.Rovereto.Emergency Based Remote Collateral Tracking System Using Google's Android Mobile Platform[J].Springer Berlin Heidelberg,2012,167(1):391-403.[17]王雨竹.MySQL入门经典[M].高飞机械工业出版社出版,2013.[18]李刚.疯狂 Java 讲义(第 2 版)[M].北京:电子工业出版社,2012.[19]荣佰丹.移动图书馆信息服务研究[D].黑龙江大学,2012.[20]Steve Mansfield-Devine. Android malware and mitigations[J].Network Security,2012,2012,(11):12-20.

毕业设计(论 文)开 题 报 告

2.本课题要研究或解决的问题和拟采用的研究手段(途径):
第一阶段:巩固Java基础和MySQL数据库的使用,学习Android相关知识,熟悉Android Studio开发工具。规划模块布局以及整体页面设计,对所涉及的内容有大致的规划,找准设计方向,搭建开发所需的环境。第二阶段: 编写需求分析,进行设计、编码。 系统结构图如下所示: 需求分析:注册,登录模块:实现用户的注册和登录;用户维护:实现用户信息的增删改查。资源模块:新书通报:可以选择喜欢的书点开进入书目详情,有对书籍简单的介绍,点击放入书架按钮可以添加书籍;电子期刊:点击可以进入期刊详情,进行期刊订阅;推荐阅读:点击进入书目详情,有对书籍的简介,还可以下载电子书,同时还有个性化关联的推送,当用户搜索书目时会推送同作者的其他书籍。书籍、期刊等都是由数据库作为后台进行推送。 3.书架模块:对书目和期刊的增删。4.我的模块:我的主页:点开进入个人的基本信息;设置:可以打开或关闭网络,还可以清除缓存和安全退出账号。实现方案:Android Studio开发工具:用Java语言开发,连接相应的MySQL数据库,在数据库中建立书目、期刊等相应的信息,实现用户对书籍的搜索、订阅等一些操作。第三阶段:功能测试、文档书写 1.单一功能测试:对个人图书馆的每个模块进行测试。 2.系统功能测试:进行优化处理,提高系统的可行性。 3.认真总结,查找漏洞完善系统,撰写论文并完成毕业答辩。程序环境运行要求: 1.开发工具:Android Studio 2.数据库:MySQL 3.系统开发语言:Java4.运行环境:Windows 10 x64

毕业设计(论 文)开 题 报 告

指导教师意见:
1.对“文献综述”的评语: 论文选题较为实用,通过移动端APP程序应用,以解决用户口袋阅读的需求。学生文献查阅较为广泛,形成了较为合理的系统功能规划,增加了阅读关联推荐等方便功能项,值得肯定。所选择的开发技术与路线较为科学可行。2.对本课题的深度、广度及工作量的意见和对设计(论文)结果的预测: 系统深度、广度及工作量一般,结果可预期 指导教师: 2016 年 3 月 23日
所在专业审查意见: 负责人: 年 月 日

2毕业设计(论文)任务书

课题名称基于安卓的个人图书馆设计——口袋阅读
院 (系)学院
专 业计算机科学与技术
姓 名
学 号
起讫日期
指导教师

毕业设计(论文)的内容和要求

开发目标:随着手机移动通信技术和互联网的快速发展,手机已经成为了人们在日常生活中获取信息资源的重要途径,越来越多的互联网服务都拓展到了手机等移动平台。基于安卓的个人图书馆,给爱阅读的人们提供了各类图书,我们可以查找自己想看的书籍,根据自己的喜好放入书架或者进行在线下载,看完了也可进行删除。我们可以随时随地地阅读,给忙碌的人们带来了便捷。主要功能:注册,登录模块:实现用户的注册和登录;资源模块:新书通报,推荐阅读,资源管理等,可以将喜欢的书放入书架或者进行下载,也可以进行图书馆资源管理;书架模块:可以看到放入书架的电子书,也可进行删除;我的模块:我的主页:个人的基本信息, 设置:可以打开或关闭网络,还可以清除缓存。开发技术:开发工具:Android Studio数据库:MySQL系统开发语言:Java运行环境:Windows 10 x64
  1. 毕业设计(论文)图纸内容及张数
由于计算机专业的特点,对图纸的要求不是太高,因此无需绘制专门图纸,但在论文中有流程图或数据图表。
  1. 实验内容及要求
要求:1、了解开发需求及明确目标;2、熟悉开发语言及工具进行程序编写;3、项目调试。4、项目总结、成文。
  1. 其他
毕业设计期间还需要完成的工作:1、20.1.15前进行开题报告;2、完成不少于指定字数的翻译,并用电子版本打印;3、完成毕业设计论文和课题开发;4、答辩时做好答辩记录;5、完成软件使用说明书编写;6、其他指定工作。
  1. 参考文献
参考文献:[1]李刚.疯狂Android讲义(第3版)[M].电子工业出版社.2015[2]高巍.Android操作系统软件自动化测试方案的设计与实施[D].北京邮电大学.2012[3]武洪萍,马桂婷.MySQL数据库原理及应用[M].人民邮电出版社.2014[4]张建源.Android开发技术的学习及应用[J].现代工业经济和信息化.2014[5]纪晓阳.线程在Android开发中的应用[J].计算机应用.2013[6]李满玲.浅析Android开发环境的配置[J].财经纵览_信息传媒.2015[7]陈甫.Android Studio应用[J].软件设计开发.2014[8]杨略.基于Android平台的个人移动数字图书馆系统研究[J].信息技术.2012[9]杨艳妮,明均仁,张杰.基于Android的移动图书馆App功能设计与实现[J].数字化、网络化.2015[10]褚鹏.基于Android移动平台的图书借阅与管理系统设计与实现[D].华中师范大学.2014[11]樊涛.基于Android平台的手机图书馆系统的设计与实现[D].南昌大学.2014[12]Zheran Fang,Weili Han,Yingjiu Li.Permission based Android security:Issues and countermeasures[J].Computers & Security.2014[13]Domenico Amalfitano,Anna Rita Fasolino,Porfirio Tramontana,Bryan Robbins.Testing Android Mobile Applications,Strategies,and Approaches[J].Advances In Computers.2013[14]郭霖.第一行代码Android[M].人民邮电出版社.2014[15]陈好敏.个人数字图书馆研究[D].华中师范大学.2012[16]钟伯成.一种基于Android平台的手机图书服务系统[P].中国专利: CN202472650U.2012[17]Lauren Darcey,Shane Conder. Android Wireless Application Development Volume 1:Android Essentials[M].中国邮电.2012[18]卢治,张小立.基于Android的Java程序设计移动学习平台[J].教育与教学研究.2014[19]荣佰丹.移动图书馆信息服务研究[D].黑龙江大学.2012[20]Steve Mansfield-Devine.Android malware and mitigations[J].Network Security.2012

六、毕业设计(论文)进程安排

起讫日期设计(论文)各阶段工作内容备 注
20年12月下达毕业设计任务,明确课题目标和内容
12月查阅相关资料,编写开题报告
20年1月15日前完成论文开题
1月-2月细化解决方案,完成系统总体设计
3月完成数据库设计,各模块设计
4月程序代码编写,局部模块调试
5月初合并调试,系统测试
5月中下旬撰写论文,及其他相关资料
6月论文定稿,准备论文答辩

3毕业设计(论文)

学生姓名: 学 号:

所在学院: 学院______________ __

专 业: 计算机科学与技术____________

设计(论文)题目:__基于安卓的个人图书馆设计_____

——口袋阅读___________________

指导教师:     _____________ ___

基于安卓的个人图书馆设计——口袋阅读

摘 要

传统的图书馆已经无法满足广大读者的需求。传统图书馆只能让读者查询获取本馆的资源,而读者的需求是无限的。并且随着移动终端的普及和移动通信技术的发展,人们的生活方式、知识获取方式、阅读方式都发生了极大的变化。因此人们提出“移动图书馆”的概念。

本次设计使用的是Java语言,采用了Android Studio作为开发工具,Tomcat作为服务器,并结合MySQL数据库,实现了基于Android的个人图书馆系统。

本文从系统开发环境、系统目标、设计流程、功能设计等方面进行了系统介绍。本系统实现了注册登录、加入书架、订阅期刊、下载小说、和个人主页等基本功能。该系统使人们不受时间、地点和空间的限制,通过移动设备来灵活方便地进行图书馆文献信息的查询、浏览和获取图书信息及相关服务。通过对本系统的功能测试,表明该系统运行稳定、界面友好,有一定的使用价值。

关键词:个人图书馆 Android MySQL Java

The design of the based on Android's personal library - Pocket reading

ABSTRACT

The traditional library has been unable to meet the needs of the majority of readers. Traditional libraries can only allow readers to access the resources of the library, and the reader's demand is unlimited. And with the popularity of mobile terminals and the development of mobile communication technology, people's way of life, the way of knowledge acquisition, reading has taken place great changes. Therefore, people put forward the concept of "mobile library".

This design uses the Java language, using Studio Android as a development tool, Tomcat as a server, and combined with the MySQL database, to achieve a Android based personal library system.

In this paper, the system development environment, system objectives, design processes, functional design and other aspects of the system are introduced in detail. This system has realized the basic functions such as registration, joining the bookshelf, the periodical, downloading the novel, and the personal homepage. This system makes people not limited by time, place and space, through the mobile equipment to be flexible and convenient to carry on the library literature information inquiry, browse and get the book information and related services. By testing the function of the system, the test results show that the system has a high use value, and has a huge potential user base and broad application prospects.

Keywords: Persional library;Android;MySQL;Java

目 录

摘 要II

ABSTRACTII

第一章绪论11

1.1课题研究背景11

1.2课题研究现状11

1.3课题的研究意义22

第二章 相关技术介绍33

2.1 Android Studio 开发工具33

2.2 MySQL数据库33

2.3 Tomcat服务器44

2.4 Genymotion虚拟机44

第三章 系统需求分析55

3.1可行性分析55

3.1.1技术可行性55

3.1.2经济可行性55

3.1.3操作可行性55

3.2需求分析55

3.2.1功能需求55

3.3程序环境运行需求66

3.4性能需求66

3.5其他需求77

第四章 系统详细设计88

4.1设计概述88

4.2设计原则88

4.3系统功能模块88

4.3.1系统功能模块的划分88

4.3.2系统功能模块的描述99

第五章 数据库设计1010

5.1数据库设计理念1010

5.2单个实体的E-R图1010

5.2.1用户E-R图1010

5.2.2书籍E-R图1111

5.2.3期刊E-R图1111

5.2.4我的书籍E-R图1111

5.2.5我的期刊E-R图1212

5.3设计数据库表1212

5.3.1数据库表总表1212

5.3.2数据库表的详细说明1313

第六章 系统实现1616

6.1登录模块1616

6.2注册模块1616

6.3“口袋阅读”的主界面1818

6.4新书通报,推荐阅读模块2020

6.4.1小说简介界面2020

6.4.2我的书架模块2121

6.4.3同作者书籍推荐功能2323

6.4.4下载小说功能2424

6.5期刊模块2424

6.5.1期刊列表2424

6.5.2期刊简介2525

6.5.2我的期刊2626

6.6“我的主页”模块2626

6.6.1个人主页2626

6.6.2修改个人信息2727

6.6.3更多设置、安全退出2828

总 结2929

参考文献3030

致谢3232

  1. 绪论

1.1课题研究背景

由于现代信息技术快速地发展,传统图书馆已经无法满足读者的需求。主要是因为传统图书馆的服务是有限的,它只能在特定地点查询有限的书籍,根本无法满足有无限需求的广大读者。并且随着移动通信技术的发展和移动终端的普及,基于网络、手机等新媒体的信息传播方式逐渐成为时代的主流,人们的生活方式、阅读方式都发生了重大变化。因此“移动图书馆”这一概念应运而生。移动图书馆不会限制人们阅读的时间、地点和空间。人们通过手机就可以很方便地查询和获取书刊信息以及相关服务。

目前市场上最主要的两个平台是IOS和Android。IOS系统具有良好的并且流畅的用户交互实现,并且苹果本身也提供了一个非常稳定的、良好的开发环境。而对Android而言,首先,相比较而言,Android 采用的环境和开发语言,比IOS 的要求低。其次,Android的源码具有开放性。

Android开发一般会选用经典的Eclipse作为开发工具,因为它的源码是开放的,其可扩展性也很好,可以扩充很多插件。并且它小巧,占用资源少,只要解压就能使用,非常方便。而Android Studio是由Google推出的、专为Android“量身打造”的一个开发工具,目前它还处于不断完善当中,还有很大的上升空间。

1.2课题研究现状

随着科技地发展,人们越来越迫切地需要对个人图书馆进行查询与管理。各个行业之间也存在着激烈地竞争,安卓平台被越来越多的企业所选择。企业通过该平台发布并获取个人图书馆的实时消息。

个人图书馆系统是一种快速有效地向用户提供书籍期刊信息展示的平台,网络用户可以通过该系统查询想要阅读的书籍和期刊,并可以将其加入书架。与此同时,企业也能够通过该系统来发布最新书刊的相关信息,在发布信息的同时增强客户对个人图书馆系统的了解。个人图书馆系统是一种基于android的开源移动手机平台的信息发布管理系统,目前国内外很多人们已经建立了自己的个人图书馆系统,极大地增加了人们阅读的便利。

在我国,很多企业都建立了个人图书馆系统,实现了用户对于书刊的网络化管理,这将促进信息化的持续发展。在未来发展的道路上,个人图书馆系统将为便利了广大读者的阅读,改变人们的阅读方式。欧美的电子商务网站应用发展较早,其相关标准和法律相对来说也比较健全。而我国个人图书馆系统仅仅几年的时间,发展却相当地快速,但是数量和质量与欧美比较还有很大差距,个人图书馆系统的发展和完善还任重道远。

1.3课题的研究意义

本系统给爱阅读的人们带来了福音。人们不用再受时间、空间的限制,可以随时随地阅读。比如,上下班在地铁或公交上,人们可以拿出手机进入该系统,选择感兴趣的书刊阅读,不仅可以打发无聊时间,还可以扩充自己的知识面,陶冶情操。个人图书馆也比较符合高校学生的阅读习惯,学生们可以很方便地用手机阅读,有利于学生们合理利用空闲时间读书学习,不仅节约了时间成本,还不受地点地约束。

随着网络的蓬勃发展和智能手机的普及,很多基于PC机上的应用已经逐渐向手机客户端转移。人们的生活习惯正受到智能手机潜移默化地影响,各种各样手机软件地出现,满足了各个群体的不同需求,使人们的生活更加便捷。本系统是基于Android手机的个人图书馆,人们只要通过口袋中的手机就能随时进行阅读,所以本设计称之为“口袋阅读”。

本系统主要实现了注册登录、加入书架、订阅期刊、下载小说、和个人主页等基本功能。人们可以不受时间、地点和空间的限制,通过一部手机就能够灵活方便地进行阅读。

第二章 相关技术介绍

2.1 Android Studio 开发工具

Android Studio不仅解决了多分辨率的问题,而且还有多种语言版本,同时,它还提供收录功能和Beta Testing,便于开发者快捷地进行试运行。除此之外,Android Studio还有以下几个优点:智能保存大大提高了效率;自带了非常美观的主题的黑界面;它整合了Gradle构建工具,集合了Ant和Maven的优点;具有强大的UI编辑器:不仅吸收Eclipse和ADT的优点之外,还可以进行多设备的实时预览;它的内置终端方便了习惯命令行操作的人,再也不需要来回切换;支持各种插件;安装时候自带了如SVN、GitHub、 Git等流行版本的控制系统,可以直接对项目进行检查。所以本系统选择Android Studio作为开发工具。

2.2 MySQL数据库

MySQL 是一个支持多语言、多线程、多处理器的中小型关系型数据库管理系统。MySQL有如下优点:(1)提供多线程支持,可以对内存资源充分利用;(2)优化了SQL查询算法,提高了查询速度;(3)提供多语言支持;(4)支持多种存储引擎;(5)使用标准的SQL数据语言;(6)可以处理拥有成千上万条记录的大型数据库;(7)因为其是开源的,所以无需付费;(8)提供数据库操作的管理工具,可以用于管理、检查和优化数据库。

2.3 Tomcat服务器

Tomcat是一个对源码免费开放的、轻量级的服务器,在中小型系统和并发访问用户量不大的情况下适用。其部署简单、安全管理、安全传输、容易操作且集成方便。

2.4 Genymotion虚拟机

Genymotion是提供了虚拟的Android环境,简单容易安装且速度快。它可以通过Google Play下载应用进行安装。它完全兼容ADB,不仅可以配置模拟器参数,比如内存大小、屏幕分辨率、CPU数量,而且它还支持全屏,改善了用户使用的视觉感受。

第三章 系统需求分析

3.1可行性分析

3.1.1技术可行性

本系统是基于Android平台的,使用Java语言实现的,结合了MySQL数据库,开发环境是Android Studio。MySQL数据库所使用的SQL语言是用于访问数据库的最常用标准语言,而Android Studio是由Google推出的,专为Android“量身打造”的。所以在技术上是可行的。

3.1.2经济可行性

本系统采用了Android studio作为开发工具。所以从投入的人力,物力与财力来讲是非常小的,并不需要太大的开发成本与后期消耗,所以在经济上是可行的。

3.1.3操作可行性

本系统是基于Android的手机应用,将其安装在安卓手机上,便可以对其进行访问。并且该系统的界面简单明了,非常容易操作。本系统具有易管理、易操作、交互性好等优点。所以其在操作上也是可行的。

3.2需求分析

3.2.1功能需求

本设计是基于安卓的个人图书馆系统,主要有用户管理模块、资源模块、书架模块和我的主页模块,以下对每个模块的功能进行了详细说明:

(1)用户管理模块,也就是简单实现了用户的注册登录功能。

(2)在资源模块中,点击书籍或者期刊进入书目详情,有对该书籍或者期刊的简介,此时用户可以将喜欢的书籍加入书架和订阅感兴趣的期刊。点击下载小说按钮,可以对喜欢的书籍进行下载。其最大的特色是有个性化推送,书籍详情页下面有同作者的其他书籍的推荐。

(3)书架模块中,用户可以将书架中的书籍、期刊删除,也可以加入更多的书籍。

(4)我的模块中,用户可以修改个人信息、清除缓存、设置网络和安全退出。

这样就解决了传统图书馆有限的服务能力和读者无限的需求之间的矛盾,读者可以随时随地进行阅读。

3.3程序环境运行需求

本系统对其运行的环境有一定的要求,具体要求如下:

(1)开发工具:Android Studio,

(2)系统开发语言:Java,

(3)数据库系统软件:MySQL 5.6,

(4)服务器:Tomcat,

(5)虚拟机:Genymotion,

(6)运行环境:Windows 7

3.4性能需求

1.安全性:主要体现在两个方面:系统安全性和数据安全性。在系统安全性方面,主要考虑系统操作和运行平台是否稳定。该系统经过若干次操作测试和不断地完善,没有系统崩溃的情况出现。在运行平台方面,系统的运行环境是非常稳定的Windows 7,以Android为开发平台,所以运行平台是稳定安全的。在数据安全性方面,用户可根据自己的权限操作该系统,增强数据的保密性和安全性。

2.可靠性:控制系统在运行过程中可能存在的突发情况,确保本系统能够正常无误地运行,增强系统的可靠性。

3.5其他需求

衡量一个软件项目的质量,不仅需要其能够达到客户的预期需求,同时还有以下几个方面,如下表所示:

表3-1软件质量需求分析

软件质量属性需求分析
性能系统需具备较高的响应能力。
健壮性系统能承受的较大的压力,并且拥有变更能力。
可靠性系统在应用或者错误面前,在意外或者错误使用的情况下,需具备维持软件系统功能特性的能力。
可变性扩充或变更体系结构成为新的体系结构。
易用性写一份软件说明书,用户易操作该系统。
安全性系统向合法用户提供服务的同时能够阻止未经授权的用户使用的企图或者拒绝服务。
可修改性具备能快速地以较高的性能价格比变更系统的能力。
功能性系统能完成用户所期望的工作。
可移植性系统可以很容易地转移到其他运行环境。

第四章 系统详细设计

4.1设计概述

本系统主要实现了用户登录注册、加入书架、订阅期刊、下载小说、和个人主页等基本功能,并且根据用户的需求继续完善和增强系统的功能,提高“口袋阅读”的实用性,完成便利用户随时随地阅读的“口袋阅读”App。

4.2设计原则

在该系统的开发设计过程中遵循了如下的一些原则:

1.如何具有较高的工作效率:

(1)要兼顾处理能力,即系统在一定时间内能处理多少事物;

(2)要兼顾运行时间,即软件在处理某一项任务时所需花费的时间;

(3)要兼顾相应时间,即向系统发出指令到系统反应所需的时间。

2.如何具有较高的可靠性:

首先应该设计一套解决方案,要提高系统的纠错、容错能力和发生故障后及时恢复的能力。当然,也不能忽视环境因素和操作因素。

3.如何具有较好的交互性和操作性:

首先了解用户的需求,然后在用户需求的基础上对系统界面进行简化。在图像上达到清晰美观的效果,在数据输入输出时要力求简单,容易操作。在简单易操作的基础上提供手写输入,以满足不同的用户群体,达到较好的交互性。

4.3系统功能模块

4.3.1系统功能模块的划分

本系统有用户管理模块、资源模块、书架模块和我的主页这四个模块。用户管理模块主要是实现用户的登录和注册功能;在资源模块中,用户可以搜索书籍、查看书籍和期刊详情、加入书架、下载小说,还有同作者书籍的推送;书架模块主要是对书籍和期刊的管理,主要是添加书刊和删除书刊;我的主页模块中,用户可以修改个人主页的一些信息,还有对网络的设置和清除缓存,最后有安全退出的功能。功能结构图如下图所示:

图4-1功能结构图

4.3.2系统功能模块的描述

1.用户管理模块:实现用户的注册登录;

说明:用户名没有限制,但注册密码必须是6位数,成功注册后才可以进行登录。

2.资源模块:新书通报和推荐阅读:搜索书籍;

查看书籍简介;

将喜欢书籍添加到书架中;

下载喜欢的书籍;

个性化关联:推荐同作者的其他书籍;

电子期刊:查看期刊详情;

感兴趣的期刊可进行订阅;

3.书架模块: 删除书籍或期刊;

添加更多书籍或期刊;

4.我的主页: 个人主页:修改个人信息;

更多设置:打开、关闭网络;

清除缓存;

安全退出。

第五章 数据库设计

5.1数据库设计理念

数据库设计是根据用户的需求,对其需求进行分析,通过某一具体的数据库管理系统,设计数据库的结构并建立数据库的过程。数据库系统离不开操作系统对它的支持。

数据库的设计有如下六个步骤:

1.需求分析:了解用户的需求,对其进行分析;

2.概念设计:设计系统概念模型即E-R模型;

3.逻辑结构设计:设计系统的数据库表;

4.物理结构设计:设计数据的存储结构和存取方法;

5.系统实施:组织数据入库、编制应用程序、试运行;

6.运行维护:后期对系统进行维护。

5.2单个实体的E-R图

通过上述对数据库设计的分析和对系统实体的分析,这里用局部E-R图来表示各个实体与其属性之间的关系,可以得到如下的局部E-R图。

5.2.1用户E-R图

用户有8个属性:编号、用户名、年龄、性别、密码、电话、个性签名、注册日期。

图5-1用户E-R图

5.2.2书籍E-R图

书籍有6个属性:作者、书名、编号、内容简介、封面图片、书籍文本。

图5-2书籍E-R图

5.2.3期刊E-R图

期刊有6个属性:编号、刊名、出版社、简介、发刊时间、封面图片。

图5-3期刊

5.2.4我的书籍E-R图

我的书籍有7个属性:书籍编号、书名、简介、作者、书籍文本、封面图片、用户名。

图5-4我的书籍

5.2.5我的期刊E-R图

我的期刊有7个属性:编号、刊名、出版社、简介、发刊时间、封面图片、用户名。

图5-5我的期刊

5.3设计数据库表

5.3.1数据库表总表

数据库中共有五个表,分别是:书籍表(book)、期刊表(maga)、我的书籍表(mybook)、我的期刊表(mymaga)、用户表(user)。

表5-1数据库总表

5.3.2数据库表的详细说明

1.book表(编号、书名、作者、内容简介、书籍封面、书籍文本),其中书籍的编号为主键。如表5=2 book所示:

表5-2 book(书籍表)

字段名描述数据类型长度是否为空主键
bid书籍的编号int11
bookname书名varchar50
bookwriter作者varchar32
bookcontent内容简介varchar250
bookpic书籍封面varchar22
booktxt书籍文本varchar60

在数据库中的记录如图5-6所示(部分):

图5-6书籍的数据记录

2.maga表(期刊的编号、刊名、出版社、发刊时间、简介、封面图片),其中期刊的编号为主键。如下表所示:

表5-3 maga(期刊表)

字段名描述数据类型长度是否为空主键
mid期刊的编号int11
maganame刊名varchar50
magawriter出版社varchar50
magadate发刊时间varchar20
bookcontent简介varchar250
magapic封面图片varchar22

在数据库中的记录如图5-7所示:

图5-7期刊的数据记录

3.mybook表(书籍的编号、书名、作者、内容简介、书籍封面、书籍文本、用户名)其中书籍的编号为主键。如下表所示:

表5-4 mybook(我的书籍表)

字段名描述数据类型长度是否为空主键
bid书籍的编号int11
bookname书名varchar50
bookwriter作者varchar32
bookcontent内容简介varchar250
bookpic书籍封面varchar22
booktxt书籍文本varchar60
username用户名varchar20

在数据库中的记录如图5-8所示:

图5-8我的书籍数据记录

4.mymaga表(期刊的编号、刊名、出版社、发刊时间、简介、封面图片、用户名),其中期刊的编号为主键。如下表所示:

表5-5 mymaga(我的期刊表)

字段名描述数据类型长度是否为空主键
mid期刊的编号int11
maganame刊名varchar50
magawriter出版社varchar50
magadate发刊时间varchar20
magacontent简介varchar250
magapic封面图片varchar22
username用户名varchar20

在数据库中的记录如图5-9所示:

图5-9我的期刊数据记录

5.user表(用户编号、用户名、密码、性别、年龄、电话、个性签名、注册日期),其中用户编号为主键。如下表所示:

表5-6 user(用户表)

字段名描述数据类型长度是否为空主键
uid用户编号int11
username用户名varchar20
password密码varchar6
sex性别varchar10
age年龄varchar4
tel电话varchar12
content个性签名varchar250
date注册日期varchar10

在数据库中的记录如图5-10所示:

图5-10用户数据记录

第六章 系统实现

6.1登录模块

用户进入该系统,首先看到的是登录模块。用户可以输入用户名和密码,登录“口袋阅读”系统,如果没有注册过,可以点击“注册”按钮进行注册。登录界面如图6-1所示:

图6-1 登录界面

实现思路:客户端通过使用HttpUtil中的doPost方法,实现客户端与服务器端的交互,获取客户端的请求信息,然后服务器端通过servlet类中的dopost方法调用userDao中的checkUserPass方法验证登录的用户名和密码是否存在。再将处理好的响应信息返回给客户端。

6.2注册模块

当用户没有注册过时,可以点击登录界面的“注册”按钮,进入注册界面,设置相关信息即可提交注册,如图6-2所示:

图6-2注册

实现思路:客户端通过使用HttpUtil中的doPost方法,获取客户端的请求信息。通过服务器中的servlet中dopost方法调用userDao中的insertDao方法添加新用户。

服务器中实现代码如下:

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

……

PrintWriter out = response.getWriter();

String username = request.getParameter("username");

String password = request.getParameter("password");

String age = request.getParameter("age");

String sex = request.getParameter("sex");

String tel = request.getParameter("tel");

String date = request.getParameter("date");

UserDao dao = new UserDao (); //新建一个UserDao对象

System.out.println(username + ":" + password);

int a = dao.insertDao(username, password, age, sex, tel, date);

if (a > 0) {

out.print("true");

else {

out.print("false");

}

6.3“口袋阅读”的主界面

1.用户登录之后会进入“口袋阅读”主界面,如图6-3-1所示:

图6-3-1主界面

(1)点击新书通报下面的图片可以将书籍加入书架,如图6-3-2所示:

图6-3-2加入书架

(2)点击推荐阅读下面的图片可以下载小说,如图6-3-3所示:

图6-3-3下载小说

(3)点击电子期刊下面的图片,可以订阅期刊,如图6-3-4所示:

图6-3-4订阅期刊

2.点击主界面右上角的下拉提示,显示“个人主页”、“我的书架”、“我的期刊”、“退出登录”按钮,点击可以选择进入各个模块,如图6-3-2所示:

图6-3-5模块的选择

6.4新书通报,推荐阅读模块

6.4.1小说简介界面

点击书籍可以进入小说简介界面,该界面可以将书籍加入书架、下载小说,还有个性化推送,会推荐同作者的其他书籍,如图6-4所示:

图6-4小说简介

实现思路:客户端通过使用HttpUtil中的doPost方法,获取客户端的请求信息。通过服务器中的servlet中dopost方法调用BookDao中的selectbookjj方法获取书籍的详情。

客户端核心代码:

try {
Map<String, Object> map = new HashMap<String, Object>();
map.put("bookname"namestr);
String str = HttpUtil.doPost(HttpUtil.pathstr
"BookjjServlet", map);
JSONArray jsonArray = new JSONArray(str);
JSONObject jsonObject = jsonArray.getJSONObject(0);
Book bk = new Book();
pdcf = jsonObject.getString("bookname");
bkpic = jsonObject.getString("bookpic");
……

bkcontent = jsonObject.getString("bookcontent");
handler.sendEmptyMessage(0x224);
}

服务器端核心代码:

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

……

PrintWriter out = response.getWriter();

BookDao dao = new BookDao();

String bookname = request.getParameter("bookname");

List<Book> list = dao.selebookjj(bookname);

JSONArray jsonArray = JSONArray.fromObject(list);

System.out.println(jsonArray.toString());

out.print(jsonArray.toString());

out.flush();

out.close();

}

6.4.2我的书架模块

点击“我的书架”会进入我的书架界面,在该界面,不但可以删除小说,还可以添加更多小说,如图6-5所示:

图6-5我的书架

(1)删除书籍:

实现思路:客户端通过使用HttpUtil中的doPost方法,实现客户端与服务器端的交互,获取客户端的请求信息。然后服务器通过servlet中的dopost方法调用BookDao中的delbook方法删除书籍。

(2)添加书籍:点击页面下方 “添加更多小说”可进入书籍列表添加书籍。

实现思路:客户端通过点击事件触发onClick(),使用HttpUtil中的doPost方法,获取客户端的请求信息中,并交给服务器端的AddBookServlet对请求信息进行处理即通过doPost方法调用BookDao中的addbook方法,将书籍添加到我的书架中。

客户端代码如下:

try {
Map<String, Object> map = new HashMap<String, Object>();
map.put("username",
Login_Activity.usernameString);
map.put("bookname"name);
String str = HttpUtil.doPost(
HttpUtil.pathstr + "AddBookServlet",map);
handler.sendEmptyMessage(0x226);}

分析如下:创建HashMap对象存储用户名和书名,通过HttpUtil的doPost方法加载请求信息的url,处理map对象。

6.4.3同作者书籍推荐功能

在小说简介界面有同作者其他书籍的推荐,如图6-6所示:

图6-6关联推送

客户端核心代码:

try {
Map<String, Object> map = new HashMap<String, Object>();

map.put("bookwriter"writerstr);

String str = HttpUtil.doPost(HttpUtil.pathstr + "BooktjServlet", map);

JSONArray jsonArray = new JSONArray(str);

for (int i = 0; i < jsonArray.length(); i++) { //遍历JSON数组

JSONObject jsonObject = jsonArray.getJSONObject(i); //获取JSON对象

if (!(pdcf.equals(jsonObject.getString("bookname")))) { //判断值是否相同

Book bk = new Book();

bk.setBid(jsonObject.getInt("bid"));

……

bk.setBookcontent(jsonObject.getString("bookcontent"));

list.add(bk); }}

通过HttpUtil的doPost方法加载请求信息的url,处理同作者书籍的map对象,将其转化为JSON数组,然后通过for循环遍历JSON数组,获取JSON对象,通过if语句判断该对象是否与已显示的书籍同名,若不同,则将该对象添加到同作者书籍的列表中。通过服务器端servlet的doPost方法将书籍的相关信息输出。服务器端的主要代码如下:

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

……

PrintWriter out = response.getWriter();

BookDao dao = new BookDao();

String bookwriter = request.getParameter("bookwriter");

System.out.println(bookwriter);

List<Book> list = dao.selebooktj(bookwriter);

JSONArray jsonArray = JSONArray.fromObject(list);

System.out.println(jsonArray.toString());

out.print(jsonArray.toString());

out.flush();

out.close();}

6.4.4下载小说功能

点击小说简介中的“下载小说”按钮,可以进行下载,如图6-7所示:

图6-7小说下载

下载小说实现功能的描述:选中要下载的书籍并点击下载按钮进行下载,找到相应路径下中的文件,如果文件在下载存储路径中不存在,就直接存入,若存在就删去原先的,加载新的文件。

6.5期刊模块

6.5.1期刊列表

点击电子期刊后面的“更多”进入期刊列表界面,可以查看所有的期刊,长按期刊还可以进行订阅,如图6-8所示:

图6-8所有期刊

6.5.2期刊简介

点击期刊可以进入期刊简介界面,该页面可以进行期刊地订阅,还有过往期刊的推荐,如图6-9所示:

图6-9期刊简介

该页面的实现思路:客户端通过使用HttpUtil中的doPost方法,获取客户端的请求信息。通过服务器中的servlet中dopost方法调用MagaDao中的selectmagajj方法获取期刊的详情,再将处理好的响应信息返回给客户端。

6.5.2我的期刊

订阅的期刊可以在“我的期刊”中看到,该模块和书架模块类似,可以对期刊进行删除或者添加,如图6-10所示:

图6-10我的期刊

6.6“我的主页”模块

6.6.1个人主页

点击个人主页进入“我的主页”界面,可以对个人信息进行修改,还可以设置网络、清除缓存和安全退出。如图6-11所示:

图6-11我的主页

6.6.2修改个人信息

点击“修改信息”按钮,可以进行信息的修改,如图6-12所示:

图6-12修改信息

客户端通过TextUtils的isEmpty方法确保输入的用户名、密码、性别、年龄、电话和签名不能为空。如果所有信息不为空,则创建一个HashMap对象,读取文本框中输入的内容将其作为新的键值存入对应键名的HashMap中。然后通过

HttpUtil的doPost方法加载请求信息的url,通过服务器中的servlet的doPost方法读取新输入的信息,更新用户信息,将响应的信息返回给客户端。

修改后的个人信息显示如图6-13所示:

图6-13修改后的信息

6.6.3更多设置、安全退出

点击“更多设置”,可以打开或者关闭网络,还可以清除缓存,如图6-12所示:

图6-12更多设置

总 结

本文论述了一个基于Android的个人图书馆系统,即“口袋阅读”的设计过程,基本体现了“口袋阅读”的优点,有助于用户随时随地用手机进行阅读。经过三个多月的毕业设计,我学到了很多新知识,个人能力有了很大提高。

在做之前,我对Android开发并不是很了解,只会一些最基本的知识。一开始,我是很没有信心的。对于一个女生来说,我觉得编程对我来说是一件困难的事情。我甚至有些退缩,可是毕业在即,再难也要坚持,更何况我是一个不会轻易放弃的人。于是,我在网上查找相关书籍学习Android知识,查找与课题相关的资料。在设计中,我经常遇到困难,停滞不前。我便主动请教班里学得很好的同学,在同学的耐心讲解和指导下,设计便渐渐明朗起来,我也学到了很多。在同学和老师的帮助下,我攻克了设计中的各种困难。

但是对我而言,由于我知识水平的有限,再加上时间的有限,本系统中还有很多不足之处,还请各位老师耐心指导。

参考文献

[1]符静.移动图书馆终端应用研究[J].图书馆学研究,2014,(4):17-21.

[2]李刚.疯狂Android讲义(第3版)[M].北京:电子工业出版社,2015.

[3]武洪萍,马桂婷.MySQL数据库原理及应用[M].北京:人民邮电出版社,2014.

[4]张建源.Android开发技术的学习及应用[J].现代工业经济和信息化,2014,(12):62-64.

[5]吕素娟.图书馆服务系统移动应用端的设计与实现[D].湖南大学.2014.

[6]李满玲.浅析Android开发环境的配置[J].商,2015,(31):243-243.

[7]陈甫.Android Studio应用[J].软件设计开发,2014,(24).

[8]李乐兴.移动图书馆信息构建研究——以南京航空航天大学为例[D]. 南京航空航天大学.2014.

[9]杨艳妮,明均仁,张杰.基于Android的移动图书馆App功能设计与实现[J].图书馆学研究,2015,(07).

[10]王凤.手机图书馆功能需求研究[D].南开大学.2011.

[11]樊涛.基于Android平台的手机图书馆系统的设计与实现[D].南昌大学,2014.

[12]H Kale,G Rane,S Shende.Digital Library Services based on Android using Public Cloud[J].

International Journal of Emerging Technologies and Engineering,2014,171-174.

[13]Domenico Amalfitano,Anna Rita Fasolino,Porfirio Tramontana,Bryan Robbins.Testing Android Mobile Applications,Strategies,and Approaches[J].Advances In Computers,2013,89:1-52.

[14]江波,张曾昱.基于读者行为的手机图书馆文献推送系统构建探讨[J].图书馆理论与实践,2016,(3).

[15]陈好敏.个人数字图书馆研究[D].华中师范大学,2012.

[16]D.Porru,A.Parmigiani,D.Barletta,D.Choussos,S.Bassi,O.Miller,B.Gardella,R.E.Nappi,A.Spinillo,B.Rovereto.Emergency Based Remote Collateral Tracking System Using Google's Android Mobile Platform[J].Springer Berlin Heidelberg,2012,167(1):391-403.

[17]王雨竹.MySQL入门经典[M].高飞机械工业出版社出版,2013.

[18]李刚.疯狂 Java 讲义(第 2 版)[M].北京:电子工业出版社,2012.

[19]荣佰丹.移动图书馆信息服务研究[D].黑龙江大学,2012.

[20]Steve Mansfield-Devine. Android malware and mitigations[J].Network Security,2012,2012,(11):12-20.

[21]杨樟,王征.Tomcat 7的安装和管理[J].办公自动化,2014,07.

[22] 田丹.我国移动图书馆APP应用现状分析[J].国家图书馆学刊,2015,(5):74-80.

[23]刘一,卢琰,徐小平.基于安卓手机的图书馆管理系统设计与实现[J].微型机与应用,2014,(10).

[24]符玉霜.移动图书馆环境下国内APP服务研究[J].情报资料工作,2014,(4):102-105.

[25]石坤泉.基于Mysql数据库的图书管理系统安全稳定性研究[J].电子技术与软件工程,2016,(1):210-210.

[26]韩文智,骆文亮.Android平台的移动APP开发方法与应用研究[J].四川理工学院学报:自然科学版,2015,28(3):22-26.

[27]马颜军.基于Android系统的APP开发[J].科技与企业,2015,(22):87-88.

[28]宋凯,杨凤.虚拟学习空间在数字图书馆多媒体服务中的应用研究[J].图书情报工作,2015,(3):60-66.

[29]梁晶, 明均仁,何博,曹鹏.湖北省高校图书馆移动APP发展现状及对策分析[J].现代情报,2016,(4).

[30]曹鹏,明均仁,段欣余.国内图书馆APP移动服务调查与分析[J].图书馆学研究,2015,(16).

致谢

在本次毕业设计中,我遇到了很多困难,幸亏有老师和同学不厌其烦地为我解惑,给我指导,让我能够顺利通过本次毕业设计。

尤其要感谢我的指导老师——吴军老师。吴老师从一开始就慢慢引导我们如何完成设计,帮助我们解决设计中遇到的疑难问题,为我们完成设计提供了极大地帮助。吴老师耐心指导,力求我们做得更好。三个月以来,每周导师都会跟我们见面,给我们每个人的设计进行分析,提出建设性的意见或建议,布置下一阶段的任务。吴老师帮助我们解决设计中遇到的种种问题,细微到一个简单地标点符号。吴老师对进度有些落后的同学反复提醒,耐心解答我们的各种问题。在他悉心的指导下,我们才能按时保质地完成毕业设计。

最后,我再一次衷心地感谢吴军老师,感谢您耐心地指导和帮助!

4答辩PPT

  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值