1《数据结构与算法基础》课程项目实施报告题目:虚拟智慧图书馆2虚拟智慧图书馆一、题目要求模拟现有图书馆的借阅、续借、归还;图书入库、出库;查询、排序等功能,实现电子图书馆的智慧综合管理。要求:(1)掌握数据结构的输入/输出、查找、排序、数据库建立;(2)实现图书信息的数据库建立;(3)图书信息的模糊查找与精确查找,并显示所查找条目的摘要内容;(4)图书信息的有序排列(如读者兴趣度排序、书评度排序、出版时间排序等);(5)图书信息不少于50条。二、预期指标在一台PC机上模拟图书馆管理系统各终端及数据库间的连接,模拟实现借阅、续借、还书,图书入库、出库,查询、排序,个人信息状态查询,增添/删除/维护用户信息等功能1.预期数据库中图书数据达到100条以上,具有数个用户,并有管理员及普通用户权限区分;2.在查询界面,通过点选属性,即可进行对以返回内容进行本地排序;3.对历史借阅信息进行统计,排序得出最受欢迎书籍三、名词解释ISBN:国际标准书号,是国际通用的图书或独立的出版物(除定期出版的期刊)代码。一个国际标准书号只有一个或一份相应的出版物与之对应。数据采集:人机交互界面中,系统从用户输入中收集各类数据的过程数据发送:将收集到的数据发送至服务器端的过程数据接收:将Server处理完返回的数据接收的过程,用以进行显示,反馈给用户四、项目背景4.1项目背景诸多大学及社会上的图书馆具有借阅、续借、归还;图书入库、出库;查询、排序等功能,为了实现电子图书馆的智慧综合管理,提高管理效率,方便读者,需要一套基于计算机系统及数据库的图书管理系统。图书馆本身包含大量的信息,包括书目,电子资源等,在实现上述功能时,若以传统方法实行,将耗费较大的人力及物力。利用信息电子化的优势,可以明显优化各项步骤。读者在查询图书时,是通过分类号查询,原需一个个书架依次查找,虚拟智慧图书馆系统应具备让读者在电子设备上接入数据库,并针对不同关键字进行模糊或精确搜索的能力。另外,虚拟智慧图书馆系统计划实现图书排序推荐功能,其应具备对图书进行兴趣度、出版时间、书评度等排序能力。图书馆管理者和读者利用此系统应能清楚明晰书目的归还时间,借阅情况。结合安全门,RFID识别技术,IDcard验证,此系统应能完成在数据库中标记图书借阅归还的能力,并实现数据库情况与书库情况一致的目的。基于之上预期,虚拟智慧图书馆项目主要目的在于对图书信息及读者信息的数据处理,通过对系统数据结构与算法的优化,达到最佳的使用目的,包括对数据结构的输入/输出、查找、排序的应用,及数据库建立。4.2项目原理任何用户使用虚拟智慧图书馆都将通过已经注册在数据库中的信息访问。任何图书馆书3库中的图书及电子资源都通过事先的预输入,与数据库中的信息相匹配。当Client请求时,Server根据请求检索、排序、增添数据并返回给Client显示。Server应根据不同的操作对数据库里的图书信息、用户信息、借阅记录进行更新。当Client请求时,将连接Serve数据库,返回需求信息后,断开与Serve数据库的连接,这样可以避免占用有限的数据库接口资源。当用户输入操作要求时,Client进行数据接收,并将请求发送至Server并进行数据操作,之后将需求信息返回Client。五、数据结构设计图书信息包含的数据项如下:数据名数据含义备注说明Id条目号主键ISBN国际标准书号ISBN-13标准,例如:978-7-301-04815-3Name图书名Author图书作者Pub_date出版时间(月/日/年)DatePublisher出版社Available图书是否可借阅enum('available','forbidden')Total图书总数Store库存数量用户信息包含的数据项如下:数据名数据含义备注说明Id用户ID主键Pwd用户密码暂时用明文Loaned已借阅数量Max最大可借阅数量Class用户类别管理员或用户备注:每个用户匹配一张借阅图书的详细情况表4借阅图书的详细情况表:数据名数据含义备注说明Id条目号主键User_id所属用户外键关联Book_id图书条目号外键关联Loan_date借阅日期DateBack_date归还日期为NULL表示没有归还六、实现方式我们组经过讨论,数据库选用了mysql。该数据库使用简单方便,功能强大,对于多线程处理器支持优秀,对列项可设置缺省,且能在多平台上兼容应用,同时其全面支持各类SQL语句,对该项目完成完全可以胜任。对于图形界面设计,由于WindowsAPI设计过程繁琐,故我们使用操作较为方便,界面友好的QTCreator进行交互式界面设计,并和mysql数据库进行连接。系统所有功能的实现皆从用户登录开始,根据不同的用户类型,在系统中给予不同的操作权限。这样管理员和普通读者共用一套系统,无需另外设计,同时,管理员也可以借阅书籍。七、功能概述整个图书馆系统分为Server和Client两部分。在客户端login界面输入账户和口令,只有账户和口令都正确,才被允许连接Serve,链接数据库。其中账户权限等级区分为管理员账户和普通账户。管理员账户可以实现图书入库/出库/更新图书等功能。7.1ServerServer拥有借阅、归还、模糊或精确查询、排序、入库/出库/更新图书信息六大功能,通过对SQL语句对数据库的数据查询,增删实现。6.1.1入库/出库/更新图书仅管理员用户享有此权利。增删数据库中books表的内容,可实现图书信息的录入、删除,可对已在数据库中的图书信息进行更新。6.1.2借阅可借阅图书。借阅完成后,将此图书的库存数量减一,并在book_record表中增加借阅历史,记录借阅时间,供用户查询。6.1.3还书客户端Client服务器端(数据库)Server数据交互5可归还图书。图书归还后,将此图书的库存数量加一,并在book_record表中相应条目内增加归还时间,供用户查询。6.1.4模糊或精确查询可迅速查询所需图书信息。可输入多类关键字,也可输入单个。可输入完全匹配关键字,也可输入不完全匹配的关键字检索。6.1.5排序可选定排序方式,将按关键字查找的结果按一定方式排列(如出版时间)。6.2Client6.2.1数据采集读取用户的搜索关键词、操作请求等。6.2.2数据发送将用户的操作请求发送至Server。6.2.3数据接收Server根据用户请求对数据进行处理,将处理好的结果返回给Client,Client接收相应数据。6.2.4界面交互提供可视化界面,提高数据可读性,有效采集用户请求八、系统用例7.1用例图7.2用例描述7.2.1登录个人信息状态查询用户Client模糊/精确查询还书续借排序借阅增添/删除/维护用户信息入库/出库/更新图书管理员Client登录Server6用例名称登录功能简述输入用户名与密码通过验证,方可进入系统。前置条件虚拟智慧图书馆系统Client正确安装并部署,Server数据库正常运行基本流1.图书管理系统管理员或读者启动Client程序2.用户输入ID及口令登录,登录信息将被记录到登录日志中3.Client将数据采集并发送至Server,等待Server返回验证信息4.Client接收Server返回的验证信息,登录虚拟智慧图书馆系统,Client记录登录日志分支与异常第1步,若启动系统程序失败,则报告异常第2步,若登录日志不存在,Client则于指定位置重新创建日志文件第2步,若Client创建或写入日志失败,则报告异常第3步,若输入的登录ID于数据库中不存在,Server返回验证信息,Client则要求用户重新输入ID第3步,若输入的口令与ID并不匹配,Server返回验证信息,Client要求用户重新输入口令后置条件无备注无7.2.2借阅用例名称借阅功能简述用户在“借阅”界面输入图书ISBN号,可使得图书状态转为“已借阅”,并生成借阅日期前置条件Client成功登陆系统,与Server数据库连接通路正常基本流1.进入借阅模式窗口2.输入欲借阅图书的ISBN号3.将此次借阅详情添加入“借阅/归还日志”中4.添加成功后,记录借阅日期,并更新库存图书书目5.用户的借书记录中增加该书条目,并添加于借阅历史中分支与异常第2步,若用户状态为”forbidden”,则拒绝借阅,并报告“您已被暂时停止借书权限”第2步,若用户可借阅数量不足,则拒绝借阅,并报告“超过允许借书数额”第2步,若图书库存数量为0,则拒绝借阅,并报告”请联系管理员”第3步,若无“借阅/归还日志”,则自动建立第3步,若无法建立日志或无法写入日志,则报告异常,显示“借阅失败”。中止借阅过程后置条件无备注无7.2.3还书用例名称还书功能简述用户在“还书“界面输入图书ISBN号,7前置条件Client登陆成功,和Server数据库连接通路正常,该用户有借书记录基本流1.进入还书模式窗口2.输入欲还图书的ISBN号3.将此次还书详情添加入“借阅/归还日志”中4.添加成功后,比较还书日期与借阅日期,判断是否超期5.更新图书数据库库存信息6.用户的借书记录中,该书本借阅记录删除分支与异常第3步,若无“借阅/归还日志”,则自动建立。第3步,若无法建立日志或无法写入日志,则报告异常,显示“借阅失败”。中止借阅过程。第4步,记录还书日期,并与借阅日期及续借情况比较,若超期,则将用户状态改为”status“,暂停其借阅第6步,若借阅记录删除失败,则报告错误后置条件无备注无7.2.4模糊/精确查询用例名称模糊/精确查询功能简述帮助管理员和用户迅速搜寻所需的书本信息。前置条件Client登陆成功,和Server数据库连接通路正常基本流1.进入查询界面2.输入查询关键词(出版社,作者,ISBN,书名,出版日期等)3.按照关键词在数据库中进行搜索,与Client界面上给出查询结果4.用户可依据需求就某个类别进行排序分支与异常第4步,若排序失败,则报告错误后置条件无备注无7.2.5续借用例名称续借功能简述帮助用户或管理员续借图书,延长时间限制。前置条件Client登陆成功,与Server数据库连接通路正常,用户有借阅记录且未逾期基本流1.进入续借界面2.输入需要续借的书本ISBN,进行续借3.将续借的情况写入“借阅/归还日志”中4.根据借阅策略增加该用户此图书借阅信息的list_date_back归还日期分支与异常第1步,若进入续借界面失败,则报告错误第2步,若书本已逾期,则不得提供续借的服务,报告”无法续借”第3步,若相关日志不存在,则重新创建日志文件第3步,若创建或写入日志失败,则报告异常。中止续借过程,续借失败第4步,若修改归还日期失败,则报告错误后置条件无8备注无7.2.6个人信息状态查询用例名称个人信息状态查询功能简述帮助用户查询自己借书记录及相关情况前置条件Client登陆系统成功,与Server数据库连接通路正常基本流1.进入个人信息状态查询界面2.和Server数据库通信,请求返回数据库中关于登陆用户的可查看状态信息,显示于Client端界面分支与异常第1步,若进入个人信息状态查询界面失败,则报告错误第2步,若Server未成功返回用户信息,则报告错误后置条件无备注无7.2.7入库/出库/更新图书用例名称入库/出库/更新图书功能简述管理员用户可对图书数据库资料进行更新。前置条件Client登陆成功,且为管理员账户,与Server数据库连接通路正常基本流1.进入入库/出库/更新图书界面2.选择相应功能3.添加/删除/更新确认后,完成数据库更新4.将相应操作情况添加入数据库管理操作日志分支与异常第2步,若选择“入库”,则要求输入入库书籍所有信息,确认后添加到数据库中第2步,若选择“出库”,则要求输入书籍的ISBN号,返回图书信息,经过二次确认后,从数据库中剔除。“出库”书籍状态若为“已借阅”,则禁止操作第2步,若选择“更新”,则可以通过对数据库数据检索,选择需要更新的书籍进行修改信息操作。书籍状态若为“已借阅”,则禁止操作第3步,若操作失败,则报告异常第4步,若相关日志不存在,则重新创建日