面向對象編程技術_第1頁
面向對象編程技術_第2頁
面向對象編程技術_第3頁
面向對象編程技術_第4頁
面向對象編程技術_第5頁
已閱讀5頁,還剩152頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

面向對象編程技術第1頁,共157頁,2023年,2月20日,星期四授課教師:郝應光郵件地址:h_lionstar@126.com2第2頁,共157頁,2023年,2月20日,星期四3課程考核及成績構成本課程的成績由期末考試和平時作業2部分構成平時成績由:期末大作業+平時隨堂作業構成具體比例待定第3頁,共157頁,2023年,2月20日,星期四4主要內容面向對象技術C++語法概要(6)MFC框架基礎詳解(15)MFC文檔/視圖結構詳解(9)幾個應用程序開發實例(6)VisualC++應用程序設計(12)多線程程序設計(3)TCP/IP網絡程序設計(3)動態連接庫程序設計(3)數據庫程序設計(3)第4頁,共157頁,2023年,2月20日,星期四5第一部分面向對象技術面向對象概念UML第5頁,共157頁,2023年,2月20日,星期四6第二部分C++語法概要類和對象靜態數據成員及成員函數對象與指針操作符重載和友員繼承多態性第6頁,共157頁,2023年,2月20日,星期四7第三部分MFC框架基礎VisualC++集成開發環境簡介Windows操作系統下的應用程序(SDK、MFC)用Appwizard開發一個MFC程序事件處理、映射模式及滾動視圖GDI、顏色及字體對話框及控件ActiveX及IE公用控件位圖第7頁,共157頁,2023年,2月20日,星期四第四部分MFC文檔視圖結構菜單、鍵盤及命令處理工具欄及狀態欄文檔和視圖分離SDI及MDI文檔的讀寫打印及打印予覽拆分窗口及多視圖8第8頁,共157頁,2023年,2月20日,星期四9第五部分MFC程序設計的其他方面多線程程序設計數據庫程序設計動態連接庫程序設計TCP/IP網絡程序設計第9頁,共157頁,2023年,2月20日,星期四10主要參考書面向對象建模與設計,Rumbaugh,電力出版社面向對象分析與設計,GradyBooch,機械工業出版社ThinkinginC++,BruceEckelC++Primer,StanleyBLippman,中國電力出版社C++語言及其程序設計教程,張國峰,電子工業出版社深入淺出MFC,2Ed,侯俊杰(侯杰),松崗。VisualC++技術內幕,Microsoft,北京希望電子出版社第10頁,共157頁,2023年,2月20日,星期四11主要網絡資源(microsoft)(世界最大開源代碼庫)第11頁,共157頁,2023年,2月20日,星期四第一部分面向對象技術12第12頁,共157頁,2023年,2月20日,星期四軟件開發軟件開發的過程就是程序員對客觀世界問題域形式化的過程第13頁,共157頁,2023年,2月20日,星期四計算機開發語言機器語言、匯編語言、高級語言,高級語言可能有幾千種計算機語言都是某種程度的形式語言第14頁,共157頁,2023年,2月20日,星期四計算機高級語言的歷史由美國科學家巴科斯設計,1956年在IBM計算機上實現的FORTRAN。70年代以來的PASCAL80年代,C語言80年代后期,C++90年代以來,語言要OO而且Visual,更要Web,Java快速推廣。第15頁,共157頁,2023年,2月20日,星期四PO方法:現實世界→流程圖(變量,函數)→PO語言→執行求解OO方法:現實世界→類圖(對象,方法)→OO語言→執行求解OO作為一種思想及編程語言,為軟件開發的整個過程:分析、設計到coding,提供了一個完整解決方案。從PO到OO第16頁,共157頁,2023年,2月20日,星期四17面向過程思想問題域(Domain)以問題域的系統流程為中心分析Sub1Sub2Subn….各子流程實現----函數化Func1Func2Funcn….根據系統的流程組建軟件,通過函數的調用實現第17頁,共157頁,2023年,2月20日,星期四18面向對象思想問題域(Domain)以問題域中的事物為中心思考問題Object1Object2Objectn….對象歸類----抽象化Class1Class2Classn….類實例化:定義對象,構建系統,形成解決方案第18頁,共157頁,2023年,2月20日,星期四19面向對象的基本概念Coad和Yourdon給出了一個定義:“面向對象=對象+類+繼承+通信”。如果一個軟件系統是使用這樣4個概念設計和實現的,則我們認為這個軟件系統是面向對象的。第19頁,共157頁,2023年,2月20日,星期四20對象對象是面向對象開發模式的基本成份。每個對象可用它本身的一組屬性和它可以執行的一組操作來定義。屬性一般只能通過執行對象的操作來改變。操作又稱為方法或服務,它描述了對象執行的功能,若通過消息傳遞,還可以為其它對象使用。第20頁,共157頁,2023年,2月20日,星期四21消息(Message)消息是一個對象與另一個對象的通信單元,是要求某個對象執行類中定義的某個操作的規格說明。一個對象接收到消息則調用消息中指定的方法,并將形式參數與參數表中相應的值結合起來。第21頁,共157頁,2023年,2月20日,星期四22類類是一組具有相同數據結構和相同操作的對象的集合。類的定義包括一組數據屬性和在數據上的一組合法操作。類定義可以視為一個具有類似特性與共同行為的對象的模板,可用來產生對象。第22頁,共157頁,2023年,2月20日,星期四23同一個類的每個對象都是類的實例(Instance),它們都可使用類中提供的函數。對象的狀態則包含在它的實例變量,即實例的屬性中。第23頁,共157頁,2023年,2月20日,星期四24繼承(Inheritance)繼承是使用已存在的定義做為基礎建立新定義的技術。新類的定義是基礎類所聲明的數據和新類所增加的聲明的組合。新類復用既存的定義,而不要求修改既存類。既存類可當做基類來引用,則新類相應地可當做派生類來引用。第24頁,共157頁,2023年,2月20日,星期四25面向對象方法學面向對象分析OOA面向對象設計OOD面向對象實現OOP第25頁,共157頁,2023年,2月20日,星期四26面向對象技術回顧面向對象技術是許多人歷經多年研究積累的產物。類的概念,是面向對象的重要組成部分。Smalltalk,提出許多面向對象技術的核心概念,如:消息和繼承。Dijkstra的軟件正確性理念,提出了用抽象層構造軟件的觀點。Ada語言,提出了一般性和包兩個概念。C++語言,最廣泛使用的面向對象的語言。Java語言,健壯的、可移植的、流行的面向對象語言。第26頁,共157頁,2023年,2月20日,星期四27UML的產生1988年到1992年是面向對象方法學蓬勃發展的時期,人們從各自的經歷和軟件開發的經驗提出了各種面向對象的開發方法,代表的有:SallyShlaer和SteveMellor以信息模型化方法作為基礎,并為目標系統增設了狀態模型和過程模型;PeterCoad和EdYourdon則在信息模型化、面向對象的程序設計語言和基于知識的系統的基礎上,建立了他們的OOA和OOD,主要工具是類與對象圖、對象狀態圖和服務圖;HP公司的Fusion開發方法。第27頁,共157頁,2023年,2月20日,星期四28JimRumbaughGradyBoochIvarJacobson第28頁,共157頁,2023年,2月20日,星期四29OOA和OOD是面向對象方法學中重要的部分,UML是具體的方法OOP涉及到具體的編程語言,C++開發要使用合適的工具IDE:VisualC++第29頁,共157頁,2023年,2月20日,星期四面向對象的特點30封裝(Encapsulation)通過定義類實現繼承(Inheritance)通過派生新類實現多態性(Morphism)虛擬函數實現第30頁,共157頁,2023年,2月20日,星期四XO(X?-Oriented)SO(Service-Oriented)OO(對象、類)PO(過程、函數、變量)OO之后是什么?第31頁,共157頁,2023年,2月20日,星期四32第二部分C++語法概要第一章C++基礎第32頁,共157頁,2023年,2月20日,星期四331.1C++的起源和特點C語言1972年,由DennisRitchie設計,可以認為是最優影響力的發明之一。為改進C語言,“帶類的C”,1983命名為C++對C的類型系統改進和擴充(更安全)支持面向對象C++保持與C兼容(快速普及)C++不是純粹的面向對象的語言第33頁,共157頁,2023年,2月20日,星期四341.2程序的編譯過程第34頁,共157頁,2023年,2月20日,星期四351.3C++的詞法記號關鍵字各種常量操作符標識符分隔符第35頁,共157頁,2023年,2月20日,星期四361.4C++程序的結構第36頁,共157頁,2023年,2月20日,星期四37注釋輸入和輸出函數變量(對象)符號常量表達式語句第37頁,共157頁,2023年,2月20日,星期四381.5C++的基本數據類型第38頁,共157頁,2023年,2月20日,星期四391.7對象聲明基本語法如下:數據類型 標識符1,標識符2,。。。標識符n;初始化數據類型 標識符1(初始值1),標識符2(初始值2),。。。標識符n(初始值n);數據類型 標識符1=初始值1,標識符2=初始值2,。。。標識符n=初始值n;賦值I=10;第39頁,共157頁,2023年,2月20日,星期四401.6常量整數常量浮點常量字符常量字符串常量布爾常量第40頁,共157頁,2023年,2月20日,星期四411.8枚舉類型定義:通過枚舉一個類型的值域來定義一個數據類型,值域是通過在枚舉聲明時所指定的一組文字量(又稱枚舉常量)指定的。語法形式:enum標識符{標識符1,標識符2,標識符3,。。。標識符n};第41頁,共157頁,2023年,2月20日,星期四421.9表達式表達式由操作數和操作符組成,操作符分:算術操作符:+、-、*、/、%、++、--關系操作符:>、<、==、>=、<=、!=邏輯操作符:&&、||、!逗號表達式:?:sizeof操作符:sizeof位操作符:&、|、~賦值操作符:=第42頁,共157頁,2023年,2月20日,星期四431.10表達式中的類型強制隱含地從一種類型向另一種類型的值的映射。賦值類型強制右邊的表達式類型映射成左值的類型。強制類型轉換static_cast<T>(E)T(E)(T)E第43頁,共157頁,2023年,2月20日,星期四44第二章C++程序的基本控制結構順序結構表達式語句空語句塊語句選擇結構循環結構第44頁,共157頁,2023年,2月20日,星期四452.1選擇結構ifif-----else及其嵌套switch~case第45頁,共157頁,2023年,2月20日,星期四462.2循環結構whiledo~whilefor第46頁,共157頁,2023年,2月20日,星期四47嵌套循環循環是可以嵌套的第47頁,共157頁,2023年,2月20日,星期四482.3輔助控制語句gotobreakcontinue第48頁,共157頁,2023年,2月20日,星期四49第三章函數第49頁,共157頁,2023年,2月20日,星期四503.1函數的基本概念完成特定功能的一段代碼具有合法的名稱具有一定返回類型可以多次調用基本形式:返回類型函數名(形式參數1, 形式參數2,。。。,形式參數n){

函數體;}第50頁,共157頁,2023年,2月20日,星期四513.2參數的傳遞值調用地址調用引用調用參數的求值順序第51頁,共157頁,2023年,2月20日,星期四523.3重載具有相同函數名,但其參數個數不同或參數類型不同的一組函數稱為重載。第52頁,共157頁,2023年,2月20日,星期四533.4帶缺省參數值的函數函數聲明中可以為一個或多個參數指定缺省參數值。具有缺省值的參數右邊不能出現沒有缺省值的參數。重載函數的參數具有缺省值時要注意。例:voidfun(intx,inty=0)voidfun(intx)第53頁,共157頁,2023年,2月20日,星期四54第四章類和對象4.1類的結構C++的類是對象的抽象數據成員。成員函數。C++類的說明第二部分C++語法概要第54頁,共157頁,2023年,2月20日,星期四55舉例:4.1類的結構(外部說明)第55頁,共157頁,2023年,2月20日,星期四56訪問控制描述符public后聲明的是公有數據成員和成員函數,可被任何程序單元引用。private后聲明的是私有數據成員和成員函數,僅可被類內部引用。public和private出現的順序和次數是任意的。4.1類的結構(外部說明)第56頁,共157頁,2023年,2月20日,星期四57類成員函數的實現4.1類的結構(內部實現)舉例第57頁,共157頁,2023年,2月20日,星期四584.2類的實例化--對象的實現一般語法:類標識符對象標識符;可以聲明多個對象,對象之間代碼共享,數據獨立。可使用對象名引用對象的公有成員函數。方法如下:對象名.成員函數名(參數列表);第58頁,共157頁,2023年,2月20日,星期四594.2類的實例化--對象的實現成員函數所操作的數據成員是該類的某個對象的數據成員。第59頁,共157頁,2023年,2月20日,星期四60舉例4.2類的實例化--對象的實現第60頁,共157頁,2023年,2月20日,星期四614.3構造函數和析構函數構造函數的作用是在對象被創建時使用特定的值構造對象(初始化)。析構函數的作用是在對象被刪除時做一些清理工作。構造函數與類同名。析構函數是類名前加~兩者無返回類型,析構函數無參數。第61頁,共157頁,2023年,2月20日,星期四624.3構造函數和析構函數舉例第62頁,共157頁,2023年,2月20日,星期四634.3構造函數和析構函數第63頁,共157頁,2023年,2月20日,星期四644.3構造函數和析構函數第64頁,共157頁,2023年,2月20日,星期四654.4成員函數的內聯實現函數體放在類體內。函數體放在類體外,使用inline關鍵字。第65頁,共157頁,2023年,2月20日,星期四664.4成員函數的內聯實現第66頁,共157頁,2023年,2月20日,星期四674.5帶缺省參數值的成員函數和成員函數重載#include<iostream.h>classLocation{public: Location(intx=0,inty=0); voidMove(intx=5,inty=5); voidValueX(intx); intValueX(); voidValueY(inty); intValueY();private: voidSet(intx,inty); intX,Y;};第67頁,共157頁,2023年,2月20日,星期四684.5帶缺省參數值的成員函數和成員函數重載Location::Location(intx,inty){Set(x,y);}voidLocation::Move(intx,inty){Set(x,y);}voidLocation::ValueX(intval){X=val;}intLocation::ValueX(){returnX;}voidLocation::ValueY(intval){Y=val;}intLocation::ValueY(){returnY;}voidLocation::Set(intx,inty){X=x;Y=y;}第68頁,共157頁,2023年,2月20日,星期四694.5帶缺省參數值的成員函數和成員函數重載intmain(){ LocationA,B;//LocationA(0,0),B(0,0)A.Move();//A.X和A.Y被設為5A.ValueX(15);//A.X=15cout<<A.ValueX()<<A.ValueY()<<endl;B.Move(6,2);//B.X=6,B.Y=2B.ValueY(4);cout<<B.ValueX()<<B.ValueY()<<endl;return0;}第69頁,共157頁,2023年,2月20日,星期四70第五章作用域、生存期和可見性第70頁,共157頁,2023年,2月20日,星期四715.1作用域及可見性一個標識符的有效區域。分為:函數原型作用域、塊作用域、類作用域、文件作用域。第71頁,共157頁,2023年,2月20日,星期四72函數原型作用域函數原型中所作的參數聲明在該作用域,始于左括號,結束于右括號。第72頁,共157頁,2023年,2月20日,星期四73塊作用域塊作用域由一對花括號定義。(局部作用域)第73頁,共157頁,2023年,2月20日,星期四74塊作用域第74頁,共157頁,2023年,2月20日,星期四75類作用域第75頁,共157頁,2023年,2月20日,星期四76文件作用域第76頁,共157頁,2023年,2月20日,星期四77可見性標識符是否可以引用。在嵌套作用域中,內層作用域的標識符優先于外層作用域的標識符。C++中,標識符必須先聲明后引用,在同一作用域中不能聲明同樣的標識符。第77頁,共157頁,2023年,2月20日,星期四78可見性舉例第78頁,共157頁,2023年,2月20日,星期四795.2對象的生存期靜態生存期與程序的運行期相同。這種對象的存儲單元相對位置在整個程序的運行期間不變文件作用域或用static指定。若未顯式指定初始值,為零。動態生存期在函數內部(塊作用域)聲明的對象是動態生存期。若未顯式指定初始值,為任意值。第79頁,共157頁,2023年,2月20日,星期四80對象的生存期舉例第80頁,共157頁,2023年,2月20日,星期四815.3靜態成員函數和靜態數據成員第81頁,共157頁,2023年,2月20日,星期四82數據共享的方法數據存儲在局部對象中,通過參數傳遞機制實現函數間的數據共享。數據存儲在全局對象中,通過全局對象進行數據交換。封裝在類中全局對象存在的問題可見性無限制不能保證操作的合法性解決上述問題的方法是類及其封裝技術,相應提出靜態數據成員和靜態成員函數。第82頁,共157頁,2023年,2月20日,星期四83舉例第83頁,共157頁,2023年,2月20日,星期四84舉例第84頁,共157頁,2023年,2月20日,星期四85舉例第85頁,共157頁,2023年,2月20日,星期四86舉例第86頁,共157頁,2023年,2月20日,星期四87舉例第87頁,共157頁,2023年,2月20日,星期四88第六章對象與指針第88頁,共157頁,2023年,2月20日,星期四896.1指針指針:對象的地址指針對象:存放指針的對象聲明指針對象的語法:T*標識符;int*pointer;一個指針對象被賦值為一個對象的地址后,稱指針指向對象。第89頁,共157頁,2023年,2月20日,星期四90為指針對象引入的兩種操作&-----取地址操作*-----目標操作第90頁,共157頁,2023年,2月20日,星期四91第91頁,共157頁,2023年,2月20日,星期四92第92頁,共157頁,2023年,2月20日,星期四93第93頁,共157頁,2023年,2月20日,星期四94第94頁,共157頁,2023年,2月20日,星期四956.2數組和指針數組:一組類型相同的對象聲明語法:類型 標識符[元素個數];數組元素可以用下標引用數組名[index];數組元素也可以用指針引用第95頁,共157頁,2023年,2月20日,星期四96數組和指針通過指針引用數組元素定義指針對象數組的地址賦值給指針對象。指針引用數組元素的方法*(pointer+n)pointer[n]第96頁,共157頁,2023年,2月20日,星期四97對象數組沒有為數組指定顯式初始值時,數組元素使用缺省值初始化,當定義對象數組時,類中必須定義一個缺省的構造函數。第97頁,共157頁,2023年,2月20日,星期四98舉例第98頁,共157頁,2023年,2月20日,星期四996.3引用是標識對象的一種機制(是對象的一個別名)一般用作參數類型、函數返回類型。一般語法如下:基本類型&標識符一個引用不是獨立的對象,只是對另一個對象的引用。基本類型&標識符=對象;第99頁,共157頁,2023年,2月20日,星期四100第100頁,共157頁,2023年,2月20日,星期四101第101頁,共157頁,2023年,2月20日,星期四102棧對象與堆對象在程序運行中根據需要在堆內存中創建的對象,使用完成后隨時被刪除。創建語法如下:T*ptr=newT(初始值列表);刪除語法如下:deleteptr;數組對象的創建int*ptr=newint[10];數組對象的刪除delete[]ptr;第102頁,共157頁,2023年,2月20日,星期四103第103頁,共157頁,2023年,2月20日,星期四104第104頁,共157頁,2023年,2月20日,星期四105第105頁,共157頁,2023年,2月20日,星期四1066.4指針數組數組元素的類型是指針,這樣的數組稱指針數組。語法:T*標識符[元素個數];第106頁,共157頁,2023年,2月20日,星期四107多維數組與指針多維數組可以解釋為其元素是多維數組的一維數組。第107頁,共157頁,2023年,2月20日,星期四1086.5this指針一個成員函數被調用時,被自動傳遞一個隱含的參數,該參數是一個指向正被該函數操作的對象的指針,在程序中可以用this引用它,因此稱其為this指針。第108頁,共157頁,2023年,2月20日,星期四1096.6具有子對象的類類型用內部包含子對象的類實現復雜的類子對象的初始化第109頁,共157頁,2023年,2月20日,星期四110第110頁,共157頁,2023年,2月20日,星期四111第111頁,共157頁,2023年,2月20日,星期四112第112頁,共157頁,2023年,2月20日,星期四113第七章操作符重載當使用操作符來表達對對象的某個操作時,可以將操作符函數聲明為類的成員函數或類的友員函數。操作符的參數個數、優先級、結合性和使用語法是由C++規定的,不能被改變。重載操作符的形參不能具有缺省值。重載操作符的返回值類型任意,但最好不是void。第113頁,共157頁,2023年,2月20日,星期四1147.1重載為類的成員函數第114頁,共157頁,2023年,2月20日,星期四115重載為類的成員函數第115頁,共157頁,2023年,2月20日,星期四116重載為類的成員函數第116頁,共157頁,2023年,2月20日,星期四117重載為類的成員函數第117頁,共157頁,2023年,2月20日,星期四1187.2重載為類的友元函數第118頁,共157頁,2023年,2月20日,星期四119重載為類的友元函數第119頁,共157頁,2023年,2月20日,星期四120重載為類的友元函數第120頁,共157頁,2023年,2月20日,星期四121重載為類的友元函數第121頁,共157頁,2023年,2月20日,星期四1227.3兩種方法的比較一元函數最好重載為成員函數二元函數一般重載為友元函數27.5+x賦值操作符只能重載為成員函數27.5=x++和--操作符有兩種形式,一般被重載為成員函數其中后綴操作重載后帶有一個整型參數。第122頁,共157頁,2023年,2月20日,星期四123兩種方法的比較下標操作符只能被重載為成員函數函數調用操作符可以看作是下標操作符的擴展第123頁,共157頁,2023年,2月20日,星期四124第八章繼承與多態性通過已有的類進行擴展產生新類的過程產生的新類稱派生類產生派生類的類稱基類或父類。從一個基類派生稱單基繼承,從多個基類派生稱多基繼承。第124頁,共157頁,2023年,2月20日,星期四125MouseScreenDeviceKeyboardTreeAppleTreeFruit第125頁,共157頁,2023年,2月20日,星期四1268.1繼承第126頁,共157頁,2023年,2月20日,星期四127訪問控制訪問控制用于控制基類中聲明的名字在多大的范圍內能夠被派生類的用戶訪問訪問控制有三種public,protected,private基類模塊派生類模塊間接派生類模塊其他程序模塊第127頁,共157頁,2023年,2月20日,星期四128第128頁,共157頁,2023年,2月20日,星期四129公有繼承第129頁,共157頁,2023年,2月20日,星期四130私有繼承第130頁,共157頁,2023年,2月20日,星期四131在派生類中訪問基類成員第131頁,共157頁,2023年,2月20日,星期四132保護的成員對V模塊是public對H模塊是private第132頁,共157頁,2023年,2月20日,星期四133多繼承可以將其視為單繼承來考察,每個基類與派生類的關系可以當做單基繼承。第133頁,共157頁,2023年,2月20日,星期四1348.2構造函數和析構函數派生類的數據成員由屬于基類的部分和屬于自己的部分組成,屬于基類的部分初始化應由基類的構造函數完成。構造函數不被繼承,派生類必須調用基類的構造函數來初始化屬于基類的部分數據成員。一般形式如下:C::C(參數表0):C1(參數表1),C2(參數表2),…,Cn(參數表n){…}第134頁,共157頁,2023年,2月20日,星期四135構造函數和析構函數如果冒號右邊的某個基類的構造函數參數表為空,則可以省略該項。構造對象時,先執行基類的構造函數,然后執行派生類的構造函數。析構時則相反。多基繼承時基類構造函數的執行順序由繼承時的順序決定(從左向右),與初始化列表中的順序無關。第135頁,共157頁,2023年,2月20日,星期四136構造函數和析構函數第136頁,共157頁,2023年,2月20日,星期四137構造函數和析構函數第137頁,共157頁,2023年,2月20日,星期四138構造函數和析構函數第138頁,共157頁,2023年,2月20日,星期四1398.3二義性如果派生類的一個表達式引用基類中不止一個成員,則存在二義性。解決二義性的辦法是加類限定符。第139頁,共157頁,2023年,2月20日,星期四140二義性第140頁,共157頁,2023年,2月20日,星期四141二義性如果一個派生類是從多個基類派生,而這些基類又有一個共同的基類,則在對該基類中聲明的標

溫馨提示

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

評論

0/150

提交評論