面向?qū)ο蟪绦蛟O計.doc_第1頁
面向?qū)ο蟪绦蛟O計.doc_第2頁
面向?qū)ο蟪绦蛟O計.doc_第3頁
面向?qū)ο蟪绦蛟O計.doc_第4頁
面向?qū)ο蟪绦蛟O計.doc_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、 面向?qū)ο蟪绦蛟O計n 結(jié)構(gòu)化程序設計的基本內(nèi)容:1. 結(jié)構(gòu)的類型:順序、分支、循環(huán)2. 結(jié)構(gòu)化程序設計思想:利用過程或函數(shù)來抽象和模擬客觀現(xiàn)實。3. 結(jié)構(gòu)化程序設計方法:1) 重點放在如何實現(xiàn)細節(jié)過程方面,將數(shù)據(jù)與函數(shù)分開。2) 形式:主模塊+若干個子模塊(如:main()+子函數(shù))。4. 特點:自頂向下,逐步求精功能分解。5. 缺點:效率低,是手工作坊式的編程。6. 結(jié)構(gòu)化程序的問題數(shù)據(jù)與算法分離,程序數(shù)據(jù)和操作數(shù)據(jù)的函數(shù)是分離的。n 面向?qū)ο蟪绦蛟O計觀點:1. 自然界是由各種各樣的實體(對象)所組成,每種對象都有自己的內(nèi)部狀態(tài)和運動規(guī)律,不同對象之間的相互聯(lián)系和相互作用就構(gòu)成了各種不同的系

2、統(tǒng),進而構(gòu)成整個客觀世界。2. 程序設計方法:使用面向?qū)ο蟮挠^點來描述模仿并處理現(xiàn)實問題。3. 要求:高度概括、分類和抽象。4. 目的:實現(xiàn)軟件設計的產(chǎn)業(yè)化。5. 基本概念:1) 對象:用來描述客觀事物的一個實體,它是構(gòu)成系統(tǒng)的一個基本單元。一個對象具有一組屬性和行為。實體對象*一臺計算機抽象對象*一項計劃2) 對象構(gòu)成要素:對象標識符:是對象的名稱,用來區(qū)別于其他對象。屬性:是用來描述對象靜態(tài)特征的一個數(shù)據(jù)項。行為:是用來描述對象動態(tài)特征和行為的操作。3) 消息(Message)用于描述事件發(fā)生的信息。消息是對象之間發(fā)出的行為請求。多個消息構(gòu)成一個事件(Event)。對象之間通過傳遞消息相互

3、影響。對象示例:一個“學生”對象的例子對象名:學生屬性:學號:123456姓名:令狐沖年齡:18專業(yè):信管行為:修改學號、姓名、專業(yè)、年齡等等對象示例:一個“課程”對象的例子:對象名:課程屬性:課程號:123456課程名:程序設計任課教師:莫名選課要求:學時:48行為:獲取并修改課程名、課程號、學時數(shù)、選課要求、任課教師等4) 類:是具有相同屬性和行為的一組對象的集合,它為屬于該類的全部對象提供統(tǒng)一的抽象描述,是對象集合的再抽象。5) 類和對象的關系:類(抽象定義)對象(實例)6) 類對象舉例學生學生王強課程C+程序設計類型變量,如C語言中的int和int x;7) 類的實例用類定義的類變量,

4、即對象。類是對多個特性相同的對象實例的抽象,所以同一類的不同實例之間必有:l 相同的操作集合l 相同的屬性集合l 不同的對象名,分配有不同的存儲空間。8) 類的確定與劃分:類的確定對所遇到的對象進行分析、歸納,根據(jù)共同的特征來確定一個類。類的確定的方法:l 判斷是否有一個以上的實例l 判斷類的實例中是否有絕對的不同點9) 類的劃分不是絕對的,可以根據(jù)不同的實際需要確定不同的類。n 面向?qū)ο蟪绦蛟O計的特點:1. 抽象性:抽象(abstract)是指有意忽略問題的某些細節(jié)和與當前目標無關的方面,以便把問題的本質(zhì)表達得更清楚。2. 封裝性:1) 封裝encapsulation將數(shù)據(jù)和與這個數(shù)據(jù)有關的

5、操作集合在一起,形成一個實體對象,且盡可能隱藏對象的內(nèi)部細節(jié)。2) 特點:l 具有一個清楚的邊界,對象的所有私有數(shù)據(jù)、內(nèi)部程序(成員函數(shù))細節(jié)都被固定在這個邊界內(nèi)。l 具有一個接口,描述了對象之間的相互作用、請求和響應消息。l 對象內(nèi)部的實現(xiàn)代碼受到封裝殼的保護,其它對象不能直接修改本對象所擁有的數(shù)據(jù)和代碼。l 封裝的單位是對象。3) 封裝性:l 從外面看只能看到對象的外部特性,即能夠受理哪些信息,具有哪些處理能力;對象的內(nèi)部,即處理能力的實行和內(nèi)部狀態(tài),對外是不可見的。l 從外面不能直接使用對象的處理能力,也不能直接修改其內(nèi)部狀態(tài),對象的內(nèi)部狀態(tài)只能由其自身改變。4) 封裝的優(yōu)點:l 降低部

6、件間的耦合度,提高部件的獨立性l 具有隱藏性和安全性(如銀行的賬戶)l 易于維護(由于數(shù)據(jù)獨立,易于發(fā)現(xiàn)問題)l 封裝將對象的使用者與設計者分開,使用者只需要通過接口訪問對象,不必了解對象的內(nèi)部細節(jié),提高了軟件復用。5) 封裝的缺點:l 需要更多的輸入輸出函數(shù)。6) 抽象與封裝形成了程序接口與實現(xiàn)的分離。3. 繼承性:繼承性是指特殊類的對象擁有其一般類的屬性和行為的特性。1) 繼承:繼承是一種聯(lián)結(jié)類與類的層次模型。對象類之間的相交關系,使得某類對象可以繼承另外一類對象的特征和功能。2) 類間具有繼承關系的特性:l 類間具有共享特征(包括數(shù)據(jù)和程序代碼的共享):遺傳l 類間具有細微差別或新增部分

7、(包括非共享的程序代碼和數(shù)據(jù)):變異l 類間具有層次結(jié)構(gòu)(如同人類通過繼承構(gòu)成了家族關系一樣)3) 繼承分類:l 從繼承源上劃分:單繼承(一個派生類只有一個基類)、多繼承(一個派生類有多個基類)l 從繼承內(nèi)容上劃分:取代繼承、包含繼承、受限繼承、特化繼承。4) 繼承的作用:l 實現(xiàn)軟件的可重用性l 實現(xiàn)軟件的獨立性l 增加軟件的可維護性2) 繼承與封裝的關系:l 封裝是指對象的封裝,在對象中數(shù)據(jù)和操作總是包裹在一起的,繼承不會影響對象的這種封裝性,但無限制的派生繼承會在一定程度上損害對象中數(shù)據(jù)的隱蔽性。l 封裝使類定義中實現(xiàn)的代碼可以用于該類的各個實例(對象)中,實現(xiàn)了動態(tài)共享代碼;繼承使得派

8、生類能與基類共享基類中實現(xiàn)的代碼,實現(xiàn)了靜態(tài)共享代碼。3) 類的層次:由一個類可以派生出任意多個派生類,這樣就形成了類的層次關系,這是現(xiàn)實世界中事物的分類問題在計算機中的解形式。4) 繼承的優(yōu)勢:l 能清晰體現(xiàn)相關類間的層次結(jié)構(gòu)關系。l 有效地址提高了程序的可重用性,減小了程序代碼的冗余度。l 增強了程序的一致性,減少了程序模塊間的接口和界面,使程序更易維護。l 繼承是自動傳播程序代碼的有力工具。l 繼承是新類構(gòu)造、建立和擴充的有效手段。l 繼承具有傳遞性。如果類C繼承類B,類B繼承類A,則類C繼承類A。l “站在巨人的肩頭上”。用戶在開發(fā)新系統(tǒng)時不必從零開始,可以繼承原有相似功能或者從類庫中

9、選取需要的類,再派生新類。5) 例:人類按職業(yè)劃分的一種繼承關系4. 多態(tài)性:1) 多態(tài)polymorphism:多態(tài)是指類中同一函數(shù)名對應多個具有相似功能的不同函數(shù)。對象根據(jù)所接受的消息而做出動作,同樣的消息為不同的對象接受時可導致完全不同的行動,該現(xiàn)象稱為多態(tài)性。簡單地說:單接口,多實現(xiàn)。舉例:sqrt_i (int i),sqrt_f (float f)sqrt (int i),sqrt (float f)2) 多態(tài)性:指可以使用相同的調(diào)用方式來調(diào)用這些具有不同功能的同名函數(shù)的特性。3) 作用:l 減輕程序員負擔l 降低程序員出錯機率4) 多態(tài)性的實現(xiàn):l 運行時多態(tài)性:虛函數(shù)l 編譯時

10、多態(tài)性:重載l 重載函數(shù)重載:是指在同一作用域內(nèi)的若干個參數(shù)特征不同的函數(shù)可以使用相同的函數(shù)名字。運算符重載:是指同一個運算符可以施加于不同類型的操作數(shù)上面。優(yōu)點:重載進一步提高了面向?qū)ο笙到y(tǒng)的靈活性和可讀性。5) 例:下圖中同名函數(shù)person( )作用在Student、Teacher等不同類上時,將執(zhí)行不同的操作,這就是多態(tài)。n 面向?qū)ο笈c面向過程程序設計比較:1. 面向過程程序設計的基本特點:1) 按層次組織模塊。2) 每一模塊只有一個入口,一個出口。3) 代碼和數(shù)據(jù)分離,即程序=數(shù)據(jù)結(jié)構(gòu)+算法。 4) 方法:自頂向下,逐步求精,模塊化2. 面向?qū)ο蟪绦蛟O計:1) 它將數(shù)據(jù)和操作數(shù)據(jù)的過

11、程(函數(shù))綁在一起,形成一個相互依存、不可分離的整體(即對象),從同類對象中抽象出共性,形成類。2) 同類對象中的數(shù)據(jù)原則上只能用本類提供的方法(成員函數(shù))進行處理。類通過封裝將接口與實現(xiàn)分離開來,通過接口與外界聯(lián)系。對象之間通過消息進行通信。3. 兩種程序方法的對比:面向?qū)ο蟪绦蛟O計將數(shù)據(jù)和操作數(shù)據(jù)的程序代碼綁在一起構(gòu)成對象,具有更好的可維護性,因某類對象數(shù)據(jù)的改變只會引起該類對象操作代碼的改變,而與其他類型的對象無關,這就把程序代碼的修改維護局限在一個很小的范圍內(nèi)。4. 面向?qū)ο蟪绦蛟O計的優(yōu)點:1) 符合人們習慣的思維方法,便于分解大型的復雜多變的問題。由于對象對應于現(xiàn)實世界中的實體,因而

12、可以很自然地按照現(xiàn)實世界中處理實體的方法來處理對象,軟件開發(fā)者可以很方便地與問題提出者進行溝通和交流。2) 易于軟件的維護和功能的增減。對象的封裝性及對象之間的松散組合,都給軟件的修改和維護帶來了方便。采用面向?qū)ο笏枷朐O計的結(jié)構(gòu),可讀性高,由于繼承的存在,即使改變需求,那么維護也只是在局部模塊,所以維護起來是非常方便和較低成本的。3) 可重用性好。重復使用一個類(類是對象的定義,對象是類的實例化),可以比較方便地構(gòu)造出軟件系統(tǒng),加上繼承的方式,極大地提高了軟件開發(fā)的效率。4) 與可視化技術(shù)相結(jié)合,改善了工作界面。隨著基于圖形界面操作系統(tǒng)的流行,面向?qū)ο蟮某绦蛟O計方法也將深入人心。它與可視化技術(shù)

13、相結(jié)合,使人機界面進入GUI時代。5) 質(zhì)量高。在設計時,可重用現(xiàn)有的,在以前的項目的領域中已被測試過的類使系統(tǒng)滿足業(yè)務需求并具有較高的質(zhì)量。6) 擴展方便。由于繼承、封裝、多態(tài)的特性,自然設計出高內(nèi)聚、低耦合的系統(tǒng)結(jié)構(gòu),使得系統(tǒng)更靈活、更容易擴展,而且成本較低。n 三種常用面向?qū)ο蟪绦蛟O計語言簡介:1. 混合型面向?qū)ο蟪绦蛟O計語言C+2. 純面向?qū)ο蟪绦蛟O計語言Java3. 可視化程序設計語言Visual Basic /四人中有一人中了獎,小李問這四人時,回答如下:/A:不是我/B:是C/C:是D/D:C胡說/已知其中三人說的是真話,一人說假話,試根據(jù)這些信息找出中獎者#include vo

14、id main()int k=0,count=0,sum=0;char thisman;for(k=0;k=3;k+)thisman=A+k;sum=(thisman!=A)+(thisman=C)+(thisman=D)+(thisman!=D);if(sum=3)printf(中獎者為:%cn,thisman);count+;if(count=0)printf(無解!n);elseprintf(共有:%d種符合條件的情況!n,count);/四人中有一人中了獎,小李問這四人時,回答如下:/A:不是我/B:是C/C:是D/D:C胡說/已知其中三人說的是真話,一人說假話,試根據(jù)這些信息找出中獎

15、者#include class Findpublic:void answer()int k=0,count=0,sum=0;char thisman;for(k=0;k=3;k+)thisman=A+k;sum=(thisman!=A)+(thisman=C)+(thisman=D)+(thisman!=D);if(sum=3)printf(中獎者為:%cn,thisman);count+;if(count=0)printf(無解!n);elseprintf(共有:%d種符合條件的情況!n,count);void main()Find it;it.answer();/四人中有一人中了獎,小李問

16、這四人時,回答如下:/A:不是我/B:是C/C:是D/D:C胡說/已知其中三人說的是真話,一人說假話,試根據(jù)這些信息找出中獎者#include class Findpublic:void answer()int k=0,count=0,sum=0;char thisman;for(k=0;k=3;k+)thisman=A+k;sum=(thisman!=A)+(thisman=C)+(thisman=D)+(thisman!=D);if(sum=3)printf(中獎者為:%cn,thisman);count+;if(count=0)printf(無解!n);elseprintf(共有:%d種

17、符合條件的情況!n,count);Find()printf(-歡迎使用-n);void main()Find it;it.answer();6.0教學資料1. /C+程序的基本結(jié)構(gòu)#include #define PI 3.1415926 void main() double r,area; coutr; area=PI*r*r; cout圓面積為:areaendl;2. /結(jié)構(gòu)體示例#include struct stu_score char name12; char NO9; float score3; stuone=李明,21020501,80,85,85; void main() do

18、uble aver; aver=(stuone.score0+stuone.score1+stuone.score2)/3; cout平均成績?yōu)椋篴ver、=、=、!=6. 自增(+)自減(-)運算符7. 邏輯運算符:與(&)、或(|)、非(!)u 按位與(&)u 按位或(|)u 按位異或()u 取反()u 左移()8. 符合位運算符賦值:&=、|=、=、=、=9. sizeof運算符10. 逗號運算符11. 內(nèi)存管理運算符:u new:double *p;p=new double;int *p;p=new int(40);/開辟60個int型內(nèi)存單元u delete:delete p;12.

19、 /帶默認參數(shù)值的函數(shù)#include void display(int a,int b=2,int c=3) couta=a,b=b,c=cendl;void main() display(1); display(1,5); display(1,5,7);13. /函數(shù)重載#include int sum(int a,int b) return a+b;int sum(int a,int b,int c) return a+b+c;double sum(double a,double b) return a+b;double sum(double a,double b,double c) r

20、eturn a+b+c;void main() coutsum(1,2)endl; coutsum(1,2,3)endl; coutsum(1.0,2.0)endl; coutsum(1.0,2.0,3.0)endl;14. /函數(shù)參數(shù)的指針傳遞#include void swap(int *x,int *y) int temp; temp=*x; *x=*y; *y=temp;void main() int a(10),b(100); cout交換前:a,bendl; swap(&a,&b); cout交換后:a,bendl;15. /函數(shù)參數(shù)的引用傳遞(引用實質(zhì)是已定義變量的別名)#inc

21、lude void swap(int &x,int &y) int temp; temp=x; x=y; y=temp;void main() int a(10),b(100); cout交換前:a,bendl; swap(a,b); cout交換后:a,bendl;16. 變量作用域1) 程序級:包含組成該程序的所有文件。屬于程序級作用域的有外部函數(shù)和外部變量2) 文件級:僅在定義它的文件內(nèi)有效。屬于文件級作用域的有內(nèi)部函數(shù)和外部靜態(tài)變量3) 函數(shù)級:僅在定義它的函數(shù)體內(nèi)有效。屬于函數(shù)級作用域的有函數(shù)的形參和函數(shù)內(nèi)定義的自動類變量4) 塊級:屬于塊級的有定義在分程序、if語句、switch語

22、句及循環(huán)語句中的自動變量、寄存器類變量和內(nèi)部靜態(tài)變量其中作用域?qū)儆谇皟深惖淖兞苛晳T上稱為全局變量,屬于后兩類的稱為局部變量。另外有以下說明:1) 內(nèi)部函數(shù)的定義用關鍵字static實現(xiàn),外部函數(shù)的定義用關鍵字extern實現(xiàn),靜態(tài)變量(包括內(nèi)部的及外部的)用關鍵字static實現(xiàn),函數(shù)的默認類型為外部函數(shù)2) 外部變量、外部靜態(tài)變量、內(nèi)部靜態(tài)變量定義時有默認值:int型的為0;浮點型的為0.0;char型的為空17. /用類計算平均分#include #include class CStuScorepublic: char name7; char no9; CStuScore(float s0

23、,float s1,float s2) fScore0=s0; fScore1=s1; fScore2=s2; void SetScore(float s0,float s1,float s2) fScore0=s0; fScore1=s1; fScore2=s2; CStuScore() cout-n; float GetAverage(); void ShowScore() coutname的平均成績?yōu)椋篏etAverage()endl; private: float fScore3;float CStuScore:GetAverage() return (float)(fScore0+f

24、Score1+fScore2)/3);void main() CStuScore one(60,70,74); strcpy(,李明); strcpy(one.no,21010101); one.ShowScore(); one.SetScore(60,88,64); one.ShowScore();18. /對象成員的初始化#include class CPointpublic: CPoint(int x,int y) nPosX=x; nPosY=y; void ShowPos() cout當前位置:x=nPosX,y=nPosYendl; private: int nPo

25、sX,nPosY;class CSizepublic: CSize(int l,int w) nLength=l; nWidth=w; void ShowSize() cout當前大小:l=nLength,w=nWidthendl; private: int nLength,nWidth;class CRectpublic: CRect(int left,int top,int right,int bottom); void Show() ptCenter.ShowPos(); size.ShowSize(); private: CPoint ptCenter; CSize size;CRec

26、t:CRect(int left,int top,int right,int bottom):size(right-left,bottom-top),ptCenter(right+left)/2,(bottom+top)/2)void main() CRect rc(10,100,80,250); rc.Show();19. /通過友元實現(xiàn)對類中私有成員及保護成員的訪問#include class CPointpublic: CPoint() m_x=m_y=0; CPoint(unsigned x,unsigned y) m_x=x; m_y=y; void print() coutX=m_

27、x,Y=m_yendl; friend CPoint Inflate(CPoint &pt,int nOffset);/聲明友元函數(shù)private: unsigned m_x,m_y;CPoint Inflate(CPoint &pt,int nOffset)/定義友元函數(shù) CPoint ptTemp=pt; ptTemp.m_x+=nOffset; ptTemp.m_y+=nOffset; return ptTemp;void main() CPoint pt(10,20); pt.print(); pt=Inflate(pt,3);/調(diào)用友元函數(shù) pt.print();20. /繼承#in

28、clude #define PI 3.1415926class graphpublic: graph() circumference=0; area=0; void show() cout周長為:circumference,面積為:areaendl; double circumference,area;class circle:public graphpublic: circle(double x=0) r=x; void setr(double x) r=x; void calculate() circumference=2*PI*r; area=PI*r*r; private: doubl

29、e r;class rectangle:public graphpublic: rectangle(double x=0,double y=0) a=x; b=y; void setab(double x,double y) a=x; b=y; void calculate() circumference=2*(a+b); area=a*b; private: double a,b; void main() graph g; circle c(10); rectangle rec(2,5); g.show(); c.show(); c.setr(100); c.calculate(); c.s

30、how(); rec.show(); rec.calculate(); rec.show(); rec.setab(20,50); rec.calculate(); rec.show();21. /虛函數(shù),實現(xiàn)“運行時多態(tài)性”的方式#include #define PI 3.1415926class CShapepublic: virtual float area()/定義虛函數(shù) return 0; ;class CTriangle:public CShapepublic: CTriangle(float h,float w) H=h; W=w; float area() return(flo

31、at)(H*W*0.5); private: float H,W;class CCircle:public CShapepublic: CCircle(float r) R=r; float area() return(float)(PI*R*R); private: float R;void main() CShape *s2; s0=new CTriangle(3,4); coutarea()endl; s1=new CCircle(5); coutarea()endl;/說明:/、虛函數(shù)在重新定義時參數(shù)的個數(shù)、類型必須和基類中的虛函數(shù)安全匹配/、虛函數(shù)的上述功能,只有通過基類指針才能實現(xiàn)

32、22. /純虛函數(shù):無法預先確定基類中虛函數(shù)的具體實現(xiàn)時采用純虛函數(shù)#include #define PI 3.1415926class CShapepublic: virtual float area()=0;/定義純虛函數(shù),此時沒有具體的代碼實現(xiàn);class CTriangle:public CShapepublic: CTriangle(float h,float w) H=h; W=w; float area()/純虛函數(shù)在派生類中的具體實現(xiàn)代碼 return(float)(H*W*0.5); private: float H,W;class CCircle:public CShape

33、public: CCircle(float r) R=r; float area()/純虛函數(shù)在派生類中的具體實現(xiàn)代碼 return(float)(PI*R*R); private: float R;void main() CShape *s2; s0=new CTriangle(3,4); coutarea()endl; s1=new CCircle(5); coutarea()endl;23. /運算符重載:是實現(xiàn)“編譯時多態(tài)性”的一種手段#include class CComplexpublic: CComplex(double r=0,double i=0) realPart=r; i

34、magePart=i; void print() cout該復數(shù)為:=0) cout+imagePartiendl; else cout-imagePartiendl; CComplex operator+(CComplex &c);/重載運算符+ CComplex operator+(double r); /重載運算符+private: double realPart; double imagePart;CComplex CComplex:operator+(CComplex &c)/參數(shù)是CComplex的引用對象 CComplex temp; temp.realPart=realPart

35、+c.realPart; temp.imagePart=imagePart+c.imagePart; return temp;CComplex CComplex:operator+(double r)/參數(shù)是double類型變量 CComplex temp; temp.realPart=realPart+r; temp.imagePart=imagePart; return temp;void main() CComplex c1(12,20),c2(50,70),c; c=c1+c2; c.print(); c=c1+20; c.print();24. /賦值運算符重載:錯誤使用開會運算符的

36、情況/相同類型或匹配類型可以直接賦值,但當對的的成員中有數(shù)組或動態(tài)數(shù)據(jù)類型時就不能直接賦值,如下:#include #include class CDemopublic: CDemo(char *s) ps=new charstrlen(s)+1; strcpy(ps,s); CDemo() if(ps) deleteps; void print() coutpsendl; private: char *ps;void main() CDemo d1(key),d2(Mouse); d1=d2; d1.print(); d2.print();/在運行到“d1=d2”時出錯。25. /賦值運算符

37、重載#include #include class CDemopublic: CDemo(char *s) ps=new charstrlen(s)+1; strcpy(ps,s); CDemo & operator =(CDemo &a) if(ps) deleteps; if(a.ps) ps=new charstrlen(a.ps)+1; strcpy(ps,a.ps); else ps=0; return *this; CDemo() if(ps) deleteps; void print() coutpsendl; private: char *ps;void main() CDemo d1(key),d2(Mouse); d1=d2; d1.print(); d2.

溫馨提示

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

評論

0/150

提交評論