《C語(yǔ)言程序設(shè)計(jì)及應(yīng)用》課件第9章結(jié)構(gòu)體_第1頁(yè)
《C語(yǔ)言程序設(shè)計(jì)及應(yīng)用》課件第9章結(jié)構(gòu)體_第2頁(yè)
《C語(yǔ)言程序設(shè)計(jì)及應(yīng)用》課件第9章結(jié)構(gòu)體_第3頁(yè)
《C語(yǔ)言程序設(shè)計(jì)及應(yīng)用》課件第9章結(jié)構(gòu)體_第4頁(yè)
《C語(yǔ)言程序設(shè)計(jì)及應(yīng)用》課件第9章結(jié)構(gòu)體_第5頁(yè)
已閱讀5頁(yè),還剩54頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第9章結(jié)構(gòu)體、共用體和枚舉類(lèi)型9.1結(jié)構(gòu)體類(lèi)型與結(jié)構(gòu)體變量9.2結(jié)構(gòu)體數(shù)組9.3向函數(shù)傳遞結(jié)構(gòu)體數(shù)據(jù)9.4結(jié)構(gòu)指針變量的說(shuō)明和使用9.5鏈表9.6共用體9.7枚舉類(lèi)型9.8用戶(hù)自定義類(lèi)型9.9應(yīng)用舉例9.1結(jié)構(gòu)體類(lèi)型與結(jié)構(gòu)體變量9.1.1結(jié)構(gòu)體類(lèi)型的定義9.1.2結(jié)構(gòu)體變量的定義9.1.3結(jié)構(gòu)體變量的初始化9.1.1結(jié)構(gòu)體類(lèi)型的定義“結(jié)構(gòu)”相當(dāng)于其他高級(jí)語(yǔ)言中的記錄?!敖Y(jié)構(gòu)”是一種構(gòu)造類(lèi)型,它是由若干“成員”組成的。每個(gè)成員可以是一個(gè)基本數(shù)據(jù)類(lèi)型或者又是一個(gè)構(gòu)造類(lèi)型。使用之前必須先定義它。定義一個(gè)結(jié)構(gòu)的一般形式為:

struct結(jié)構(gòu)名{成員列表};成員列表由若干個(gè)成員組成。對(duì)每個(gè)成員也必須作類(lèi)型說(shuō)明,其形式為:

類(lèi)型說(shuō)明符

成員名;成員名的命名應(yīng)符合標(biāo)識(shí)符的書(shū)寫(xiě)規(guī)定。9.1.1結(jié)構(gòu)體類(lèi)型的定義例如:structstu{intnum;charname[20];charsex;floatscore;};9.1.2結(jié)構(gòu)體變量的定義說(shuō)明結(jié)構(gòu)體變量有以下三種方法:(1)先定義結(jié)構(gòu),再說(shuō)明結(jié)構(gòu)變量。(2)在定義結(jié)構(gòu)類(lèi)型的同時(shí)說(shuō)明結(jié)構(gòu)變量。(3)直接說(shuō)明結(jié)構(gòu)變量。如果用前面定義的stu結(jié)構(gòu)為例,三種方法中說(shuō)明的結(jié)構(gòu)變量都具有下圖所示的結(jié)構(gòu)。9.1.2結(jié)構(gòu)體變量的定義成員也可以又是一個(gè)結(jié)構(gòu),即構(gòu)成了嵌套的結(jié)構(gòu)。如下圖所示為具有嵌套的結(jié)構(gòu)。9.1.3結(jié)構(gòu)體變量的初始化結(jié)構(gòu)體類(lèi)型的變量存儲(chǔ)類(lèi)型可分為自動(dòng)的、靜態(tài)的和外部的,按照ANSIC標(biāo)準(zhǔn)的規(guī)定,各種存儲(chǔ)類(lèi)型的結(jié)構(gòu)體類(lèi)型的變量都可以初始化。 形式如下:

struct

結(jié)構(gòu)體名 {

數(shù)據(jù)類(lèi)型

成員名1; ......

數(shù)據(jù)類(lèi)型

成員名n; }變量名

{初始化數(shù)據(jù)}如果結(jié)構(gòu)體類(lèi)型已定義,也可用以下方式初始化:

struct結(jié)構(gòu)體名

變量名

{初始化數(shù)據(jù)}9.2結(jié)構(gòu)體數(shù)組9.2.1結(jié)構(gòu)體數(shù)組的定義9.2.2結(jié)構(gòu)體數(shù)組的初始化9.2.1結(jié)構(gòu)體數(shù)組的定義一個(gè)結(jié)構(gòu)體里可以存放一組數(shù)據(jù)(如一個(gè)學(xué)生的學(xué)號(hào)、姓名、年齡等)。如果有10個(gè)學(xué)生的數(shù)據(jù)需要參加運(yùn)算,顯然需要用到數(shù)組,這就是結(jié)構(gòu)體數(shù)組。結(jié)構(gòu)體數(shù)組與以前介紹過(guò)的數(shù)執(zhí)行數(shù)組的不同之處在于結(jié)構(gòu)體數(shù)組中每個(gè)數(shù)組元素都是一個(gè)結(jié)構(gòu)體類(lèi)型的數(shù)據(jù),它們都分別包括各個(gè)成員量。9.2.2結(jié)構(gòu)體數(shù)組的初始化結(jié)構(gòu)體數(shù)組可以初始化,但是只能對(duì)全局或靜態(tài)存儲(chǔ)類(lèi)別的數(shù)組初始化。定義結(jié)構(gòu)體數(shù)組時(shí),元素個(gè)數(shù)可以不指定,編譯時(shí),系統(tǒng)會(huì)根據(jù)給出初值的結(jié)構(gòu)體常量的個(gè)數(shù)來(lái)確定數(shù)組元素的個(gè)數(shù)。9.2.2結(jié)構(gòu)體數(shù)組的初始化【例9-2】計(jì)算學(xué)生的平均成績(jī)和不及格的人數(shù)。structstu{intnum;char*name;charsex;floatscore;}boy[5]={/*定義了一個(gè)外部結(jié)構(gòu)數(shù)組boy*/{101,"Liping",'M',45},/*初始化賦值*/{102,"Zhangping",'M',62.5},{103,"Hefang",'F',92.5},{104,"Chengling",'F',87},{105,"Wangming",'M',58},};9.2.2結(jié)構(gòu)體數(shù)組的初始化main(){inti,c=0;floatave,s=0;for(i=0;i<5;i++){s+=boy[i].score; /*逐個(gè)累加各元素 的score成員值存于s之中*/

if(boy[i].score<60)c+=1;}printf("s=%f\n",s);ave=s/5; /*計(jì)算平均成績(jī)*/

printf("average=%f\ncount=%d\n",ave,c); /*輸出全班總分,平均分及不及格人數(shù)*/}9.2.2結(jié)構(gòu)體數(shù)組的初始化【例9-2】程序運(yùn)行結(jié)果如下圖所示。9.3向函數(shù)傳遞結(jié)構(gòu)體數(shù)據(jù)把結(jié)構(gòu)體傳遞給函數(shù)有三種方法:傳遞單個(gè)成員,傳遞整個(gè)結(jié)構(gòu)傳遞指向結(jié)構(gòu)的指針。傳遞結(jié)構(gòu)變量的地址可以實(shí)現(xiàn)結(jié)構(gòu)的傳引用調(diào)用,和其他數(shù)組一樣,結(jié)構(gòu)體數(shù)組也是自動(dòng)以傳引用調(diào)用的。9.4結(jié)構(gòu)指針變量的說(shuō)明和使用9.4.1指向結(jié)構(gòu)變量的指針9.4.2指向結(jié)構(gòu)數(shù)組的指針9.4.3結(jié)構(gòu)指針變量作函數(shù)參數(shù)9.4.1指向結(jié)構(gòu)變量的指針一個(gè)指針變量當(dāng)用來(lái)指向一個(gè)結(jié)構(gòu)變量時(shí),稱(chēng)之為結(jié)構(gòu)指針變量。結(jié)構(gòu)指針變量中的值是所指向的結(jié)構(gòu)變量的首地址。結(jié)構(gòu)指針變量說(shuō)明的一般形式為:

struct

結(jié)構(gòu)名*結(jié)構(gòu)指針變量名結(jié)構(gòu)指針變量也必須要先賦值后才能使用。賦值是把結(jié)構(gòu)變量的首地址賦予該指針變量,不能把結(jié)構(gòu)名賦予該指針變量。結(jié)構(gòu)名只能表示一個(gè)結(jié)構(gòu)形式。9.4.1指向結(jié)構(gòu)變量的指針有了結(jié)構(gòu)指針變量,就能更方便地訪問(wèn)結(jié)構(gòu)變量的各個(gè)成員。 其訪問(wèn)的一般形式為: (*結(jié)構(gòu)指針變量).成員名 或?yàn)椋航Y(jié)構(gòu)指針變量->成員名9.4.1指向結(jié)構(gòu)變量的指針【例9-5】structstu /*定義一個(gè)結(jié)構(gòu)stu*/{intnum;char*name;charsex;floatscore;}boy1={102,"Zhangping",'M',78.5},*pstu;

/*定義stu類(lèi)型結(jié)構(gòu)變量boy1并作了初始化賦值*/main(){pstu=&boy1; /*pstu被賦予boy1的地址*/ /*用三種形式輸出boy1的各個(gè)成員值*/9.4.1指向結(jié)構(gòu)變量的指針printf("Number=%d\nName=%s\n",boy1.num,);printf("Sex=%c\nScore=%f\n\n",boy1.sex,boy1.score);printf("Number=%d\nName=%s\n",(*pstu).num,(*pstu).name);printf("Sex=%c\nScore=%f\n\n",(*pstu).sex,(*pstu).score);printf("Number=%d\nName=%s\n",pstu->num,pstu->name);printf("Sex=%c\nScore=%f\n\n",pstu->sex,pstu->score);}9.4.1指向結(jié)構(gòu)變量的指針【【例9-5】程序運(yùn)行結(jié)果如下圖所示。9.4.2指向結(jié)構(gòu)數(shù)組的指針指針變量可以指向一個(gè)結(jié)構(gòu)數(shù)組,這時(shí)結(jié)構(gòu)指針變量的值是整個(gè)結(jié)構(gòu)數(shù)組的首地址。結(jié)構(gòu)指針變量也可指向結(jié)構(gòu)數(shù)組的一個(gè)元素,這時(shí)結(jié)構(gòu)指針變量的值是該結(jié)構(gòu)數(shù)組元素的首地址。應(yīng)該注意的是,一個(gè)結(jié)構(gòu)指針變量雖然可以用來(lái)訪問(wèn)結(jié)構(gòu)變量或結(jié)構(gòu)數(shù)組元素的成員,但是,不能使它指向一個(gè)成員。9.4.3結(jié)構(gòu)指針變量作函數(shù)參數(shù)用結(jié)構(gòu)指針變量作函數(shù)參數(shù)進(jìn)行傳送。這時(shí)由實(shí)參傳向形參的只是地址,從而減少了時(shí)間和空間的開(kāi)銷(xiāo)。【例9-7】計(jì)算一組學(xué)生的平均成績(jī)和不及格人數(shù)。用結(jié)構(gòu)指針變量作函數(shù)參數(shù)編程。structstu{intnum;char*name;charsex;floatscore;}boy[5]={9.4.3結(jié)構(gòu)指針變量作函數(shù)參數(shù){101,"Liping",'M',45},{102,"Zhangping",'M',62.5},{103,"Hefang",'F',92.5},{104,"Chengling",'F',87},{105,"Wangming",'M',58},}; /*定義為外部結(jié)構(gòu)數(shù)組*/main(){structstu*ps;voidave(structstu*ps);ps=boy; /*使ps指向boy數(shù)組*/

ave(ps);/*以ps作實(shí)參調(diào)用函數(shù)ave*/}9.4.3結(jié)構(gòu)指針變量作函數(shù)參數(shù)

voidave(structstu*ps) /*定義函數(shù)ave,

其形參為結(jié)構(gòu)指針變量ps*/{intc=0,i;floatave,s=0;for(i=0;i<5;i++,ps++){s+=ps->score;if(ps->score<60)c+=1;}printf("s=%f\n",s);ave=s/5;printf("average=%f\ncount=%d\n",ave,c);}9.4.3結(jié)構(gòu)指針變量作函數(shù)參數(shù)【例9-7】程序運(yùn)行結(jié)果如下圖所示。9.5鏈表9.5.1動(dòng)態(tài)存儲(chǔ)結(jié)構(gòu)9.5.2鏈表概念9.5.3鏈表操作9.5.1動(dòng)態(tài)存儲(chǔ)結(jié)構(gòu)C語(yǔ)言提供了一些內(nèi)存管理函數(shù),這些內(nèi)存管理函數(shù)可以按需要?jiǎng)討B(tài)地分配內(nèi)存空間,也可把不再使用的空間回收待用,為有效地利用內(nèi)存資源提供了手段。常用的內(nèi)存管理函數(shù)有以下三個(gè)。1.分配內(nèi)存空間函數(shù)malloc

調(diào)用形式:(類(lèi)型說(shuō)明符*)malloc(size)功能:在內(nèi)存的動(dòng)態(tài)存儲(chǔ)區(qū)中分配一塊長(zhǎng)度為“size”字節(jié)的連續(xù)區(qū)域。函數(shù)的返回值為該區(qū)域的首地址。9.5.1動(dòng)態(tài)存儲(chǔ)結(jié)構(gòu)2.分配內(nèi)存空間函數(shù)calloccalloc也用于分配內(nèi)存空間。調(diào)用形式:(類(lèi)型說(shuō)明符*)calloc(n,size)功能:在內(nèi)存動(dòng)態(tài)存儲(chǔ)區(qū)中分配n塊長(zhǎng)度為“size”字節(jié)的連續(xù)區(qū)域。函數(shù)的返回值為該區(qū)域的首地址。9.5.1動(dòng)態(tài)存儲(chǔ)結(jié)構(gòu)3.釋放內(nèi)存空間函數(shù)free調(diào)用形式:

free(void*ptr);功能:釋放ptr所指向的一塊內(nèi)存空間,ptr是一個(gè)任意類(lèi)型的指針變量,它指向被釋放區(qū)域的首地址。被釋放區(qū)應(yīng)是由malloc或calloc函數(shù)所分配的區(qū)域。9.5.2鏈表概念鏈表是一種常見(jiàn)的重要的數(shù)據(jù)結(jié)構(gòu)。它是動(dòng)態(tài)地進(jìn)行存儲(chǔ)分配的一種結(jié)構(gòu)。鏈表是用指針鏈在一起的自引用結(jié)構(gòu)(稱(chēng)為“節(jié)點(diǎn)”)的線性組合,如下圖所示。9.5.3鏈表操作鏈表的基本操作對(duì)鏈表的主要操作有以下幾種:(1)建立鏈表。(2)結(jié)構(gòu)的查找與輸出。(3)插入一個(gè)結(jié)點(diǎn)。(4)刪除一個(gè)結(jié)點(diǎn)。9.5.3鏈表操作例如:建立一個(gè)三個(gè)結(jié)點(diǎn)的鏈表,存放學(xué)生數(shù)據(jù)。為簡(jiǎn)單起見(jiàn),假定學(xué)生數(shù)據(jù)結(jié)構(gòu)中只有學(xué)號(hào)和年齡兩項(xiàng)??删帉?xiě)一個(gè)建立鏈表的函數(shù)create。#defineNULL0#defineTYPEstructstu /*用TYPE表 示structstu*/#defineLENsizeof(structstu)structstu

{intnum;intage;structstu*next;};9.5.3鏈表操作

TYPE*create(intn)

/*建立一個(gè)有n個(gè)結(jié)點(diǎn)的鏈表*/{

structstu*head,*pf,*pb;

/*定義三個(gè)stu結(jié)構(gòu)的指針變量*/

inti;for(i=0;i<n;i++){

pb=(TYPE*)malloc(LEN);

/*pb為后一結(jié)點(diǎn)的指針變量*/9.5.3鏈表操作

printf("inputNumberandAge\n");scanf("%d%d",&pb->num,&pb->age);if(i==0)pf=head=pb; /*pf為指向兩相鄰結(jié)點(diǎn)的 前一結(jié)點(diǎn)的指針變量*/

elsepf->next=pb;pb->next=NULL;pb=pf;}return(head);}9.6共用體9.6.1共用體類(lèi)型的定義9.6.2共用體變量使用9.6.1共用體類(lèi)型的定義同一區(qū)域可供不同類(lèi)型的數(shù)據(jù)使用(但不在同一時(shí)刻),這些不同的數(shù)據(jù),可以形成一種新的數(shù)據(jù)構(gòu)造類(lèi)型,它被稱(chēng)之為共用體。共用體類(lèi)型定義的一般形式為:

union共用體名 {

數(shù)據(jù)類(lèi)型

成員名1;

數(shù)據(jù)類(lèi)型

成員名2; ........

數(shù)據(jù)類(lèi)型

成員名N; }共用體用來(lái)使相關(guān)變量共享存儲(chǔ)空間而不是把空間浪費(fèi)給并不使用的變量。9.6.2共用體變量使用共用體類(lèi)型變量以及指向共用體類(lèi)型變量的指針變量的定義方法與結(jié)構(gòu)體變量的和結(jié)構(gòu)類(lèi)型變量和指向結(jié)構(gòu)體類(lèi)型的指針變量的定義方法是十分相似的。可以用以下的說(shuō)明語(yǔ)句定義這種類(lèi)型的變量和指向這種類(lèi)型變量的指針變量:

unionsempunivar,*uniptr;

例如:

uniondata {inti;

charc; floatf;}a,b,c;9.7枚舉類(lèi)型9.7.1枚舉類(lèi)型和枚舉變量的定義9.7.2枚舉類(lèi)型變量使用9.7.1枚舉類(lèi)型和枚舉變量的定義1.枚舉的定義枚舉類(lèi)型定義的一般形式為:

enum

枚舉名{枚舉值表};在枚舉值表中應(yīng)羅列出所有可用值。這些值也稱(chēng)為枚舉元素。2.枚舉變量的說(shuō)明枚舉變量也可用不同的方式說(shuō)明,即先定義后說(shuō)明,同時(shí)定義說(shuō)明或直接說(shuō)明。9.7.2枚舉類(lèi)型變量使用枚舉類(lèi)型在使用中有以下規(guī)定:(1)枚舉值是常量,不是變量。不能在程序中用賦值語(yǔ)句再對(duì)它賦值。(2)枚舉元素本身由系統(tǒng)定義了一個(gè)表示序號(hào)的數(shù)值,從0開(kāi)始順序定義為0,1,2…。9.7.2枚舉類(lèi)型變量使用【例9-10】main(){enumweekday{sun,mon,tue,wed,thu,fri,sat}a,b,c; /*定義三個(gè)枚舉類(lèi)型變量*/

a=sun;b=mon;c=tue;printf("%d,%d,%d",a,b,c);}9.7.2枚舉類(lèi)型變量使用【例9-10】程序運(yùn)行結(jié)果如下圖所示。9.8用戶(hù)自定義類(lèi)型C語(yǔ)言不僅提供了豐富的數(shù)據(jù)類(lèi)型,而且還允許由用戶(hù)自己定義類(lèi)型說(shuō)明符,也就是說(shuō)允許由用戶(hù)為數(shù)據(jù)類(lèi)型取“別名”。類(lèi)型定義符typedef即可用來(lái)完成此功能。

typedef定義的一般形式為:

typedef

原類(lèi)型名

新類(lèi)型名其中原類(lèi)型名中含有定義部分,新類(lèi)型名一般用大寫(xiě)表示,以便于區(qū)別。9.8用戶(hù)自定義類(lèi)型例如,可把整型說(shuō)明符用typedef定義為:

typedefintINTEGER

這以后就可用INTEGER來(lái)代替int作整型變量的類(lèi)型說(shuō)明了。例如:

INTEGERa,b;它等效于:

inta,b;9.9應(yīng)用舉例【例9-12】使用結(jié)構(gòu)Card(如下圖所示)來(lái)描述一張牌,用隨機(jī)函數(shù)來(lái)模擬人工洗牌的過(guò)程。編程思想:(1)說(shuō)明Card結(jié)構(gòu):(2)初始化一副牌。(3)模擬人工洗牌過(guò)程。9.9應(yīng)用舉例源程序:#include"stdlib.h"#include"time.h"typedefstruct{ intpips; /*從1到13。 1:A,11:J,12:Q,13:K*/ charsuit;

/*花色。C:梅花

D:

方塊

H:紅心

S:黑桃*/}Card;9.9應(yīng)用舉例/*初始化一副牌*/Carddeck[]={ {1,'C'},{2,'C'},{3,'C'},{4,'C'},{5,'C'},{6,'C'},{7,'C'}, {8,'C'},{9,'C'},{10,'C'},{11,'C'},{12,'C'},{13,'C'}, {1,'D'},{2,'D'},{3,'D'},{4,'D'},{5,'D'},{6,'D'},{7,'D'}, {8,'D'},{9,'D'},{10,'D'},{11,'D'},{12,'D'},{13,'D'}, {1,'E'},{2,'E'},{3,'E'},{4,'E'},{5,'E'},{6,'E'},{7,'E'}, {8,'E'},{9,'E'},{10,'E'},{11,'E'},{12,'E'},{13,'E'}, {1,'F'},{2,'F'},{3,'F'},{4,'F'},{5,'F'},{6,'F'},{7,'F'}, {8,'F'},{9,'F'},{10,'F'},{11,'F'},{12,'F'},{13,'F'}};9.9應(yīng)用舉例/*交換兩張牌*/voidswapcard(Card*p,Card*q){ Cardtemp; temp=*p; *p=*q; *q=temp; /*交換兩張牌*/

return;} /*模擬人工洗牌的過(guò)程*/voidshuffle(Carddeck[]){ inti,j; srand((unsigned)time(NULL)); /*調(diào)用函數(shù) 對(duì)隨機(jī)函數(shù)初始化*/9.9應(yīng)用舉例for(i=0;i<52;i++) { j=rand()%52;/*從52張紙牌中隨機(jī)選 擇一張牌與第i張牌進(jìn)行交換*/

swapcard(&deck[i],&deck[j]);/*以結(jié)構(gòu) 數(shù)組中元素的地址為實(shí)參*/ }

return;}main(){ inti; shuffle(deck); for(i=0;i<52;i++)9.9應(yīng)用舉例if(i%13==0) printf("\nNo.%d:",i/13+1); else

printf("%c%2d,",deck[i].suit,deck[i].pips); getchar();}【例9-12】程序運(yùn)行結(jié)果如下圖所示。9.9應(yīng)用舉例【例9-13】用鏈表再解約瑟夫問(wèn)題。約瑟夫問(wèn)題是十七世紀(jì)的法國(guó)數(shù)學(xué)家加斯帕在《數(shù)目的游戲問(wèn)題》中講的一個(gè)故事:15個(gè)基督教徒和15個(gè)異教徒在海上遇險(xiǎn),必須將一半的人投入海中,其余的人才能幸免遇難,于是想了一個(gè)辦法:30個(gè)人圍成一個(gè)圈,從第一個(gè)人開(kāi)始報(bào)數(shù),每數(shù)到第九個(gè)人就將它扔近大海,如此循環(huán)進(jìn)行直到盡余15人為止。問(wèn)怎樣排法,才能使每次投入大海的都是異教徒。9.9應(yīng)用舉例(1)題目中30個(gè)人圍成一圈,因而啟發(fā)用一個(gè)循環(huán)的鏈表來(lái)表示。如下圖所示。(2)main函數(shù)實(shí)現(xiàn)過(guò)程。①創(chuàng)建并初始化鏈表環(huán)。②通過(guò)鏈表環(huán),對(duì)約瑟夫問(wèn)題求解(利用for循環(huán)15次,取出15人扔進(jìn)大海)。③釋放鏈表環(huán)內(nèi)存。④輸出排序結(jié)果。編程思想:9.9應(yīng)用舉例源程序:/*定義結(jié)構(gòu)*/typedefstructnode{ node*nextp; /*指向下一個(gè)元素的指針*/

intno_out; /*是否被扔下海的標(biāo)志1:沒(méi)有 被扔下海0:已被扔下海*/}Person;main(){ printf("Theoriginalcircleis(+:pagandom,@:christian):\n"); /*創(chuàng)建并初始化鏈表*/

Person*head=newPerson;9.9應(yīng)用舉例/*初始化頭結(jié)點(diǎn)*

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論