




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Visual C+程序設(shè)計(jì)大作業(yè)一. 請(qǐng)?jiān)敿?xì)地論述面向?qū)ο蟮姆庋b性和繼承性。(1)封裝性封裝性是保證軟件部件具有優(yōu)良的模塊性的基礎(chǔ)。向?qū)ο蟮念?lèi)是封裝良好的模塊,類(lèi)定義將其說(shuō)明(用戶可見(jiàn)的外部接口)與實(shí)現(xiàn)(用戶不可見(jiàn)的內(nèi)部實(shí)現(xiàn))顯式地分開(kāi),其內(nèi)部實(shí)現(xiàn)按其具體定義的作用域提供保護(hù)。對(duì)象是封裝的最基本單位。封裝防止了程序相互依賴(lài)性而帶來(lái)的變動(dòng)影響。面向?qū)ο蟮姆庋b比傳統(tǒng)語(yǔ)言的封裝更為清晰、更為有力。(2)繼承性向?qū)ο笳Z(yǔ)言的一個(gè)重要機(jī)制,通過(guò)繼承可以在一個(gè)一般類(lèi)的基礎(chǔ)上建立新類(lèi)。被繼承的類(lèi)稱(chēng)為基類(lèi),在基類(lèi)上建立的新類(lèi)稱(chēng)為派生類(lèi)。如果一個(gè)類(lèi)只有一個(gè)基類(lèi)則稱(chēng)為單繼承,否則稱(chēng)為多繼承。通過(guò)類(lèi)繼承,可以使派生類(lèi)
2、有條件地具有基類(lèi)的屬性,這個(gè)條件就是繼承方式。繼承發(fā)端于抽象的層次。在人類(lèi)認(rèn)識(shí)事物的過(guò)程中,抽象是一種重要的方法。概念是一種抽象,對(duì)某一事物,通過(guò)抽象去掉一些細(xì)節(jié),我們就獲得了對(duì)它的基本特征和行為的一些抽象認(rèn)識(shí),形成相關(guān)的概念。如果在這個(gè)基礎(chǔ)上再進(jìn)一步抽象,我們就獲得了對(duì)同一種事物的更高層次上的抽象認(rèn)識(shí)。這種不同層次上的抽象認(rèn)識(shí)即表達(dá)啦不同事物間的聯(lián)系也表達(dá)了它們之間的差異。類(lèi)繼承模擬啦人類(lèi)的這種思維特點(diǎn)。在軟件實(shí)現(xiàn)中,繼承機(jī)制提供了通過(guò)再用已有代碼定義新類(lèi)的手段。繼承在兩個(gè)不同的類(lèi)(或多個(gè)類(lèi))之間建立了關(guān)系,它使一個(gè)類(lèi)(稱(chēng)為父類(lèi))的數(shù)據(jù)結(jié)構(gòu)和操作能夠被其他類(lèi)(稱(chēng)為子類(lèi))再用,這樣,在子類(lèi)中只
3、需要定義父類(lèi)中沒(méi)有的數(shù)據(jù)結(jié)構(gòu)和操作即可。繼承的另一個(gè)有點(diǎn)是表達(dá)程序中各個(gè)類(lèi)之間的關(guān)系。這使程序不再是毫無(wú)關(guān)系的類(lèi)的堆砌,而具有良好的機(jī)構(gòu)。繼承提供了一種層次抽象機(jī)制,是將類(lèi)構(gòu)成特定層次的一種工具。二 請(qǐng)結(jié)合例程分別詳細(xì)的論述什么是面向?qū)ο蟮撵o態(tài)多態(tài)和運(yùn)行時(shí)多態(tài)多態(tài)性是面向?qū)ο蟪绦蛟O(shè)計(jì)的重要特征性之一,它與封裝性和繼承性構(gòu)成了面向?qū)ο蟪绦蛟O(shè)計(jì)的三大特征。所謂多態(tài)性,是指不同類(lèi)型的對(duì)象接受相同的信息時(shí)產(chǎn)生不同的行為。這里的消息主要是指對(duì)類(lèi)的成員函數(shù)的調(diào)用,而不同的行為是指成員函數(shù)的不同實(shí)現(xiàn)。在C+中,多態(tài)可分為兩種;編譯時(shí)的多態(tài)性和運(yùn)行時(shí)的多態(tài)性。編譯時(shí)的多態(tài)性是通過(guò)函數(shù)或運(yùn)算符的重載來(lái)實(shí)現(xiàn)的,而
4、運(yùn)行時(shí)的多態(tài)性是通過(guò)虛函數(shù)來(lái)實(shí)現(xiàn)的,它指在程序執(zhí)行之前,根據(jù)函數(shù)和參數(shù)還無(wú)法確定應(yīng)該調(diào)用哪一個(gè)函數(shù),必須在程序的執(zhí)行過(guò)程中,根據(jù)具體的執(zhí)行情況動(dòng)態(tài)地確定。與這兩種多態(tài)性方式相對(duì)應(yīng)的是兩種編譯方式:靜態(tài)聯(lián)編(也是靜態(tài)多態(tài))和動(dòng)態(tài)聯(lián)編(也是動(dòng)態(tài)聯(lián)編)(1)靜態(tài)多態(tài)使用的是靜態(tài)聯(lián)編方式,在編譯時(shí)函數(shù)和函數(shù)的實(shí)現(xiàn)就關(guān)聯(lián)在一起,主要是通過(guò)重載和模實(shí)現(xiàn),在宏多態(tài)中,是通過(guò)定義變量,編譯時(shí)直接把變量替換,實(shí)現(xiàn)宏多態(tài).#include using namespace std; /宏多態(tài);a,b可以不同類(lèi)型 #define sum(a,b) (a) + (b) class Base public: void P
5、rint() /不需要定義為虛函數(shù) cout base Print() functions endl; void Print(int val) /重載,根據(jù)參數(shù)列表不同實(shí)現(xiàn)函數(shù)多態(tài) cout base Print(int) functions endl; ; class child : public Base public: void Print() /不需要定義為虛函數(shù) cout child Print() functions endl; void Print(int val) /重載,根據(jù)參數(shù)列表不同實(shí)現(xiàn)函數(shù)多態(tài) cout child Print(int) functions endl;
6、; template void func(T &p) p.Print(); p.Print(1); int main() Base base ; child ch; int a = 23, b = 19; double fa = 13.32, fb = 29.36; func(base); func(ch); cout sum(a,b) endl; cout sum(fa,fb) endl; return 0;(2)動(dòng)態(tài)多態(tài)主要通過(guò)虛函數(shù)實(shí)現(xiàn),父類(lèi)指針或者引用能夠指向子類(lèi)對(duì)象,調(diào)用子類(lèi)的虛函數(shù),所有在編譯時(shí)是無(wú)法確定調(diào)用哪個(gè)虛函數(shù),每個(gè)子類(lèi)都維護(hù)著一張?zhí)摵瘮?shù)表,程序執(zhí)行時(shí)查詢虛函數(shù)表來(lái)確定調(diào)用
7、哪個(gè)虛函數(shù);#include using namespace std; class Base public: virtual void Print() = 0; virtual Base() ; class child_1 : public Base public: void Print() cout child_1 Print function endl; child_1() cout child_1 destructor function endl; ; class child_2: public Base public: void Print() cout child_2 Print f
8、unction endl; child_2() cout child_2 destructor function Print(); delete p; /記住釋放,否則內(nèi)存泄露 p = new child_2; p-Print(); delete p; p = NULL; return 0; 三 詳細(xì)描述你所理解的MFC的文檔視圖架構(gòu)。MFC文檔/視圖結(jié)構(gòu)結(jié)構(gòu)被認(rèn)為是一種架構(gòu),應(yīng)用程序的大部分代碼都會(huì)被添加在文檔和視圖中。文檔和視圖緊密相連,是用戶與文檔之間的交互窗口;用戶通過(guò)文檔視圖結(jié)構(gòu)可實(shí)現(xiàn)數(shù)據(jù)的傳輸,編輯讀取和保存等。但文檔,視圖,以及應(yīng)用程序框架的相關(guān)部分之間還包括了一系列非常復(fù)雜的相
9、互作用。切分窗口和一檔多視是文檔和視圖相互作用的典型實(shí)例。文檔用于管理應(yīng)用程序的數(shù)據(jù),而視圖用于顯示文檔并管理與用戶的交互編寫(xiě)應(yīng)用程序時(shí),大部分工作都集中在文檔類(lèi)和視圖類(lèi)中。在創(chuàng)建應(yīng)用程序的框架時(shí),MFc AppWizard創(chuàng)建的文檔類(lèi)從CDocument類(lèi)派生而來(lái),視圖類(lèi)從CView類(lèi)為應(yīng)用程序定義的視圖類(lèi)提供了一些基本功能。視圖與文檔鏈接在一起,它在文檔與用戶之間起中介作用。視圖在屏幕上顯示文檔數(shù)據(jù)并把用戶輸入轉(zhuǎn)換成對(duì)文檔的操作。類(lèi)庫(kù)中文檔與視圖的這種實(shí)現(xiàn)方法把數(shù)據(jù)與數(shù)據(jù)的所有更改都通過(guò)文檔類(lèi)管理,而視圖則調(diào)用這個(gè)接口來(lái)訪問(wèn)和更新數(shù)據(jù)。文檔及相關(guān)的視圖和邊框窗口由文檔模板創(chuàng)建的,文檔模板負(fù)
10、責(zé)創(chuàng)建并管理某種類(lèi)型的所有文檔。一 文檔與視圖的相互作用正常情況下,MFC應(yīng)用程序用一種編程模式使程序中的數(shù)據(jù)與它的顯示型式和用戶交互分離開(kāi)來(lái),這種模式就是“文檔視圖結(jié)構(gòu)”也就是文檔視圖架構(gòu),文檔視圖結(jié)構(gòu)可以方便地實(shí)現(xiàn)文檔和視圖的相互作用。如果在用MFC App Wizard創(chuàng)建文檔應(yīng)用程序的第一步選中“文檔視圖結(jié)構(gòu)支持”復(fù)選框,就可使用下列五個(gè)文檔和視圖相互作用的重要成員函數(shù)。1. CView:GetDocument函數(shù)視圖對(duì)象只有一個(gè)與之相聯(lián)系的 文檔對(duì)象,它所包含的GetDocument函數(shù)允許應(yīng)用程序由視圖得到與之相關(guān)的文檔。2. CDocument:UpdateAllview函數(shù)如果
11、文檔的數(shù)據(jù)發(fā)生了改變,那么所有的視圖都必須被通知到,以便它們能夠?qū)λ@示的數(shù)據(jù)進(jìn)行相應(yīng)的更新。CDocument:UpdateAllview函數(shù)就起到這樣的作用。 1. CView:OnUpdate函數(shù)這是一個(gè)虛函數(shù)。當(dāng)應(yīng)用程序調(diào)用了CDocument:UPdateAll3. CView:OnInitialUpdate函數(shù)當(dāng)應(yīng)用程序被啟動(dòng)時(shí),或當(dāng)用戶從“文件”菜單中選擇了“新建”或打開(kāi)時(shí),該View虛函數(shù)都會(huì)被自動(dòng)調(diào)用。該函數(shù)除了調(diào)用無(wú)提示參數(shù)(lHint=0,pHint=NULL)的OnUpdate函數(shù)之外沒(méi)有其他任何操作4. CDocument:OnNewDocument函數(shù)在文檔應(yīng)用程序
12、中,當(dāng)用戶從文件菜單中選擇新建命令時(shí),框架將首先構(gòu)造一個(gè)文檔對(duì)象,然后調(diào)用該函數(shù)。在MFC中,文檔視圖機(jī)制使框架窗口,文檔,視圖和應(yīng)用程序?qū)ο笾g具有一定的聯(lián)系,通過(guò)相應(yīng)的函數(shù)可實(shí)現(xiàn)各對(duì)象指針的相互調(diào)用。1. 從文檔類(lèi)中獲取視圖對(duì)象指針在文檔類(lèi)中有一個(gè)與其關(guān)聯(lián)的各視圖對(duì)象的列表,并可通過(guò) CDocument 類(lèi)的成員函數(shù)GetFirstViewPosition和GetNexView來(lái)定位相應(yīng)的視圖對(duì)象2. 從視圖類(lèi)中獲取文檔對(duì)象和住框架對(duì)象指針在視圖類(lèi)中獲取文檔對(duì)象指針是很容易的,只需調(diào)用視圖類(lèi)中的成員函數(shù)GetDocument即可。3. 在主框架類(lèi)中獲取視圖對(duì)象指針對(duì)于單文檔應(yīng)用程序來(lái)說(shuō),只
13、需調(diào)用CFramWnd類(lèi)的GetActiveView成員函數(shù)即可。文檔/視圖結(jié)構(gòu)特點(diǎn)主要有:1將對(duì)數(shù)據(jù)的操作與數(shù)據(jù)顯示界面分離,放在不同類(lèi)的對(duì)象中處理。這種思想使得程序模塊的劃分更加合理。文檔對(duì)象只負(fù)責(zé)數(shù)據(jù)的管理,不涉及用戶界面;視圖對(duì)象只負(fù)責(zé)數(shù)據(jù)輸出和與用戶的交互,可以不考慮數(shù)據(jù)的具體組織結(jié)構(gòu)的細(xì)節(jié)。2MFC在文檔/視圖結(jié)構(gòu)中提供了許多標(biāo)準(zhǔn)的操作界面,包括新建文件、打開(kāi)文件、保存文件、文檔打印等,大大減輕了程序員的工作量。程序員不必再書(shū)寫(xiě)這些標(biāo)準(zhǔn)處理的代碼,從而可以把更多的精力放到完成應(yīng)用程序特定功能的代碼上。3支持打印、打印預(yù)覽和電子郵件發(fā)送功能。程序員只需要編寫(xiě)很少的代碼甚至根本無(wú)需編寫(xiě)
14、代碼,就可以為應(yīng)用程序提供“所見(jiàn)即所得”式的打印和打印預(yù)覽這類(lèi)功能。4使用Developer Studio的AppWizard可生成基于文檔/視結(jié)構(gòu)的SDI或MDI框架程序,程序員只需在其中添加與特定應(yīng)用有關(guān)的部分代碼,就可完成應(yīng)用程序的開(kāi)發(fā)工作。然而,文檔/視圖結(jié)構(gòu)也不是萬(wàn)能的。有些不宜采用文檔/視圖結(jié)構(gòu):四 選修題面向?qū)ο蟮?大基本特征有封裝性、繼承性和多態(tài)性:完成一個(gè)簡(jiǎn)單的基于MFC對(duì)話框的個(gè)人通信錄系統(tǒng)(界面布局和系統(tǒng)需求自己確定),詳細(xì)描述你的分析以及實(shí)現(xiàn)過(guò)程,通訊錄的數(shù)據(jù)以串行化的方法寫(xiě)入文件。(60分)1. 分析過(guò)程 完成一個(gè)簡(jiǎn)單的基于MFC對(duì)話框的個(gè)人通訊錄系統(tǒng)。它以對(duì)話框的方
15、式彈出界面,記錄包括姓名,學(xué)號(hào),地址,電話和QQ這些信息,用類(lèi)CBook1來(lái)描述,并使其可序列化。然后將記錄保存到一個(gè)對(duì)象數(shù)組集合類(lèi)對(duì)象中,最后通過(guò)文檔序列化將記錄保存到一個(gè)文件中。當(dāng)添加記錄或打開(kāi)文件時(shí),還會(huì)將數(shù)據(jù)顯示在文檔窗口中(即視圖)圖1 Ex_Book1運(yùn)行結(jié)果2. 基于MFC對(duì)話框的個(gè)人通訊錄系統(tǒng)的實(shí)現(xiàn)過(guò)程。1. 添加用于學(xué)生記錄輸入的對(duì)話框(1)用MFC AppWizard(exe)創(chuàng)建一個(gè)默認(rèn)的單文檔應(yīng)用程序Ex_Book1.(2) 像應(yīng)用程序中添加一個(gè)對(duì)話框資源,打開(kāi)屬性對(duì)話框,將其字體設(shè)置為“宋體,9號(hào)”,標(biāo)題改為“添加學(xué)生記錄”,取默認(rèn)的ID(IDD_DIALOG1),將
16、“OK”和“Cancel”按鈕的標(biāo)題分別改為“確定”和“取消”。(3)參看圖1的控件布局,用編輯器為對(duì)話框架添加如圖表2所示的一些空件。表2 添加的控件控件ID標(biāo)題屬性靜態(tài)文本默認(rèn)姓名默認(rèn)靜態(tài)文本默認(rèn)學(xué)號(hào)默認(rèn)靜態(tài)文本默認(rèn)地址默認(rèn)靜態(tài)文本默認(rèn)電話默認(rèn)靜態(tài)文本默認(rèn)QQ默認(rèn)編輯框IDC_EDIT1默認(rèn)編輯框IDC_EDIT2默認(rèn)編輯框IDC_EDIT3默認(rèn)編輯框IDC_EDIT4默認(rèn)編輯框IDC_EDIT5默認(rèn)(1)雙擊對(duì)話框模板或按【Ctrl+W】快捷鍵,為對(duì)話框資源IDD_DIALOG1創(chuàng)建一個(gè)對(duì)話框類(lèi)CInputDlg.(2)打開(kāi)ClassWizard的Member Variables標(biāo)簽,在
17、Class name中選擇CInputDlg,選中所需的控件ID標(biāo)識(shí)符,雙擊鼠標(biāo)或單擊Add Variables按鈕,依次為表3所示的控件增加成員變量。表3 控件變量控件ID變量類(lèi)型變量名范圍和大小IDC_EDIT1CStringm_strName20IDC_EDIT2CStringm_strID20IDC_EDIT3CStringm_strAdr20IDC_EDIT4CStringm_strPhone20IDC_EDIT5CStringm_strQQ20圖4 控件變量1. 添加一個(gè)CBook1類(lèi)并使該類(lèi)可序列話一個(gè)可序列列化的類(lèi)要是CObject的一個(gè)派生類(lèi),且在類(lèi)聲明中,需要包含DECLA
18、RE_SERIAL宏調(diào)用,而在類(lèi)的實(shí)現(xiàn)文件中包含IMPLEMENT_SERIAL宏調(diào)用,這個(gè)宏有3個(gè)參數(shù):前兩個(gè)參數(shù)分別表示類(lèi)名和基類(lèi)名,第三個(gè)參數(shù)表示應(yīng)用程序的版本號(hào)。最后還要重載Serialize函數(shù),使該類(lèi)的數(shù)據(jù)成員進(jìn)行相關(guān)序列化操作。 由于使用Class Wizard無(wú)法添加一個(gè)CObject派生類(lèi),因此必須手動(dòng)進(jìn)行,為了簡(jiǎn)化類(lèi)文件的復(fù)雜性,這里創(chuàng)建的這個(gè)CBook1類(lèi)的聲明和實(shí)現(xiàn)代碼是直接添加在Ex_Book1Doc.h和Ex_Book1Doc.cpp文件中的,具體代碼如下class CBook1:public CObjectCString strName; /姓名CString s
19、trID; /學(xué)號(hào)CString strAdr; /地址CString strPhone; /電話CString strQQ; /QQDECLARE_SERIAL(CBook1)public:CBook1() ;CBook1(CString name,CString id,CString adr,CString phone,CString qq); /void Serialize(CArchive &ar);void Display(int y,CDC*pDC); /在坐標(biāo)為(0,Y)處顯示數(shù)據(jù);CBook1:CBook1(CString name,CString id,CString adr
20、,CString phone,CString qq)strName=name;strID=id;strAdr=adr;strPhone=phone;strQQ=qq;void CBook1:Display(int y,CDC*pDC)CString str;str.Format(%s %s %s %s %s,strName,strID,strAdr,strPhone,strQQ);pDC-TextOut(0,y,str);IMPLEMENT_SERIAL(CBook1,CObject,1)void CBook1:Serialize(CArchive &ar)if(ar.IsStoring()a
21、rstrNamestrIDstrAdrstrPhonestrNamestrIDstrAdrstrPhonestrQQ;3.添加并處理菜單項(xiàng)(1)在菜單資源的主菜單中增加頂層菜單項(xiàng)“學(xué)生記錄(&S)”,在該頂層菜單項(xiàng)中增加子菜單“添加(&A)”(ID_BOOK1_ADD)(2)用ClassWizard為CEx_Book1Doc類(lèi)添加ID_BOOK1_ADD的COMMAND消息映射,并在映射函數(shù)添加代碼;(3)在Ex_Book1Doc.cpp.h文件的開(kāi)始處,增加包含CAddDlg的頭文件。2. 完善代碼(1)在Ex_Book1Doc.h文件中,為CEx_Book1Doc類(lèi)添加下列成員變量和函數(shù);
22、public:CObArray m_booObArray;int GetAllRecNum();CBook1* GetBookAt(int nIndex);(2)在Ex_Book1Doc.cpp文件中,添加函數(shù)的實(shí)現(xiàn)代碼:CBook1* CEx_Book1Doc:GetBookAt(int nIndex)if(nIndexm_booObArray.GetUpperBound()return 0; /超界處理return(CBook1*)m_booObArray.GetAt(nIndex);int CEx_Book1Doc:GetAllRecNum()return m_booObArray.GetSize();(3)在CEx_Book1Doc析構(gòu)函數(shù)中添加下列代碼:CEx_Book1Doc:CEx_Book1Doc()int nIndex=GetAllRecNum();while(nIndex-)delete m_booObArray.GetAt(nIndex);m_booObArray.RemoveAll();(4)在Seriali
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 陜西職業(yè)技術(shù)學(xué)院《影視特效》2023-2024學(xué)年第一學(xué)期期末試卷
- 錦州市黑山縣2024-2025學(xué)年三年級(jí)數(shù)學(xué)第二學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)模擬試題含解析
- 南開(kāi)大學(xué)《試驗(yàn)設(shè)計(jì)與數(shù)據(jù)分析》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣西電力職業(yè)技術(shù)學(xué)院《電視攝像基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 黔南民族醫(yī)學(xué)高等專(zhuān)科學(xué)?!渡锎蠓肿与p語(yǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 工程資金計(jì)劃表模板范文
- 精油美容儀問(wèn)卷調(diào)查
- 激光投影施工方案范本
- 管道盲探施工方案
- 山西定向穿越施工方案
- 電復(fù)律的護(hù)理查房
- 2024年貴州現(xiàn)代物流產(chǎn)業(yè)集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 20222023八下語(yǔ)文提優(yōu)輔導(dǎo)02(教師+學(xué)生)
- 共和國(guó)史(自己整理-僅供參考)
- 視頻監(jiān)控維保項(xiàng)目投標(biāo)方案(技術(shù)標(biāo))
- NB-T 11076-2023 高壓交流故障電流限制器通用技術(shù)規(guī)范
- 整縣(市、區(qū))屋頂分布式光伏開(kāi)發(fā)方案書(shū)-V5
- 透水磚鋪裝施工方案
- 《十步訊問(wèn)法》讀書(shū)筆記
- GB/T 42599-2023風(fēng)能發(fā)電系統(tǒng)電氣仿真模型驗(yàn)證
- 質(zhì)量問(wèn)題解決方法之7鉆流程法
評(píng)論
0/150
提交評(píng)論