安卓图书信息管理系统报告(超长干货!)
前言
关键词:图书管理,借阅,Android,移动开发
目录
前言3
第一章绪论6
1.1开发项目背景6
1.2开发项目意义6
1.3客户资料6
1.4项目成果……………………………………………………..7
1.5资源需求……………………………………………………..7
1.6项目风险……………………………………………………..8
1.7分配任务……………………………………………………..9
第二章系统功能需求分析10
2.1登陆注册功能10
第三章系统分析与设计12
3.1系统实现目标12
3.2系统总体结构12
3.3数据库设计13
3.4逻辑结构设计14
第四章系统实现17
4.1实现系统的关键技术17
4.3管理员用户界面20
4.4图书展示界面20
4.5图书详细信息展示界面20
4.6用户收藏图书界面21
4.7用户借阅信息界面22
第五章系统测试与运行24
5.1测试的主要内容24
5.3主要功能模块测试26
5.3.1图书管理功能测试26
5.3.2用户管理功能测试28
5.3.3图书借阅管理功能测试29
第六章总结30
随着计算机科学技术的高速发展,越来越多的电子产品进入了我们的生活,它们不仅能够给丰富我们的空闲生活,在忙碌之后放松我们的精神,最主要的,高科技产品给我们的生活带来了许多的便利。
传统的图书管理系统给用户和管理员带来的问题,可以在如今这样一个科技高速发展的环境下通过高科技产品得以解决。本文在这样一个背景下,进行了研究,并设计出一款基于Android移动设备的应用程序。
本文具体的研究内容有如下两点:
1、整理上文所述图书管理者和借阅者的系统需求,分析图书的录入、查询、借阅归还等管理流程,并根据需求和工作流程设计Android应用软件系统功能,从而进行软件设计开发的可行性研究。
客户名:湖南科技职业学院唐俊
客户要求:根据要求设计开发一款基于Android系统的图书管理软件,功能完整、稳定,使用方便。
最终使用人:个人
用途:图书管理。
表1.1项目成果清单
1.5资源需求
表1.2项目资源需求表
1.6项目风险分析
1、修改密码功能
本功能实现用户进行修改本账号的密码,提高账号的安全性。
2、忘记密码功能
3、查看图书功能
4、搜索功能
5、收藏功能
6、借阅功能
1、图书管理功能
通过本功能,管理员可进行图书的添加、修改以及删除。
2、用户管理功能
3、借阅管理功能
管理员可通过本功能进行借阅记录的浏览,以及图书的归还。
面对图书馆复杂的图书管理工作,开发系统首先是要满足目前的要求,又能适应后期扩展,所以系统性能应符合以下几个原则:
1、安全性:系统安全性是指既能保全存储的数据信息的安全,又能保证系统本身的安全。
2、实用性:要求可容纳的最大同时请求数和访问速度,符合实际管理。
3、数据库设计合理:这就要求在设计数据库的时候要保证数据的合理冗余、一致性、规范化存储数据、合理选择数据类型。
本系统为图书借阅者以及图书管理员提供了基本的图书信息自动化管理功能,适应于普通图书管理人员及图书借阅者的使用需求。
通过对系统的总体要求进行分析得出系统可以分为图书借阅者的前台操作和图书管理员的后台的图书信息管理。
系统设计不仅要求功能完善,而且还要界面友好,因此,对于一个成功的系统设计,功能模块的设计是关键。由于本系统可执行的是一般性质的图书管理工作,本系统具有一般适用性,其所实现的功能满足图书馆对日常工作的图书管理,方便管理员和图书借阅者的日常生活。系统应在前面说到的功能需求分析的基础上进行设计和实现。首先,整个系统分成几个小的模块,小的问题,然后,进一步细分模块,添加细节。
2、图书管理员功能
图书管理员通过用户名和密码进入图书管理系统,可以实现三大功能:图书管理、用户管理和借阅管理。图书管理功能包括增加图书信息、删除图书信息、查询和修改图书信息;用户管理功能主要是管理用户注册的信息,包括注册用户或管理员信息、删除用户注册的信息、以及修改用户信息,保证图书管理系统的登陆信息的安全性;借阅管理功能主要是查看借阅记录以及归还图书功能。
3、图书借阅者功能
图书借阅者通过用户名和密码进入图书管理系统的用户界面,用户权限主要实现三个方面的功能:查询图书信息功能、借阅图书功能以及借阅管理功能。查询图书信息功能主要是根据图书的几个基本信息,如:图书名、作者、出版社、分类等信息查询所需要查看或借阅的图书信息;借阅图书功能主要完成用户对需要的图书进行借阅的功能;借阅管理功能主要是对图书借阅者的借阅信息进行管理,可以查看已借阅的图书信息以及对已借阅的图书进行取消借阅的功能。
由系统的总体设计说明画出图书管理系统的总体结构图如下
对于实现系统的需求带说,数据库的设计是非常重要的部分,也是系统设计中最基本的一个部分,因此选择合适的数据库并创建合理的结构式开发程序是首要的问题。数据库系统是现代信息系统基础设施。本系统的数据库将采用Android自带的Sqlite数据库进行设计与管理。根据以上章节对系统所做的需求分析和系统设计,规划出本系统中使用的数据库实体分别为用户实体、图书实体、借阅信息实体,各个实体具体的描述如下图所示:
描述概念模型的常用工具就是实体——联系方法,即E-R模型。
用户信息实体图
图书信息实体图
借阅信息实体图
本系统的数据结构比较清晰,依据课程管理系统的功能要求,主要设计出数据库的表有:用户信息表(user)、图书信息表(books)和借阅信息表(borrow)。
逻辑结构设计就是把概念结构设计阶段设计好的基本E-R图转换为数据模型相符合的逻辑结构。本系统选用的是Sqlite数据库,关于数据库表结构设计如下所示:
根据第一章所设计的Android应用软件系统功能框架和界面的设计,分析出实现这些功能和界面所需的各个关键的技术点,并深入研究这些关键技术点,这些技术点包括:
(1)Android的xml文件的编码规则;
(2)系统各种界面布局的实现方式;
(3)系统中Activity的创建以及Activity间的自由切换;
(4)Sqlite数据库的使用;
(5)使用信息提示框的弹出;
(6)以及图片资源的加入。
下面举例介绍数据库的关键技术:
SQLiteOpenHelper类是Android下操作Sqlite的内部实现类,它封装了大部分函数和操作数据库的具体功能,帮助创建数据库和数据库版本管理。
使用必须创建一个子类来实现其onCreate(SQLiteDatabase),onUpgrade(SQLiteDatabase,int,int)方法,同时任意实现onOpen(SQLiteDatabase)方法,同时打开数据库操作必须保证数据库存在,如果不存在则创建它,并且对其必要的升级,维护其保持一个最佳的状态。
使用本类提供内容开始创建数据库是非常容易的,首先必须对数据库进行升级,以避免在数据库启动后长期使用而阻塞数据。
因此,我们只需要基于此类继承出一个子类,实现子类特有的属性,即可完成此类的开发:
publicclassDBHelperextendsSQLiteOpenHelper{
privateContextmcontext;
publicDBHelper(@NullableContextcontext,@NullableStringname,@NullableSQLiteDatabase.CursorFactoryfactory,intversion){
super(context,name,factory,version);
this.mcontext=context;
}
下列代码实现了重要的数据库表创建的功能:
privatefinalstaticStringCREATE_USER=“CREATETABLEuser(idINTEGERPRIMARYKEY”+
“AUTOINCREMENT,usernameVARCHAR(20),passwordVARCHAR(20),passlockVARCHAR(20)”+
“,passkeyVARCHAR(20),roleVARCHAR(20),borrowlistVARCHAR(20),collectionVARCHAR(20))”;
privatefinalstaticStringCREATE_BOOK=“CREATETABLEbook(idINTEGERPRIMARYKEY”+
“AUTOINCREMENT,ISBNVARCHAR(20),booknameVARCHAR(20),authorVARCHAR(20),pressVARCHAR(20)”+
“,publicationtimeVARCHAR(20),categoryVARCHAR(20),synopsisVARCHAR(50),pageINTEGER”+
“,inventoryINTEGER)”;
privatefinalstaticStringCREATE_BORROW=“CREATETABLEborrow(boidINTEGERPRIMARYKEY”+
“AUTOINCREMENT,botimeVARCHAR(20),bookidVARCHAR(20),useridVARCHAR(20),bostateINTEGER”+
“,backtimeVARCHAR(20),reviewerVARCHAR(20))”;
@Override
publicvoidonCreate(SQLiteDatabasedb){
db.execSQL(CREATE_USER);
db.execSQL(CREATE_BOOK);
db.execSQL(CREATE_BORROW);
publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){
db.execSQL(“droptableifexistsuser”);
db.execSQL(“droptableifexistsbook”);
db.execSQL(“droptableifexistsborrow”);
图4-1系统登陆界面
界面切换功能的实现,填写完账号和密码后,点击登陆按钮,登陆按钮被设置为了监听,点击后会把用户填写的信息和数据库里的信息匹配,相符的话,则跳转到登陆后的主界面,若不相符,则会提示错误信息,限制用户进入主界面。
功能描述:图书管理员是整个系统保持正常运行的关键因素。在图书管理员界面主要有四个大功能:在图书管理功能中图书管理员可以对系统的图书信息进行管理,有增加图书信息、删除图书信息、修改图书信息和查看图书信息四个子功能,可以保证图书管理系统中图书信息的准确性;在用户管理功能中,管理员可以对用户及管理员信息进行注册和管理,包括修改用户权限、删除用户信息和修改用户信息等功能,这确保了系统和资料的安全性和保密性;在借阅管理功能中,管理员可以对用户的借阅信息进行查看和管理,从而使得图书的借阅信息能够被管理员所了解,使得图书管理系统正常的运行。
功能描述:用户登陆成功后,此界面会展示所有的图书信息,用户可以浏览该界面或者在界面上方的搜索框中输入图书名或者作者的关键字查找想要的图书。
功能描述:此界面将展示用户收藏的图书信息,当用户取消收藏该图书后,该界面将不会显示该图书。
在软件的生命周期中,软件测试是一个软件的重要组成部分,是为了发现错误而执行的一个程序或者系统的过程[14]。软件的测试结果对软件的可靠性有很重要的作用,软件测试是软件产品交付给大众用户使用之前用以保证软件质量的一个很重要的方法。在软件每一阶段中的生命周期都包含软件测试活动,因此在软件设计的整个过程中都应该有软件测试进行。使得随时能够检查本阶段的成果能不能接近预期的结果目标,进而尽可能早一点发现到错误并加以改正。
我们在进行测试工作的时候为了保证系统的质量,可以将测试工作的内容分成以下所说的几个部分,即:审查代码、集成测试、单元测试、系统测试和确认测试。
(1)单元测试
检查系统设计最小的单位(—个模块)就是单元测试,通过测试检查出用来定义该模块的功能说明不符合与实现该模块的实际功能的情况,以及编码时的错误。
(2)集成测试
我们可以将每个小的模块按照设计的需求组装起来后同时进行集成测试,集成测试的主要目的是检查与接口有关联的某些问题。假设一个模块和另一个模块可能会出现由于疏忽的问题而引起有危害的影响;把子功能模块组合起来后可能不能产生预期的主功能;有个别的看起来视乎能接受的误差却很有可能积累到不能接受的程度;全程数据结构可能有错误等。
(3)确认测试
确认测试的目的是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,基本排除了接口的错误,接下来我们就应该进一步的检验系统软件的有效性,就是确认测试工作的任务,是将系统软件的性能和功能发挥到如用户们合理期待的一样。
(4)系统测试
完成软件设计开发以后,最后还要将它与系统中其他的部分整合运行,从性能测试、安全测试、强度测试和恢复测试等四个方面来进行系统测试。
系统采用的测试用例如下表所示:
图书管理员可对图书信息进行管理,管理员可以根据图书馆中图书的信息进行添加图书信息,查看图书信息详情,修改图书信息,删除已有图书信息。为防止添加空白或错误图书信息,在添加时会有系统的错误提示无法进行提交,在填写了完整且正确的图书信息后才能保证提交信息成功。下面进行测试:
图5-2图书管理功能主界面
图5-3添加图书信息界面
图书管理员可以对所有用户的所有信息进行添加、删除、修改管理。下面进行测试:
图5-5用户管理功能主界面
图书管理员可以对用户的图书借阅信息进行查看和管理。下面进行测试: