版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、試驗(yàn)三面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)驗(yàn),一個(gè)簡(jiǎn)單的可復(fù)用時(shí)鐘控件,1,軟件網(wǎng)絡(luò),本實(shí)驗(yàn)的開(kāi)發(fā)環(huán)境,使用C語(yǔ)言實(shí)現(xiàn) 使用VC6.0集成開(kāi)發(fā)環(huán)境開(kāi)發(fā) 使用MFC應(yīng)用程序開(kāi)發(fā)框架,2,軟件網(wǎng)絡(luò),MFC版本簡(jiǎn)介,MFC全稱Microsoft Foundation Classes. 1989年微軟公司成立Application Framework技術(shù)團(tuán)隊(duì),開(kāi)發(fā)C面向?qū)ο蠊ぞ呓oWindows應(yīng)用程序開(kāi)發(fā)人員使用。這個(gè)小組即AFX小組,就是他們,開(kāi)始了MFC的開(kāi)發(fā)歷程。 微軟公司于1992年4月推出C/C+7.0產(chǎn)品時(shí),初次向世人介紹了MFC 1.0,其32位版本也在1992年7月隨著Win32 SDK推出。 Visu
2、al C1.0(也就是C/C+8.0)搭配MFC 2.0于1993年3月推出。同年8月推出在Windows NT上的Visual C1.1 for Windows NT,搭配的是MFC 2.1。,3,軟件網(wǎng)絡(luò),微軟在1993年12月又推出了16為的Visual C+ 1.5, 搭配的是MFC 2.5。 1994年9月,微軟推出Visual C 2.0,搭配MFC 3.0。 1995年1月,微軟推在增加了MAPI和WinSock支持的基礎(chǔ)上,推出MFC 3.1。 1995年7月,MFC有了3.2版,這是一個(gè)小的改版。 然后就是1995年9月的32位版MFC 4.0。這個(gè)版本有了相當(dāng)大的改進(jìn)。 1
3、996年上半年又有了MFC4.1 時(shí)至今日MFC在Visual C 7.0中已經(jīng)到了7.0版本。 我們常用的Visual C6.0使用的是MFC 4.2版本。 微軟正不斷地為“為什么要使用MFC”加上各式各樣地強(qiáng)烈你有,并強(qiáng)烈導(dǎo)引它成為Windows程序設(shè)計(jì)的C標(biāo)準(zhǔn)界面。正如我們所看到的,越來(lái)越多的MFC程序出現(xiàn)了并繼續(xù)在產(chǎn)生。,4,軟件網(wǎng)絡(luò),試驗(yàn)設(shè)計(jì)目標(biāo),完成一個(gè)可重用的C類,可以通過(guò)該類實(shí)現(xiàn)一個(gè)簡(jiǎn)單的模擬時(shí)鐘 編寫(xiě)一個(gè)簡(jiǎn)單的MFC程序測(cè)試驗(yàn)證這個(gè)時(shí)鐘控件類 關(guān)于這個(gè)時(shí)鐘控件,如果按照課件繼續(xù)完善下去,請(qǐng)將他做得更好更強(qiáng)大。比如說(shuō):可以考慮為時(shí)鐘控件的各項(xiàng)設(shè)置(如顏色)提供外部接口,供CCl
4、ockEx的使用者調(diào)用,可以考慮豐富背景繪制,加入背景圖片設(shè)置,在刻度上標(biāo)上數(shù)字,為指針加上陰影效果,在時(shí)鐘上顯示日期等。有興趣的同學(xué)有空不妨試試。,5,軟件網(wǎng)絡(luò),應(yīng)用程序框架設(shè)計(jì)過(guò)程(僅供參考),打開(kāi)VC6.0,新建一個(gè)MFC工程,輸入工程名,選擇“MFC AppWizard”如圖所示,然后點(diǎn)擊OK。,6,軟件網(wǎng)絡(luò),為簡(jiǎn)單起見(jiàn),這里選擇“Dialog based”程序,然后可以直接選擇finish了。,7,軟件網(wǎng)絡(luò),在類視圖的工程名上右鍵單擊,選擇New Class(如下圖所示)來(lái)建立一個(gè)新類。,8,軟件網(wǎng)絡(luò),我們可以從CStatic類(靜態(tài)控件類)派生出類CClockEx來(lái)實(shí)現(xiàn)時(shí)鐘控件類,
5、這樣,就可以繼承MFC靜態(tài)控件的很多已經(jīng)具備的功能和特點(diǎn)。在建立新類的對(duì)話框中,按下圖輸入。,9,軟件網(wǎng)絡(luò),按CtrlW調(diào)出Class Wizard,在class name中選擇剛才建立的新類CClockEx,然后 重載虛函數(shù)PreSubClassWindow,對(duì)時(shí)鐘控件的基本初始化工作將在該函數(shù)中進(jìn)行。 添加消息響應(yīng)WM_PAINT,我們必須用自己完成時(shí)鐘的繪制工作。 添加消息響應(yīng)WM_SIZE,重載該消息響應(yīng)以便我們的時(shí)鐘控件能夠自動(dòng)適應(yīng)其大小的變化。 為了時(shí)鐘能夠走動(dòng),我們得定時(shí)刷新時(shí)鐘控件讓它走動(dòng),還得添加WM_TIMER的消息響應(yīng)。最終效果如下圖所示。,10,軟件網(wǎng)絡(luò),到目前為止,時(shí)
6、鐘控件的輪廓和已經(jīng)有了,下面考慮時(shí)鐘繪制的具體實(shí)現(xiàn)。 一個(gè)時(shí)鐘大致可由時(shí)鐘背景、時(shí)針、分針、秒針?biāo)膫€(gè)部分構(gòu)成。 以上的時(shí)鐘四個(gè)部分可是看作四個(gè)不同的對(duì)象,可以考慮建立類CClockBackground(背景)CClockHourHand(時(shí)針)、CClockMinHand(分針)、CClockSecHand(秒針)來(lái)分別實(shí)現(xiàn)。(此處為了意義明確,類名都比較長(zhǎng)) 這四個(gè)類有它們的共同點(diǎn),譬如都有自己的繪圖函數(shù),如果要具體能夠設(shè)置顏色,它們都應(yīng)該有自己的繪圖顏色,同樣應(yīng)該有顏色設(shè)置函數(shù),此外都有繪圖區(qū)域和區(qū)域設(shè)置函數(shù)等等。因此,可以為它們的共性建立一個(gè)基類,此處命名為CClockElement(時(shí)
7、鐘元素)。,11,軟件網(wǎng)絡(luò),下面逐步實(shí)現(xiàn)各個(gè)類,首先實(shí)現(xiàn)各個(gè)組成類的基類CClockElement。同樣,在ClassView的工程名上面點(diǎn)右鍵,選擇New Class,在ClassType里面選擇Genenric Class,類CClockElement不需要從其它類派生,所以Base Class可以不填,效果如下圖所示。,12,軟件網(wǎng)絡(luò),下面對(duì)類CClockElement的源代碼進(jìn)行編寫(xiě)。 因?yàn)樵诤竺娴睦L圖中需要用到sin和cos這兩個(gè)數(shù)學(xué)計(jì)算公式,因此需包含頭文件以便使用數(shù)學(xué)函數(shù)庫(kù)。為后面計(jì)算使用,還需定義數(shù)學(xué)常量PI(3.1415926535)。 時(shí)鐘的每個(gè)組成部分都有繪圖區(qū)域區(qū)域,因
8、此,可在基類中定義繪圖區(qū)域變量。同理,可以定義顏色變量,為了是顏色不顯得單調(diào),這里為每個(gè)控件設(shè)置兩種顏色(如果想使程序更加絢麗,可以設(shè)置更多顏色)。 對(duì)應(yīng)的,這些變量需增加接口函數(shù)來(lái)進(jìn)行訪問(wèn)。 對(duì)于每個(gè)組成部分都應(yīng)該有的Draw函數(shù),當(dāng)然也需在基類中定義,但是,該函數(shù)對(duì)于基類來(lái)說(shuō)是無(wú)需函數(shù)實(shí)現(xiàn)的,因此可定義為純虛函數(shù)。,13,軟件網(wǎng)絡(luò),綜合剛才這幾點(diǎn),CClockElement的實(shí)現(xiàn)的頭文件代碼如下: #include #define PI 3.1415926535 class CClockElement public: void SetColor(COLORREF crMain, COLOR
9、REF crOther);/設(shè)置顏色 void SetTime(const CTime /時(shí)鐘半徑,14,軟件網(wǎng)絡(luò),CClockElement的實(shí)現(xiàn)的源文件關(guān)鍵代碼如下: CClockElement:CClockElement() m_nRadius = 0; m_crMain = RGB(255, 255, 255); m_crOther = RGB(128, 128, 128); CClockElement:CClockElement() void CClockElement:SetRegion(LPRECT lprcRect) m_rcRegion = lprcRect; m_nRadi
10、us = m_rcRegion.Width() / 2; if (m_rcRegion.Width() m_rcRegion.Height() m_nRadius = m_rcRegion.Height() / 2; ,15,軟件網(wǎng)絡(luò),續(xù)上頁(yè): void CClockElement:SetTime(const CTime ,16,軟件網(wǎng)絡(luò),下面實(shí)現(xiàn)時(shí)鐘背景類CClockBackground。同樣,在ClassView的工程名上面點(diǎn)右鍵,選擇New Class,在ClassType里面選擇Genenric Class,類CClockBackground需要從類CClockElement派生,所以
11、Base Class需選擇類CClockElement,效果如下圖所示。,17,軟件網(wǎng)絡(luò),CClockBackground只需實(shí)現(xiàn)基類的虛函數(shù)Draw即可,因此這里重載基類的虛函數(shù)Draw,其頭文件實(shí)現(xiàn)代碼如下: #include ClockElement.h class CClockBackground : public CClockElement public: CClockBackground(); virtual CClockBackground(); ;,18,軟件網(wǎng)絡(luò),CClockBackground源文件代碼如下: CClockBackground:CClockBackgroun
12、d() /為時(shí)鐘背景定義默認(rèn)的顏色設(shè)置 m_crMain = RGB(0, 255, 0); m_crOther = RGB(0, 128, 0); CClockBackground:CClockBackground() void CClockBackground:Draw(CDC *pDC) /準(zhǔn)備設(shè)備環(huán)境 CPen penMain(PS_SOLID, 1, m_crMain), penOther(PS_SOLID, 1, m_crOther); CBrush brMain(m_crMain), brOther(m_crOther); CPen *pOldPen = pDC-SelectOb
13、ject(,19,軟件網(wǎng)絡(luò),CClockBackground源文件代碼如下(續(xù)上頁(yè)): /繪制60個(gè)小圓點(diǎn),表示分針和秒針的刻度 CPoint ptCenter = m_rcRegion.CenterPoint(); int nRadius = m_nRadius - 8; for(int i=0; iEllipse(rcDot); /繪制12個(gè)小方框,表示12個(gè)正點(diǎn) pDC-SelectObject( ,20,軟件網(wǎng)絡(luò),下面實(shí)現(xiàn)時(shí)針類CClockHourHand,該類新建的過(guò)程與CClockBackground一樣, CClockHourHand同樣只需實(shí)現(xiàn)基類的虛函數(shù)Draw即可,其頭文件
14、實(shí)現(xiàn)代碼如下: #include ClockElement.h class CClockHourHand : public CClockElement public: CClockHourHand(); virtual CClockHourHand(); virtual void Draw(CDC *pDC); ;,21,軟件網(wǎng)絡(luò),CClockHourHand源文件代碼如下: CClockHourHand:CClockHourHand() /定義默認(rèn)顏色 m_crMain = RGB(0, 255, 100); m_crOther = RGB(128, 128, 0); CClockHourH
15、and:CClockHourHand() void CClockHourHand:Draw(CDC *pDC) /初始化設(shè)備環(huán)境 CPen penMain(PS_SOLID, 1, m_crMain), penOther(PS_SOLID, 1, m_crOther); CBrush brMain(m_crMain), brOther(m_crOther); CPen *pOldPen = pDC-SelectObject(,22,軟件網(wǎng)絡(luò),CClockHourHand源文件代碼如下(續(xù)上頁(yè)): /確定繪制菱形指針?biāo)璧乃膫€(gè)角的坐標(biāo) CPoint ptDiamond4; for(int i=0
16、; i4; i+) ptDiamondi = m_rcRegion.CenterPoint(); int nRadus = m_nRadius / 2; ptDiamond0.Offset(int)(nRadus * sin(fRadian), (int)(- nRadus * cos(fRadian); fRadian += 0.5 * PI; nRadus = m_nRadius / 20; ptDiamond1.Offset(int)(nRadus * sin(fRadian), (int)(- nRadus * cos(fRadian); fRadian += 0.5 * PI; nR
17、adus = m_nRadius / 10; ptDiamond2.Offset(int)(nRadus * sin(fRadian), (int)(- nRadus * cos(fRadian); fRadian += 0.5 * PI; nRadus = m_nRadius / 20; ptDiamond3.Offset(int)(nRadus * sin(fRadian), (int)(- nRadus * cos(fRadian);,23,軟件網(wǎng)絡(luò),CClockHourHand源文件代碼如下(續(xù)上頁(yè)): /繪制菱形時(shí)針 pDC-Polygon(ptDiamond, 4); /恢復(fù)設(shè)備環(huán)
18、境 pDC-SelectObject(pOldPen); pDC-SelectObject(pOldBrush);,24,軟件網(wǎng)絡(luò),下面實(shí)現(xiàn)分針類CClockMinHand,該類新建的過(guò)程與CClockHourHand一樣,類的實(shí)現(xiàn)也基本相似,其頭文件實(shí)現(xiàn)代碼如下: #include ClockElement.h class CClockMinHand : public CClockElement public: CClockMinHand(); virtual CClockMinHand(); virtual void Draw(CDC *pDC); ;,25,軟件網(wǎng)絡(luò),CClockMinH
19、and源文件代碼如下: CClockMinHand:CClockMinHand() /定義默認(rèn)顏色 m_crMain = RGB(0, 255, 100); m_crOther = RGB(128, 128, 0); CClockMinHand:CClockMinHand() void CClockMinHand:Draw(CDC *pDC) /初始化設(shè)備環(huán)境 CPen penMain(PS_SOLID, 1, m_crMain), penOther(PS_SOLID, 1, m_crOther); CBrush brMain(m_crMain), brOther(m_crOther); CP
20、en *pOldPen = pDC-SelectObject(,26,軟件網(wǎng)絡(luò),CClockMinHand源文件代碼如下(續(xù)上頁(yè)): /確定繪制菱形指針?biāo)璧乃膫€(gè)角的坐標(biāo) CPoint ptDiamond4; for(int i=0; i4; i+) ptDiamondi = m_rcRegion.CenterPoint(); int nRadus = m_nRadius / 2; ptDiamond0.Offset(int)(nRadus * sin(fRadian), (int)(- nRadus * cos(fRadian); fRadian += 0.5 * PI; nRadus =
21、m_nRadius / 20; ptDiamond1.Offset(int)(nRadus * sin(fRadian), (int)(- nRadus * cos(fRadian); fRadian += 0.5 * PI; nRadus = m_nRadius / 10; ptDiamond2.Offset(int)(nRadus * sin(fRadian), (int)(- nRadus * cos(fRadian); fRadian += 0.5 * PI; nRadus = m_nRadius / 20; ptDiamond3.Offset(int)(nRadus * sin(fR
22、adian), (int)(- nRadus * cos(fRadian);,27,軟件網(wǎng)絡(luò),CClockMinHand源文件代碼如下(續(xù)上頁(yè)): /繪制菱形分針 pDC-Polygon(ptDiamond, 4); /恢復(fù)設(shè)備環(huán)境 pDC-SelectObject(pOldPen); pDC-SelectObject(pOldBrush);,28,軟件網(wǎng)絡(luò),下面實(shí)現(xiàn)秒針類CClockSecHand,該類新建的過(guò)程與CClockHourHand一樣,類的實(shí)現(xiàn)也基本相似,其頭文件實(shí)現(xiàn)代碼如下: #include ClockElement.h class CClockSecHand : publi
23、c CClockElement public: CClockSecHand(); virtual CClockSecHand(); virtual void Draw(CDC *pDC); ;,29,軟件網(wǎng)絡(luò),CClockSecHand源文件代碼如下: CClockSecHand:CClockSecHand() /設(shè)定秒針的默認(rèn)顏色 m_crMain = RGB(0, 200, 200); m_crOther = RGB(0, 200, 200); CClockSecHand:CClockSecHand() void CClockSecHand:Draw(CDC *pDC) int nTime
24、 = m_tmCur.GetSecond(); CPoint ptStart = m_rcRegion.CenterPoint(); CPoint ptEnd = ptStart; int nRadius = m_nRadius - 10; ptEnd.Offset(int)(nRadius * sin(2 * PI * nTime / 60), (int)(-nRadius * cos(2 * PI * nTime / 60); CPen penMain(PS_SOLID, 1, m_crMain); CPen *pOldPen = pDC-SelectObject( ,30,軟件網(wǎng)絡(luò),到目
25、前為止,時(shí)鐘的各個(gè)部件都已經(jīng)設(shè)計(jì)完畢,現(xiàn)在該把它們組裝起來(lái)了。 剛才建立的四個(gè)類CClockBackground、CClockHourHand、CClockMinHand、CClockSecHand要為CClockEx服務(wù),正如CClockElement為它們服務(wù)一樣,不過(guò)服務(wù)的方式發(fā)生了變化,剛才是以繼承的方式使用,現(xiàn)在需要將上面四個(gè)類實(shí)例化供CClockEx使用。因此,首先應(yīng)該在類CClockEx為上四個(gè)類分別建立對(duì)象。在CClockEx的頭文件中恰當(dāng)位置加入以下代碼: #include ClockBackground.h #include ClockHourHand.h #include
26、 ClockMinHand.h #include ClockSecHand.h class CClockEx : public CStatic private: CClockBackgroundm_clockBK;/時(shí)鐘背景 CClockHourHandm_clockHour;/時(shí)指針 CClockMinHandm_clockMin;/分指針 CClockSecHandm_clockSec;/秒指針,31,軟件網(wǎng)絡(luò),為了存儲(chǔ)繪圖區(qū)域的大小,需要在CClockEx中加入一個(gè)變量m_rcClient: CRect m_rcClient;/客戶區(qū)域 在PreSubclassWindow函數(shù)中進(jìn)行時(shí)鐘
27、的初始化工作。首先得為各個(gè)部件設(shè)定區(qū)域大小,然后啟動(dòng)定時(shí)刷新的定時(shí)器(100毫秒的定時(shí)器已經(jīng)足夠)。由于每個(gè)部件都有自己的默認(rèn)顏色配置,因此這里暫且先使用默認(rèn)配置,當(dāng)然也可以自定義顏色: GetClientRect(m_rcClient); /獲取當(dāng)前客戶區(qū)域 m_clockBK.SetRegion(m_rcClient); m_clockHour.SetRegion(m_rcClient); m_clockMin.SetRegion(m_rcClient); m_clockSec.SetRegion(m_rcClient); SetTimer(1, 100, NULL); /每100毫秒刷新
28、一次,32,軟件網(wǎng)絡(luò),當(dāng)控件大小發(fā)生變化時(shí),控件狀態(tài)要能夠自動(dòng)更新: void CClockEx:OnSize(UINT nType, int cx, int cy) CStatic:OnSize(nType, cx, cy); GetClientRect(m_rcClient); m_clockBK.SetRegion(m_rcClient); m_clockHour.SetRegion(m_rcClient); m_clockMin.SetRegion(m_rcClient); m_clockSec.SetRegion(m_rcClient); 每個(gè)定時(shí)器時(shí)間觸發(fā)時(shí),需要刷新控件以保證時(shí)鐘
29、的走動(dòng): void CClockEx:OnTimer(UINT nIDEvent) Invalidate(FALSE); CStatic:OnTimer(nIDEvent); ,33,軟件網(wǎng)絡(luò),下面實(shí)現(xiàn)時(shí)鐘的繪制,由于控件在不斷刷新,按一般方式繪圖,屏幕會(huì)不斷閃爍,因此此處使用雙緩沖繪圖就是在內(nèi)存中繪圖,繪制完畢時(shí)在Copy到屏幕上,這樣可以有效的防止屏幕閃爍: void CClockEx:OnPaint() CPaintDC dc(this); / device context for painting /實(shí)現(xiàn)雙緩沖繪圖防止屏幕閃爍 CDCdcMem; dcMem.CreateCompati
30、bleDC( ,34,軟件網(wǎng)絡(luò),為了程序結(jié)構(gòu)更清晰,我們將繪圖函數(shù)放在一個(gè)單獨(dú)的函數(shù)DrawClock中,下面室DrawClock的函數(shù)實(shí)現(xiàn): void CClockEx:DrawClock(CDC *pDC) CTime tmCur = CTime:GetCurrentTime(); m_clockBK.SetTime(tmCur); m_clockHour.SetTime(tmCur); m_clockMin.SetTime(tmCur); m_clockSec.SetTime(tmCur); m_clockBK.Draw(pDC); m_clockMin.Draw(pDC); m_clo
31、ckHour.Draw(pDC); m_clockSec.Draw(pDC); ,35,軟件網(wǎng)絡(luò),下面是完整的CClockEx源碼: #if !defined(AFX_CLOCKEX_H_EB35C434_A727_43BE_B10E_121F6307EA73_INCLUDED_) #define AFX_CLOCKEX_H_EB35C434_A727_43BE_B10E_121F6307EA73_INCLUDED_ #if _MSC_VER 1000 #pragma once #endif / _MSC_VER 1000 / ClockEx.h : header file / / / CCl
32、ockEx window #include ClockBackground.h #include ClockHourHand.h #include ClockMinHand.h #include ClockSecHand.h class CClockEx : public CStatic private: CRectm_rcClient;/客戶區(qū)域 CClockBackgroundm_clockBK;/時(shí)鐘背景 CClockHourHandm_clockHour;/時(shí)指針 CClockMinHandm_clockMin;/分指針 CClockSecHandm_clockSec;/秒指針 voi
33、d DrawClock(CDC *pDC); / Construction public: CClockEx();,36,軟件網(wǎng)絡(luò),下面是完整的CClockEx源碼(續(xù)上頁(yè)): / Attributes public: / Operations public: / Overrides / ClassWizard generated virtual function overrides /AFX_VIRTUAL(CClockEx) protected: virtual void PreSubclassWindow(); /AFX_VIRTUAL / Implementation public:
34、virtual CClockEx(); / Generated message map functions protected: /AFX_MSG(CClockEx) afx_msg void OnPaint(); afx_msg void OnSize(UINT nType, int cx, int cy); afx_msg void OnTimer(UINT nIDEvent); /AFX_MSG DECLARE_MESSAGE_MAP() ; / /AFX_INSERT_LOCATION / Microsoft Visual C+ will insert additional decla
35、rations immediately before the previous line. #endif / !defined(AFX_CLOCKEX_H_EB35C434_A727_43BE_B10E_121F6307EA73_INCLUDED_),37,軟件網(wǎng)絡(luò),下面是完整的CClockEx源碼(續(xù)上頁(yè)): / ClockEx.cpp : implementation file #include stdafx.h #include ClockProject.h #include ClockEx.h #ifdef _DEBUG #define new DEBUG_NEW #undef THI
36、S_FILE static char THIS_FILE = _FILE_; #endif / / CClockEx CClockEx:CClockEx() CClockEx:CClockEx() BEGIN_MESSAGE_MAP(CClockEx, CStatic) /AFX_MSG_MAP(CClockEx) ON_WM_SIZE() ON_WM_PAINT() ON_WM_TIMER() /AFX_MSG_MAP END_MESSAGE_MAP(),38,軟件網(wǎng)絡(luò),下面是完整的CClockEx源碼(續(xù)上頁(yè)): / / CClockEx message handlers void CClockEx:PreSubclassWindow() /獲取當(dāng)前客戶區(qū)域 GetClientRect(m_rcClient); m_clockBK.SetRegion(m_rcClient); m_clockHour.SetRegion(m_rcClient); m_
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專項(xiàng)消防設(shè)備增設(shè)協(xié)議樣本版A版
- 2025年度廠房裝飾裝修工程節(jié)能合同范本4篇
- 2025年度創(chuàng)新產(chǎn)業(yè)園廠房轉(zhuǎn)租服務(wù)合同標(biāo)準(zhǔn)4篇
- 做菜知識(shí)培訓(xùn)課件圖片
- 二零二五年度體育場(chǎng)館建設(shè)擔(dān)保協(xié)議3篇
- 2025年度高原地區(qū)柴油發(fā)電機(jī)組銷售及售后服務(wù)合同3篇
- 《社區(qū)調(diào)解實(shí)務(wù)講解》課件
- 2024年04月河南鄭州銀行信息科技部社會(huì)招考筆試歷年參考題庫(kù)附帶答案詳解
- 個(gè)人對(duì)公司長(zhǎng)期借款合同(2024年版)
- 專業(yè)美甲技術(shù)勞務(wù)合作協(xié)議樣本(2024版)版B版
- 科室醫(yī)療質(zhì)量與安全管理小組工作制度
- 中華民族共同體概論課件第五講大一統(tǒng)與中華民族共同體初步形成(秦漢時(shí)期)
- 初二生地會(huì)考試卷及答案-文檔
- 私營(yíng)企業(yè)廉潔培訓(xùn)課件
- 施工單位值班人員安全交底和要求
- 中國(guó)保險(xiǎn)用戶需求趨勢(shì)洞察報(bào)告
- 數(shù)字化轉(zhuǎn)型指南 星展銀行如何成為“全球最佳銀行”
- 中餐烹飪技法大全
- 靈芝孢子油減毒作用課件
- 現(xiàn)場(chǎng)工藝紀(jì)律檢查表
- 醫(yī)院品管圈與護(hù)理質(zhì)量持續(xù)改進(jìn)PDCA案例降低ICU病人失禁性皮炎發(fā)生率
評(píng)論
0/150
提交評(píng)論