基于DELPHI的图书管理系统_第1页
基于DELPHI的图书管理系统_第2页
基于DELPHI的图书管理系统_第3页
基于DELPHI的图书管理系统_第4页
基于DELPHI的图书管理系统_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2011届本科毕业论文

基于DELPHI的图书管理系统系院:计算机科学系姓名:学号:专业:计算机科学与技术年级:指导教师:职称:讲师完成日期:2011年5月摘要随着信息技术的不断成熟及普及,社会正快速向信息化社会前进,特别是在学校,信息数据的管理已经在学校图书馆中不断的体现出来。如果图书馆采取传统的手工方式对图书资料和图书借阅情况进行人工管理的话,由于信息数据的繁多,会使手工处理的工作量非常大,影响了图书馆整体的管理效率。因此,人们希望使用一个有效的图书管理系统,用以提高图书馆的日常工作效率。在这样的背景下,设计一个高效、方便、快捷的图书管理系统是非常有必要的。本文描述的是基于Delphi与SQLServer2000数据库平台基础上开发的一个典型信息管理系统(MIS)。在本文中,介绍了在Delphi环境下开发图书管理信息系统的过程,并针对图书管理的一般流程,选择以C/S结构模式来对系统进行设计。本文详细给出了该系统的整个系统分析、设计以及实现的过程,包括需求分析、数据库的分析与设计、功能模块的分析与设计,最后通过Delphi与SQL数据库的连接完成整个系统的设计与实现。通过对本系统的设计与开发,解决了学校图书管理事务中的常用基本问题以及相关统计工作,即系统登录、系统查询、图书管理、图书借还、权限设和用户管理功能的实现,并满足读者、图书馆工作人员以及管理人员三者的共同需求。提高了学校图书管理工作的效率,达到了系统设计目的和需求。关键词:图书馆;Delphi;功能;管理系统AbstractAsinformationtechnologycontinuestomatureandspread,societyisrapidlyadvancingtotheinformationsociety,especiallyinschools,informationanddatamanagementhasbeencontinuouslyintheschoollibraryreflected.Ifthelibrarytothetraditionalmanualmethodoflendinglibrarymaterialsandbooksformanualmanagementofthesituation,thenthedatarangeofinformationwillmaketheworkloadofmanualprocessingofverylarge,affectingtheefficiencyofoverallmanagementofthelibrary.Therefore,peoplewanttouseaneffectivelibrarymanagementsystemtoimprovetheefficiencyofthedailyworkoflibraries.Inthiscontext,thedesignofanefficient,convenientandefficientlibrarymanagementsystemisnecessary.DescribedinthispaperisbasedontheDelphiandSQLServer2000databaseplatformbasedonthedevelopmentofatypicalmanagementinformationsystem(MIS).Inthisarticle,describestheenvironmentintheDelphilibrarymanagementinformationsystemdevelopmentprocess,andthegeneralprocessforlibrarianstoselecttheC/Sstructuremodelofthesystemdesign.Thispapergivesthewholesystemofthesystemanalysis,designandimplementationprocess,includingneedsanalysis,databaseanalysisanddesign,analysisanddesignmodules,andfinallythroughtheDelphiandSQLdatabaseconnectivitytocompletethesystemdesignandimplementation.Onthesystemdesignanddevelopmenttoaddresstheschoollibrarymanagementservicesinthecommonbasicproblemsandrelatedstatistics,thesystemregistry,systeminquiry,librarymanagement,librarycirculation,permissionsetandusermanagementfunctionstoachieveandmeetthereaders,thelibrarystaffandmanagersthethreecommonneeds.Improvetheefficiencyofthemanagementoftheschoollibrary,tothesystemdesignobjectivesandrequirements.Keywords:Library;;Features;ManagementSystem目录1绪论 11.1课题背景、意义及系统开发环境 11.1.1课题的背景 11.1.2课题的意义 11.1.3课题的系统开发环境 11.2图书借阅管理的发展概况 21.3论文设计结构 22系统设计方案论证及需求分析 32.1系统设计方案论证 32.1.1结构模式的选择 32.1.2设计工具的选择 42.2系统设计需求分析 52.2.1数据分析 52.2.2事务分析 63系统概要设计及数据库设计 83.1系统概要设计 83.1.1系统描述与规划 83.1.2系统角色分析 93.2系统数据库设计 103.2.1数据库概念结构设计 103.2.2数据库逻辑结构设计 153.2.3数据库物理结构设计 164系统详细设计 194.1系统功能结构框架 194.2系统功能说明 204.2.1系统登录功能模块 204.2.2系统查询模块 214.2.3图书管理功能模块 254.2.4图书借还功能模块 274.2.5系统权限管理功能模块 294.2.6组用户管理功能模块 305系统程序设计与实现 315.1图书管理系统主界面 315.2DELPHI与SQL数据库连接 315.3系统登录模块实现 335.4系统查询模块实现 355.4.1图书信息查询模块实现 355.4.2用户信息查询模块实现 375.4.3借阅信息查询模块实现 385.5图书管理功能模块实现 405.5.1图书修改删除模块实现 405.5.2图书类别编辑模块实现 415.6图书借还模块实现 435.6.1图书借阅模块实现 435.6.2图书归还模块实现 465.7系统权限管理模块实现 475.8组用户管理模块实现 506系统功能测试 526.1测试概述 526.2测试目的 526.3测试过程及结果 526.3.1测试用例 526.3.2测试结论 537总结 547.1设计成果 547.2改进意见 547.3心得体会 55参考文献 56致谢 571绪论课题背景、意义及系统开发环境课题的背景在信息技术飞速发展的今天,信息的处理作为社会最主要资源,将成为战略资源引起人们广泛的关注。如何获取信息?图书是我们最好的获取信息的方式,但随着学校规模的不断扩大,图书数量的急剧增加,使得传统的图书管理工作日益繁重起来。面对庞大的信息量,使用传统手工的方法处理图书信息,不但过程繁琐复杂、执行效率低,并且易于出错。因此,传统的图书管理方法已经不能满足学校图书馆对图书信息的管理需要。通过对学校图书馆日常工作的调查得知,图书馆工作管理人员对图书借阅管理采用的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等也是用人工计算、手抄进行。面对这种情况,如果通过计算机来对学校图书馆进行图书管理,不但可以做到信息的规范管理和快速查询,而且能够减少管理方面的工作量。课题的意义通过图书管理系统的设计,我们可以做到信息的规范管理和快速查询,实现了图书管理的系统化、规范化和自动化,这样不仅减少了管理工作量,还提高了管理效率,降低了管理成本。随着科技的飞跃进步,对信息的管理也是越来越规范,越来越精确。不仅让信息合理规范的管理,同时也方便管理者方便的快速查询,提高了管理的效率。满足对图书信息进行图书入库、借阅登记、借阅查询、过期提示等这些日常业务的需要。通过系统的实用性、高效性,能够改变旧的图书管理模式,使对图书的管理、借阅、查询更加方便有效。课题的系统开发环境本课题是基于Delphi7.0及SQLServer2000数据库平台开发的图书管理系统,通过SQLServer2000数据库对图书信息快速有效的处理,达到解决图书馆内图书信息维护、读者管理以及读者对图书借阅、查询等问题的目的。图书借阅管理的发展概况图书借阅管理的发展分为四个阶段:第一阶段:采用传统手工方法处理图书信息,效率低、易出错、工作量大。第二阶段:第一代图书借阅管理系统(产生于20世纪60年代末期)。通过采用计算机的高速度、自动化来代替手工的巨大工作量,同时利用计算机的高准确性来避免手工的错误和误差等特点。来解决大型图书馆用手工来查找图书信息或统计借阅信息既费时费力又非常容易出差错的矛盾。第三阶段:第二代图书借阅管理系统(出现于20世纪70年代末期)。由于计算机的普及、计算机系统工具和数据库技术的快速发展,使得图书借阅管理系统的阶段发展成为了可能,但未能系统地考虑图书借阅的需求和理念。第四阶段:第三代图书管理系统(出现于20世纪90年代末期)。由于互联网技术的快速发展,使得第三代图书借阅管理系统的出现成为必然。第三代图书借阅管理系统的特点是从图书借阅管理的角度出发,用集中的数据库处理几乎所有与图书借阅相关的数据。采用报表生成工具、分析工具和信息的共享的方法,使得图书借阅管理人员得以摆脱繁重的日常工作,集中精力从战略的角度来考虑图书借阅规划和政策。论文设计结构本课题设计的目标是为了实现设定不同用户权限,对图书馆的的各种信息进行添加、删除、修改或查询操作,最终达到提高图书馆资源利用效率的目的。论文设计结构分为六个部分:第一部分:简述了图书管理系统这个课题的背景、意义及发展概况。第二部分:通过对系统的分析,选定设计方案、设计工具和技术概况;根据对系统数据和事务分析,明确了系统需要实现的功能。第三部分:详细描述了本系统中角色分析及数据库的设计情况,并给出了数据库设计的详细过程。第四部分:描述了系统的详细设计,通过对系统功能结构框架的设计,具体分析了系统各模块的具体功能及流程图设计。第五部分:主要讲解了系统数据库连接的实现和各主要功能模块程序设计的实现方法,同时提供了各模块的运行界面图片,以便直观了解系统的实现情况。第六部分:叙述了在本设计过程的设计成果、改进意见及心得体会。2系统设计方案论证及需求分析2.1系统设计方案论证结构模式的选择在进行信息管理系统设计前期,首先要通过分析进行确定所要设计的系统采用哪种结构模式,然后再进行具体的设计开发。目前主要的网络结构模式有两种:B/S结构模式和C/S结构模式。所谓B/S结构模式,是指“Browser/Server(浏览器/服务器)”结构模式。其工作原理是在前端采用IE浏览器将用户提交的操作信息向Web服务器发出HTTP请求,Web服务器通过ASP和一些中间组件访问后台数据库,并将操作结果以HTML页面的形式返回给前端浏览器。而C/S结构模式,是指“Client/Server(客户机/服务器)”结构模式。其工作原理是:客户机将前端应用程序(数据请求程序)发送命令给基于服务器数据库引擎,并将这些请求传送到服务器,再由后者负责从物理磁盘上读取数据并加以处理,最后返回给前端应用程序。服务器负责数据库处理工作,而工作站负责用户界面处理工作,每个客户服务器提供一个数据库通信接口,该数据库通信接口运行于前端。C/S工作流程图如图2-1所示。服务器数据库服务器数据库命令数据工作站的前端应用程序数据库接口数据库通信接口服务器端数据库引擎命令数据图2-1两层客户机/服务器技术在结构、开发环境、应用平台的开发方式上都已经非常成熟了,这是相对B/S结构模式最大的一个优势[1]。B/S与C/S的比较与选取:(1)C/S结构(客户机/服务器模式)分为客户机和服务器两层,通过把应用软件的计算和数据合理地分配在客户机和服务器两端,计算机工作任务分别由客户端和服务器端来共同完成,可以有效地降低网络通信量和服务器运算量,有利于充分合理利用系统资源。而B/S结构是将数据全部存储在服务器端,其服务器端开销过大。(2)C/S结构在数据库应用中,数据的储存管理功能是由服务器程序和客户应用程序分别独立进行的,前台应用可以违反的规则,并且通常把那些不同的运行数据,在服务器程序中不集中实现。在客户机/服务器架构的应用中,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理。而B/S结构虽然也是采用C/S结构的基本思想,并使用浏览器作为系统前端,实现了我们理想中的瘦客户。但是系统的工作量并没有真正减少,而是将部分客户端的工作量交付给服务器端来完成。因此,考虑到技术风险的问题,本系统决定采用的是C/S结构模式。设计工具的选择设计工具的选择对一个系统的开发来说是十分重要的,既决定开发人员的工作效率,也决定了能否给用户提供一个友好的界面,还决定着今后是否能方便地对系统进行维护、改善及扩充。(1)前台开发技术的选择基于该系统的设计要求,前台开发技术选用Delphi7.0。Delphi是基于ObjectPascal语言的面向对象的开发工具,提供了大量的VCL组建,具有强大的数据库开发和编程能力[2]。使用其集成开发环境可以快速地建立应用程序,即可开发本地类型的软件,又可开发客户/服务器类型的程序,并提供了丰富的数据库管理工具,在开发数据库应用程序方面具有独特的优势。Delphi的主要特点体现在以下几个方面。①Delphi为32位应用程序,因此其性能就像装上了涡轮引擎一样强劲有力,使用它可开发出功能强大的应用程序。②Delphi的编译器是目前世界上最快的32位本地代码(源代码)编译器。使用这种编译器产生的运行文件EXE是独立的,不需要链接运行时的解释器DLL。③Delphi可充分发挥Windows95/98/2000/XP和WindowsNT的强大功能。④Delphi提供了多种32位可视组件库。⑤Delphi是一面向对象的程序设计语言,因此可做到可视窗体的继承。⑥Delphi采用3层数据管理模式(数据层、对象层、应用程序层),把诸如数据模型、业务规则、窗体、对象等集中存储在对象存储库中。(2)后台数据库的选择现有的数据库有大型的SQLServer,Oracle和小型的Access,FoxPro,而本系统采用的是微软公司的SQLServer2000。首先,SQLServer与NT服务器紧密集成,而NT服务器具有很好的安全性,能够排除所有未经授权的非法用户的访问,确保了SQLServer服务器的安全性[3],符合系统对安全性的要求;其次,用户可以使用Web浏览器查询存储在SQLServer数据库中的数据,符合系统远程访问数据库的要求。最后,容量庞大,每个数据库中可创建多达上万个数据表,数据表中的记录的行数只受服务器硬盘空间的限制,符合系统的考题数目较多的要求。2.2系统设计需求分析数据分析数据分析是数据库设计的首要步骤,数据分析过程同数据库的逻辑结构和物理结构密切相关,需要确定、编制、组织、筛选应用程序所使用的信息。用分析和分类的方式来捕获所有信息,使得某一模型可以转换成数据库结构。本系统所涉及的数据分析需求包括:数据的录入和处理,数据的安全性。(1)数据的录入和处理①图书信息的数据录入数据录入:管理员需要输入图书编号、类别编号、类别名称、书名、书号、作者、出版社、出版日期、数量等信息。数据处理:通过信息筛选,实现用户对图书信息的查询和管理员对图书信息的查询、修改、删除、添加操作。②读者基本信息数据录入:读者需要输入借书证编号、组名、姓名、性别、证件号等信息。数据处理:通过信息筛选,实现用户对读者基本信息的查询和管理员对读者信息的查询、修改、删除、添加操作。③图书借阅信息数据录入:读者需要输入图书编号、借书证编号、书名、作者、类别、出版社、借书日期等信息。数据处理:通过信息筛选,实现用户对图书的借阅和管理员对图书借阅信息的查询、修改、删除、添加操作。④图书归还信息数据录入:读者需要输入借书证号、图书编号、书名、读者姓名、还书日期等信息。数据处理:通过信息筛选,实现用户对图书的归还和管理员对图书归还信息的查询、修改、删除、添加操作。⑤超时罚款信息数据录入:读者通过登录,输入借书证编号信息。数据处理:通过信息筛选,显示读者借书证编号、读者姓名、图书编号、图书名称、罚款金额信息,实现管理员对读者超时罚款信息的查询、修改、删除、添加操作。⑥管理员信息数据录入:一般管理员设置用户信息和图书信息;超级管理员设置用户权限、组名、组编号等信息。数据处理:通过信息筛选,实现一般管理员对用户信息、图书信息的管理和超级管理员对组用户的组名、权限的设置及用户密码的管理。(2)数据的安全性由于本系统设计是对图书馆的图书、用户、管理员信息进行处理,因此需要保证数据的可靠性和安全性。所以,在系统设计的过程中,通过对登录权限设置和采用手动或定时对数据库采取备份的方法,使由于数据破坏所产生的损失降到最低,便于数据的恢复,达到数据的安全、可靠。事务分析学校图书管理系统的开发是为了实现数据存储的安全、可靠;信息分类清晰、准确;强大的查询功能,保证数据查询的灵活性;对图书借阅和归还过程的全程数据信息跟踪;提供灵活、方便的权限设置功能,使整个系统的管理分工明确。于是,对图书管理系统的事务分析是必要的。本系统所涉及的事务分析需求有如下。(1)读者信息管理功能要求①读者通过选择查询方式和输入关键字,可以查询读者信息。②管理员可以对读者信息进行添加、修改、删除操作。(2)图书信息管理功能要求①读者通过选择查询方式和输入关键字,可以查询图书信息。②管理员可以对图书信息进行查询和对图书信息进行添加、修改、删除操作。(3)借阅信息管理功能要求①读者通过登录系统,可以查询个人借阅信息。②管理员可以对读者借阅信息进行查询和对借阅信息进行添加、修改、删除操作。(4)归还信息管理功能要求①读者通过登录系统,可以查询个人归还信息。②管理员可以对读者归还信息进行查询和对归还信息进行添加、修改、删除操作。(5)罚款信息管理功能要求①读者通过登录系统,可以查询个人罚款信息。②管理员可以对读者罚款信息进行查询和对罚款信息进行添加、修改、删除操作。(6)管理员信息管理功能要求①一般管理员可以创建用户信息、图书信息,并对用户的借阅信息、归还信息、罚款信息进行添加、修改、删除操作。②超级管理员可以对一般管理员信息、组用户的分类、权限、用户密码管理,同时具有一般管理员所具备的一切权限。3系统概要设计及数据库设计3.1系统概要设计系统描述与规划(1)系统描述图书管理系统是一个典型的信息管理系统(MIS)。其系统设计的主要目的是为了满足用户对图书进行借阅、归还、查询和管理员对用户、图书的管理。通过本系统,用户能够在一定的权限范围内对图书进行借阅、归还操作和对图书信息、读者信息、借阅信息进行查询操作;同时,管理员能够简捷、方便的对图书信息、读者信息和借阅信息进行管理操作。(2)系统规划对于一个信息管理系统来说,规划工作是十分必要的,规划的好坏将直接影响整个图书管理系统的成功与否。通过进行系统规划,来最终确定信息管理系统的设计思路和开发方向。由于图书管理系统对图书馆工作人员和管理人员的水平、数据采集、管理活动和借阅者的计算机素质的要求,所以把图书管理系统设计成为一个综合性的、能够适应所有人员方便、快捷的进行操作的图书管理系统。因此,设计和使用一个综合的数据库来满足图书管理系统的设计要求,是非常有必要的。本系统按照用户权限和实现功能的不同分为了两部分:外部读者对数据库的查询访问和内部管理人员对数据记录的管理维护。每一部分中包含各自实现的各项功能,对每一项功能的实现,将按照窗体设计以及运行情况的顺序逐一进行设计。但是,这两部分都调用的是同一数据库,只不过内部管理人员能实现所有管理功能,而外部读者访问数据库时,一些功能被屏蔽。系统的功能规划如下:①设计不同用户的操作权限。②对所有用户开放的图书查询、读者查询以及借阅查询。③根据借阅情况对数据库进行操作。④根据还书情况对数据库进行操作。⑤根据续借情况对数据库进行操作。⑥维护读者、图书以及管理员信息。系统角色分析对于一个管理系统来说,系统角色的创建与分析是非常重要的,其关系到系统设计中的对象。该系统共有三类角色,分别是:高级管理员(整个系统的最高管理者,具有最高权限)、一般管理员(对图书和读者进行管理)和读者(主要是学生和老师,可以对图书进行借阅和信息查询)。用户类别总图如图3-1所示。图书管理系统图书管理系统用户超级管理员一般管理员图3-1用户类别总图读者:读者是整个管理系统中权限最低的用户,只能进行图书借阅、续借、归还和信息查询的操作,无法进行其它的操作。读者权限用例图如图3-2所示。信息查询信息查询图书借阅、归还、续借读者退出系统图3-2读者权限用例图一般管理员:一般管理员的权限级别比读者高出一级,他们可以对图书和读者信息进行各种操作,如对图书进行修改、删除、添加操作;可以对读者的借阅信息和个人的基本信息进行管理。一般管理员权限用例图如图3-3所示。一般管理员一般管理员读者管理图书管理借阅管理信息查询退出系统图3-3一般管理员权限用例图超级管理员:高级管理员是该系统中最高级别的管理员,他们能对该系统的所有功能模块进行操作,其中包括可以删除、修改一般管理员的信息;修改各人员的权限以及登陆密码等。超级管理员权限用例图如图3-4所示。超级管理员超级管理员读者管理图书管理借阅管理信息查询设置管理员图3-4超级管理员权限用例图系统数据库设计数据库概念结构设计概念结构设计是对用户要求描述的现实世界进行分类、聚集和概括,并建立一种抽象的数据模型。它独立于任何一种具体的数据模型,因而也不能为任何一个具体的DBMS所支持。概念结构是独立于实际数据模型的信息结构,必须将其转化为逻辑结构后才能进行数据库应用的设计。也就是要将概念上的结构转化为数据库系统所支持的实际数据模型[4]。它所涉及的是数据库所有对象的逻辑关系,而不是它们的物理情况,是数据库管理员概念下的数据库。数据库概念结构的设计分为两个步骤:第一步先明确现实世界各部门所含的各种实体及其属性、实体间的联系以及对信息的制约条件等,从而给出各部门内所用信息的局部描述(在数据库中称为用户的局部视图);第二步再将前面得到的多个用户的局部视图集成为一个全局视图,即用户要描述的现实世界的概念数据模型。(1)实体集及属性图书管理系统中要有图书、读者基本信息、图书借阅信息、图书归还信息、管理员信息等,因此可以通过对图书管理系统创建信息实体及属性,用来保存每个详细信息,建立它们之间的关系,进而实现逻辑结构功能。图书管理信息系统可以划分的实体有:图书类别信息实体、读者信息实体、图书信息实体、罚款信息实体、借阅记录信息实体、归还记录信息实体、管理员信息实体。系统设计所描述的实体如下。①图书类别实体如图3-5所示。类别类别图书类别图书类别类名图3-5图书类别实体及其属性②读者信息实体如图3-6所示。最多最多借书本书借书证编号最长借书天数读者信息组别读者证件号性别姓名图3-6读者信息实体及其属性③图书信息实体如图3-7所示。出版日期出版日期图书信息定价总数量出版社图书编号图书作者剩下数量图书类别是否被借图3-7图书信息实体及其属性④罚款信息实体如图3-8所示。罚款金额罚款金额罚款信息图书编号图书名称读者姓名图书类别借书证编号借书日期到期日期图3-8罚款信息实体及其属性⑤图书借阅信息实体如图3-9所示。是否被借是否被借借阅信息借书证编号借书日期借书数量图书编号到期日期图3-9图书借阅信息实体及其属性⑥图书归还信息实体如图3-10所示。是否归还是否归还归还信息借书证编号借书日期借书数量图书编号到期日期图3-10图书归还信息实体及其属性⑦管理员信息实体图如图3-11所示。管理员信息管理员信息管理员姓名管理员编号管理员密码管理员权限图3-11管理员信息实体及其属性(2)联系集E-R图整体实体联系E-R图如图3-12所示。图3-12实体联系E-R图(3)数据流图数据流图是描绘信息流和数据从输入移动到输出的过程中所经受的变换,并以图形方式来表达系统的逻辑功能、流向和变换过程。本系统由三层数据流图来实现。其中顶层数据流图指定系统范围;中层数据流图是对父层数据流图中某个加工进行细化;底层数据流图是指其加工不能再分解的数据流图。顶层数据流图如图3-13所示。图3-13顶层数据流图中层数据流图如图3-14所示。图3-14中层数据流图底层数据流图如图3-15所示。图3-15底层数据流图数据库逻辑结构设计为了能够建立起最终的物理系统,还需要将概念结构进一步转化为某一DBMS所支持的数据模型,然后根据逻辑设计的准则、数据的语义约束、规范化理论等对数据模型进行适当的调整和优化,形成合理的全局逻辑结构,并设计出用户子模式。这就是数据库逻辑设计所要完成的任务。数据库逻辑结构的设计分为两个步骤:第一,将概念设计所得的E-R图转换为关系模型;第二,对关系模型进行优化。(1)数据库关系图所谓数据库关系图,并非是指描述数据库之间关系的图,而是指某数据库的表(视图)之间的关系图,即数据库关系图描述的是表与表之间的关系,最后通过表中主键和外键实现。系统数据库设计关系图如图3-16所示。图3-16数据库关系图(2)数据库关系模式在数据库设计中,关系模式是表示对数据库中各个关系的关系名、属性名、域名、属性向域的映像的描述。系统数据库设计关系模式如下。①权限(权限,姓名)②图书类别(类别,类名)③登录用户(账号,姓名,密码,权限)④组用户(组号,组名,最大天数,最大数量)⑤用户(用户账号,姓名,性别,组号,证件号码)⑥借阅信息(用户账号,图书编号,借书日期,到期日期,数量,还书日期)⑦图书信息(图书编号,类别,书名,作者,出版日期,出版社,定价,总数量,剩下数量,备注)数据库物理结构设计数据库物理设计是根据数据库的逻辑结构来选定RDBMS,来设计和实施数据库的存储结构、存取方式。将一个给定逻辑结构实施到具体的环境中时,逻辑数据模型要选取一个具体的工作环境,这个工作环境提供了数据存储结构与存取方法。数据库的物理设计通常分为两步:第一,确定数据库的物理结构,第二,评价实施空间效率和时间效率。(1)数据库索引设计①对“图书类别信息”表在“类别”属性列上建立聚集索引,在“类名”属性列上建立非聚集索引。②对“借阅信息”表在“用户帐号”属性列上建立聚集索引,在“图书编号”、“借书日期”、“到期日期”、“数量”、“还书日期”属性列上建立非聚集索引。③对“图书信息”表在“图书编号”属性列上建立聚集索引,在“类别”、“书名”、“作者”、“出版日期”、“出版社”、“定价”、“总数量”、“剩下数量”、“备注”属性列上建立非聚集索引。④对“权限信息”表在“权限”属性列上建立聚集索引,在“姓名”属性列上建立非聚集索引。⑤对“登录用户信息”表在“帐号”属性列上建立聚集索引,在“姓名”、“密码”、“权限”属性列上建立非聚集索引。⑥对“组用户信息”表在“组号”属性列上建立聚集所以,在“组名”、“最大天数”、“最大数量”属性列上建立非聚集索引。⑦对“用户信息”表在“用户帐号”属性列列上建立聚集索引,在“姓名”、“性别”、“组号”、“证件号码”属性列上建立非聚集索引。(2)数据库信息表设计通过对图书管理系统的数据库索引设计,能够实现整个管理系统的数据库信息表设计。本系统中数据库的信息表有:图书类别信息表、图书借阅信息表、图书信息表、权限信息表、登录用户信息表、组用户信息表、用户信息表等。图书类别信息表,如表3-1所示。表3-1图书类别信息表字段名称字段类型是否主键字段大小是否为空类别nvarchar是4否类名nvarchar否10否图书借阅信息表,如表3-2所示。表3-2图书借阅信息表字段名称字段类型是否主键字段大小是否为空用户帐号nvarchar是10否图书编号nvarchar是10否借书日期Smalldatetime否4是到期日期Smalldatetime否4是数量smallint否2是还书日期Smalldatetime否4是图书信息表,如表3-3所示。表3-3图书信息表字段名称字段类型是否主键字段大小是否为空图书编号nvarchar是10否类别nvarchar否4是书名nvarchar否20是作者nvarchar否10是出版日期Smalldatetime否4是出版社nvarchar否20是定价smallint否2是总数量smallint否2是剩下数量smallint否2是备注ntext否16是用户权限信息表,如表3-4所示。表3-4用户权限信息表字段名称字段类型是否主键字段大小是否为空权限nvarchar是2否姓名nvarchar否10是登录用户信息表,如表3-5所示。表3-5登录用户信息表字段名称字段类型是否主键字段大小是否为空账号nvarchar是10否姓名nvarchar否10否密码nvarchar否15否权限nvarchar否2是组用户信息表,如表3-6所示。表3-6组用户信息表字段名称字段类型是否主键字段大小是否为空组号nvarchar是2否组名nvarchar否10是最大天数smallint否2是最大数量smallint否2是用户信息表,如表3-7所示。表3-7用户信息表字段名称字段类型是否主键字段大小是否为空用户账号nvarchar是10否姓名nvarchar否10是性别nvarchar否2是组号nvarchar否2是证件号码nvarchar否20是4系统详细设计4.1系统功能结构框架系统功能结构框架图如图4-1所示。图4-1系统功能结构框架图根据功能结构设计,该系统分为六个子系统,其各子系统功能如下。①登录子系统可以实现用户登录查询,以及图书管理员和超级管理员登录管理。②系统查询子系统该子系统分三类查询模块:图书信息查询模块、用户信息查询模块、借阅信息查询模块。图书信息查询,可以按书号、书名、作者、出版社、图书类别直接查询(可选模糊查询);用户信息查询,可以按借书证号、姓名直接查询(可选模糊查询);借阅信息查询,可以按借书证号、姓名、已到期直接查询(可选模糊查询)。多条件查询可以按读者的要求选取所需要的图书。③图书管理子系统该子系统分图书修改删除模块和图书类别编辑模块,由图书管理员管理图书(包括图书信息的修改,新图书的增加,旧图书的删除)以及图书分类,实现最图书信息的管理。④图书借还子系统主要由图书管理员进行借书还书记录的登记和清除。⑤系统权限管理子系统主要实现对用户、一般管理员和超级管理员的权限及用户名、密码的修改、删除等功能。⑥组用户管理子系统主要实现管理员对用户组的组编号、组名称,可借阅图书的最多数及借阅时间等功能。系统功能说明系统登录功能模块功能说明:用户必须通过该模块登录用户姓名和密码信息,判断用户是否是有效用户,如果是有效用户则可以进入系统,并进行各种操作。反之,无权进入系统。功能特性:系统通过该模块获取登录权限,因此对于系统的保密性来说,是至关重要的。系统登录功能模块流程图如图4-2所示。NN开始系统登录判断用户姓名和密码是否正确Y登陆到主界面重新输入用户姓名和密码图4-2系统登录功能模块流程图系统查询模块为了让读者及管理员对图书馆中信息更为了解,开发和设计系统查询模块是有必要的,该模块的功能是为了让所有用户都能方便快捷的对个人信息、图书信息和借阅情况有所了解。该模块包括对图书信息的查询,读者信息的查询以及对读者借阅信息的查询。(1)图书信息查询模块功能说明:图书信息查询模块有助于读者了解图书馆中图书的情况,以便读者可以有针对性的借阅图书,可以更好的满足读者的要求,并且提高了图书管理人员的工作效率,保证图书借阅过程顺利进行的目的。图书信息查询模块可以按照图书馆中所有图书的分布,进而得到图书书号、图书书名、图书作者、出版社、图书类别、图书价格等基本信息。图书信息查询模块实现的功能主要包括:①按照图书编号进行查询选择查询方式,通过输入查询关键字,显示查询结果。②按照图书名称进行查询选择查询方式,通过输入查询关键字,显示查询结果。③按照图书作者进行查询选择查询方式,通过输入查询关键字,显示查询结果。④按照图书出版社进行查询选择查询方式,通过输入查询关键字,显示查询结果。⑤按照图书类别进行查询选择查询方式,通过输入查询关键字,显示查询结果。功能特性:图书信息查询模块是建立在图书基本信息管理的基础上,所有的操作和控制都是围绕它进行。它的目的是保证整个图书管理系统中图书信息对读者的透明度和存书可见性。主要体现在:①读者可以随时对图书馆图书情况进行查询,以方便读者的借阅。②管理员可以对图书馆中的图书情况进行查询和维护。图书信息查询功能模块流程图如图4-3所示。结束开始结束开始图书信息查询判断所查询的图书信息是否存在NY显示查询结果选择查询方式,输入查询关键字图4-3图书信息查询功能模块流程图(2)用户信息查询模块功能说明:用户信息查询模块有助于读者对自身情况进行检阅,以便读者了解自己的证件类型和阅读权限等一些基本信息。用户信息查询模块可以按显示图书馆中所有读者的信息(但是不能进行修改),读者通过按借书证号和姓名等查询方式,能够轻松的查询到自己的基本信息,当然同时也是方便管理员对读者的信息随时进行监控。用户信息查询模块,同样也可以通过读者编号、读者姓名、权限等一些模糊查询方式,对指定用户信息进行查询,进而得到用户借书证号、姓名、性别、组别、最多本书、最长天数和证件号码信息。用户信息查询模块实现的功能主要包括:①按照读者借书证号进行查询选择查询方式,通过输入查询关键字,显示查询结果。②按照读者姓名进行查询选择查询方式,通过输入查询关键字,显示查询结果。功能特性:用户信息查询模块是建立在读者基本信息管理基础上的模块,所有的操作和控制都是围绕它进行。它的目的是保证整个图书管理系统中读者信息的透明度。主要体现在:读者和管理员可以对图书馆用户情况进行查询,以方便读者对其他用户信息的了解和管理员对用户的管理。用户信息查询功能模块流程图如图4-4所示。结束用户信息结束用户信息查询判断所查询的读者信息是否存在NY显示查询结果选择查询方式,输入查询关键字开始图4-4用户信息查询功能模块流程图(3)借阅信息查询模块功能说明:借阅信息查询模块有助于读者对自身借阅情况进行检阅,以便读者了解自己借阅图书等一些基本信息。借阅信息查询模块可以按显示图书馆中所有读者的借阅信息(但是不能进行修改),读者按照借书证号、姓名等一些查询方式,可以轻松的查询到自己的借阅信息,当然同时也是方便管理员对读者的借阅信息随时进行监控。读者信息查询模块实现的功能主要包括:①按照读者借书证号进行查询选择查询条件,并输入查询值,显示查询后结果。②按照读者姓名进行查询选择查询条件,并输入查询值,显示查询后结果。③按照图书到期情况查询选择查询条件,并输入查询值,显示查询后结果。功能特性:读者借阅信息查询模块是建立在读者借阅管理基础上的模块,所有的操作和控制都是围绕它进行。其目的是保证图书管理系统中读者借阅信息的透明度。主要体现:读者和管理员都可以对图书馆中借阅情况进行查询,既方便管理人员的管理,也让读者对自己借阅情况的有所了解。借阅信息查询功能模块流程图如图4-5所示。开始开始借阅信息查询判断所查询的借阅信息是否存在NY显示查询结果结束选择查询方式,输入查询关键字图4-5借阅信息查询功能模块流程图图书管理功能模块(1)图书信息管理模块功能说明:图书信息管理模块有助于图书管理人员对图书馆中图书信息的修改、删除和图书添加等操作进行管理,以达到图书信息的正确性和准确性,是读者查询图书信息方便快捷,以达到保证图书借阅过程顺利进行和图书信息透明性的目的。图书信息管理功能模块流程图如图4-6所示。YYY图书信息管理添加图书删除图书信息图书是否存在删除成功结束重新填写YNYN是否删除NYYN修改图书信息图书是否存在修改图书信息是否修改修改成功NN添加成功图书是否存在是否添加开始图4-6图书信息管理流程图(2)图书类别编辑模块功能说明:图书类别编辑模块的功能体现在可以对图书管里的图书信息进行合理而有效的分类管理,帮助图书管理人员对图书分类录入操作。图书类型设置模块主要包括:①添加图书类别基本信息;②修改图书类别基本信息;③删除图书类别基本信息。图书类别编辑功能模块流程图如图4-7所示。YYY图书类别编辑添加图书类别删除图书类别图书类别是否存在删除成功结束重新填写YNYN是否删除NYYN修改图书类别图书类别是否存在修改图书类别信息是否修改修改成功NN添加成功是否添加开始图书类别否存在图4-7图书类别编辑功能模块流程图图书借还功能模块(1)图书借阅功能模块功能说明:该模块的主要功能是完成读者对图书的借阅,建立在图书信息管理和读者信息管理的基础上,通过对读者身份验证、借阅信息查询和图书信息查询三个部分来体现读者到图书馆借书的流程。图书借阅功能模块流程图如图4-8所示。开始开始图书借阅检索图书信息判断读者是否有权借书显示读者信息检索读者信息显示图书信息判断图书是否借出记录借书信息取书NY结束NNYY判断读者是否存在图4-8图书借阅功能模块流程图(2)图书归还功能模块功能说明:本模块主要用于读者对图书的还书,其中涉及读者信息,借阅信息两个部分。确认读者,核对借阅信息,可归还图书。归还功能模块流程图如图4-9所示。开始开始归还图书判断读者是否存在判断图书是否超期检索读者信息超期罚款还书结束NNYY显示读者信息检索图书信息判断读者是否未还图书显示图书借阅信息YN图4-9图书归还功能模块流程图系统权限管理功能模块功能说明:本模块实现了以分权限的形式对用户进行管理的。在用户管理的基础上,通过为不同用户赋予不同的权限,从而实现不同权限用户进行不同的操作策略。实现了完整的体系的管理和控制,保证整个图书管理系统的安全性和保密性。系统权限管理功能模块流程图如图4-10所示。N结束添加用户权限YY系统权限管理重新填写用户权限是否存在YNN结束添加用户权限YY系统权限管理重新填写用户权限是否存在YN是否添加YNNNN修改用户权限信息开始修改用户权限删除用户权限用户权限是否存在用户权限是否存在是否删除是否修改删除成功修改成功YY添加成功图4-10系统权限管理功能模块流程图组用户管理功能模块功能说明:本模块主要对用户进行分类,并且对组用户进行删除、添加和修改管理。通过对用户组的管理,可以实现不同用户只能借阅不同数量及天数的图书,方便管理员对不同用户的管理。组用户管理功能模块流程图如图4-11所示。开始开始组用户管理添加组用户删除组用户删除成功结束重新填写YNYN是否删除NYYN修改组用户组用户是否存在修改组用户信息是否修改修改成功NNYY添加成功组用户是否存在是否添加组用户是否存在图4-11组用户管理功能模块流程图5系统程序设计与实现5.1图书管理系统主界面图书管理系统主界面如图5-1所示。图5-1图书管理系统主界面5.2DELPHI与SQL数据库连接(1)DELPHI访问数据库的方式ADO.NET是DELPHI访问数据库的主要方式,其数据存取API的三种数据访问方式如下:①通过ODBC(开放数据库互连)连接,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。②通过OLEDB连接,它使用组件对象模型(COM)接口,与ODBC不同的是,OLEDB假定数据源使用的不是SQL查询处理器。③使用SQLConnection直接与SQLServer2000相连。(2)DELPHI连接数据库的方法与实现①连接数据库的方法本系统采用OLEDB连接,Delphi中使用ADOConnection类对SQLServer2000进行连接,这个类的构造函数ConnectionString接受了多个可选参数,是数据库连接字符串,该字符串用于定义正在连接的数据库的类型、位置以及其他信息。字符串信息中Provider特性,表示指定SQLServer数据库的驱动类型;PersistSecurityInfo特性,表示指定ADO在数据库连接成功后是否保存密码信息;IntegratedSecurity特性,表示指定用SQLSERVER登录方式的有效帐户名和密码,当设置为IntegratedSecurity=SSPI,表明连接语句前面的USEID和PassWord是不起作用的,即采用Windows身份验证模式;InitialCatalog特性,表示指定连接的SQLServer数据库的名称。②数据库连接实现代码beginConnect:=TADOConnection.Create(nil);onString:='Provider=SQLOLEDB;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=Book_Data';Connect.LoginPrompt:=false;exit;tryConnect.Connected:=true;exceptADOCommand:=TADOCommand.Create(nil);ADOCommand.ConnectionString:='Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False';DataPath:=ExtractFilePath(Application.ExeName);s:='EXECsp_attach_db@dbname=N'+char(39)+'Book_Data'+char(39)+','+'@filename1=N'+char(39)+DataPath+'Book_Data.MDF'+char(39)+','+'@filename2=N'+char(39)+DataPath+'Book_Data.LDF'+char(39);ADOCommand.CommandText:=s;ADOCommand.Execute();exit;end;系统登录模块实现系统登陆界面如图5-2所示。图5-2图书管理系统登录界面系统登录验证功能实现代码如下:BeginDLYH_Q:=TADOQuery.Create(nil);DLYH_Q.Connection:=Connect;DLYH_Q.SQL.Clear;DLYH_Q.SQL.Add('select密码,权限from登录用户');DLYH_Q.SQL.Add('where姓名=:姓名');DLYH_Q.Parameters.ParamByName('姓名').Value:=XM_CB.Text;DLYH_Q.Open;ecordCount>0thenbeginPassword:=DLYH_Q.FieldValues['密码'];ifMM_E.Text=PasswordthenbeginUserName:=XM_CB.Text;self.Hide;QX:=DLYH_Q.FieldValues['权限'];withTMain_F.Create(nil)dotryShowModal;finallyfree;end;end;end代码实现说明:当用户进入登录页面输入用户姓名及密码后,系统会将其信息反馈到数据库中进行查询,判断用户所输入的姓名及密码信息是否在现有数据库中存在。如果存在,再判断其用户的权限是普通用户还是一般管理员或者超级管理员,然后进入相应权限所允许的操作界面。实现登录次数判断的代码如下:beginLogintimes:=Logintimes+1;ifLogintimes<3thenbeginMessageBox(handle,pchar('密码第'+IntToStr(Logintimes)+'次错误,请重新输入!'),'密码错误',MB_OKORMB_ICONERROR);MM_E.Text:='';MM_E.SetFocus;end;elsebeginMessageBox(handle,'密码三次错误请关闭!','密码错误',MB_ICONERROR);application.Terminate;exit;end;DLYH_Q.Close;FreeAndNil(DLYH_Q);end;代码实现说明:当用户在登录界面输入登录信息时,当数据提交后,系统会将提交信息反馈到数据库,进行数据查询。如果第一次登录信息不存在,数据库会记录一次,错误参数累加,当三次出错,系统自动关闭。系统查询模块实现图书信息查询模块实现图书信息查询界面如图5-3所示。图5-3图书信息查询界面图书信息查询模块包含:按书号、按书名、按作者、按出版社、按类别等信息查询。按书号信息查询功能实现的代码如下:Begin//按书号查询ifASH_FRBtn.CheckedthenifMHCX_FCB.CheckedthenbeginTSXX_Q.Close;TSXX_Q.SQL.Clear;TSXX_Q.SQL.Add('Select图书编号,书名,作者,类名,出版社,定价From图书信息A,图书类别B');TSXX_Q.SQL.Add('Where(A.图书编号Like:图书编号)andA.类别=B.类别');TSXX_Q.SQL.Add('Where(A.图书编号=:图书编号)andA.类别=B.类别');TSXX_Q.Parameters.ParamByName('图书编号').Value:=GJZ_CB.Text;TSJG_DS.DataSet:=TSXX_Q;TSJG_DG.Columns[0].FieldName:='图书编号';TSJG_DG.Columns[1].FieldName:='书名';TSJG_DG.Columns[2].FieldName:='作者';TSJG_DG.Columns[3].FieldName:='类名';TSJG_DG.Columns[4].FieldName:='出版社';TSJG_DG.Columns[5].FieldName:='定价';TSXX_Q.Open;TSXX_Q.Close;exit;end;end同理,按书名、按作者、按出版社、按类别信息查询的实现如下:①按书名查询的实现:首先是否被调用,再通过TSXX_Q.SQL.Add('Where(A.书名Like:书名)andA.类别=B.类别')数据库参数查询,最后通过查询。②按作者查询的实现:首先判断参数是否被调用,再通过TSXX_Q.SQL.Add('Where(A.作者Like:作者)andA.类别=B.类别')数据库参数查询,最后通过查询。③按出版社查询的实现:首先调用,再通过TSXX_Q.SQL.Add('Where(A.出版社Like:出版社)andA.类别=B.类别')数据库参数查询,最后通过数据记录实现查询。④按类别查询的实现:首先被调用,再通过TSXX_Q.SQL.Add('Where(B.类名Like:类名)andA.类别=B.类别')数据库参数查询,最后通过查询。用户信息查询模块实现用户信息查询界面如图5-4所示。图5-4用户信息查询界面用户信息查询模块包含:按借书证号、按姓名等信息查询。按借书证号信息查询功能实现的代码如下:BeginifAJSZH_FRBtn.Checkedthen//按借书证号ifYHMHCX_FCB.CheckedthenbeginYHXX_Q.Close;YHXX_Q.SQL.Clear;YHXX_Q.SQL.Add('Select用户帐号,姓名,性别,组名,最大天数,最大数量,证件号码From用户A,组用户B');YHXX_Q.SQL.Add('Where(A.用户帐号Like:用户帐号)andA.组号=B.组号');YHXX_Q.SQL.Add('Where(A.用户帐号=:用户帐号)andA.组号=B.组号');YHXX_Q.Parameters.ParamByName('用户帐号').Value:=YHGJZ_CB.Text;YH_DS.DataSet:=YHXX_Q;YH_DG.Columns[0].FieldName:='用户帐号';YH_DG.Columns[1].FieldName:='姓名';YH_DG.Columns[2].FieldName:='性别';YH_DG.Columns[3].FieldName:='组名';YH_DG.Columns[4].FieldName:='最大天数';YH_DG.Columns[5].FieldName:='最大数量';YH_DG.Columns[6].FieldName:='证件号码';YHXX_Q.Open;YHXX_Q.Close;end;同理,按姓名信息查询的实现:判断参数是否被调用,再通过YHXX_Q.SQL.Add('Where(A.姓名Like:姓名)andA.组号=B.组号')数据库参数查询,最后通过YHXX_Q.Parameters.ParamByName('姓名').Value:=YHGJZ_CB.Text;数据记录实现查询。借阅信息查询模块实现借阅信息查询界面如图5-5所示。图5-5借阅信息查询界面借阅信息查询模块包含:按借书证号、按姓名、查询已到期等信息查询。按借书证号信息查询功能实现的代码如下:BeginifJYJSZ_FRBtn.Checkedthen//按借书证号ifJYMHCX_FCB.CheckedthenbeginJYXX_Q.Close;JYXX_Q.SQL.Clear;JYXX_Q.SQL.Add('SelectA.用户帐号,姓名,A.图书编号,书名,借书日期,到期日期From借阅信息A,用户B,图书信息C');JYXX_Q.SQL.Add('Where(A.用户帐号Like:用户帐号)andA.用户帐号=B.用户帐号andA.图书编号=C.图书编号and(A.还书日期isNull)');JYXX_Q.SQL.Add('Where(A.用户帐号=:用户帐号)andA.用户帐号=B.用户帐号andA.图书编号=C.图书编号and(A.还书日期isNull)');JYXX_Q.Parameters.ParamByName('用户帐号').Value:=JYGJZ_FE.Text;JY_DS.DataSet:=JYXX_Q;JY_DG.Columns[0].FieldName:='用户帐号';JY_DG.Columns[1].FieldName:='姓名';JY_DG.Columns[2].FieldName:='图书编号';JY_DG.Columns[3].FieldName:='书名';JY_DG.Columns[4].FieldName:='借书日期';JY_DG.Columns[5].FieldName:='到期日期';JYXX_Q.Open;exit;end;同理,按姓名、查询已到期等信息查询的实现如下:①按姓名信息查询的实现:判断参数是否被调用,再通过JYXX_Q.SQL.Add('Where(姓名Like:姓名)andA.用户帐号=B.用户帐号andA.图书编号=C.图书编号and(A.还书日期isNull)')数据库参数查询,最后通过数据记录实现查询。②按到期信息查询的实现:判断参数是否被调用,再通过JYXX_Q.SQL.Add('Where(到期日期<=:现在日期)andA.用户帐号=B.用户帐号andA.图书编号=C.图书编号and(A.还书日期isNull)')数据库参数查询,最后通过JYXX_Q.Parameters.ParamByName('现在日期').Value:=Date数据记录实现查询。5.5图书管理功能模块实现图书修改删除模块实现图书修改删除界面如图5-6所示。图5-6图书修改删除界面图书信息修改删除功能实现代码如下:Begin//执行图书修改删除ifXG_FRBtn.CheckedthenbeginifCheckErrorthenexit;TSXX_T.Locate('图

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论