




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 華科學院計算機科學與技術(shù)系 軟件工程課程設(shè)計報告 -俄羅斯方塊游戲 (2011/2012學年 第一學期) 學生姓名: 專業(yè)班級: 信息管理102202h 學生學號: 指導教師: 2011年12月30日 目錄第一章 系統(tǒng)概述1 . 1 課程設(shè)計的目的和要求-11 . 2 課程設(shè)計任務內(nèi)容-11 . 3 關(guān)于編譯軟件-1第二章 詳細設(shè)計說明-22 . 1 程序設(shè)計-2 2 .1 .1 主要功能設(shè)計-2 2 .1 .2 程序流程圖-22 . 2 參數(shù)說明-3 2 .2 .1 類設(shè)計聲明(view類)-3 2 .2 .2 類設(shè)計聲明(squar類)-42 . 3 函數(shù)功能說明-5 2 .3 .1 游
2、戲界面-5 2 .3 .2 生成方塊-5 2 .3 .3 方塊變形-6 2 .3 .4 方塊顯示-6 2 .3 .5 障礙判斷-7 2 .3 .6 消行計分-7 2 .3 .7 暫停退出-72 . 4 程序調(diào)試-92 . 5 軟件使用說明-9第三章 心得與體會-10附錄1-11附錄2-11 第一章 系統(tǒng)概述1.1課程設(shè)計的目的和要求 俄羅斯是家喻戶曉的益智小游戲,選擇這個題目一是為了將自己的所學知識加以運用,二是俄羅斯方塊是我第一個接觸到的游戲,它的實現(xiàn)方法也吸引著我。我希望通過探索實踐去實現(xiàn)它,在這次學習中從實踐和實際的項目中提高自己的編程能力。因此我選定了這個題目。c+課程所學的概念、理論
3、和方法,按照c+程序設(shè)計的基本步驟,設(shè)計出一個適當規(guī)模的程序來實現(xiàn)設(shè)計課程內(nèi)容中的全部功能;設(shè)計主控模塊程序?qū)o出的程序源代碼要給出各部分的詳細注釋自己根據(jù)能力及需要添加相應功能模塊,增強模擬系統(tǒng)功能。1.2課程設(shè)計任務內(nèi)容利用microsoft visual c+編寫一個文本窗口下的俄羅斯方塊游戲。要求:(1)利用類和多文件編寫。(2)能夠記錄游戲得分和等級。(3)可暫停/繼續(xù)游戲,使玩家在不愿游戲時退出。(4)信息提示時顯示顏色變化。1.3關(guān)于編譯軟件本程序采用microsoft visual c+6.0的英文版本進行編譯。visualc+6.0是microsoft公司推出的基于windo
4、ws操作系統(tǒng)的可視化c+編程工具,盡管microsoft公司推出了.net平臺的集成開發(fā)環(huán)境,但由于其良好的界面和可操作性,加上支持標準c/c+規(guī)范,但仍有相當多的編程人員使用visualc+6.0進行應用系統(tǒng)的開發(fā)。關(guān)于穩(wěn)定性,經(jīng)測試,本程序可以在windows操作系統(tǒng)中穩(wěn)定運行,較為穩(wěn)定。 第二章 詳細設(shè)計說明2.1程序設(shè)計2.1.1主要功能設(shè)計根據(jù)分析,俄羅斯方塊這個程序一共要實現(xiàn)如下幾個功能,開始游戲、游戲的暫停繼續(xù)、游戲控制和退出游戲。其中游戲控制最為主要和重要,它控制著整個游戲的畫面和有關(guān)數(shù)據(jù)的操作,是游戲的核心部分。暫停和退出功能做成一體,在退出的提示下不做任何操作即可實現(xiàn)暫停的
5、功能。程序結(jié)構(gòu)如圖2.1所示。 圖2.1 2.1.2 程序流程圖根據(jù)分析后的程序結(jié)構(gòu)圖設(shè)計出相應的流程圖。俄羅斯方塊的內(nèi)容主要包括游戲開始,畫背景和邊框,顯示分數(shù)等級和下一個方塊的預覽圖;根據(jù)速度沒隔一定時間方塊自動下落,當有按鍵操作時,根據(jù)相應按鍵執(zhí)行動作,每次動作前要判斷是否動作可以執(zhí)行。下落方塊滿一行時,消去該行,根據(jù)消去行數(shù)得到相應分數(shù)。分數(shù)達到一定程度,等級提升,速度加快。同時可以響應esc按鍵,提示是否退出程序。如圖2.2所示。 圖2.2 2.2參數(shù)說明根據(jù)程序的結(jié)構(gòu),將俄羅斯方塊需要實現(xiàn)的功能細化為相應的類成員函數(shù)。程序有兩個類,一個view類,用于背景相關(guān)操作。一個squar類
6、,用于方塊相關(guān)操作。2.2.1類設(shè)計聲明(view類)class viewpublic:view();/類的缺省構(gòu)造函數(shù)int getbgdata(int,int);/取得數(shù)組x,y點的數(shù)據(jù)值void scoreadd(int);/得分增加,根據(jù)消去行數(shù)void scorereset();/得分清零,用于升級后void levelup();/等級提升,當分數(shù)達到規(guī)定值后執(zhí)行int gameover();/游戲結(jié)束void rowdelete();/消除滿行void previewset(int (*p)4);/設(shè)置預覽方塊的形狀數(shù)據(jù)void previewreset();/預覽方塊數(shù)據(jù)清零vo
7、id setdata(int (*)2);/設(shè)置主游戲區(qū)數(shù)據(jù)值void datareset();/主游戲區(qū)數(shù)據(jù)清零void drawpreview();/顯示預覽方塊private:int data2526;/主游戲區(qū)數(shù)組int preview44;/預覽方塊數(shù)組int rowsdelete;/每次消除行數(shù)變量int score;/得分變量int scorelevel;/升級規(guī)定值變量int level;/等級變量bool overflag;/結(jié)束標記變量void scorelevelup();/升級規(guī)定值提升;2.2.2類設(shè)計聲明(squar類)class view;/先向引用聲明class
8、 squarpublic:squar();/類的缺省構(gòu)造函數(shù)squar(squar &);/拷貝構(gòu)造函數(shù)friend void cursor(int,int);/友元函數(shù) 控制光標位置void getcursor(int &,int &);/取得位置記錄坐標void make();/隨機產(chǎn)生一個方塊void getmake(int (*p)4);/取得方塊數(shù)據(jù)值void draw();/顯示主方塊void drop(view &);/方塊下落void change();/方塊變形int meet(int);/判斷方塊周圍是否有障礙void torecord(int (*)2);/傳送需要記錄的
9、數(shù)據(jù)void reset();/方塊數(shù)組清零int moveflag;/方塊運動標記變量private:void move();/方塊運動int shape44;/方塊形狀數(shù)據(jù)int x,y;/坐標int shapeindex;/方塊形狀序號int changeindex;/變形序號變量int speed;/下落速度變量;2.3函數(shù)功能說明2.3.1游戲界面俄羅斯方塊的游戲界面包括游戲區(qū)域邊框、下落方塊繪制、右部計分和預覽圖顯示等。游戲區(qū)域邊框的繪制比較簡單,循環(huán)中確定光標的位置輸出特定字符,即可完成邊框繪制。游戲區(qū)方塊的繪制,循環(huán)從數(shù)據(jù)數(shù)組中依次讀出數(shù)據(jù),根據(jù)讀到的數(shù)據(jù)顯示“”,最后組成方塊
10、的形狀,完成方塊的繪制。計分和預覽圖部分先畫出一個矩形區(qū)域,然后控制光標在其中顯示分數(shù)、等級、預覽圖和提示信息。2.3.2生成方塊本程序中生成的方塊有六種形狀,每一種方塊以shapeindex標記,在程序運行生成方塊時,調(diào)用shapeindex=rand()%5+1;語句,確定當前要顯示的是哪一個方塊形狀。而在實際運行中,第一次需要調(diào)用兩次生成方塊函數(shù)make(),將先產(chǎn)生的賦給游戲當前方塊,第二個賦給預覽圖方塊。以后每次產(chǎn)生一個方塊,把預覽方塊賦給當前方塊,把新產(chǎn)生的賦給預覽方塊。具體如圖2.3所示。 圖方塊變形俄羅斯方塊的特點就在于通過方塊的變形拼滿整行來消去該行方塊從而使
11、游戲可以繼續(xù)下去,很難想象不能變形的俄羅斯方塊是什么樣子。而變形的過程就是根據(jù)當前方塊形狀改變方塊的相對位置,這樣就可以改變方塊的形狀了。在程序中每當按下up鍵,程序判斷可以變形后,根據(jù)當前方塊的形狀序號shapeindex和變化形狀序號changeindex調(diào)用相應的方塊數(shù)值賦給draw()函數(shù),通過刷新重畫就可以顯示變化后的方塊了。具體形狀變化如圖2.4所示。2.3.4方塊顯示 以上方塊的操作都是數(shù)據(jù)層面的操作,而真正要在游戲窗口中看到數(shù)據(jù)的變化,還必須把方塊不斷的繪制出來。這就是draw()函數(shù)的作用。把當前運動的方塊對應節(jié)點存儲在一個4*4數(shù)組里,變形和生成方塊的過程就是更新該數(shù)組數(shù)據(jù)
12、的過程。然后在draw()函數(shù)里檢測數(shù)組的各個值,并控制光標跳到一定位置,畫出“”組成方塊。具體方塊對應數(shù)組數(shù)值關(guān)系如圖2.5所示。 圖障礙判斷障礙判斷,就是在方塊運動中或者變形中判斷周圍是否有障礙阻礙下落、移位、變形。當方塊下落遇到下面有方塊或者到達下邊界則應停止下落并記錄數(shù)據(jù),存入背景數(shù)據(jù)數(shù)組。變形時應判斷這個變形是否可以進行,如果有障礙則不能變形。例如當方塊達到右邊界,而若變形則會越過邊界,那么這個變形的命令是不應執(zhí)行的。所有這些判斷都由meet()函數(shù)進行,根據(jù)是否有障礙返回1或0,再由其他函數(shù)接收執(zhí)行相應操作。2.3.6消行計分游戲玩家拼滿一行后,程序消去滿行,并計分
13、。中當一個方塊下落停止后,程序檢查方塊是否充滿了游戲區(qū)域,如果是結(jié)束游戲。不是,則判斷是否構(gòu)成消行條件,從下落方塊的最低點依次向上檢查是否可以消行,根據(jù)消去行數(shù)分數(shù)增加。分數(shù)達到一定程度,等級提升,速度加快。如圖2.6所示。2.3.7暫停退出游戲的友好性在于能考慮用戶的需要,隨時可以暫停/繼續(xù)游戲,在不愿繼續(xù)游戲時退出游戲。本程序可以在用戶需要的時候響應esc按鍵,提示是否退出游戲,如果不做選擇即可暫停游戲,等待選擇。界面如圖2.7所示。 圖2.5 圖2.6 圖2.72.4 程序調(diào)試經(jīng)過調(diào)試和修改,程序完全實現(xiàn)設(shè)計要求,成功模擬了俄羅斯方塊的運行過程和游戲效果,只是界面略微簡陋,但已從程序?qū)用?/p>
14、上實現(xiàn)了游戲,達到了這次實訓的要求和目的。程序正常生成方塊,根據(jù)速度值每隔一定時間自動下落,如有操作按鍵按下,根據(jù)按鍵實現(xiàn)位移和變形。當方塊滿一行后,可以消除該行,同時記錄分數(shù)和等級。按下esc鍵紅色提示信息正常顯示,可以響應y,n鍵決定是否退出游戲。2.5 軟件使用說明 打開俄羅斯方塊游戲后,通過控制方向區(qū)域的“上”、“下”、“左”、“右”來控制,“上”鍵代表變形轉(zhuǎn)換,“下”、“左”、“右”均代表方向鍵,而“空格”代表“沉底”,也可以通過“w”、“s”、“a”、“d”來控制方向;“esc”代表退出游戲鍵。若想暫停游戲,也可通過“esc”鍵,當初來詢問框是,可不做選擇,則可達到暫停的效果。 第
15、三章 總結(jié)與體會通過這次課程設(shè)計,我收獲了很多。首先把所學知識加以利用和鞏固,其次在實踐中遇到問題去探索和學習,更增加了新知識。在程序設(shè)計編寫過程中兩個類的數(shù)據(jù)交換是個比較麻煩的過程,這個類的定義過程中要用到另一個類做參數(shù)類型,而在后一個類中亦需要第一個類做參數(shù)類型,出現(xiàn)了互相調(diào)用的情況。編譯提示未定義,只好在兩個類外定義函數(shù)負責兩個類函數(shù)的數(shù)據(jù)交換。實踐證明達到了預期的目的,積累了經(jīng)驗。由于程序是用文本窗口模擬的圖形,界面比較簡陋,如果使用mfc用c+來實現(xiàn),那么界面將會非常好,只是由于所學知識有限,只有下一步去探索了。通過這次的學習設(shè)計,我發(fā)現(xiàn)我還有許許多多的不足的地方,比如c+的程序設(shè)計
16、,源代碼的書寫等等,剛開始我發(fā)現(xiàn)我的問題后,十分緊張,感覺很絕望,沒有別人的幫助,自己動手設(shè)計曾經(jīng)自己想都沒想過的東西,雖然很興奮,但想想自己無從下手,原來的興奮勁一下子都沒了,很忙然。但是,通過與王老師的交流,經(jīng)過老師的耐心講解,我慢慢感到希望又重生了,于是我通過上網(wǎng)查找資料,進圖書館查找書籍等,終于知道了俄羅斯方塊游戲的設(shè)計概念,終于知道了設(shè)計的方法,于是,漸漸地我的游戲設(shè)計理念誕生了。通過幾個禮拜的設(shè)計,我的游戲漸漸初見成效了,當我把回車鍵摁下的一剎那,我十分激動,眼前的既熟悉又陌生的游戲出現(xiàn)在了我的面前,看著自己設(shè)計的童年時代經(jīng)常玩的游戲,我感慨萬千。通過這次設(shè)計,我學會了很多東西,例
17、如通過網(wǎng)絡資料來尋求幫助,自己改正錯誤,加強了我自己的自己動手能力,對今后的學習和生活有很大的幫助,有助于以后的課程設(shè)計順利完成。附錄1 參考文獻1段鋼 編著 加密與解密(第三版).電子工業(yè)出版社.2009年8月2趙樹升 趙韶平.windows信息安全原理與實現(xiàn).北京:清華大學出版社.2004年3楊永國.visual c+ 6.0實用教程.北京:清華大學出版社.2004年4唐俊明.visual c+ 6.0 編程實例與技巧.北京:高等教育出版,2002年5潘錦平.軟件系統(tǒng)開發(fā)技術(shù).西安:西安電子科技大學出版社, 1997年 附錄2 源程序代碼#include #include #include
18、 / 定義常量、枚舉量、結(jié)構(gòu)體、全局變量/#define width 10 / 游戲區(qū)寬度#define height 22 / 游戲區(qū)高度#define size 20 / 每個游戲區(qū)單位的實際像素/ 定義操作類型enum cmd cmd_rotate, / 方塊旋轉(zhuǎn) cmd_left, cmd_right, cmd_down, / 方塊左、右、下移動 cmd_sink, / 方塊沉底 cmd_quit / 退出游戲;/ 定義繪制方塊的方法enum draw show, / 顯示方塊 hide, / 隱藏方塊 fix / 固定方塊;/ 定義七種俄羅斯方塊struct block word d
19、ir4; / 方塊的四個旋轉(zhuǎn)狀態(tài) colorref color; / 方塊的顏色 g_blocks7 = 0x0f00, 0x4444, 0x0f00, 0x4444, red, / i 0x0660, 0x0660, 0x0660, 0x0660, blue, / 口 0x4460, 0x02e0, 0x0622, 0x0740, magenta, / l 0x2260, 0x0e20, 0x0644, 0x0470, yellow, / 反l 0x0c60, 0x2640, 0x0c60, 0x2640, cyan, / z 0x0360, 0x4620, 0x0360, 0x4620,
20、green, / 反z 0x4e00, 0x4c40, 0x0e40, 0x4640, brown; / t/ 定義當前方塊、下一個方塊的信息struct blockinfo byte id; / 方塊 id char x, y; / 方塊在游戲區(qū)中的坐標 byte dir:2; / 方向 g_curblock, g_nextblock;/ 定義游戲區(qū)byte g_worldwidthheight = 0;/ 函數(shù)聲明/void init(); / 初始化游戲void quit(); / 退出游戲void newgame(); / 開始新游戲void gameover(); / 結(jié)束游戲cmd
21、 getcmd(); / 獲取控制命令void dispatchcmd(cmd _cmd); / 分發(fā)控制命令void newblock(); / 生成新的方塊bool checkblock(blockinfo _block); / 檢測指定方塊是否可以放下void drawblock(blockinfo _block, draw _draw = show); / 畫方塊void onrotate(); / 旋轉(zhuǎn)方塊void onleft(); / 左移方塊void onright(); / 右移方塊void ondown(); / 下移方塊void onsink(); / 沉底方塊/ 函數(shù)定
22、義/ 主函數(shù)void main() init(); cmd c; while(true) c = getcmd(); dispatchcmd(c); / 按退出時,顯示對話框咨詢用戶是否退出 if (c = cmd_quit) hwnd wnd = gethwnd(); if (messagebox(wnd, _t(您要退出游戲嗎?), _t(提醒), mb_okcancel | mb_iconquestion) = idok) quit(); / 初始化游戲void init() initgraph(640, 480); srand(unsigned)time(null);/ 顯示操作說明
23、setfont(14, 0, _t(宋體); outtextxy(20, 330, _t(操作說明); outtextxy(20, 350, _t(上:旋轉(zhuǎn)); outtextxy(20, 370, _t(左:左移); outtextxy(20, 390, _t(右:右移); outtextxy(20, 410, _t(下:下移); outtextxy(20, 430, _t(空格:沉底); outtextxy(20, 450, _t(esc:退出); / 設(shè)置坐標原點 setorigin(220, 20);/ 繪制游戲區(qū)邊界 rectangle(-1, -1, width * size, h
24、eight * size); rectangle(width + 1) * size - 1, -1, (width + 5) * size, 4 * size); / 開始新游戲 newgame();/ 退出游戲void quit() closegraph(); exit(0);/ 開始新游戲void newgame() / 清空游戲區(qū) setfillstyle(black); bar(0, 0, width * size - 1, height * size - 1); zeromemory(g_world, width * height);/ 生成下一個方塊 g_nextblock.id
25、 = rand() % 7; g_nextblock.dir = rand() % 4; g_nextblock.x = width + 1; g_nextblock.y = height - 1;/ 獲取新方塊 newblock();/ 結(jié)束游戲void gameover() hwnd wnd = gethwnd(); if (messagebox(wnd, _t(游戲結(jié)束。n您想重新來一局嗎?), _t(游戲結(jié)束), mb_yesno | mb_iconquestion) = idyes) newgame(); else quit();/ 獲取控制命令dword m_oldtime;cmd
26、 getcmd() / 獲取控制值 while(true) / 如果超時,自動下落一格 dword newtime = gettickcount(); if (newtime - m_oldtime = 500) m_oldtime = newtime; return cmd_down; / 如果有按鍵,返回按鍵對應的功能 if (kbhit() switch(getch() case w: case w: return cmd_rotate; case a: case a: return cmd_left; case d: case d: return cmd_right; case s:
27、case s: return cmd_down; case 27: return cmd_quit; case : return cmd_sink; case 0: case 0xe0: switch(getch() case 72: return cmd_rotate; case 75: return cmd_left; case 77: return cmd_right; case 80: return cmd_down; / 延時 (降低 cpu 占用率) sleep(20); / 分發(fā)控制命令void dispatchcmd(cmd _cmd) switch(_cmd) case cm
28、d_rotate: onrotate(); break; case cmd_left: onleft(); break; case cmd_right: onright(); break; case cmd_down: ondown(); break; case cmd_sink: onsink(); break; case cmd_quit: break; / 生成新的方塊void newblock() g_curblock.id = g_nextblock.id, g_nextblock.id = rand() % 7; g_curblock.dir = g_nextblock.dir,
29、g_nextblock.dir = rand() % 4; g_curblock.x = (width - 4) / 2; g_curblock.y = height + 2; / 下移新方塊直到有局部顯示 word c = g_blocksg_curblock.id.dirg_curblock.dir; while(c & 0xf) = 0) g_curblock.y-; c = 4; / 繪制新方塊 drawblock(g_curblock);/ 繪制下一個方塊 setfillstyle(black); bar(width + 1) * size, 0, (width + 5) * siz
30、e - 1, 4 * size - 1); drawblock(g_nextblock);/ 設(shè)置計時器,用于判斷自動下落 m_oldtime = gettickcount();/ 畫方塊void drawblock(blockinfo _block, draw _draw) word b = g_blocks_block.id.dir_block.dir; int x, y; int color = black; switch(_draw) case show: color = g_blocks_block.id.color; break; case hide: color = black;
31、 break; case fix: color = g_blocks_block.id.color / 3; break; setfillstyle(color); for(int i=0; i16; i+) if (b & 0x8000) x = _block.x + i % 4; y = _block.y - i / 4; if (y height) if (_draw != hide) bar3d(x * size + 2, (height - y - 1) * size + 2, (x + 1) * size - 4, (height - y) * size - 4, 3, true)
32、; else bar(x * size, (height - y - 1) * size, (x + 1) * size - 1, (height - y) * size - 1); b = 1; / 檢測指定方塊是否可以放下bool checkblock(blockinfo _block) word b = g_blocks_block.id.dir_block.dir; int x, y; for(int i=0; i16; i+) if (b & 0x8000) x = _block.x + i % 4; y = _block.y - i / 4; if (x = width) | (y
33、 0) return false; if (y height) & (g_worldxy) return false; b = 1; return true;/ 旋轉(zhuǎn)方塊void onrotate() / 獲取可以旋轉(zhuǎn)的 x 偏移量 int dx; blockinfo tmp = g_curblock; tmp.dir+; if (checkblock(tmp) dx = 0; goto rotate; tmp.x = g_curblock.x - 1; if (checkblock(tmp) dx = -1; goto rotate; tmp.x = g_curblock.x + 1; if
34、 (checkblock(tmp) dx = 1; goto rotate; tmp.x = g_curblock.x - 2; if (checkblock(tmp) dx = -2; goto rotate; tmp.x = g_curblock.x + 2; if (checkblock(tmp) dx = 2; goto rotate; return;rotate: / 旋轉(zhuǎn) drawblock(g_curblock, hide); g_curblock.dir+; g_curblock.x += dx; drawblock(g_curblock);/ 左移方塊void onleft() blockinfo tmp = g_curblock; tmp.x-; if (checkblock(tmp) drawblock(g_curblock, hide); g_curblock.x-; drawblock(g_curblock); / 右移方塊void onright() blockinfo tmp = g_curblock; tmp.x+; if (checkblock(tmp) drawblock(g_curblock, hide); g_curblock.x+; dr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工廠環(huán)境保護手冊
- 2025年水資源利用:實驗室用水課件探討
- 2025年市場營銷學課件概覽
- 高中軍訓總結(jié)600字(31篇)
- DB31∕T 243-2011 種豬場驗收標準
- 安全生產(chǎn)法規(guī)知識
- 汽車使用性能與檢測技術(shù)
- 柳宗元散文的藝術(shù)特點賞析教學教案
- 房地產(chǎn)合伙協(xié)議書
- 城市交通擁堵情況監(jiān)測與分析表
- 現(xiàn)代家政導論-課件 4.1.1認識家政教育及意義
- 人教版小學六年級下冊音樂教案全冊
- 肺栓塞患者護理查房完整版
- 2024年煉鋼工職業(yè)技能競賽理論考試題庫500題(含答案)
- 人教版(2024)六年級全一冊 第18課 土壤濕度控制好
- 三年級下冊信息技術(shù)蘇科版 6.1設(shè)計數(shù)字作品第一課時 教案
- 20以內(nèi)的加法口算練習題4000題 284
- 單位工程施工進度計劃橫道圖表
- Nikon尼康D3100中文說明書
- 2023年廣西職業(yè)院校技能大賽高職組《Python程序開發(fā)》賽項競賽樣題
- LY/T 3141-2024文物建筑木構(gòu)件檢測方法
評論
0/150
提交評論