版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
實(shí)驗(yàn)一直線與圓的繪制
(一)實(shí)驗(yàn)?zāi)康?/p>
掌握用Besenham法編程實(shí)現(xiàn)直線和圓的繪制。會(huì)編程繪制虛線、點(diǎn)劃線和具
有一定寬度的直線。
(二)實(shí)驗(yàn)內(nèi)容
用實(shí)現(xiàn)直線和圓的繪制
基本規(guī)定:
(1)數(shù)據(jù)輸入項(xiàng)為:直線的起點(diǎn)與終點(diǎn)坐標(biāo),圓心坐標(biāo)與半徑
(2)直線與圓輸出在中
附加規(guī)定:
(1)通過用戶輸入可改變直線的線型(實(shí)線、虛線與點(diǎn)劃線)
(2)通過用戶輸入可改變直線的線寬(用方刷子解決)
(3)通過用戶輸入可改變直線和圓的顏色
(三)實(shí)驗(yàn)所用儀表及設(shè)備
使用實(shí)驗(yàn)室提供的PC機(jī)。使用VisualC++編程。
(四)實(shí)驗(yàn)環(huán)節(jié)
1.設(shè)計(jì)思緒
1)設(shè)計(jì)對話框類
2)設(shè)計(jì)菜單
3)設(shè)計(jì)CMydrawView類
數(shù)據(jù)成員
protected:
doublex0,y0,x1,yl,R;〃直線始點(diǎn)與終點(diǎn)、圓的半
徑
intcx,cy;//圓的坐標(biāo);
成員函數(shù)
voidMybline();//直線中點(diǎn)Bresenham函數(shù)
voidCirclePoint(doublex,doubley);/〃l分子畫圓子
函數(shù)
voidMbcircle();〃圓中點(diǎn)Bresenham函數(shù)
4)程序代碼
voidCMydrawView::Mybline()//中點(diǎn)Bresenham函數(shù)
(
SCCIientDCdc(this);
(3COLORREFrgb=RGB(0,255,0);//定義直線顏色為藍(lán)色
0doubIex,y,d,k,t:
x=x0;y=y0;
0
if(abs(xl-xO)<le-6)
(
if(yl<yO)
(
0t=y0;yO=yl;y1=t;
00)
0for(x=x0,y=y0;y<=y1;y++)
0de.SetPixel(ROUND(x),ROUND(y),rgb);
else
{
0k=(yl-yO)/(xl-x0);d=0.5-k;
if(k>1)
00Sif(y1<y0)
St=yO;y0=y1;yl=t;
S00t=x0;x0=xl;x1=t:
m}
00d=l-0.5*k;
目for(x=xO/y=y0;y<=y1;y++)
00de.SetPixel(ROUND(x),ROUND(y),rgb);
團(tuán)if(d>=O)
a0{
00X++;
0013d+=1—k;0
00}
13else
0{
0d+=1;
000}
S)
)
raf(0<=k&&k<=l)
喇
醛if(xO>xl)
0{
但00t=xO;x0=x1;xl=t;
團(tuán)t=yO;y0=y1;yl=t;
TO}
Sd=0.5-k;
03Sfor(x=x0,y=yO;x<xl;x++)
SS(
dc.SetPixelfROUND(x),ROUND(y),rgb);
B0
0if(d<0)
0{
0y++;
國團(tuán)d+=1—k;
00)
03團(tuán)else
d-=k;
000)
團(tuán))
函if(k>=-l&&k<0)
朗
團(tuán)團(tuán)if(x0>xl)
000t=xO;xO=x1;xl=t;
勵(lì)團(tuán)t=yO;y0=y1;y1=t;
0)
0d=-O.5-k;
00for(x=x0zy=yO;x<xl;x++)
喇
團(tuán)團(tuán);
dc.SetPixel(ROUND(x),ROUND(y)zrgb)
00(3if(d>0)
00{
團(tuán)y-;
0d—=l-k;
m)
由else
E0d-=-k;
000}
)
if(k<-l)
明
團(tuán)if(yO<y1)
000{
團(tuán)隨t=y0;yO=yl;yl=t;
0t=x0;xO=xl;xl=t;
}
000d=-1-0.5—k;
團(tuán)for(x=x0,y=y0;y>yl;y--)
m(
0dc.SetPixel(ROUND(x),ROUND(y),rgb);
函if(d<0)
0圖{
團(tuán)團(tuán)x++;
0003d-=l+k;
團(tuán))
團(tuán)00eIse
目函d-=1;
0}
回}
)
)
voidCMydrawView::OnMenuitem32772()〃直線菜單函數(shù)
(
//TODO:Addyourcommandhandlercodehere
InputDIgdig;
if(dlg.DoModal()==IDOK)
0{
團(tuán)x0=dlg.m_x0;
xl=dlg.m_x1;
國y0=d1g.m_y0;
0yl=dlg.m_yl;
0)
AfxGetMainWnd()->SetWindowText("基本圖形掃描轉(zhuǎn)換:Mybline");
//RedrawWindow();
0Mybline();
voidCMydrawView::Mbcirc1e()〃圓中點(diǎn)Bresenham函數(shù)
(
0doub1ex,y,d;
d=l.25—R;x=0;y=R;
0for(x=O;x<y;x++)
(
但Circ1ePoint(x,y);
團(tuán)if(d<0)
圖d+=2*x+3;
Seise
回{
0d+=2*(x—y)+5;
y-;
}
01
)
voidCMydrawView::CircIePoint(doub1ex,doubley)〃八分子畫圓函數(shù)
(
CCIientDCdc(this);
COLORREFrgb=RGB(0,0,255);
Sdc.SetPixel(ROUND(x)+cx,ROUND(y)+cy,rgb);
dc.SetPixe1(ROUND(y)+cx,ROUND(x)+cy,rgb);
dc.SetPixel(-ROUND(y)+cxzROUND(x)+cy,rgb);
Sdc.SetPixe1(ROUNDfx)+cx,-ROUND(y)+cy,rgb);
0dc.SetPixel(-ROUND(x)+cxROUND(y)+cy,rgb);
dc.SetPixel(-ROUND(y)+cx,-ROUND(x)+cy,rgb);
dc.SetPixe1(ROUND(y)+cx,—ROUND(x)+cy,rgb);
dc.SetPixe1(—ROUND(x)+cx,ROUND(y)+cyjgb);
)
voidCMydrawView::OnMENUITEMCircle()//圓菜單函數(shù)
(
//TODO:Addyourcommandhandlercodehere
circleDIgdig;
0if(dlg.DoModal()==lDOK)
0{
R=dIg.m_r;
0cx=dlg.m_ex;
cy=dlg.m_cy;
)
AfxGetMainWnd()->SetWindowText("基本圖形掃描轉(zhuǎn)換:Mbcirc1e");
Mbcircle();
)
voidCMydrawView::OnMENUITEMclear()〃清屏菜單函數(shù)
{
//TODO:Addyourcommandhand1ercodehere
SRedrawWindow();
}
5)運(yùn)營結(jié)果
直線:
(五)思考題
如何修改程序使其適合于當(dāng)直線斜率大于一或小于零時(shí)的情況?
答:分組討論大于一和小于零的情況,分別計(jì)算機(jī)d的值,程序如下:
if(k>1)
。{oif(yl<yO)
a{<>t=yO;y0=y1;y1=t;
”=xO;xO=xl;x1=t?}
d=1-0.5*k;
。for(x=xO,y=yO;y<=y1;y++)
。(vdc.SetPixel(R0UND(x),ROUND(y),rgb);
。if(d>=0)
{flx++;
。。d+=l-k??}
gelse
2{d+=1;0Jo)?)
if(k>=-l&&k<0)
。{if(x0>x1)
Ofijot=x0:xO=x1:xl=t;
qt=y0;y0=yl;yl=t;}
gd=-0.5-k:
。ofor(x=x0,y=y0;x<xl;x++)
{?dc.SetPixel(ROUND(x),ROUND(y),rgb);
if(d>0)
。。o(j-=1-k;)
。。else
°°d-=-k;。})
“f(kv-1)
。。{if(y0<yl)
。。{t=y0;y0=yl;yl=t;
。t=x0;x0=xl;xl=t)
。d=-l-0.5-k;
。for(x=x0,y=y0;y>i:y—)
。皿。dc.SetPixel(ROUND(x),ROUND(y),rgb);
。。if(d<0)
。。{x++;
。ad-=l+k;o)
。else
00d-=1;o}。}
實(shí)驗(yàn)二圖形的裁剪
一、實(shí)驗(yàn)?zāi)康?/p>
掌握用編碼法裁剪二維線段及逐邊裁剪算法裁剪多邊形的編程方法,并實(shí)現(xiàn)之。
二、實(shí)驗(yàn)內(nèi)容'
用編碼法裁剪二維線段用逐邊裁剪算法裁剪多邊形
基本規(guī)定:(1)數(shù)據(jù)輸入項(xiàng)為:裁剪窗口四條邊坐標(biāo)
對于編碼法裁剪二維線段要輸入線段的起點(diǎn)與終點(diǎn)x,y坐標(biāo)。
對于逐邊裁剪算法裁剪多邊形要輸入多邊形的頂點(diǎn)數(shù)及各頂
點(diǎn)x,y坐標(biāo)。
(2)裁剪前與裁剪后的結(jié)果輸出在活動(dòng)窗口中。
附加規(guī)定:對于裁剪多邊形可由用戶控制裁剪的邊逐邊裁剪。
三、實(shí)驗(yàn)所用儀表及設(shè)備
使用實(shí)驗(yàn)室提供的PC機(jī)。使用VisualC++編程。
四、實(shí)驗(yàn)環(huán)節(jié)
1.編碼法裁剪二維線段
己知線段端點(diǎn)的區(qū)域碼,就可以判斷直線與裁剪窗口之間的關(guān)系。
1001彳10
0001J
0010
01000110
(1)假如兩端點(diǎn)的編碼均為0000,直線在窗口內(nèi)。
(2)假如兩端點(diǎn)的編碼相與不為0000,表達(dá)直線在窗口外。
(3)否則對端點(diǎn)編碼,根據(jù)從右到左(或從左到右)順序判別編碼位是否為1,擬定與窗
口求交的邊界并求出交點(diǎn),裁剪線段,將交點(diǎn)作為直線的新端點(diǎn),反復(fù)以上(1)(2)環(huán)節(jié)。
例如上圖直線:
a.左端點(diǎn)1的編碼0101,右端點(diǎn)2的編碼1010o
b.符合(3),計(jì)算交點(diǎn)。
c.設(shè)從左端點(diǎn)開始,由于1號(hào)端點(diǎn)的編碼為0101,從左邊開始,第一位是1,所以與左
邊界有交點(diǎn),求交點(diǎn)3。
d.計(jì)算3號(hào)點(diǎn)的編碼為0000o
e.3號(hào)點(diǎn)與2號(hào)點(diǎn)的關(guān)系仍符合(3)。
f.由于3號(hào)點(diǎn)的編碼為0000,已在窗口內(nèi),再從右端2號(hào)點(diǎn)開始計(jì)算交點(diǎn),由于2號(hào)
端點(diǎn)的編碼為1010,從左邊開始,第二位是1,所以與右邊界有交點(diǎn),求交點(diǎn)4,其編
碼為1000。
g.3號(hào)點(diǎn)與4號(hào)點(diǎn)的關(guān)系仍符合(3)。
h.由于4號(hào)端點(diǎn)的編碼為1000,從左邊開始,第四位是1,所以與上邊界有交點(diǎn),求交
點(diǎn)5,其編碼為0000。
i.3號(hào)點(diǎn)與5號(hào)點(diǎn)的關(guān)系符合(1),結(jié)束。
Cohen-SutherLand裁剪算法偽程序如下:
#defineLEFT1//0001,左
#defineRIGHT2//0010,右
#defineBOTTOM4//0100,下
#defineTOP8//I000,上
//已知端點(diǎn)坐標(biāo)(x,y),求其所在區(qū)的編碼odeo
2.設(shè)計(jì)思緒
a)設(shè)計(jì)菜單函數(shù)
直線菜單函數(shù)
裁剪菜單函數(shù)
b)設(shè)計(jì)繪畫窗口
裝載位圖函數(shù)
定義畫筆繪制窗口
定義畫筆繪制直線
c)設(shè)計(jì)裁剪函數(shù)
d)設(shè)計(jì)端點(diǎn)編碼函數(shù)
3.程序主代碼
//MyCutView.cpp:imp1ementationoftheCMyCutViewclass
//
#include"stdafx.h"
#inc1ude"MyCut.h"
#include"MyCutDoc.h"
#inelude"MyCutView.h"
#defineROUND(a)int(a+0.5)
#ifdef_DEBUG
#definenewDEBUGNEW
#undcfTHIS_FILE
staticcharTHIS_HLE[]=_FILE_;
#endif
#defineLEFT1
#defineRIGHT2
#defineBOTTOM4
#defineTOP8
////////////////////////////////////////////////////III//////////////////////
//CMyCutView
IMPLEMENT.DYNCREATE(CMyCutView,CView)
BEGIN_MESSAGE_MAP(CMyCutView,CView)
//{(AFX_MSG_MAP(CMyCutView)
?ON_COMMAND(ID_MENUITEMdraw1ine,OnMENUITEMdraw1ine)
ON_COMMAND(ID_MENUITEMclip,OnMENUITEMclip)
ON_WM_LBUTTONDOWN()
ON_WM_MOUSEMOVE()
。//}}AFX_MSG_MAP
//Standardprintingcommands
ON_COMMAND(ID_FILE_PRINT,CView::OnFilePrint)
?ON_COMMAND(ID_FILE_PRINT_DIRECT,CView::OnFi1ePrint)
?ON_COMMAND(1D_FILE_PRINT_PREVIEW,CView::OnFilePrintPreview)
END_MESSAGE_MAP()
/////////////////////////////num/muim///////////////////////////////
//CMyCutViewconstruction/destruction
CMyCutView::CMyCutView()
(
//TOD0:addconstructioncodehere
wx1=200;wxr=850;wyb=200;wyt=450;
“n_attatch=FALSE;
m_i=0;
?m_draw=FALSE;
RC0=0;RCl=0;
)
CMyCutView::-CMyCutView()
{
)
OOLCMyCutView::PreCreateWindow(CREATESTRUCT&cs)
(
。//TODO:ModifytheWindowclassorstylesherebymodifying
“/theCREATESTRUCTcs
returnCView::PreCreateWindow(cs);
)
////Illi/〃/〃/〃/〃〃〃/〃/〃///〃/〃〃〃〃〃/〃/〃///////////////////HUH
//CMyCutViewdrawing
voidCMyCutView::OnDraw(CDC*pDC)
(
CMyCutDoc*pDoc=GetDocument();
?ASSERT_VALID(pDoc);
?!═OD0:adddrawcodefornativedatahere
//裝載位圖
oCRectRect;
GetC11611證(:1(&1^。0;〃獲得客戶區(qū)的大小
?>CBitmapBitmap,*pBitmap;
^Bitmap.LoadBitmap(IDB_BITMAP1);。
CDCMemDC;
oMemDC.CreateCompatibleDC(GetDC());
叩Bitmap=MemDC.Select0bject(&Bitmap):
MemDC.BitBlt(O,O,Rect.Width(),Rect.Height(),&Picture,0,0,SRCCOPY);。
MemDC.TextOut((wxl+wxr)/2,wyb-20J窗口)〃窗口標(biāo)題
。//繪制窗口和直線
CPenPen3,*pO1dPen3;//定義3個(gè)像素寬度的畫筆
?Pen3.CreatePen(PS_SOLID,3,RGB(0,0,0));
pOldPen3=MemDC.Se1ectObject(&Pen3);
?MemDC.MoveTo(wx1,wyt);MemDC.LineTo(wxr,wyt);
McmDC.LineTo(wxr,wyb);McmDC.LincTo(wxl,wyb);
oMemDC.LineTo(wxl,wyt);McmDC.Se1ec10bject(pO1dPen3);
Pen3.DeleteObject();
CPenPenl,*pOIdPenl;〃定義1個(gè)像素寬度的畫筆
oPenl.CreatePen(PS_SOLID,1,RGB(0,0,255));
pOldPenl=MemDC.SelectObject(&Pen1);
◎if(m_i>=1)
(
emDC.MoveTo(ROUND(Pointx[0]),ROUND(Pointy[0])):
ooMemDC.LineTo(ROUND(Pointx[1]),ROUND(Pointy[l]));。
)
oMemDC.Se1ectObject(pOldPen1);
Pen1.DeleteObject。;。
?CDC*dc=GetDC();
dc->BitBlt(0,0,Rect.Width。,Rect.Height(),&MemDC,0,0,SRCCOPY);
oMemDC.Selec(Object(pBitmap);
}
//////////////////////////////////////////////////〃/////〃/〃/〃/〃〃/////〃
//CMyCutViewprinting
BOOLCMyCutView::OnPreparePrinting(CPrintinfo*pInfo)
<>//defaultpreparation
rctumDoPreparePrinting(plnfo);
)
voidCMyCutView::OnBeginPrinting(CDC*/*pDC*/,CPrintlnfo*/*plnfo*/)
{
//TODO:addextrainitializationbeforeprinting
)
voidCMyCutView::OnEndPrinting(CDC*/*pDC*/,CPrintlnfo*/*plnfo*/)
{
//TODO:addcleanupafterprinting
)
///////////////III///////////////////////////Hllllllllllllllllllllll////////
//CMyCutViewdiagnostics
#ifdef_DEBUG
voidCMyCutView::AssertValid()const
(
?CView::AssertValid();
)
voidCMyCutView::Dump(CDumpContext&de)const
?CView::Dump(dc);
)
CMyCutDoc*CMyCutView::GetDocumcnt()//non-dcbugversionisin1ine
(
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMyCutDoc)));
?return(CMyCutDoc*)m_pDocument;
)
#endif//.DEBUG
111/1//〃/〃/〃〃//////////////IIHU//////////////////////////////〃////////
//CMyCutViewmessagehandlers
voidCMyCutView::OnMENUITEMdrawline()
(
//TODO:Addyourcommandhand1ercodehere
if(FALSE==m_attatch)
(
^Picture,CreateCompatib1eDC(GetDC());
oCBitmap*Bitmap,*pBitmap;
aBitmap=newCBitmap;
。//Bitmap—>LoadBitmap(IDB_BITMAPl);
8PBitmap=Picture.SelectObject(Bitinap);
?m_attatch=TRUE;
)
m_draw=TRUE;
?m_i=0;
olnvalidate(FALSE);
◎AfxGetMainWnd()->SetWindowText(MCohen-Sutherland直線裁剪算法");〃顯示標(biāo)題
oMessageBox("請使用鼠標(biāo)在屏幕上繪制直線,然后點(diǎn)擊裁剪按鈕進(jìn)行裁剪“,“提醒”,MB_OKCANC
EL);
。}
voidCMyCutView::OnMENUITEMclip()//裁剪菜單函數(shù)
(
?!═ODO:Addyourcommandhandlercodehere
Cut();
Inva1idate(FALSE);
I
voidCMyCutView::OnLButtonDown(UINTnFlags,CPointpoint)
(
“/TOD0:Addyourmessagehand1ercodehereand/orca1Idefau1t
0
Af(TRUE==m_draw)
if(m_i<2)
Pointx[m_i]=point.x;Pointy[m_i]=point.y;
。,m_i++;
°}
)
?CView::OnLButtonDown(nF1ags,point);
)
voidCMyCutView::OnMouseMove(UINTnFlags,CPointpoint)
{
//TODO:Addyourmessagehandlercodehereand/orca11default
if(TRUE==m_draw)
。if(m_i<2)
{
。Pointx[m_i]=point.x;Pointy[m_i]=point.y;
oginva1idate(FALSE);
力
)
^CView::OnMouseMove(nFlags,point);
voidCMyCutView::Cut()
BOOLChange;
?doub1ex,y;
oRC0=EnCode(Pointx[0],Pointy[0]);
RC1=EnCode(Pointx[l],Pointy[1]);
while(TRUE)
。{
。Change=FALSE;
if(0==(RCO|RC1))
。{〃簡取之
areturn;
00j
-elseif(0!=(RC0&RC1))
{〃簡棄之
return;
)
eIse
if(O==RC0)//假如PO點(diǎn)在窗口內(nèi),互換PO和Pl,保證pO點(diǎn)在窗口外
〃互換點(diǎn)的坐標(biāo)值
。doubleTPointx,TPointy;
?TPointx=Pointx[0];TPointy=Pointy[0];
。oPointx[0]=Pointx[l];Pointy[0]=Pointy[1];
wPointx[l]=TPointx:Pointy[l]=TPointy;
。。。//互換點(diǎn)的編碼值
。unsignedintTRC;
。TRC=RC0;RCO=RC1;RC1=TRC;
O0)
。〃按左、右、下、上的順序裁剪
gif(RC0&LEFT)〃P0點(diǎn)位于窗口的左側(cè)
0?(
8x=wx1;〃求交點(diǎn)y
。y=Pointy[O]+(Pointy[l]-Pointy[0])*(x-Pointx[0])/(Pointx[1]-Pointx[0]);
。ePointx[0]=x;Pointy[O]=y;
。Change=TRUE;
?ORC0=EnCode(Pointx[0],Pointy[0]);RCl=EnCode(Pointx[1],Pointy[1]);
0}g
-if(RC0&RIGHT)//PO點(diǎn)位于窗口的右側(cè)
ggx=wxr;〃求交點(diǎn)y
。。y=Pointy[0]+(Pointy[1]-Pointy[0])*(x-Pointx[0])/(Pointx[l]-Pointx[0]);
ePointx[0]=x;Pointy[0]=y;
。。Change=TRUE;
oRC0=EnCode(Pointx[0],Pointy[01);RC1=EnCode(Pointx[1],Pointy[1]);
j8
。oif(RCO&BOTTOM)〃P0點(diǎn)位于窗口的下側(cè)
0(
8oy=wyb:〃求交點(diǎn)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度教育信息化設(shè)備承包租賃協(xié)議3篇
- 二零二五年度水產(chǎn)養(yǎng)殖產(chǎn)業(yè)可持續(xù)發(fā)展戰(zhàn)略合作協(xié)議合同3篇
- 2025年度文化旅游創(chuàng)意園區(qū)委托經(jīng)營管理與合作合同3篇
- 2025年度農(nóng)村土地承包權(quán)生態(tài)補(bǔ)償與保護(hù)合同
- 二零二五年度房地產(chǎn)公司兼職正式聘用銷售合同3篇
- 二零二五年度新型城鎮(zhèn)化拆遷房產(chǎn)分割與生態(tài)補(bǔ)償合同3篇
- 2025年度競業(yè)禁止機(jī)械租賃及設(shè)備維護(hù)保養(yǎng)合同3篇
- 二零二五年度特色養(yǎng)殖養(yǎng)雞場地租賃及農(nóng)業(yè)旅游合同3篇
- 二零二五年度智能穿戴設(shè)備出口業(yè)務(wù)合同范本3篇
- 2025年度農(nóng)村電商農(nóng)副產(chǎn)品批發(fā)合作框架協(xié)議3篇
- 煤泥綜合利用的可行性研究報(bào)告
- 四川省自貢市2022-2023學(xué)年八年級上學(xué)期期末語文試題
- 變曲率雙向可調(diào)收縫式翻升模板施工工法
- 教你炒紅爐火版00纏論大概
- 消防管道施工合同
- 大學(xué)生計(jì)算與信息化素養(yǎng)-北京林業(yè)大學(xué)中國大學(xué)mooc課后章節(jié)答案期末考試題庫2023年
- 2023年中國社會(huì)科學(xué)院外國文學(xué)研究所專業(yè)技術(shù)人員招聘3人(共500題含答案解析)筆試歷年難、易錯(cuò)考點(diǎn)試題含答案附詳解
- 2023年國開大學(xué)期末考復(fù)習(xí)題-3987《Web開發(fā)基礎(chǔ)》
- 《駱駝祥子》1-24章每章練習(xí)題及答案
- 《伊利乳業(yè)集團(tuán)盈利能力研究》文獻(xiàn)綜述3000字
- 減鹽防控高血壓培訓(xùn)課件
評論
0/150
提交評論