




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、.設(shè)計報告:Graphic簡易畫圖板 -韓偉 謝程焜 肖越 周峰 電科二班1設(shè)計目的設(shè)計一個單文檔類型的MFC AppWizard (exe)工程,工程取名為:Graphic。此程序?qū)?shí)現(xiàn)簡單的繪圖功能,包括點(diǎn)、直線、矩形、橢圓、扇形和連續(xù)線的繪制。并且能實(shí)現(xiàn)繪圖的控制,包括線寬、線型和顏色的設(shè)置,圖形的保存和打開以及筆刷的使用。2 總體設(shè)計設(shè)計圖如圖6簡易畫圖板文件繪圖筆刷打開保存點(diǎn)直線矩形橢圓扇形連續(xù)線設(shè)置顏色簡單筆刷位圖筆刷透明筆刷線寬線型圖63詳細(xì)設(shè)計首先,新建一個單文檔類型的MFC AppWizard (exe)工程,工程取名為:Graphic。為此程序添加一個子菜單,菜單名稱為“繪
2、圖”,并為其添加六個菜單項(xiàng),分別用來控制不同圖形的繪制。當(dāng)用戶選擇其中的一個菜單項(xiàng)后,程序?qū)凑债?dāng)前的選擇進(jìn)行相應(yīng)圖形的繪制。添加的六個菜單項(xiàng)的ID及名稱如表1所示。然后分別為這六個菜單項(xiàng)添加命令響應(yīng),本程序讓視類(CGraphicView)對這些菜單命令進(jìn)行響應(yīng),這六個響應(yīng)函數(shù)的名稱分別如表1所示。表1添加的菜單項(xiàng)菜單項(xiàng)ID菜單項(xiàng)名稱菜單項(xiàng)命令響應(yīng)函數(shù)IDM_DOT點(diǎn)OnDotIDM_LINE直線OnLineIDM-RECTANGLE矩形OnRectangleIDM_ELLIPSE橢圓OnEllipseIDM_SHANXING扇形OnShanxingIDM_LIANXUXIAN連續(xù)線OnLi
3、anxuxian在程序運(yùn)行以后,當(dāng)用戶單擊某個菜單項(xiàng)時,應(yīng)該把用戶的選擇保存起來,以便隨后的繪圖操作使用。因此在CGraphicView類中添加一個私有變量m_nDrawType;用來保存用戶的選擇,該變量的定義如下所述:private: UINT m_nDrawType;接著,在視類的構(gòu)造函數(shù)中將此變量初始化為0,程序代碼如下:CGraphicView:CGraphicView()/ TODO: add construction code here m_nDrawType=0;利用switch/case語句,來分別完成相應(yīng)圖形的繪制。當(dāng)用戶選擇【繪圖】菜單下的不同子菜單項(xiàng)時,將變量m_nDr
4、awType設(shè)置為不同的值。程序代碼如下:void CGraphicView:OnDot() / TODO: Add your command handler code herem_nDrawType=1;void CGraphicView:OnLine() / TODO: Add your command handler code herem_nDrawType=2;void CGraphicView:OnRectangle() / TODO: Add your command handler code herem_nDrawType=3;void CGraphicView:OnEllips
5、e() / TODO: Add your command handler code herem_nDrawType=4;void CGraphicView:OnShanxing() / TODO: Add your command handler code herem_nDrawType=5;void CGraphicView:OnLianxuxian() / TODO: Add your command handler code herem_nDrawType=6;3.1點(diǎn)、直線、矩形、橢圓的繪制 (周峰 謝程焜)對于直線、矩形和橢圓,在繪制時都可有兩點(diǎn)來確定其圖形。當(dāng)鼠標(biāo)左擊時得到一個點(diǎn),
6、當(dāng)鼠標(biāo)左鍵松開時得到另外一個點(diǎn)。為視類CGraphicView分別捕獲鼠標(biāo)左鍵按下和彈起這兩個消息。另外當(dāng)鼠標(biāo)左鍵按下時,需要將鼠標(biāo)當(dāng)前按下點(diǎn)保存,因此我們?yōu)镃GraphicView再增加一個CPoint類型的私有成員變量:m_ptOrigin,在視類的構(gòu)造函數(shù)中將此變量初始化為0。在鼠標(biāo)按下消息響應(yīng)函數(shù)中,保存該點(diǎn),代碼如下:void CGraphicView:OnLButtonDown(UINT nFlags, CPoint point) / TODO: Add your message handler code here and/or call defaultm_ptOrigin=poi
7、nt; /保存鼠標(biāo)按下得到點(diǎn),也是繪制一個點(diǎn)CView:OnLButtonDown(nFlags, point);在鼠標(biāo)左鍵彈起消息響應(yīng)函數(shù)中實(shí)現(xiàn)繪圖,代碼如下:void CGraphicView:OnLButtonUp(UINT nFlags, CPoint point) / TODO: Add your message handler code here and/or call default/創(chuàng)建并獲得設(shè)備描述CClientDC dc(this); switch (m_nDrawType)case 1:dc.SetPixel(point,RGB(255,0,0)); /*繪制點(diǎn)*/bre
8、ak;case 2: /*繪制直線*/dc.MoveTo(m_ptOrigin);/*調(diào)用MoveTo函數(shù)移動到原點(diǎn)*/dc.LineTo(point);/*調(diào)用LineTo函數(shù)繪制到終點(diǎn)。*/break;case 3: /*繪制矩形*/ dc.Rectangle(CRect(m_ptOrigin,point);break;case 4: /*繪制橢圓*/dc.Ellipse(CRect(m_ptOrigin,point);break;CView:OnLButtonUp(nFlags, point);在上述程序中,設(shè)置一個點(diǎn),用到的函數(shù)是SetPixel,這也是CDC類的一個成員方法,該函數(shù)的
9、生命形式如下:COLORREF SetPixel (POINT point,COLORREF crColor);該函數(shù)是在指定的點(diǎn)設(shè)置一個像素。其中第一個參數(shù)(point)是指定的點(diǎn),第二個參數(shù)(crColor)是指定的顏色。在程序中設(shè)定的顏色在系統(tǒng)顏色表中可能不存在,但系統(tǒng)會選擇一種和這個顏色最接近的顏色。RGB是一個宏,它有三個參數(shù),分別代表紅、綠、藍(lán)三種顏色的值。這三個參數(shù)BYTE類型,取值范圍為0255。RGB(0,0,0)是黑色,RGB(255,255,255)是白色,將這三個分量設(shè)置成為0255之間的任意值,從而得到各種不同的顏色。這里的RGB(255,0,0)是紅色。繪制直線時,
10、首先調(diào)用MoveTo函數(shù)移動到原點(diǎn),然后調(diào)用LineTo函數(shù)繪制到終點(diǎn)。繪制矩形時使用Rectangle函數(shù),該函數(shù)聲明形式為:BOOL Rectangle (LPCRECT lpRect);該函數(shù)有一個指向Crect對象的參數(shù),后者可以利用兩個點(diǎn)來構(gòu)造。需要注意的是該函數(shù)需要的是指向Crect對象的指針,而上述代碼中傳遞的卻是Crect對象,但運(yùn)行編譯時也能成功通過,運(yùn)行時也不會報錯,這是為什么呢?我們知道C系列的語言都是強(qiáng)類型語言,如果類型不匹配的話,需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換。但這里為什么沒有進(jìn)行這樣的強(qiáng)制類型轉(zhuǎn)換程序也可以通過呢?實(shí)際上,Crect類提供了這樣一個成員函數(shù):重載LPCRECT
11、操作符,其作用是將Crect轉(zhuǎn)換為LPCRECT類型。因此,當(dāng)在程序中給Rectangle函數(shù)的參數(shù)賦值時,如果它發(fā)現(xiàn)該參數(shù)是一個Crect對象,它就會隱式地調(diào)用LPCRECT操作符,將Crect類型的對象轉(zhuǎn)換為LPRECT類型。因此,在給函數(shù)傳遞參數(shù)時,如果我們看到的傳遞的數(shù)值類型和所需要的類型不匹配,但編譯和運(yùn)行都正確的情況時,就要想想這其中的緣由了。當(dāng)然,有的情況下可能是這些類型之間本來就可以互相轉(zhuǎn)換,例如short類型和int類型。但是參數(shù)是對象類的話,就要考慮了,它選擇的對象的構(gòu)造方法進(jìn)行的隱式轉(zhuǎn)換,還是有其他重載的操作符。當(dāng)用戶選擇橢圓菜單項(xiàng)時,調(diào)用Ellipes函數(shù)繪制一個橢圓。
12、3.2連續(xù)線和扇形的繪制(周峰 謝程焜)Windows系統(tǒng)為我們提供了一個畫圖程序,在該程序中,利用畫筆可以繪制連續(xù)的線條,下面我們設(shè)計繪制連續(xù)線和扇形。為了繪制連續(xù)的線條,首先要得到線條的起點(diǎn),這在前面已經(jīng)實(shí)現(xiàn)。然后需要捕獲鼠標(biāo)移動過程中的每一個點(diǎn),這可以通過捕獲鼠標(biāo)移動消息(WM_MOUSEMOVE)來實(shí)現(xiàn)。在此消息響應(yīng)函數(shù)中,在依次捕獲的各個點(diǎn)之間繪制一條條非常短的線段,從而就可以繪制出一條連續(xù)的線條。遵照這一思路,我們開始增加程序的功能。首先為視類增加鼠標(biāo)移動消息(WM_MOUSEMOVE)的響應(yīng)函數(shù)(OnMouseMove)。這樣,只要鼠標(biāo)在應(yīng)用程序窗口中移動時都會進(jìn)入到這個消息響應(yīng)
13、函數(shù)中。但這并不是我們所期望的,我們希望在鼠標(biāo)左鍵按下后開始繪圖。因此,我們需要有一個變量來表示鼠標(biāo)左鍵是否按下這一狀態(tài),然后在鼠標(biāo)移動消息響應(yīng)函數(shù)中對這一變量進(jìn)行判斷。當(dāng)此變量為真,即鼠標(biāo)左鍵已經(jīng)按下去,我們開始繪圖。于是,為視類添加一個BOOL型的私有變量m_bDraw,當(dāng)鼠標(biāo)左鍵按下去時,此變量為真;當(dāng)鼠標(biāo)左鍵彈起時,此變量為假,這時,我們就不再繪制線條了。該變量在視類頭文件中的定義代碼如下:Private: BOOL m_bDraw;接下來在視類的構(gòu)造函數(shù)中,將此變量初始化為FALSE。m_bdraw=FALSE;當(dāng)鼠標(biāo)左鍵按下去時,在視類的OnLButtonDown函數(shù)中將此變量初始
14、化為TRUE。m_bdraw=TRUE;當(dāng)鼠標(biāo)左鍵彈起時,在視類的OnLButton函數(shù)中將此變量初始化為假。m_bdraw=FALSE;然后在OnMouseMove函數(shù)中首先對m_bdraw變量進(jìn)行判斷,如果其值為真,說明鼠標(biāo)左鍵已經(jīng)按下去了,這時就可開始進(jìn)行畫線操作。還有一點(diǎn)需要注意,因?yàn)槊坷L制一條線段后,下次應(yīng)該從這條線段的終點(diǎn)開始繼續(xù)繪制。因此,繪制完當(dāng)前線段后,應(yīng)該修改線段的起點(diǎn),將當(dāng)前線段的終點(diǎn)作為下一條線段的起點(diǎn),程序代碼如下:void CGraphicView:OnMouseMove(UINT nFlags, CPoint point) /TODO: Add your mess
15、age handler code here and/or call default/創(chuàng)建并獲得設(shè)備描述 CClientDC dc(this);/創(chuàng)建寬度為1的實(shí)線紅色畫筆CPen pen (PS_SOLID, 1, RGB(255,0,0));/把創(chuàng)建的畫筆選入設(shè)備描述 CPen *pOldpen=dc.SelectObject(&pen);if(m_bDraw=true)dc.MoveTo(m_ptOrigin); dc.LineTo(point);/修改線段的起點(diǎn) m_ptOrigin=point;/恢復(fù)設(shè)備描述dc.SelectObject(pOldpen); CView:OnM
16、ouseMove(nFlags, point);如果在上面繪制連續(xù)線條的程序中,保持每段小直線的起點(diǎn)不變,即以鼠標(biāo)左鍵按下時的起點(diǎn)為起點(diǎn)不變,分別繪制到鼠標(biāo)移動點(diǎn)的直線,這時就會出現(xiàn)扇形的效果。也就是去掉上述代碼OnMouseMove函數(shù)中修改線段起點(diǎn)的代碼。程序代碼如下:void CGraphicView:OnMouseMove(UINT nFlags, CPoint point) /TODO: Add your message handler code here and/or call default/創(chuàng)建并獲得設(shè)備描述 CClientDC dc(this);/創(chuàng)建寬度為1的實(shí)線紅色畫筆C
17、Pen pen (PS_SOLID, 1, RGB(255,0,0));/把創(chuàng)建的畫筆選入設(shè)備描述 CPen *pOldpen=dc.SelectObject(&pen);if(m_bDraw=true)dc.MoveTo(m_ptOrigin); dc.LineTo(point);/恢復(fù)設(shè)備描述dc.SelectObject(pOldpen); CView:OnMouseMove(nFlags, point);3.3畫刷 (韓偉 肖越)再為此程序添加一個子菜單,菜單名稱為“畫刷”,并為其添加三個菜單項(xiàng),分別用來控制不同的畫刷。MFC提供了一個CBrush類,可以用來創(chuàng)建畫刷對象。畫刷
18、通常用來填充一塊區(qū)域。簡單畫刷、位圖畫刷、透明畫刷,程序代碼如下:void CDrawView:OnLButtonUp(UINT nFlags, CPoint point) /創(chuàng)建一個紅色畫刷CBrush brush(RGB(255,0,0);/創(chuàng)建并獲得設(shè)備描述表CClientDC dc(this);/利用紅色畫刷填充鼠標(biāo)拖曳過程中形成的矩形區(qū)域dc.FillRect(CRect(m_ptOrigin,point),&brush);/創(chuàng)建位圖對象CBitmap bitmap;/加載位圖資源bitmap.LoadBitmap(IDB_BITMAP1);/創(chuàng)建位圖畫刷CBrush bru
19、sh(&bitmap);/創(chuàng)建并獲得設(shè)備描述表CClientDC dc(this);/利用紅色畫刷填充鼠標(biāo)拖曳過程中形成的矩形區(qū)域dc.FillRect(CRect(m_ptOrigin,point),&brush);/創(chuàng)建并獲得設(shè)備描述表CClientDC dc(this);/創(chuàng)建一個空畫刷CBrush *pBrush = CBrush:FromHandle(HBRUSH)GetStockObject(NULL_BRUSH);/將空畫刷選入設(shè)備描述表CBrush *pOldBrush = dc.SelectObject(pBrush);/繪制一個矩形dc.Rectangle(
20、CRect(m_ptOrigin,point);/恢復(fù)先前的畫刷dc.SelectObject(pOldBrush);m_bDraw = FALSE;CView:OnLButtonUp(nFlags, point);在簡單畫刷程序中,首先創(chuàng)建一個紅色畫刷;接著創(chuàng)建設(shè)備描述表對象;然后調(diào)用設(shè)備描述表對象的成員函數(shù)FillRect,利用指定的畫刷填充一塊指定的矩形區(qū)域,而鼠標(biāo)拖動過程中的起點(diǎn)和終點(diǎn)就決定了需要填充的矩形區(qū)域,因此,代碼中通過CRect類利用鼠標(biāo)拖動的起點(diǎn)和終點(diǎn)構(gòu)造了這快矩形區(qū)域。CRect類提供了多個構(gòu)造函數(shù),這里使用的是下面這種構(gòu)造函數(shù),即通過指定矩形區(qū)域的左上角和右下角這兩個點(diǎn)
21、來構(gòu)造一塊矩形區(qū)域。CRect(POINT topLeft,POINT bottomRight);代碼中的CDC類的成員函數(shù)FillRect,該函數(shù)的功能是用指定的畫刷填充一個矩形。該函數(shù)將填充全部的矩形,包括上左邊界,但不填充右底邊界。FillRect函數(shù)的聲明如下:void FillRect (LPCRECT lpRect,CBrush* pBrush);該函數(shù)有兩個參數(shù),lpRect是指向一個RECT結(jié)構(gòu)體或CRect對象的指針,該結(jié)構(gòu)體或?qū)ο笾邪艘畛涞木匦蔚倪壿嬜鴺?biāo)。pBrush是指向用于填充矩形的畫刷對象的指針。在位圖畫刷程序中,CBrush類有下面這樣一種構(gòu)造函數(shù)。CBrus
22、h (CBitmap* pBitmap);該構(gòu)造函數(shù)要求一個CBitmap類型的指針,CBitmap類是位圖類,于是我們就會這樣想:利用這個構(gòu)造函數(shù)是否就可以創(chuàng)建一個位圖畫刷呢?事實(shí)確實(shí)如此。創(chuàng)建CBitmap對象時,僅調(diào)用其構(gòu)造函數(shù)并不能得到一個有用的位圖對象,還需要調(diào)用一個初始化函數(shù)來初始化這個位圖對象。CBitmap類提供了多個初始化函數(shù),例如,LoadBitmap、CreateBitmap、BitmapIndirect等。這里用LoadBitmap函數(shù)來加載一副位圖,該函數(shù)的聲明如下:BOOL LoadBitmap (LPCTSTR lpszResourceName);BOOL Loa
23、dBitmap (UINT nIDResource);其中第二種聲明需要一個資源ID作為參數(shù)。首先給程序增加一個位圖資源。為一個工程創(chuàng)建資源有多種實(shí)現(xiàn)方法,其中一種方法可以利用【Insert】菜單下的【Resource】命令,在彈出的對話框中選擇Bitmap資源類型,單擊【New】按鈕,即可創(chuàng)建一個默認(rèn)名稱為IDB_BITMAP1的位圖資源,并在VC+集成開發(fā)環(huán)境右邊的代碼編輯區(qū)中打開位圖編輯器??梢岳镁庉嬈饔疫叺恼{(diào)色板和繪圖工具來編輯位圖資源,還可以通過拉伸位圖編輯器中網(wǎng)格周圍的藍(lán)色方點(diǎn)來調(diào)整位圖的大小。在透明畫刷程序中,我們利用GetStockObject這個函數(shù)來獲取一個黑色或白色的畫
24、刷句柄。這個函數(shù)是否能夠獲得一個透明畫刷句柄呢?從MSND提供的幫助信息中,可以看到該函數(shù)的參數(shù)取值之一可以是NULL_BRUSH,以獲取一個空畫刷。那么,這個空畫刷是否就是我們所需要的透明畫刷呢?結(jié)論是正確的。但這時存在一個問題,我們獲取的是句柄,而在進(jìn)行繪制操作時需要的是一個畫刷對象。如何從畫刷句柄轉(zhuǎn)換為畫刷對象呢?CBrush類提供了一個FromHandle函數(shù)來實(shí)現(xiàn)這樣的功能。該函數(shù)的聲明如下:Static CDC* PASCAL FromHandle(HDC hDC);3.4設(shè)置對話框(韓偉 肖越)為程序添加一個設(shè)置對話框,允許用戶指定畫筆的類型、線寬,并讓隨后的繪圖操作就使用用戶指
25、定的新設(shè)置值來進(jìn)行繪制。為了實(shí)現(xiàn)這一功能,首先需要為程序添加一個對話框資源,并按下表修改屬性。屬性值IDIDD_DLG_SETTINGCaptionSettingFont宋體設(shè)置線型、線寬對話框的代碼如下:void CGraphicView:OnSetting() /TODO: Add your command handler code hereCSettingDlg dlg;dlg.m_nLineWidth=m_nLineWidth; dlg.m_nLineStyle=m_nLineStyle;if(IDOK=dlg.DoModal()m_nLineWidth=dlg.m_nLineWidt
26、h; m_nLineStyle=dlg.m_nLineStyle;3.5顏色(韓偉 肖越)顏色對話框看起來比較復(fù)雜。實(shí)際上,MFC為我們提供了一個類:CColorDialog,可以很方便的創(chuàng)建這樣的一個顏色對話框。void CGraphicView:OnColor() / TODO: Add your command handler code here CColorDialog dlg;dlg.m_cc.Flags |=CC_RGBINIT | CC_FULLOPEN; dlg.m_cc.rgbResult=m_clr;if(IDOK=dlg.DoModal()m_clr=dlg.m_cc.r
27、gbResult;3.6打開與保存void CGraphicView:OnFileOpen() / TODO: Add your command handler code hereHMETAFILE hmetaFile;hmetaFile=GetMetaFile("meta.wmf");m_dcMetaFile.PlayMetaFile(hmetaFile);DeleteMetaFile(hmetaFile);Invalidate();void CGraphicView:OnFileSave() / TODO: Add your command handler code h
28、ere HMETAFILE hmetaFile;hmetaFile=m_dcMetaFile.Close();CopyMetaFile(hmetaFile,"meta.wmf");m_dcMetaFile.Create();DeleteMetaFile(hmetaFile);4運(yùn)行結(jié)果運(yùn)行結(jié)果如圖7、8、9圖7圖8圖9結(jié)論其實(shí)學(xué)任何一種語言都是一樣的。需要勤奮+毅力+運(yùn)氣=成功,這是我認(rèn)為的一個公式。這里毅力和勤奮是個人因素,而運(yùn)氣這是先天的。如果以前沒有接觸過編程語言的話,在接觸VC前我建議你先學(xué)習(xí)一些基礎(chǔ)語言,比如C等都是一些比較好學(xué)的基礎(chǔ)語言,我當(dāng)初就是從C語言過度學(xué)
29、VC的。學(xué)基礎(chǔ)語言的目的是學(xué)習(xí)語法結(jié)構(gòu)和如何編寫概念,只有你理解和掌握了這些編程用的工具才能學(xué)習(xí)高級語言。這些基礎(chǔ)語言中我建議大家學(xué)C語言,其實(shí)VC就是C+也就是C語言的"兒子","父親"學(xué)習(xí)起來比較容易上手,但遇到類似WINDOWS的程序的時候比較固執(zhí)不容易溝通,在這種條件下才有了"兒子","兒子"比較開朗應(yīng)變能力強(qiáng),但是就因?yàn)樗@些優(yōu)點(diǎn)才使初學(xué)者難以掌握。 VC是C+語言,是一種面向?qū)ο蟮木幊陶Z言。他于基礎(chǔ)語言不同點(diǎn)在于,基礎(chǔ)語言是一條路走到底的(中斷技術(shù)除外),而面向?qū)ο笫堑却愕闹噶畈磐伦?,是被動的編程語言。這點(diǎn)是學(xué)習(xí)VC前必須扭轉(zhuǎn)的概念。通過這次學(xué)年設(shè)計,我了解vc+是Window
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育熱點(diǎn)問題課件
- 教育政策宣講課件
- 【廣安】2025年四川廣安市考試招聘事業(yè)單位工作人員235人筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 語音音標(biāo)教學(xué)課件
- 題型4 函數(shù)圖像型計算-備戰(zhàn)2020年中考化學(xué)計算題型特訓(xùn)(原卷版)
- 早教親子活動策劃方案
- 教育活動與教學(xué)活動方案
- 明星合影活動方案
- 日常搞笑活動方案
- 春節(jié)云活動策劃方案
- 菌毒種及其樣本的管理
- 【MOOC】探秘移動通信-重慶電子工程職業(yè)學(xué)院 中國大學(xué)慕課MOOC答案
- 【五年級】語文上冊課課練
- 2020年棗莊市滕州市事業(yè)單位教師招聘考試《教育基礎(chǔ)知識》真題庫及答案解析
- 心源性暈厥課件
- DB41 2556-2023 生活垃圾焚燒大氣污染物排放標(biāo)準(zhǔn)
- 地黃種植培訓(xùn)課件
- DB11∕T 2000-2022 建筑工程消防施工質(zhì)量驗(yàn)收規(guī)范
- 《精細(xì)化工反應(yīng)安全風(fēng)險評估規(guī)范》知識培訓(xùn)
- 形勢與政策(一)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 2024-2030年中國工業(yè)軟管總成行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
評論
0/150
提交評論