第三章数据库_第1页
第三章数据库_第2页
第三章数据库_第3页
第三章数据库_第4页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

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

文档简介

1、第三章第三章 数据库数据库问题的提出: 前面我们所创建的表都是自由表,在实际应用中自由表很难满足管理信息系统中存贮数据的要求,那么将如何解决这一问题?解决问题的方法: 我们可以通过建立数据库及数据库表来解决上述问题。第三章第三章 数据库数据库本章主要介绍的内容有: 数据库的创建; 数据库的操作; 排序、索引和查找; 计算与统计; 表之间的关系; 数据库表的属性。 通过学习本章内容,您能够做到: 掌握数据库的创建; 掌握数据库的操作; 掌握数据的排序、索引和查找; 掌握数据的计算与统计处理; 掌握表之间的关系; 掌握数据库表的属性。 本章目录本章目录 3.1引 例 3.2数据库的创建 3.3数据

2、库的操作 3.4排序、索引和查询 3.5数据统计 3.6表之间的关系 3.7数据完整性 HOME3.1 引例 在“学生管理系统”应用程序中,我们设计了一个学生管理数据库(xsgl.dbc),如图所示。其中包含学生档案表、学生成绩表、学生课程表,也包含相关表之间按关键字建立的关系。 那么如何创建数据库呢?3.2 数据库的创建数据库的创建 3.2.1数据库的设计 3.2.2创建新的数据库 3.2.1数据库的设计 以学生管理(xsgl.dbc)数据库为例来讲解设计的一般步骤: 1.确定数据库的用途 对在校学生档案和成绩等数据进行管理。 2.确定需要的表 根据调查决定设计xsda.dbf、xscj.d

3、bf 、xskc.dbf等。 3.确定所需的字段 以xscj.dbf为例,所需的字段为xh、kcdm、cj。 4.确定各表之间的关系 将xsda.dbf和xscj.dbf按xh建立关系,将xscj.dbf和xskc.dbf 按kcdm建立关系。 5.改进整个设计 对整个设计方案进行改进和优化。3.2.2创建新的数据库 用户可以通过三种方式创建一个新的数据库:菜单方式、项目管理器方式和命令方式。 1.菜单方式 以创建XSGL.DBC为例,操作步骤如下: 选“文件”菜单中的“新建”菜单项或直接单击常用工具栏上的“新建”按钮在“新建”对话框中选“数据库”单选按钮单击“新建文件”按钮在“创建”对话框的

4、“数据库名”文本框中输入要建立的数据库名“XSGL”单击“保存”按钮。 创建数据库后,进入数据库设计器,如下图:注 意:此时,用户已经建立了名为XSGL.DBC的空数据库,系统还会自动生成一个名为XSGL.DCT的数据库备注文件和一个名为XSGL.DCX的数据库索引文件。 2.项目管理器方式项目管理器方式 打开“项目管理器”选择项目管理器中的“数据”选项卡选中“数据库”单击“新建”按钮,其余步骤同菜单方式。 3.命令方式命令方式 创建数据库的命令如下: 格式:格式:CREATE DATABASECREATE DATABASE数据库文件名|? 功能:功能:创建并打开一个数据库。 示例:CREAT

5、E DATABASE xsglCREATE DATABASE xsgl 刚建好的数据库只是一个数据库的框架,里面还没有数据,用户可以向其中添加各种数据库对象,如表、视图、表之间的关系等。数据库的.DBC(数据库容器)文件中存储有关该数据库的所有信息(包括和它关联的文件和对象名),数据库文件并不在物理上包含任何对象(如表和字段),而仅存储指向表文件的路径指针等。 3.33.3数据库的操作数据库的操作 数据库创建后,用户可以进行如下一系列操作:建立新表、添加表到数据库中、浏览数据库中的表、修改数据库中的表、移去数据库中的表、建立各表之间的关系、编辑存储过程、编辑参照完整性等。 3.33.3数据库的

6、操作数据库的操作 3.3.1数据库的打开与关闭 3.3.2数据库的修改 3.3.1数据库的打开与关闭 1.数据库的打开 在数据库中建立表或对数据库中的表进行相关操作时,都必须先打开数据库。 操作方式同样有两种。菜单方式与数据表的操作相似 命令方式: 格式:格式: OPEN DATABASE数据库文件名|?EXCLUSIVESHARED 功能:功能:打开一个指定的数据库。示例:示例:clearclose allopen database xsgl &打开数据库xsgl.dbcopen database mydata &打开数据库mydata.dbc 2.数据库的关闭 当暂时不使用

7、数据库时,为防止意外断电或误操作而破坏数据库文件中的数据,应及时将其关闭。关闭数据库,可以用项目管理器或CLOSE DATABASE命令关闭数据库。 命令方式: 格式1:CLOSE DATABASE ALL 功能:关闭数据库和表。 格式2:CLOSE ALL 功能:关闭除命令窗口、调试窗口、跟踪窗口和帮助窗口以外的所有文件。 3.设置当前数据库 在VFP中,可以同时打开多个数据库,但在同一时刻仅有一个为“当前数据库” 。在打开多个数据库时,最后一个打开的数据库为当前数据库。用户可在列表框中选择其他已经打开的数据库成为当前数据库,也可以使用下列命令设置当前数据库。 格式:SET DATABASE

8、 TO 数据库文件名 功能:指定当前数据库。 3.3.2 数据库的修改1.在数据库中建立新表 在数据库设计器中单击右键在快捷菜单中选择“新建表”在弹出对话框中选择“新建表”输入新表名进入“表设计器”,用户可以按照第2章介绍的方法建立一个新表。 注 意:数据库表的表设计器与自由表的表设计器不同,在数据库中建立的表为数据库表。 2.向数据库中添加表 在数据库设计器中,用户可以选定目前不属于任何其他数据库的表(自由表),将其添加到数据库中,使之成为一个数据表。有两种方法。 (1)菜单法 选“数据库”菜单中选择“添加表”或右击数据库选“添加表”。 (2)命令方式格式:ADD TABLE |?NAME功

9、能:在当前数据库中添加一个表。示例:将xsda表添加到数据库xsgl.dbc中。 clear Open database xsgl.dbc Add table xsda.dbf name 学生的基本情况表 &将xsda.dbf添加到xsgl.dbc中,成为数据库表,并命名为“学生的基本情况表”。注 意:数据库表可以定义长文件名表。 3.从数据库中移去表或删除表 当数据库不再需要某个表或其他数据库需用此表时,可以从该数据库中移去此表。同样有菜单方式和命令方式。 注 意:一个表在同一时间内只能属于一个数据库。 (1)菜单方式 选定要移去或删除的表选“数据库”菜单中“移去”菜单项(或者在数据

10、库表上右击在快捷菜单中选“删除”命令) 在如图所示的对话框中单击“移去”按钮。 (2)命令方式 REMOVE TABLE |?DELETE 示例:示例: 将数据库表学生档案xsda.dbf从数据库xsgl.dbc中移去,使其成为自由表。 clear Open database xsgl.dbc Remove table xsda.dbf实验三 数据库的创建与操作 实验目的:通过上机实验掌握数据库建立的方法和有关的操作。 实验步骤:首先布置上机实验内容。 应用菜单法和命令法进行下列操作: 1、建立数据库 2、打开和关闭数据库 3、在数据库中建立数据库表 4、在数据库中添加表 5、将数据库中的表变

11、为自由表3.4排序、索引和查询 建立数据库的主要目的之一,就是要方便、灵活、快速、高效地提取所要的信息。在实际应用中,数据库是很大的,它有成千上万个记录。因此必须有一套科学的、迅速而又方便的查询方法,用前面所述的定位、显示等方法是不能满足需要的。为此,本节将讨论如何组织排序文件和索引文件,以达到快速查询的目的。3.43.4排序、索引和查询排序、索引和查询 3.4.1排序 3.4.2索引 3.4.3查询 3.4.1排序 排序的特点是将已建好的表记录按某一关键字规定的顺序重新排列,产生一新的表文件,但原文件不变。 排序命令: 格式: SORT TO ON /A/C/D,/A/C/DFIELDSFO

12、R|WHILE 功能:对当前表文件,按指定字段值重新排序,排序后生成一个以命名的表文件。 【例3.1】对XSDA表按“XH”降序排序,排序后的文件名为XSDA1;按“RXF”升序排序,排序后的文件名为XSDA2,且排序后的表文件中只有XH、XM、RXF 3个字段。 输入命令: Clear Open database xsgl.dbc use xsda list sort to xsda1 on xh/d use xsda1 list use xsda sort to xsda2 on rxf fields xh,xm,rxf use xsda2 list实例演示显示结果: 3.4.2索引 通过

13、SORT命令可以对表中某一个字段进行排序,排序后将产生一个新的表文件,每排一次序就产生一个新的表文件,这样将占据大量的空间,要解决这样的问题可以通过建立索引来解决。 1.索引的概念 为了更好地处理和组织数据,Visual FoxPro 6.0提供了一个非常方便的工具索引。Visual FoxPro 6.0中的索引和书中的目录类似,书中的目录是一份页码的列表,根据内容指向书中的页号。而Visual FoxPro 6.0中表的索引是一个记录号的列表,它指向待处理的记录,并确定了记录的处理顺序。 2.索引类型 (1)索引类型 索引分为主索引、候选索引、普通索引、惟一索引4种类型。 (2)索引文件类型

14、 根据索引文件包含索引的个数和索引文件的打开方式不同,索引文件可分为独立索引文件和复合索引文件。复合索引文件又分为非结构化复合索引文件和结构化复合索引文件。 独立索引文件。 复合索引文件。 3.索引操作 索引操作主要是指建立、插入、删除索引等,可通过表设计器和命令方式进行。 (1)表设计器方式 下面以在XSDA.DBF为例建立索引,按“XH”字段建立主索引、升序,按“XM”字段建立普通索引,按“RXF”字段建立普通索引。 操作步骤: 打开xsda表进入表设计器在“学号”字段的“索引”项中选“升序”选“索引”选项卡设置xh的索引类型为“主索引”,其他索引操作类似。 (2)表达式生成器的使用 在“

15、表设计器”的“索引”选项卡中,单击“表达式”编辑框右边的“”生成器按钮,进入表达式生成器窗口,可以用可视化的设计建立索引表达式。 (3)命令方式 格式:格式: INDEX ONINDEX ON索引表达式TAGTAG索引标识符OFOFCDXCDX文件名|TOTO索引文件名 FORFOR条件ASCENDINGASCENDING|DESCENDINGDESCENDINGUNIQUEUNIQUE|CANDIDATECANDIDATEADDITIADDITIVEVE 功能功能: :为当前表建立一个索引文件。 实例演示【例3.2】对xsda表按xh建立独立索引文件xsdaxh。 输入命令: Clear U

16、se xsda List Index on xh to xsdaxh &对xsda表按xh建立独立索引 List 运行结果: 【例3.3】对xsda表先按xm索引,再按csrq索引建立独立索引文件xsdaxc。 输入命令: Clear Use xsda Index on xm+dtoc(csrq) to xsdaxc List 运行结果: 【例3.4】对xsda.dbf表按xh降序建立结构化复合索引文件,索引标识为“学号” 。 输入命令: Clear Use xsda Index on xh tag 学号 descending List 运行结果: 【例3.5】对xsda.dbf表按x

17、b建立结构化复合索引文件,索引标识为“性别”,指定为惟一索引。 Clear Use xsda Index on xb tag 性别 unique List 运行结果: 4.使用索引 要使用索引进行查询,必须打开表与索引文件。一个表可以打开多个相关的索引文件,同一个复合索引文件中也可能包含多个索引标识,但任何时候只有一个索引文件能起作用,在复合索引中也只能有一个索引标识能起作用。当前起作用的索引文件称为主控索引文件,当前起作用的索引标识称为当前索引。也就是说,实现索引查询必须满足以下的条件:打开表、打开索引文件、确定主控索引文件,对复合索引文件还需确定当前索引。 (1)索引文件的打开。 索引文件

18、的打开有以下几种方式: 自动打开 建立索引文件时,刚建立的独立索引文件和结构化复合索引文件由系统自动打开。 打开表的同时,打开索引文件 格式1:USE ORDER TAG 功能:格式1打开表文件同时,与之同名的结构型复合索引文件自动打开,并设置当前索引。 格式2:USE INDEX ORDER TAG 功能:格式2打开表文件的同时,打开非结构化复合索引文件和独立索引文件,可设置当前索引。示 例 1.打开xsda表的同时将自动打开结构化复合索引文件xsda.cdx,并指定关键字为“学号”的索引为当前索引。 Use xsda order tag 学号 2.打开xsda表的同时,打开非结构化复合索引

19、文件xsdaxb.cdx,并指定关键字为“性别” 的索引为当前索引。 Use xsda index xsdaxb.cdx order tag 性别 在表文件已打开的情况下,单独打开相关联的索引文件。 格式:SET INDEX TO索引文件名表|?ORDERTAG标识符OFCDX文件名ADDITIVE 功能:打开当前表的一个或多个索引文件。 【例3.6】打开XSDA表中的独立索引文件和非结构化复合索引文件。 Use xsda List Set index to xsdaxc List Set index to xsdaxh additive List运行结果: (2)设置当前索引 一个文件在某一

20、时刻,只有一个索引起作用,称为主控索引或当前索引,主控索引就是控制当前显示顺序的索引。设置当前索引的命令如下: 格式: SET ORDER TO顺序号|IDX文件名|TAG标识名OFCDX文件名 功能:指定当前索引。 【例3.7】设置当前索引。Use xsdaIndex on xh tag 学号 of xsda22.cdxIndex on csrq tag 出生日期 xsda22.cdxIndex on rxf tag 入学分 xsda22.cdxClose allUse xsda index xsda22 order tag 出生日期ListClose allUse xsda Set ind

21、ex to xsda22 order tag 入学分List Close allUse xsda Set index to xsda22Set order to tag 学号ListClose all运行结果: (3)关闭索引文件。 格式1:USE 功能:关闭表文件的同时,也关闭了所有已打开的索引文件。 格式2:SET INDEX TO 功能:关闭所有已打开的索引文件,但表文件仍处于打开状态。 格式3:CLOSE INDEX 功能:与格式2相同。 (4)索引的更新。 自动更新。 当表中的数据发生变化时(如对其进行了插入、删除、添加或修改操作之后),所有当前已打开的索引文件都会跟随数据的改变自动

22、改变记录的逻辑顺序,实现索引文件的自动更新。 重新索引。 若修改表中记录之后再打开索引文件,可在打开需要重建索引的全部索引文件后,使用如下命令重新索引。 格式:REINDEX (5)删除索引 独立索引文件可采取删除文件的方法直接删除,复合索引文件可用下列命令删除: 格式:DETELE TAG索引标识符|ALLOFCDX文件名 说明: DETELE TAG索引标识符删除复合索引文件中的指定索引。 DETELE TAG ALL删除复合索引文件中的所有索引,此时,复合索引文件将不复存在。 对于复合索引文件,也可以在表设计器中删除索引标识。 实验四 排序与索引 实验目的:通过实验掌握排序的方法和索引文

23、件建立的方法及索引文件的打开、关闭、设置当前索引等方法。 实验步骤:首先布置本次上机的实验内容及实验过程中要注意的问题。 1、设置当前盘和当前文件夹; 2、通过排序命令排序后建立新的表文件,并打开新的表文件查看排序结果; 3、用表设计器建立索引文件,并设置当前索引,通过LIST或浏览命令查看结果; 4、用INDEX命令建立独立索引、结构化复合索引、非结构化索引文件,并查看结果; 5、将表文件关闭,再打开表和相应的索引文件,学会打开索引文件、设置当前索引。3.4.3查询 所谓查询,就是在表中查找用户指定条件的记录和字段。查询时,我们先将记录指针快速定位到所查记录处,然后通过显示命令查看数据内容。

24、Visual FoxPro 6.0提供了两种查询方法:一种是顺序查询;另一种是索引查询。 1.顺序查询 顺序查询是在表文件中依次查找满足条件的记录。顺序查询也称直接查询,包括LOCATE和CONTINUE两条命令。 格式: LOCATE范围FOR条件WHILE条件 CONTINUE【例3.9】在XSDA表中按顺序查找不是团员的所有记录。 Close all Open database xsgl Use xsda Locate for tyf=.f. ? found() 显示是否找到记录 ? recno() 显示当前记录号 disp 显示找到的记录 continue 继续查找 ? recno()

25、 disp continue ? found() ? recno() ? eof() cont ? eof() cont ? eof() 显示是否到文件尾 2.索引查询 索引查询的速度很快但其算法要求表的记录是有序的,这就需要事先对表建立索引文件,方可采用索引查询。索引查询的命令有FIND和SEEK,下面分别介绍。 (1)FIND命令 格式:FIND 字符串|常数 (2)SEEK命令 格式:SEEK表达式 功能:在已确定当前索引的表文件中快速查找满足表达式值的第一个记录。 实验五 索引、查找实验目的:进一步熟悉索引文件的有关操作,掌握索引查找和顺序查找法。实验步骤:首先布置上机任务,提出上机中

26、应注意的问题。1. 熟悉索引文件的打开和设置当前索引的方法;2. 应用索引查找来查找字符型数据、数值型数据和日期型数据。3. 应用顺序查找的方法查找各种类型的数据。3.5数据统计 在数据库应用中,不仅可以对表中的信息进行各种形式的查询,还可以对表中的数据进行各类统计处理。VFP提供了计数(COUNT)、求和(SUM)、求平均值(AVERAGE)和分类汇总(TOTAL)等命令,以完成数据统计处理工作。 3.5数据统计 3.5.1统计记录个数命令 3.5.2求和命令 3.5.3求平均值命令 3.5.4分类汇总命令3.5.1统计记录个数命令 格式:COUNT范围FOR条件TO内存变量 功能:统计当前

27、表中指定范围内满足条件的记录个数,并存于内存变量中。 说明:范围缺省指ALL;TO内存变量选项表示把符合条件的记录个数保存到内存变量中去,不指定内存变量时,结果显示在屏幕上。另外,函数RECCOUNT()返回当前表中的记录总数。【例3.12】统计xsda.dbf表中的全部记录数。clearOpen database xsglUse xsdaCount to n? n? reccount()运行结果:993.5.2求和命令 格式:SUM范围数值表达式表FOR条件TO内存变量表 功能:在当前表中,对指定范围内给定条件的数值型字段或含数值型字段的数值表达式进行纵向求和计算,并把结果存放在对应的内存变

28、量表标识的变量中。 Sum cj for xh=199921608 to zf3.5.3求平均值命令 格式:AVERAGE范围数值表达式表FOR条件TO内存变量表 功能:对当前表中指定范围内满足条件的数值型字段求算术平均值,并把结果存放在对应的内存变量表标识的变量中。 average cj for kcdm=2 to pj 3.5.4分类汇总命令 格式:格式:TOTAL ONTOTAL ON关键字TOTO文件名范围FIELDSFIELDS字段名表FORFOR条件 功能:功能:按关键字对当前表文件的数值型字段进行分类合计,结果存入新生成的表文件中。 【例3.16】对xsda表按性别分类统计男女同

29、学的入学分总分。clearUse xsgl!xsdaIndex on xb tag 性别Total on xb to xsdarxf fields rxfUse xsdarxfList3.63.6表之间的关系表之间的关系 3.6.1工作区 3.6.2多表之间的关系式 3.6.3设置表的永久关系 3.6.4设置表的临时关系 3.6.1工作区 1.工作区的概念 工作区就是用来存放表的内存空间。VFP提供了32767个工作区,编号从1-32767。 在每个工作区可以打开一个表,即在某一时刻该工作区中只有一个表处于“工作”状态,可以对该表进行各种操作。 2.工作区的选择打开表的同时选择工作区格式:US

30、E IN 功能:在指定工作区打开表文件。打开表的同时指定表的别名格式:USE ALIAS注 意:命令SELECT 0表示选定当前未使用的最小工作区号。 3.工作区中数据的访问工作区中数据的访问 用户可以用SELECT命令切换工作区使用不同的表,也可以在一个工作区中访问其他工作区中的表。各工作区中的表文件记录指针是相互独立的,转换工作区时不影响指针的位置,对现行工作区进行与其他工作区无关的操作时,其他区中的记录指针也不会受到影响。 为了不至于混淆不同工作区中表的字段内容,VFP规定:从当前工作区对其他工作区中打开的表进行访问时,必须在被访问的表字段前面加上该表所在工作区的别名和连接符(.或-)。

31、3.6.2多表之间的关系式 一个数据库中的多个表既相互独立,又存在联系。对数据库的一个重要操作就是建立表之间的关系,即以其中一个表中的字段与另一个表中的同名字段建立关系。若要在数据库表之间建立表间关系,前提是建立关系的表具有相同的字段;每个表都要以该字段建立索引。 多表之间的关系存在以下几种类型:一对一关系、一对多关系、多对多关系表之间可以建立永久关系和临时关系。建立的方法可通过界面方法和命令方法进行。被关联的表为从表,发起关联的表为主表(或父表)。3.6.3设置表的永久关系 永久关系 只能在数据库表中建立永久关系。 1.建立永久关系的方法:在数据库设计器中用鼠标左键从一个表的索引处直接拖到需

32、要建立关系的另一个表的相应索引上。 注 意: 索引是建立永久关系的前提。在一对一关系中,主表和从表均应按相同的关键字建立主索引或候选索引。而对于一对多关系,主表建立主索引或候选索引,而从表可以建立普通索引。 2.删除表之间的永久关系 选中关系,按DEL键或右击关系,选“删除关系”。 3.编辑表之间的永久关系 右击关系,选“编辑关系”。3.6.4设置表的临时关系 表之间的永久关系建立后,在每次使用表时不需要重新建立,但永久关系不能控制不同工作区中记录的联动。因此,用户可以建立临时关系来控制表间记录指针。在建立表间的临时关系后,就会使得一个表(子表)的记录指针自动随另一个表(父表)的记录指针移动。

33、这样,当关系中的“一”方(或父表)选择一个记录时,会自动去访问表关系中“多”方(或子表)的相关记录。 操作步骤: (1)打开从表,并索引(设置当前索引); (2)打开主表,与从表建立临时关系。 格式:SET RELATION TO INTO |ADDITIVE 实验六 统计、计算和建立关系 实验目的:学会统计记录个数、纵向求和、纵向求平均;学会在多工作区之间进行表的操作、在表之间建立永久关系和临时关系的方法。 实验步骤:首先布置上机实验任务,其次说明上机过程中容易出现的问题及解决的办法。 1、统计满足范围和条件的记录数; 2、对xscj.dbf纵向求各科总和和各科平均分; 3、在多个工作区中打

34、开若干个表,选择某工作区为当前工作区,在当前工作区中访问其它工作区中字段; 4、在xsda和xscj表之间建立永久关系; 5、在xscj和kcsz表之间建立临时关系。3.73.7数据完整性数据完整性 在表设计器对话框中,显示了“字段”、“索引”和“表”三个选项卡名,称之为数据词典。数据词典用于保存对数据库表中各种数据的定义或设置信息,包括表字段属性、记录属性和参照完整性等。这些属性或信息均可通过表设计器来设置、显示或修改,并且将作为数据库的一部分保存起来,当表从数据库中移去,这些属性也不再保存。 3.73.7数据完整性数据完整性 3.7.1设置表的字段属性 3.7.2设置表的记录属性 3.7.3数据的完整性3.7.1设置表的字段属性 1.显示组框 设置表中字段的格式。 输入掩码。 显示标题。 2.字段注释 在建立数据表结构时,对字段加以注释,可以提醒自已或其他用户,清楚地掌握字段的属性、意义及特殊用途等。 3.字段有效性组框 在字段有效性组框中可以定义字段的有效性规则、违反规则时的提示信息和字段的默认值。 设

温馨提示

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

最新文档

评论

0/150

提交评论