C高级语言程序设计第4章.ppt

上传人:tia****nde 文档编号:12805564 上传时间:2020-05-25 格式:PPT 页数:93 大小:925.50KB
返回 下载 相关 举报
C高级语言程序设计第4章.ppt_第1页
第1页 / 共93页
C高级语言程序设计第4章.ppt_第2页
第2页 / 共93页
C高级语言程序设计第4章.ppt_第3页
第3页 / 共93页
点击查看更多>>
资源描述
C+高级语言程序设计,第4章数组及其他自定义类型北京邮电大学信息与通信工程学院,2020/5/25,北京邮电大学信息与通信工程学院,1,第4章数组及其他自定义类型,4.1数组数组基本概念、数组初始化、访问数组元素、字符型数组、多维数组4.2枚举类型枚举类型的定义、枚举型变量的定义及使用4.3结构类型结构类型的定义、结构变量的定义及初始化、结构变量的使用4.4联合类型联合类型的定义、联合型变量的定义及使用,2020/5/25,北京邮电大学信息与通信工程学院,-2-,4.1数组,数组是具有一定顺序关系的若干相同类型变量的集合,组成数组的变量称为该数组的元素。数组属于构造类型。数组是实际编程中经常使用的一种数据结构。,2020/5/25,北京邮电大学信息与通信工程学院,-3-,4.1.1数组定义及初始化,1.一维数组的定义一维数组定义的语法形式类型标识符数组名常量表达式;说明类型标识符:任何合法的类型标识符,用于说明数组元素的类型;数组名:程序员对该数组的命名,数组的命名规则同变量命名;方括号及常量表达式:用于说明该数组中元素的个数。,2020/5/25,北京邮电大学信息与通信工程学院,-4-,4.1.1数组定义及初始化,例:10级119班30名同学“C+程序设计”课程的成绩intCscore30;实验,测得一组电阻R随温度T变化的值floatRi30;shortTc30;,2020/5/25,北京邮电大学信息与通信工程学院,-5-,4.1.1数组定义及初始化,一维数组在内存中存储映射intscore5;,2020/5/25,北京邮电大学信息与通信工程学院,-6-,4.1.1数组定义及初始化,注意定义一个数组,系统为这个数组保留一定数量的连续内存单元,数组元素依次占用这一连续内存空间,这段内存空间起始地址的外部标识就是数组名;数组名是一个地址常量,禁止给数组名赋值;数组各元素用数组名及下标(或称索引值)来标识,score0,score1,score4分别表示数组的第15个元素;C语言和C+语言中,元素的下标从0开始计,数组元素的最大下标比元素个数少1,数组score最大下标对应的元素是score4,而不是score5(访问越界);,2020/5/25,北京邮电大学信息与通信工程学院,-7-,4.1.1数组定义及初始化,注意数组名表示数组在内存中的起始地址,可以将元素的下标理解为元素存放位置相对于数组名的偏移量,第i个元素scorei的起始地址相对于数组的起始地址偏移了i个int型变量所占空间;每个元素可以视为一个同类型的变量,如scorei可以视为一个整型变量;数组的每个元素占用空间大小与同类型变量占用的内存大小一样;数组占用的内存空间是其全部元素所占空间的总和,如果数组有N个元素,它所占的字节数可以通过以下方式得到:sizeof(数组名)或N*sizeof(数组类型)。,2020/5/25,北京邮电大学信息与通信工程学院,-8-,4.1.1数组定义及初始化,2.数组初始化在定义数组时,直接给出赋给数组元素的值,称为数组初始化。数组初始化语法形式类型标识符数组名常量表达式=以逗号隔开的初始化值;,2020/5/25,北京邮电大学信息与通信工程学院,-9-,4.1.1数组定义及初始化,例:定义并初始化整型数组score5的语句为:intscore5=80,70,90,95,60;初始化列表中的数据依次赋给元素score0、score1、score2、score3、score4。注意不要丢掉语句最后的分号。,2020/5/25,北京邮电大学信息与通信工程学院,-10-,4.1.1数组定义及初始化,注意初始化数组时,给定的初始化数值不能比数组元素多,但可以比数组元素少;如果少,初始化列表中的初始值将从下标0开始依次分配给各元素,后面没有得到初始值的元素被初始化为0。doubled10=1.0,2.0;如果使用初始化列表,则表内至少包含一个初始值,否则编译将出现错误。如果没有初始化列表,即只定义不做初始化,一般在函数内部定义的自动局部数组,其各元素的值是随机值,使用时需要重新给数组元素赋值。,2020/5/25,北京邮电大学信息与通信工程学院,-11-,4.1.1数组定义及初始化,如果在初始化列表中给定数组元素的全部值,可以省略中括号中元素个数常量表示式。上述score数组的初始化也可以写成:intscore=80,70,90,95,60;此时,编译器自动计算出数组元素的个数为5,给score数组分配能够存放5个int型数据的连续空间。思考题:如何将一个在某函数内部定义的自动局部数组的所有元素都初始化为0?最简单的方法是什么?,2020/5/25,北京邮电大学信息与通信工程学院,-12-,4.1.1数组定义及初始化,例4-1定义各种基本类型的数组并初始化,利用debug调试方式观察数组各元素得到的值、数组占用的空间、数组元素占用的空间。,2020/5/25,北京邮电大学信息与通信工程学院,-13-,2020/5/25,北京邮电大学信息与通信工程学院,-14-,/例4-1数组的定义、初始化,查看数组的大小#includeusingnamespacestd;voidmain()constintN=5;charchArrayN;shortintshArrayN=1,2,3,4,5;intiArrayN=10;floatfArray=3.1f,4.1f,5.0f;doubledArrayN=3.14,6.28;intk;,2020/5/25,北京邮电大学信息与通信工程学院,-15-,for(k=0;kN;k+)coutchArrayk,;coutendl;for(k=0;kN;k+)coutshArrayk,;coutendl;for(k=0;kN;k+)coutiArrayk,;coutendl;for(k=0;k3;k+)coutfArrayk,;coutendl;for(k=0;kN;k+)coutdArrayk,;coutendl;,运行结果:?1,2,3,4,5,10,0,0,0,0,3.1,4.1,5,3.14,6.28,0,0,0,说明符号常量N,用于说明数组的大小;使用符号常量说明数组的大小便于程序修改,如果想让数组的大小为100,只需修改N的值即可,其他语句不需要修改;在多文件结构中,可将一些符号常量的定义放在头文件中,更利于工程的维护和修改。,4.1.2访问数组元素,数组元素是用下标来区分的,指定要访问的数组元素的语法形式为:数组名下标表达式下标表达式:可以是常量、变量或表达式,其值大于或等于0,小于数组的大小。例:constintN=8;floatangleN;for(intk=0;kN;k+)anglek=3.14f/N*k;/给元素赋值,写操作coutanglek,;/读取元素值,2020/5/25,北京邮电大学信息与通信工程学院,-16-,4.1.2访问数组元素,例4-2将正弦函数的一个周期2分为N等份,定义数组分别存储自变量值和函数值,并显示数组元素的值。,2020/5/25,北京邮电大学信息与通信工程学院,-17-,2020/5/25,北京邮电大学信息与通信工程学院,-18-,/例4-2用数组存储和显示正弦函数一周期内的值#include#include#includeusingnamespacestd;voidmain()constintN=8;doublexN;/自变量值doubleyN;/函数值constdoublePI2=3.14159*2;doubledelta=PI2/N;coutsetw(8)弧度setw(12)sin(x)endl;for(intk=0;kN;k+)xk=k*delta;yk=sin(xk);coutsetw(10)xk,ykbuffer;cin.getline(buffer,80,n);,2020/5/25,北京邮电大学信息与通信工程学院,-24-,4.1.3字符数组,2字符数组的输入和输出字符数组的输出逐元素输出通过数组名输出。例如,下面的语句输出字符数组buffer中的字符串:coutbuffer;例4-3从键盘输入一行或多行字符串,用字符数组存储,并统计所输入的字符串中26个字母出现的次数。,2020/5/25,北京邮电大学信息与通信工程学院,-25-,2020/5/25,北京邮电大学信息与通信工程学院,-26-,/例4-3输入26个英文字符的分布统计#includeusingnamespacestd;voidmain()/数组及变量定义;constintN=80;charbufferN;intk=0;constintNUM=26;intcountsNUM=0;charlettersNUM;inti=0;,2020/5/25,北京邮电大学信息与通信工程学院,-27-,do/循环输入每一行字符coutenterastring:n;cin.getline(buffer,N,n);/获得一行输入字符串k=0;/对于输入的每一行字符,统计字符出现的次数while(bufferk!=0)i=tolower(bufferk)-a;countsi+;k+;/countstolower(bufferk+)-a+;/用此行可代替前三句while(buffer0!=0);,2020/5/25,北京邮电大学信息与通信工程学院,-28-,cout0)coutlettersi:countsiendl;,思考题:如何统计一个txt文件中各种字符出现的次数?,2020/5/25,北京邮电大学信息与通信工程学院,-29-,4.1.4多维数组,1多维数组的定义定义多维数组语法形式如下。二维数组类型标识符数组名标识符常量表达式1常量表达式2;三维数组类型标识符数组名标识符常量表达式1常量表达式2常量表达式3;n维数组类型标识符数组名标识符常量表达式1常量表达式n;,2020/5/25,北京邮电大学信息与通信工程学院,-30-,4.1.4多维数组,例:boolseat106;/座位unsignedcharimage256128;/256行128列图像floatmatrix33;/三元一次线性方程组的系数矩阵chartable58;/课表二维数组元素的下标从左至右称为行、列。charbook2003240;/书三维数组元素的下标由左至右可称为页、行、列或层、行、列。,2020/5/25,北京邮电大学信息与通信工程学院,-31-,4.1.4多维数组,在定义多维数组时,需要注意首先要根据所要表示的对象内容,选择合适的数据类型(数组的类型,也就是数组元素的类型);其次确定数组的维数,即几维数组(有几维就有几对中括号);最后确定每一维的大小(中括号内)。特别强调:数组每一维的大小必须用常量表达式声明,否则,编译会出错。这也是C和C+数组的一大缺陷:数组的使用不够灵活。,2020/5/25,北京邮电大学信息与通信工程学院,-32-,4.1.4多维数组,2多维数组在内存中的映像例:intd15;intd223;intd3232;,2020/5/25,北京邮电大学信息与通信工程学院,-33-,4.1.4多维数组,2多维数组在内存中的映像一维数组在内存中从数组名所代表的起始地址开始,按下标次序存储;数组d1的第i个元素在内存中的起始位置相对于数组名所代表的地址偏移了i个int型变量空间大小。,2020/5/25,北京邮电大学信息与通信工程学院,-34-,4.1.4多维数组,2多维数组在内存中的映像二维数组在内存中从数组名所代表的起始地址开始,按行优先依次存储;数组d2的第i行第j列元素在内存中的起始位置相对于数组起始地址偏移了行号列数+列号个int型变量空间大小。例如,元素d2ij的起始地址计算:doubled34=l.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0;,2020/5/25,北京邮电大学信息与通信工程学院,-37-,4.1.4多维数组,3初始化多维数组可以省略内层的括号,只要程序好读即可。例如用换行的方式:inta24=4,3,2,1,1,2,3,4;doubled34=l.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0;,2020/5/25,北京邮电大学信息与通信工程学院,-38-,4.1.4多维数组,3初始化多维数组多维数组的初始化,也可以只给出部分值;例:inta24=4,3;则只有a00、a01分别得到初始值4和3,其余各元素的值为0。可利用此特性将一些用做计数器的多维数组初始化为0。例:定义并初始化二维整型计数器counts:intcounts512256=0;这是将多维数组元素置0的最简便方法之一。,2020/5/25,北京邮电大学信息与通信工程学院,-39-,4.1.4多维数组,4访问多维数组的元素访问多维数组的元素时,只要指定要访问的数组元素的具体下标值即可,语法形式为:数组名下标表达式1下标表达式n其中,下标表达式的个数同数组维数,“下标表达式i”(1in)可以用常量、变量或表达式,其值大于或等于0,小于数组对应维的大小,即0下标表达式i的值matrixij;/给元素赋值,写操作,2020/5/25,北京邮电大学信息与通信工程学院,-41-,4.1.4多维数组,例4-5编程实现矩阵转置功能,矩阵行数为M,列数为N,用二维数组表示矩阵。,2020/5/25,北京邮电大学信息与通信工程学院,-42-,2020/5/25,北京邮电大学信息与通信工程学院,-43-,/例4-5矩阵转置#include#include#includeusingnamespacestd;voidmain()constintM=5;constintN=6;intmatrixMN;/矩阵inttMatrixNM;/转置矩阵srand(unsignedint)time(NULL);inti,j;,2020/5/25,北京邮电大学信息与通信工程学院,-44-,coutmatrix:endl;for(i=0;iM;i+)/生成矩阵for(j=0;jN;j+)matrixij=rand()%100;/给数组元素赋值coutsetw(4)matrixij;coutendl;,2020/5/25,北京邮电大学信息与通信工程学院,-45-,couttransposeofmatrix:endl;for(i=0;iN;i+)/得到转置矩阵for(j=0;jM;j+)tMatrixij=matrixji;/给数组元素赋值coutsetw(4)tMatrixij;coutendl;,4.1.5数组应用举例,例4-640个学生用110的分数评价学生食堂的质量(1表示很差,10表示很好),将40个分数放在整型数组中,并汇总调查结果。,2020/5/25,北京邮电大学信息与通信工程学院,-46-,2020/5/25,北京邮电大学信息与通信工程学院,-47-,/例4-6汇总评分结果#include#includeusingnamespacestd;voidmain()constintcStuNum=40;/学生人数constintcScoreNum=11;/分数个数intscorecStuNum=1,2,6,4,8,5,9,7,8,10,1,6,3,8,6,10,3,8,2,6,6,5,6,8,7,7,5,5,6,7,4,6,8,10,3,1,2,7,9,6;/全部分数intcountscScoreNum=0;/分数统计计数器,初始化为0,2020/5/25,北京邮电大学信息与通信工程学院,-48-,intk;for(intk=0;kcStuNum;k+)/统计分数countsscorek+;coutscoresetw(10)countsendl;for(k=1;kcScoreNum;k+)/输出结果coutsetw(6)ksetw(10)countskendl;,4.1.5数组应用举例,例4-7编程实现计算两个N阶方阵乘积矩阵的功能,矩阵元素为整形,N=5。,2020/5/25,北京邮电大学信息与通信工程学院,-49-,2020/5/25,北京邮电大学信息与通信工程学院,-50-,/例4-7求两个N阶方阵乘积矩阵#include#include#includeusingnamespacestd;voidmain()constintN=5;intaNN,bNN;/两个相乘的矩阵intcNN=0;/乘积矩阵inti,j,k;srand(unsignedint)time(NULL);/生成矩阵a和bfor(i=0;iN;i+)/行循环for(j=0;jN;j+)/列循环aij=rand()%100;bij=rand()%100;,2020/5/25,北京邮电大学信息与通信工程学院,-51-,/显示矩阵a,再显示矩阵bcoutmatrixa:endl;for(i=0;iN;i+)for(j=0;jN;j+)coutsetw(5)aij;coutendl;coutmatrixb:endl;for(i=0;iN;i+)for(j=0;jN;j+)coutsetw(5)bij;coutendl;,2020/5/25,北京邮电大学信息与通信工程学院,-52-,/计算乘积矩阵c,并显示for(i=0;iN;i+)for(j=0;jN;j+)for(k=0;kN;k+)/求c的一个元素cij+=aik*bkj;coutmatrixc:endl;for(i=0;iN;i+)for(j=0;jN;j+)coutsetw(10)cij;coutendl;,4.1.5数组应用举例,例4-8给定二维数组,编程计算元素的均值和方差。,2020/5/25,北京邮电大学信息与通信工程学院,-53-,2020/5/25,北京邮电大学信息与通信工程学院,-54-,/例4-8计算一组数据的均值和方差#include#include#includeusingnamespacestd;voidmain()constintROWS=20;constintCOLS=10;intmatrixROWSCOLS=0;introw,col;srand(unsigned)time(NULL);for(row=0;rowROWS;row+)/生成数据for(col=0;colCOLS;col+)matrixrowcol=rand()%100;coutsetw(4)matrixrowcol,;coutendl;,2020/5/25,北京邮电大学信息与通信工程学院,-55-,/统计均值floatmean(0),var(0);for(row=0;row0)mean/=size;elsemean=0;,2020/5/25,北京邮电大学信息与通信工程学院,-56-,/统计方差for(row=0;row0)var/=size;elsevar=0;/显示统计结果coutmean=mean;stdvar=varn;weekdaytoday=(weekday)n;weekdaytomorrow=(weekday)(today+1)%7);tomorrow=0?sun:tomorrow;switch(tomorrow)casesun:coutTomorrowisSunday.endl;break;casemon:coutTomorrowisMonday.endl;break;,casetue:coutTomorrowisTuesday.endl;break;casewed:coutTomorrowisWednesday.endl;break;casethu:coutTomorrowisThursday.endl;break;casefri:coutTomorrowisFriday.endl;break;casesat:coutTomorrowisSaturday.endl;break;default:coutinputerror!endl;,2020/5/25,北京邮电大学信息与通信工程学院,-65-,例:,口袋中有红、黄、蓝、白、黑五种颜色的球若干个。每次从口袋中取出3个不同颜色的球,问有多少种取法。,分析:由于球只能是五种颜色之一,故可用枚举类型表示球的颜色。设取出的球为i、j、k,根据题意,i、j、k分别可以有五种取值,且ijk。可以用穷举法,逐个检验每一种可能的组合,从中找出符合要求的组合并输出。,#includeenumcolorred,yellow,blue,white,black;voidmain()enumcolorprint;intn,loop,i,j,k;charc;n=0;for(i=red;i=black;i+)for(j=red;j=black;j+)if(i!=j)/前两个球不同for(k=red;k=black;k+),if(k!=i),switch(print)casered:coutred;break;caseyellow:coutyellow;break;caseblue:coutblue;break;casewhite:coutwhite;break;caseblack:coutblack;break;default:break;/endofforloopcoutendl;/endofif/endofifcouttotal:nendl;,4.3结构类型,结构类型把现实生活中意义密切相关的一组数据组合成一个整体,即由各种数据类型(可以是基本数据类型或已声明的自定义数据类型)的数据组成一个集合,称为结构类型。例如,一个学生的学号、姓名、年龄、成绩等,虽然分别属于不同的数据类型,但它们之间是密切相关的,因为每一组信息属于一个人。,2020/5/25,北京邮电大学信息与通信工程学院,-69-,2020/5/25,北京邮电大学电信工程学院计算机技术中心,-70-,结构类型的定义结构的声明形式:struct结构类型名数据类型标识符1成员名1;数据类型标识符2成员名2;数据类型标识符n成员名n;;,4.3.1结构类型的定义和初始化,structstudentlongnum;/学号charname20;/姓名charsex;/性别intage;/年龄floatscore;/成绩charaddr30;/住址;/必须以分号结束结构的定义,2020/5/25,北京邮电大学信息与通信工程学院,-71-,2结构成员的访问定义结构类型的变量:结构类型名结构变量名;例:定义student类型的变量:students1;,4.3.1结构类型的定义和初始化,2020/5/25,北京邮电大学电信工程学院计算机技术中心,-72-,结构类型的变量所占的存储空间是结构中所有成员所占空间的总和例sizeof(student)=sizeof(long)+20*sizeof(char)+sizeof(char)+sizeof(int)+sizeof(float)+30*sizeof(char)sizeof(s1)=sizeof(student),结构类型的变量所占的存储空间,考虑到对齐的要求,系统会将占空间不是4的倍数的成员空间调整为4的倍数:将成员sex调整为4字节,将成员addr调整为32字节,总共占用68字节。,2020/5/25,北京邮电大学信息与通信工程学院,-73-,结构成员的访问:结构变量名.成员名例:students1;s1.num=1;couts1.numendl;couts1.nameendl;,如同使用一个变量,如同使用一个数组,访问结构成员,2020/5/25,北京邮电大学信息与通信工程学院,-74-,3结构变量的初始化定义结构变量时直接初始化students2=20041118,”LiLi”,18,90;分别给各个成员赋值students1;s1.num=20041118;strcpy(s1.name,“LiLi”);,4.3.1结构类型的定义和初始化,例4-10结构类型的声明,变量的定义和初始化#include#includeusingnamespacestd;structstudent/声明新的数据类型longnum;/学号charname20;/姓名charsex;/性别intage;/年龄stu=20041118,LiLi,F,18;voidmain()coutsetw(8)stu.numsetw(10)stu.namesetw(3)stu.sexsetw(3)stu.ageendl;运行结果:20041118LiLiF18,2020/5/25,北京邮电大学信息与通信工程学院,-76-,结构体可以由不同数据类型的成员构成,这些成员可能是基本数据类型,也可能是自定义的数据类型,例如已声明的另一个结构类型。例4-11访问带有结构体类型成员的结构体变量。,2020/5/25,北京邮电大学信息与通信工程学院,-77-,/例4-11结构体定义的嵌套#includeusingnamespacestd;structdateintyear;intmonth;intday;,structWeatherdatetoday;doubletemp;/温度doublewind;/风力,2020/5/25,北京邮电大学电信工程学院计算机技术中心,-78-,voidmain()Weathertoday_weather=2004,11,30,10.0,3.1;couttoday_weather.today.year年today_weather.today.month月today_weather.today.day日的天气是:;cout温度:today_weather.temp;cout度,风力:today_weather.wind级si.num;cinsi.score;,2020/5/25,北京邮电大学电信工程学院计算机技术中心,-83-,#includeusingnamespacestd;structEmployeecharname20;unsignedlongid;floatsalary;,例4-12公司有六个员工,把他们按工资由低到高排序。,Employeeallone6=zhang,12345,3390.0,wang,13916,4490.0,zhou,27519,3110.0,meng,42876,6230.0,yang,23987,4000.0,chen,12335,5110.0;,2020/5/25,北京邮电大学信息与通信工程学院,-84-,voidmain()Employeetemp;for(inti=1;iallonej+1.salary)temp=allonej;/结构变量的交换allonej=allonej+1;allonej+1=temp;for(intk=0;k6;k+)/输出coutallonek.nameallonek.idallonek.salarypi.namepi.sexpi.job;if(pi.job=s)cinpi.classes;elseif(pi.job=t)cinpi.position;elsecoutinputerror!endl;,2020/5/25,北京邮电大学信息与通信工程学院,-90-,运行结果:9910401zhangms1042355wangftprofzhangisastudentofclass104.wangisateacher,heisaprof.,for(i=0;i2;i+)/按学生或教师显示信息if(pi.job=s)coutpi.nameisastudentofclasspi.classes.endl;elseif(pi.job=t)coutpi.nameisateacher,heisapi.position.n;,4.4联合类型,联合型变量的特点如下。(1)同一段内存用来存放几种不同类型的成员,但在某一时刻只能存放其中一种,而不是同时存放几种;(2)联合变量中起作用的成员是最后一次存放的成员,在存入一个新的成员后,原有的成员就会失去作用;(3)联合变量的地址和它的各个成员的地址是同一地址;(4)不能对联合变量名赋值,也不能在定义时初始化;(5)不能用联合变量作为函数参数或返回值。,2020/5/25,北京邮电大学信息与通信工程学院,-91-,2020/5/25,北京邮电大学信息与通信工程学院,-92-,总结,数组最适合表示所有元素类型都相同的集合类型的数据,元素的类型既可以是C+基本的数据类型,也可以是用户自定义的类型;掌握数组的使用要从数组的定义、初始化、数组元素的赋值以及读写数组元素的值等方面着手;数组名是地址常量,程序中禁止出现给数组名赋值的语句;每个数组元素都相当于一个变量,访问数组元素时切忌下标越界。,2020/5/25,北京邮电大学信息与通信工程学院,-93-,总结,用户自定义的数据类型和系统预定义的数据类型,它们的地位是等价的。声明一个新的数据类型时并不分配内存,只有在定义新数据类型的变量时才发生内存分配。枚举类型实际上是有限个整数的集合。结构变量所占的内存长度是各个成员占的内存长度之和,每个成员都有自己的内存单元。(注意4字节对齐问题),
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!