基于协同过滤算法的图书推荐系统的设计与实现.docx
本科毕业设计论文题目:基于协同过滤算法的图书推荐系统的设计与实现独创性声明本人呈交的学位论文,是在导师的指导下,独立进行研究工作所取得的成果,所有数据、图片资料真实可靠。尽我所知,除文中已经注明引用的内容外,本学位论文的研究成果不包含他人享有著作权的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确的方式标明。本学位论文的知识产权归属于培养单位。日期:本人签名:随着网络和信息技术的飞速发展,电子图书资源的数量也在以惊人的速度增长,越来越多的用户通过图书购买网站购买图书或在图书阅读网站上阅读电子书,不管是网上购书还是网上读书都会面临一个相同的问题,如何从海量的图书资源里快速检索出用户感兴趣的图书。如果在购书网站和阅读网站中增加推荐功能,为用户提供一个专属的个性化图书推荐列表,可以增强用户体验感,提高查询效率。本图书推荐系统结合协同过滤算法,根据用户收藏的图书信息自动生成一个个性化推荐列表,可以帮助用户快速定位目标图书。本系统分前台管理和后台管理两部分。前台用户在登录后执行的操作有查看个性化推荐列表、收藏图书、阅读图书、评论图书、修改个人信息等。其中个性化图书推荐列表应用了协同过滤算法,该算法根据用户收藏的图书类型,利用余弦相似度公式计算出图书类型之间的相似度,统计当前用户收藏列表中每种图书类型的收藏次数,根据图书类型相似度和收藏次数计算出该用户对其他图书类型的喜好度。从计算所得的喜好度中取最大值所对应的图书类型,该图书类型是最值得被推荐的,然后再取该类型中浏览量最高的前八条记录作为一个推荐列表,为用户提供个性化图书推荐。后台管理员可以实现的功能包括用户信息管理、图书信息管理、热门图书信息管理、图书章节管理、图书评论管理、图书资讯管理,系统将用户的注册数量、收藏数量、浏览数量、评论数量统计出来,形成可视化图表,提供直观的数据展示,方便管理员查看管理。本系统采用B/S模式,提供更加安全的数据处理和业务逻辑处理,使用前后端分离设计,提高系统的性能。前端使用VUe框架和Element-UI组件,实现数据双向绑定,数据与视图之间的同步更新,提高代码的复用率,方便管理维护代码;后端用SPringBoOt框架和MyBatiS-PliIS框架,简化开发体检;后台数据库使用的是MySQL数据库管理系统,对数据进行存储和管理。关键字:图书推荐;相似度;协同过滤算法论文类型:工程设计AbstractWiththerapiddevelopmentofnetworkandinformationtechnology,thenumberofe-bookresourcesisalsogrowingatanalarmingrate,andmoreandmoreusersarebuyingbooksthroughbookbuyingwebsitesorreadinge-booksonbookreadingwebsites.Whethertheyarebuyingbooksonlineorreadingbooksonline,theyallfacethesameproblem,howtoquicklyretrievebooksofinteresttousersfromthevastamountofbookresources.Iftherecommendationfunctionisaddedtothebookbuyingwebsiteandreadingwebsitetoprovideuserswithanexclusivepersonalizedbookrecommendationlist,itcanenhancetheuserexperience,improvethequeryefficiencyandincreasetheuserretentionrate.Thisbookrecommendationsystemcombinescollaborativefilteringalgorithmstoautomaticallygenerateapersonalizedrecommendationlistbasedontheuser'sbookcollectioninformation,whichcanhelpusersquicklylocatetargetbooks.Thesystemisdividedintotwoparts:frontendmanagementandbackendmanagement.Thefront-enduserscanviewthepersonalizedrecommendationlist,collectbooks,readbooks,reviewbooksandmodifypersonalinformationafterloggingin.Thepersonalizedbookrecommendationlistusesacollaborativefilteringalgorithm,whichusesthecosinesimilarityformulatocalculatethesimilaritybetweenbooktypesbasedonthebooktypescollectedbytheuser,countsthenumberoftimeseachbooktypeiscollectedinthecurrentuser'scollectionlist,andcalculatestheuser'spreferenceforotherbooktypesbasedonthesimilarityofthebooktypesandthenumberofcollections.Fromthecalculatedpreferences,wetakethebookgenrecorrespondingtothemaximumvalue,whichisthemostrecommended,andthentakethetopeightrecordswiththehighestnumberofviewsinthegenreasarecommendationlisttoprovideuserswithpersonalizedbookrecommendations.Thefunctionsthatcanberealizedbytheadministratorinthebackgroundincludeuserinformationmanagement,bookinformationmanagement,popularbookinformationmanagement,bookchaptermanagement,bookreviewmanagement,andbookinformationmanagement.Thesystemcountsthenumberofuserregistrations,thenumberofcollections,thenumberofbrowsing,andthenumberofreviews,formingavisualcharttoprovideanintuitivedatadisplayfortheadministratortoviewandmanage.ThesystemadoptsB/Smodeltoprovidemoresecuredataprocessingandbusinesslogicprocessing,andusesfrontandback-endseparationdesigntoimprovetheperformanceofthesystem.Thefront-endusesVueframeworkandElement-Ulcomponenttorealizetwo-waydatabindingandsynchronousupdatebetweendataandview,whichimprovesthecodereuserateandfacilitatesthemanagementandmaintenanceofcode;theback-endusesSpringBootframeworkandMyBatis-Plusframeworktosimplifythedevelopmentphysicalexamination;theback-enddatabaseusesMySQLdatabasemanagementsystemtostoreandmanagedata,andmanagementofdata.KeyWords:bookrecommendation;Similarity;CollaborativeHlteringalgorithm目录摘要IAbstractII目录IV1引言11.1 本课题研究背景及研究意义11.2 本课题的基本内容11.3 本课题研究的重点和难点21.4 论文提纲22系统分析32.1 系统概述32.1.1 系统的总体功能需求和性能要求32.1.2 系统开发的框架42.2 可行性分析42.2.1 经济可行性42.2.2 技术可行性52.2.3 操作可行性52.2.4 法律可行性52.3 系统功能分析53需求分析73.1 业务流程73.2 系统范围73.3 数据流图83.4 数据字典94总体设计144.1 系统总体结构设计144.2 系统接口设计144.2.1 用户接口144.2.2 外部接口154.2.3 内部接口164.3 软件体系结构175详细设计195.1 功能模块设计195.2 输入/输出格式设计225.3 人机对话设计235.4 界面设计245.4.1 用户界面设计245.4.2 菜单设计275.4.3 对话框设计275.5 数据库设计275.5.1 概念结构设计275.5.2 逻辑结构设计305.5.3 物理结构设计315.5.4 数据库安全356系统实现366.1 开发平台366.2 开发工具366.3 技术框架主要功能模块流程和编码376.4 本课题中的关键技术407系统的测试与维护447.1 测试用例与测试结果447.2 系统维护45结论46参考文献47致谢481引言1.1 本课题研究背景及研究意义随着互联网的发展,网上的图书资源变得越来越丰富,越来越多的用户开始选择上网查找、购买、借阅书籍。海量的图书信息给用户带来了更多的选择,同时也给用户带来了不小的困扰。传统的解决方式是基于被动式响应模式,例如用户在查询图书信息时,由于常用的购书网站、阅读网站通常是按照图书的最新发布时间或者最近的图书评论时间等方式形成一个图书列表呈现给用户,该列表针对的是所以用户而不是特定个人,用户不能从图书列表中快速找到自己感兴趣的图书。图书推荐系统是一个良好的解决方案,能够借助用户收藏记录计算图书类型相似度,为用户提供个性化推荐列表,方便用户浏览阅读。图书推荐系统的核心是利用推荐算法形成个性化推荐列表。在众多推荐算法中分析,选择合适的算法,例如基于用户的协同过滤算法依据用户的评分信息进行推荐,存在数据比较稀疏的问题,这就导致在推荐过程形成的列表不太符合用户喜好。基于物品的推荐很好的解决数据稀疏性问题,因此,在实际应用中,将基于物品的协同过滤算法和计算喜好程度的算法相结合,优化推荐功能,为用户生成更准确的个性化推荐列表。由于推荐系统根据用户历史行为数据发现用户喜好,因此具有很大的实用价值,比如可以在常见的购买网站和借阅网站中增加推荐系统,利用推荐系统可以将用户被动搜索方式转化为系统主动推荐,节省搜索时间。1.2 本课题的基本内容本课题主要研究基于协同过滤算法的图书推荐系统的设计与实现,主要内容包括需求分析、算法设计、系统设计实现以及系统测试四个方面。1 .需求分析对现有的购买网站、借阅网站以及阅读网站首页的推荐信息进行调查分析,发现大多数的网站是根据图书发布的时间和图书评分进行推荐的,推荐结果面向所有用户,无法根据个人喜好进行个性化推荐。通过与部分用户沟通,获取用户需求,即在购买网站、借阅网站以及阅读网站中增加个性化推荐列表;分析用户需求,得到图书推荐系统的功能需求、性能需求等信息。2 .算法设计为了更好的实现个性化推荐,需要将图书推荐系统与协同过滤算法相结合。通过对基于用户的协同过滤算法和基于物品的协同过滤算法两种算法进行分析,比较哪一种算法生成的推荐列表更加精确,最终选择基于物品的协同过滤算法实现个性化推荐。3 .系统设计与实现系统采用B/S模式,前端使用Vue框架和Elemenl-UI组件,后端使用SpringBoot>MyBatiS-Pkis框架,后台数据库选择MySQL数据库管理系统。在详细设计中,根据用户和管理员的业务范围不同,设计不同的功能模块,确定每个模块的接口信息;根据用户需求设计完整性高、安全性好的数据库,对数据进行存储和管理;用户页面设计应该具有简洁清晰、使用简单等特点,增加人机对话,用于提示用户操作,增强用户体验感。4 .系统测试在系统测试过程中,对于每一个功能模块,编写详细测试用例,覆盖各种可能情况和错误场景,描述测试需要输入的数据以及期望得到的结果。通过测试用例模拟系统使用情况,发现系统的不足,及时维护更新,确保系统能够正常运行。1.3 本课题研究的重点和难点该系统的重难点包括以下部分:1 .数据库设计数据库设计是一个非常关键的过程,直接影响着系统的效率和稳定性。根据不同角色的业务需求,明确需要的实体属性、主键、外键、索引以及相关约束条件和数据类型等方面的问题。2 .算法设计在众多算法中分析算法的优缺点,根据具体情况选择合适的协同过滤算法,设计高效的计算方案,解决数据稀疏性的问题;在计算过程中要根据历史行为选择计算参数,将计算结果存储到二维矩阵中。3 .前后端开发前端设计需要注重用户体验和交互设计,以使用户可以方便、快速、直观地操作应用程序。在开发过程中,需要合理设计页面布局、色彩搭配、响应式设计、无障碍设计等方面,以提升用户使用体验。后端设计需要注重数据处理和存储管理,以保证系统可以高效、稳定地运行,并确保数据的安全性。需要了解如何正确设置和使用各种数据库、常见框架和技术来解决数据存储问题。1.4 论文提纲1 .弓I言2 .系统分析3 .需求分析4 .总体设计5 .详细设计6 .系统实现7 .系统的测试和维护2系统分析对该系统进行综合分析,确定系统的功能需求、性能需求、技术要求和性能指标。确保系统能够达到用户的期望和需求,并且在经济、技术、操作上均是可行的,且具有可靠性和可扩展性。2.1 系统概述1 .1.1系统的总体功能需求和性能要求图书推荐系统就是通过分析用户的收藏信息来为用户推荐感兴趣的图书,方便用户查询图书,节省时间。该系统的主要功能如下:2 .功能需求(I)用户注册和登录:在登录时选择不同角色,输入用户名和密码,通过系统验证进入到相对应的系统首页。(2)个人中心:用户可以在个人中心更新资料,如用户名、密码、电话号码、头像等;(3)图书搜索:用户可以通过关键字、分类等方式进行图书查询,并且可以将感兴趣的图书加入到收藏列表中。(4)评价管理:用户可以对已阅读过的图书进行评论,用于用户参考;管理员收到该书评论后及时回复反馈。(5)生成推荐列表:该模块是系统的核心功能,系统根据用户的收藏列表,通过协同过滤算法计算相似度并生成与其兴趣相似的图书推荐列表。(6)图书管理:管理员能够对图书信息进行增加、删除、修改、查询等操作。(7)用户管理:管理员能够对图书信息进行增加、删除、修改、查询等操作,在修改时可以根据用户需求修改相应部分。(8)章节管理:管理员对图书章节进行基本的增加、删除、修改、查询等操作。管理员添加章节信息后,用户可以直接图书详情页面阅读该本图书。(9)图书资讯管理:管理员对图书资讯信息进行增加、修改、删除、查询等操作。3 .性能需求(1)可靠性数据方面,管理员在后台管理图书信息、用户信息、评论信息以及其他信息的过程中不能出现因为程序的问题而导致操作失败的情况;在添加数据时要注意唯一标识不能重复,删除数据时要对应的删除关联表的相应数据;在输入信息时要按照规定格式正确输入,例如用户的手机号码规定必须是11位有效数字;及时备份数据。系统开发方面,确保每一个功能模块相互独立,模块之间的故障不会影响其他模块。(2)时间特性对于一个高效的推荐系统,响应时间必须足够短,因此,最好的响应时间不应该超过数秒钟。(3)可伸缩性推荐系统随着用户数量和图书数量的增加而变得越来越复杂。因此,推荐系统需要具有可伸缩性,以应对图书数据和用户数量的增长。2.1.2系统开发的框架1. SpringBoot框架SpringBoot是一个基于Java框架的快速应用开发框架,提供了大量的默认配置项,可以在短时间内构件原型机别的应用、启动、测试等;使用SPringBoOt开发应用时,只需要在Pom.xml文件中定义相关依赖即可,SpringBoot会为我们自动管理版本号等依赖问题;可以简化新项目的创建和现有项目的搭建、配置、打包等一系列操作,大量减少了开发人员的工作量;SPringBOOt框架简化了JaVa应用程序开发的过程,使开发人员可以更加专注于业务逻辑的实现,而无需关注底层设置的复杂性未找到引用"o该框架已经被广泛应用于Web应用、企业级应用、微服务等领域。2. Vue框架VUe是一款流行的前端JaVaSCriPt框架,用于构建灵活、高性能的Web界面。它采用了MVVM模式(ModeI-VieW-VieWMOde1),通过将视图和数据分离,使得代码更加清晰,易于维护。Vue的特点有,组件化:Vue将Ul界面分解为独立的、可复用的组件,使得开发人员可以专注于每个组件的开发和维护,提高了代码复用性;响应式数据绑定:VUe使用双向数据绑定来实现数据与视图之间的同步更新,使得开发过程更加高效;指令:VUe提供了一系列内置指令,如vif、v-for>v-bind等,使得开发人员可以轻松地实现DoM操作和数据绑定。总的来说,VUe是一个非常优秀的JaVaSCriPt框架,具有灵活、高效、易用等特点,适用于各种类型的Web应用程序开发。2.2可行性分析2.2.1经济可行性实施成本:该系统是一个小型的图书推荐系统,所以不需要购买相关的软件和硬件,也不需要雇佣专业人员来安装、配置和运行,开发成本比较低。此外,需要考虑数据库存储、数据处理、用户界面设计、用户体验优化以及其他一些开发工作。维护成本:该系统采用VUe框架和SPringBoOt框架技术实现前后端分离,开发人员即可维护,不需要额外的人力和资源开销。收益分析:图书推荐系统有很好的实用价值,可以应用到普通的购书网站和阅读网站上,提高图书的销售效率及阅读量。2. 2.2技术可行性图书推荐系统的技术可行性取决于多种因素。1 .主要硬件和软件可以满足开发人员的需求IntelliJIDEA能快速编写高质量代码,通过编码辅助功能搜索可能的错误并在输入时获得改进建议,同时无缝了解编码、新语言功能等。为面向现代应用程序和微服务开发的领先框架和技术提供了一流支持,提供智能代码洞察、检查、即时代码导航和高度可自定义的运行配置。2 .架构可行该系统采用B/S架构,在这种架构中,客户端使用浏览器来访问应用程序,而服务器则管理和处理所有的后台逻辑,并提供数据和服务。主要逻辑都在服务器端实现,客户机并没有太多业务逻辑,因此系统维护和更新操作方便,也不需要在客户机上进行安装或升级;由于整个应用程序都运行在服务器端,因此数据和业务逻辑更加安全。3 .协同过滤算法可行基于物品的协同过滤算法是图书推荐系统中常见的算法,具有高效、准确等特点,可以很好的根据用户喜好进行自动推荐。4 .数据库可行后台数据库使用的是MySQL数据库管理系统,对数据进行存储和管理。MySQL是一种性能稳定的关系型数据库,支持多平台操作,且具有良好的扩展性和安全性。总而言之,基于协同过滤算法的图书推荐系统在技术方面是可行的。2.2.3操作可行性该系统设计用户友好的界面,使界面展示更加大方简洁,以便用户更容易操作系统,更加快速的找到通道。2.2.4法律可行性该系统的开发遵守相关的法律法规,对于用户个人隐私信息的收集和使用,根据法律法规进行严格的规范,如国家个人信息安全规范等,确保个人信息安全性,系统提供的所有服务均符合法律规定。2.3系统功能分析基于协同过滤算法的图书推荐系统根据实际使用分为两个角色设计,用户和管理员,两种角色涉及的功能不同。1.用户功能(1)注册登录:用于用户登录注册,登录成功后才可以看到首页所展示的数据和图书资讯等。(2)图书详情:点开书籍之后可以看到图书的作者、图书简述、图书封面、试读章节的数量、试读内容以及查看其他用户对图书的评论,在该页面也可以收藏书籍或者取消收藏。(3)个人中心:主要展示自己的基本信息和收藏的图书信息,用户也可以在该模块更新自己的信息。(4)收藏图书:用户在图书详情页点击收藏按钮,可以将图书收藏。(5)评论图书:用户发表自己对图书的观点看法,其他用户浏览图书时可以看到评论信息,给用户提供参考。(6)搜素图书:图书按不同类别分类,用户可以根据分类查询自己需要的图书;或者根据关键字进行模糊查询。2.管理员功能(1)图书管理:管理员可以查看图书信息;添加新图书;对已有的图书信息进行修改或者删除。(2)用户管理:管理员对用户信息的基本管理,修改已有用户的密码或者电话号码;新增用户;删除注销的用户。(3)图书分类:增添一些图书分类或者将己有的分类进行修改。(4)评论管理:查看用户对图书的评论内容,对评论及时反馈对一些不太友好的评论可以删除等。(5)章节管理:管理员对图书章节的管理。(6)图书资讯管理:管理员对图书资讯信息进行增加、修改、删除、查询等操作。3需求分析需求分析是系统分析的一个重要组成部分,它是确保软件系统能够满足用户需求的过程。通过需求分析,可以识别系统应该满足哪些需求,并将这些需求转化为具体的功能和性能指标,比如,业务流程和数据流图。1.1 业务流程该系统分为两个角色,用户和管理员处理的业务不同。用户根据用户名,密码登入前台页面,登录后首先到个人中心查看到自己的基本信息,随后进入到系统首页,图书推荐系统调用个性化推荐接口,展示图书推荐列表,在图书详情页面可以查看其他用户的评论或者阅读图书,如果喜欢该图书可以点击收藏。管理员进入系统后可以查看、修改、增加、删除用户和图书的相关信息,此外,系统会将统计的浏览数据、收藏数据、评论数据等以可视化图表的方式展示给管理员。业务流程图如图3.1所示。图3.1业务流程图3. 2系统范围系统范围就是系统涉及的业务和功能的描述,涵盖了系统的边界、功能需求等各个方面。(1)系统边界:包括输入和输出,在具体实现过程中要考虑输入输出数据来源可靠、有效;系统页面,系统边界也涉及到软件或系统的用户界面和交互方式,系统的用户界面要满足用户易用性的需求,同时能够实现用户期望的操作和功能,所以设计应该简洁明了。(2)功能需求:设计的具体功能可以满足用户和管理员的基本需求。4. 3数据流图用户和管理员都有权限操作该系统。用户在登录后可以查看图书的信息,收藏喜欢图书;管理员在登录后可以向图书列表中添加新的图书,添加完成后该系统将返回给管理员一个图书列表,管理员可以查看到新添加的信息;管理员也可以对用户信息执行增删改操作。具体得到的顶层数据流图如图3.2所示。图3.2顶层数据流图描述了基于协同过滤算法的图书系统比较详细的过程。用户管理是管理员和用户对用户信息和图书信息进行操作,所以会形成添加图书、添加用户、收藏图书、评价图书四个输出数据流;添加的图书会展示给用户,所以会形成展示图书的输入数据流流向用户管理加工单元;用户收藏图书后形成收藏列表,会根据系统自动生成推荐列表。由此得出的一级细化图如图3.3所示。从协同过滤算法的图书推荐系统的一级细化图中了解到数据的流向,搞清了数据处理的逻辑,但从一级细化图中仍然无法回答更详细的问题,因此,需要作进一步的分解细化。对用户管理这个加工单元进一步细化,用户管理细化为三个模块分别是用户验证、图书评论、个人中心,具体操作基本是依据个人中心展开的。由此得到的二级细化图如图3.4所示。图3.4二级细化图5. 4数据字典数据字典就是用来存放数据流图中的有用信息。根据数据流图将有效信息分类存储,便于管理员对数据加工处理,同时便于后期管理维护,数据字典包含:数据存储条目、数据流条目、数据项。(1)数据存储条目根据图3.4的二级细化图得到的以下数据存储条目:主要有用户信息、图书列表、收藏列表、图书推荐列表。具体内容如表3.1所示。表3.1数据存储条目编号名称简述组成Fl用户信息存放用户信息用户名编号+账号+密码+性别+电话号码+头像F2图书列表存放所有书籍信息书籍编号+1SBN号码+书名+作者+出版社+简述+书的封面+入库时间+图书类型+点击时间F3收藏列表存放收藏的图书信息编号+用户编号+关联表编号+表名+图书名称+图书封面+类型+备注F4图书推荐列表存放系统推荐的图书列表书籍编号+1SBN号码+书名+作者+出版社+简述+书的封面+入库时间+图书类型+点击时间+排名+点击数量(2)数据流条目数据流是系统内部数据的流向,根据图3.4的二级细化图得到的以下数据流条比表3.2数据流条目编号数据流名称来源去向说明1注册信息用户用户信息注册新的用户2提交数据用户用户信息将页面的数据提交到数据库,存到用户信息3用户登录用户用户验证页面输入的信息与数据库的数据表作比较,如果可以在数据库内找到相应的数据代表数据正确,登录成功,否则将进行重新登录4用户身份用户个人中心登录成功后可以到个人中心查看信息(管理员或者用户)5发布图书管理员图书管理发布新图书6展示图书信息图书管理个人中心管理员发布图书后可以在自己的页面看到发布的图书7管理图书管理员图书列表对图书进行增删改查续表3.2编号数据流名称来源去向说明8图书信息图书列表图书管理将图书信息反馈给系统9收藏图书个人中心收藏列表将用户收藏的图书存储在一个列表内10相似度计算收藏列表系统根据关键字计算相似度,进行推荐11生成系统图书推荐列表将相似度高的图书存储到推荐列表12展示图书推荐列表个人中心用户可以在首页看到系统推荐的图书信息13评论个人中心图书评论用户对图书评论14管理评论个人中心图书评论管理员可以对图书评论回复、删除等(3)数据项条目根据数据流条目和数据存储条目可以得到数据项条目:表3.3数据项条目数据项名称数据项含义别名数据类型长度取值范围取值含义UId用户编号用户名称整形4username用户名用户名称字符型20password登录验证密码字符型20Tab电话号码电话号码字符型11Sex性别性别字符型50男或女Picture用户的头像头像Longtetx255用于上传头像Id图书编号图书编号整形4bookname书籍名称书名字符型20续表3.3数据项名称数据项含义别名数据类型长度取值范围取值含义author书籍作者作者字符型20public书籍是哪个出版社字符型20出版社的Picture图书封面图片Longtext50ISBN书号标识ISBN字符型15type图书所属类图书类型字符型10型Info对书的内容简述字符型200进行简单介绍chapternum试读章节数章节数字符型8量chaptertit试读章节标章节标题字符型20Ie题content内容试读内容字符型255addtime时间添加时间Timestamp年月日Reply管理员对用回复字符型255户评论的回复Clicktime用户对图书点击时间Timestamp年月日的点击时间Clicknum用户对图书点击数量Timestamp年月日的点击数量discusscon用户对图书图书评论字符型255tent的评论(4)加工处理根据图3.4的二级细化图得到具体过程的处理说明:表3.4加工处理(3三3P1.1PIWl0003EEE00002EEE0000D1E00目迦雕!度迥幽密!向团瓯西3团团向曲图迎回函函函团团函幽幽3团团幽幽3团团回瓯03330P2.1ITrnrI000S1BBEP1.100三D200BE000aZEl00P1.300113B0B00P1.2000000000000国醺3团团团函函血3团团团回幽3团团函画3团团00E00P3.1I77团团瓯a三20D3(三E000000000000000(300国祖团团瓯团团酿向瓯宛的雪团向瓯团时团团团函a三团0000P1.20030国谢)团D40谢)团PLI团团丽P2.:LRm3用RIPI.3团团团团国题团D3团函3团P2.1团团的S1P1.3RE国而福用用加丽而1171国丽丽Pm酿4总体设计总体设计是软件系统开发过程中的一个重要阶段,它涉及到如何将需求分析的结果转化为系统的总体体系结构和实现方案。5.1 系统总体结构设计该系统主要分两个角色,用户的主要功能模块有登录注册、个人中心、收藏图书、图书详情、图书评论等;管理员的主要功能是可以修改自己的信息,管理用户的相关信息,管理图书的相关信息,对图书类型进行修改,删除,添加等,回复用户对图书的评论。基于协同过滤算法的图书推荐系统用户管理员个人中心图行评论个人信息管理员登录分类管理评论管理川 户 管 理图4.1功能模块设计图5.2 系统接口设计4. 2.1用户接口用户接口就是该系统和用户之间进行信息交互,获取后端信息的一个媒介。1 .用户登录接口(1)接口说明:本接口用来获取当前登录用户的信息(2)接口请求地址:/yonghu/Iogin(3)请求方式:POST(4)数据格式:JSON(5)请求参数:如表4.1所示。表4.1请求参数参数名类型是否必填参数说明UscrnameVarchar是用户名PasswordVarchar是用户密码2 .注册接口(1)接口说明:本接口用注册用户(2)接口请求地址:yonghuregister(3)请求方式:POST(4)数据格式:JSON(5)请求参数:如表4.2所示。表4.2请求参数参数名类型是否必填参数说明UsernameVarchar是用户名PasswordVarchar是用户密码SexVarchar是性别tabVarchar是电话号码touxiangIongtext是用户头像4. 2.2外部接口外部接口是指一个系统、应用或服务向外部提供的公共接口,用于与其他系统或第三方组件进行交互,外部接口可以通过网络协议实现远程调用。该系统使用HTTP协议连接外部接口,进行数据交换,通过JSON处理响应。4. 2.3内部接口1 .管理员添加用户信息接口(I)接口说明:添加用户,输入用户名、密码、电话号码、头像、性别(2)接口请求地址:adminyonghuadd(3)请求方式:POST(4)数据格式:JSON(5)请求参数:如表4.3所示。表4.3请求参数参数名类型是否必填参数说明UsernameVarchar是用户名PasswordVarchar是密码Sexvarchar否性别TabLongtext否电话号码头像Varchar否用户头像2 .管理员添加图书信息接口(1)接口说明:本接口用注册用户(2)接口请求地址:/admin/book/add(3)请求方式:POST(4)数据格式:JSoN(5)请求参数:如表4.4所示。表4.4请求参数参数名类型是否必填参数说明BooknamcVarchar是图书名称typevarchar是图书类型PictureLongtext否图书封面InfoVarchar否图书介绍Authorvarchar否作者Publishvarchar否出版社3 .管理员删除图书信息接口(1)接口说明:本接口用修改图书信息,获取图书编号删除该图书信息(2)接口请求地址:adminbookdelete(3)请求方式:POST(4)数据格式:JSON(5)请求参数:如表4.5所示。表4.5请求参数参数名类型是否必填参数说明IdVarchar是图书编号4 .管理员修改图书信息接口(1)接口说明:本接口用修改图书信息,获取到图书的详细信息进行修改(2)接口请求地址:adminbookUPdate(3)请求方式:POST(4)数据格式:JSe)N