




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 面向對象程序設計課程設計報告題 目: 經(jīng)典推箱子趣味游戲設計與實現(xiàn) 院 (系): 信息科學與工程學院 專業(yè)班級: 計算機科學與技術1201班 學生姓名: 程偉 學 號: 20121183011 指導教師: 吳奕 20 14 年 12 月 29 日至20 15 年 1 月 9 日華中科技大學武昌分校制 面向對象程序設計 課程設計任務書一、設計(調查報告/論文)題目經(jīng)典推箱子趣味游戲設計與實現(xiàn)二、設計(調查報告/論文)主要內容內容:本游戲要求用戶將游戲地圖中所有放置著的箱子推到指定的地點來完成游戲,用戶通過繞開地圖中的障礙物將可移動的箱子推到目的地,游戲的難度在于要求用戶通過合理的路徑安排來使所
2、有的箱子最后都到達目的地。游戲一共50關,隨著關數(shù)的升高,游戲的難度隨之增大。 基本功能與要求:1初始化游戲界面設計2地圖的繪制3每一關都按照數(shù)組重新繪制地圖4小人與箱子的移動5完成"悔一步"的操作。三、原始資料1.面向對象程序設計課程設計指導書2. 耿祥義JAVA大學實用教程北京:清華大學出版社,2009四、要求的設計(調查/論文)成果1.課程設計報告2.課程設計軟件五、進程安排布置任務,查找資料、需求分析1天總體設計1天詳細設計1.5天編制源程序實現(xiàn)3.5天測試與修改1天撰寫課設報告2天六、主要參考資料1 張廣彬. Java課程設計案例精編(第二版).北京:清華大學出版
3、社, 2011. 2 耿祥義. Java課程設計(第二版).北京:清華大學出版社, 2008.3 耿祥義JAVA大學實用教程北京:清華大學出版社,20094 鄒林達陳國君 Java2程序設計基礎北京:清華大學出版社,20105 鄒林達Java2程序設計基礎實驗指導北京:清華大學,2010指導教師(簽名): 20 年 月 日目 錄1需求與總體設計11.1需求分析11.2總體設計22詳細設計42.1 mainFrame類42.2 mainpanel類52.3 Sound類72.4 Readmap類73 編碼實現(xiàn) 93.1游戲源碼94系統(tǒng)測試42總結4545 / 521需求與總體設計1.1需求分析1
4、.1.1功能結構圖推箱子游戲的功能結構圖如圖1.1所示。在系統(tǒng)中,編寫4個Java類:mainFrame,mainpanel,Sound,Readmap;分別對應初始化游戲界面,游戲操作,背景音樂,繪制地圖。 圖1.11.1.2 UML類圖推箱子系統(tǒng)除了上述4個Java類外,還需要Java系統(tǒng)提供的一些重要的類。這些類之間的UML圖如圖1.2所示。圖1.21.2總體設計1.2.1 mainFrame類mainFrame類負責創(chuàng)建系統(tǒng)的主窗口。mainFrame類有多種重要類型的對象,這些對象構成了游戲界面的簡明與美觀,并且通過監(jiān)聽實現(xiàn)方法賦予了這些組件的相應功能。MainFrame類通過調用R
5、eadmap類來實現(xiàn)將地圖繪制在游戲主界面,通過調用Sound類來實現(xiàn)對背景音樂的管理,實現(xiàn)音樂開關以及選擇上一曲下一曲的操作。設計中包括了所有你所能直觀見到的圖形界面,窗體的大小,下拉菜單中的功能菜單,使得玩家能夠很直觀的見到所有游戲中的功能.界面中有菜單, 包括:"選項""設置音樂""幫助"。按鈕包括:"重來""悔一步""第一關""上一關""下一關""最終關""選關""音樂"
6、;等。1.2.2 mainpanel類Mainpanel類中集成了小人與箱子的移動規(guī)則,并且還包含了對鍵盤操作移動的響應方法。在本游戲系統(tǒng)中,給人的視覺感受應該是能感受都動作的變化,逼真的人物動作會使系統(tǒng)更有效.通過控制人物,箱子,空地,障礙物在數(shù)組中的位置的改變來控制移動動作.小人與箱子移動的算法移動中包括正移動,與"悔一步"的負移動. 正移動:小人上下左右的移動是由本組咸英智組員所做,歸結起來上下左右是一個判斷的算法,判斷都是通過判斷小人前面是否是空位箱子或者是墻,如果沒有就移動;有的話,據(jù)判斷箱子是否可以移動,最后討論箱子推過的,小人移動,以及被遮擋住點的圖形變化,重
7、新繪制地圖,算法判斷完畢. 1.2.3 Sound類 Sound類主要功能是播放背景音樂,包含了一些對音樂的操作方法。在玩游戲的同時聽一聽動聽的音樂,有助于舒緩疲勞,放松心情。1.2.4 Readmap類Readmap類是繪制地圖的類,將已經(jīng)整理好的地圖繪制在游戲界面上。其主要功能是給用戶一個友好的游戲界面,游戲中包括50 關的地圖,推箱子這個游戲的50 個地圖是事先完成的,將所有地圖上面的信息以數(shù)字的形式儲存在一個20*20 的二維數(shù)組當中;然后,每一關都按照數(shù)組重新繪制地圖,這樣就擁有了50 張地圖。2詳細設計2.1 mainFrame類MainFrame類用于初始化屏幕。該類首先用兩個f
8、or循環(huán)初始化屏幕20*20范圍內的狀態(tài),初始化為0,以后根據(jù)實際情況重新賦值;然后設置屏幕輸出狀態(tài),設置寄存器AX的高位為0,低位為3,表示以80*25的彩色方式顯示;最后移動光標到指定的位置輸出。設置界面的標題,窗口大小,添加按鈕組件以及各種組件的布局super("推箱子咯");/設置標題setSize(720,720);setVisible(true);/設置窗口可見setResizable(false);/創(chuàng)建按鈕btnrenew=new JButton("重來");btnback=new JButton("悔一步");btn
9、last=new JButton("上一關");btnnext=new JButton("下一關");btnchoose=new JButton("選關");btnfirst=new JButton("第關");btnover=new JButton("最終關");btnmuc=new JButton("音樂關");actionPerformed(ActionEvent)itemStateChanged(ItemEvent)2.2 mainpanel類該類用于移動箱子,包括目
10、的地之間、空地之間和目的地與空地之間的箱子移動。小人與箱子移動的算法移動中包括正移動,與"悔一步"的負移動. 正移動:小人上下左右的移動是由本組咸英智組員所做,歸結起來上下左右是一個判斷的算法,判斷都是通過判斷小人前面是否是空位箱子或者是墻,如果沒有就移動;有的話,據(jù)判斷箱子是否可以移動,最后討論箱子推過的,小人移動,以及被遮擋住點的圖形變化,重新繪制地圖,算法判斷完畢.傳出數(shù)據(jù)記錄在,一個棧當中,以備"悔一步"使用. 負移動:通過記錄在棧中的數(shù)據(jù)判斷,前一步是的移動方向以及移動使用過的算法,逆向將代碼重新運行,同時繪制地圖以達到前一步的狀態(tài).Mainp
11、anel類中包含了(1)重來:重新開始當前關; (2)悔一步:返回上一移動狀態(tài)(可以連續(xù)返回多步) (3)第一關:游戲系統(tǒng)默認開始關為第一關,此按鈕可以將關從其它關跳躍到第一關. (4)上一關:返回到當前關的上一關; (5)下一關:返回到當前關的下一關; (6)最終關:跳躍到最后一關,即第五十關; (7)選關:選擇想要玩的關; (8)音樂關(開) :默認為開,點擊自動關閉音樂和開啟音樂. (9)更換音樂:從不同的音樂中選取適合玩家的音樂.鍵盤操作的方法iswin()/判斷是否獲勝isMystackEmpty()paint(Graphics)箱子移動與人物移動的方法。該方法是實現(xiàn)箱子的移動。根據(jù)
12、游戲規(guī)則,箱子可以在空地之間、目的地之間、空地和目的地之間來回移動。backright(int)/返回右移moveright()/右移操作backleft(int)/返回左移moveleft()/左移操作backdown(int)/返回下移movedown()/下移操作backup(int)/返回上移moveup()/上移操作remove()/移除返回back()/鍵盤監(jiān)聽keyReleased(KeyEvent)/釋放鍵盤keyTyped(KeyEvent)/判斷鍵盤操作是否有效keyPressed(KeyEvent)/按下鍵盤2.3 Sound類(1)將本地音樂讀取進程序loadSound
13、() (2)音樂關(開) :默認為開,點擊自動關閉音樂和開啟音樂. mystop()isplay()(3)更換音樂:從不同的音樂中選取適合玩家的音樂.setMusic(String)2.4 Readmap類該模塊主要是被其它模塊調用,用于畫墻、在空地畫箱子、在目的地畫箱子、畫小人和畫目的地。形成地圖以二維數(shù)組的形式進行存儲的,不同的數(shù)字有著不同的含義.在地圖當中不同的數(shù)字代表不同的含義我當時是將09 解讀成為不同的圖形與圖像. "0"代表"地圖以內的空位" "1"代表"地圖中的邊緣" "2"代表
14、"地圖以內的空位非點位; "3"代表"地圖中的箱子" "4"代表"點位" "5"代表"小人面部朝下" "6"代表"小人面部朝左" 課程設計說明書"7"代表"小人面部朝右" "8"代表"小人面部朝上" "9"代表"箱子已經(jīng)到達點位。Readmap(int)/讀取地圖文件getmap()/獲取地圖用于在目的地畫箱子,傳入?yún)?/p>
15、數(shù)x、y指明位置。該類調用getmap()進行輸出,3編碼實現(xiàn)3.1推箱子游戲設計源碼import javax.swing.*;import java.awt.event.*;import java.awt.*;import java.io.*;import javax.sound.midi.*;import java.util.Stack;public class hh/程序主方法,游戲由此開始public static void main(String args)/創(chuàng)建游戲界面new mainFrame();/顯示游戲的主界面,一些常用組件的布局及其相應功能的監(jiān)聽與實現(xiàn)class main
16、Frame extends JFrame implements ActionListener,ItemListenerJLabel lb;JLabel lb2;JButton btnrenew,btnlast,btnnext,btnchoose,btnfirst,btnover,btnmuc,btnback;mainpanel panel;Sound sound;JComboBox jc=new JComboBox();/主界面上的菜單和選項MenuItem renew=new MenuItem("重新開始");MenuItem back=new MenuItem(&quo
17、t;悔一步");MenuItem last=new MenuItem("上一關");MenuItem next=new MenuItem("下一關");MenuItem choose=new MenuItem("選關");MenuItem exit=new MenuItem("退出");MenuItem qin=new MenuItem("琴蕭合奏");MenuItem po=new MenuItem("泡泡堂");MenuItem guang=new MenuIt
18、em("灌籃高手");MenuItem nor=new MenuItem("默認");MenuItem eye=new MenuItem("eyes on me");MenuItem about=new MenuItem("關于推箱子");mainFrame()super("推箱子咯");/設置標題setSize(720,720);setVisible(true);/設置窗口可見setResizable(false);setLocation(300,20);setDefaultCloseOper
19、ation(JFrame.EXIT_ON_CLOSE);Container cont=getContentPane();cont.setLayout(null);cont.setBackground(Color.black);/選項菜單的菜單項的添加Menu choice=new Menu("選項");choice.add(renew);choice.add(last);choice.add(next);choice.add(choose);choice.add(back);choice.addSeparator();choice.add(exit);/給選項菜單的菜單項添
20、加監(jiān)聽renew.addActionListener(this);last.addActionListener(this);next.addActionListener(this);choose.addActionListener(this);exit.addActionListener(this);back.addActionListener(this);/給背景音樂菜單添加菜單項Menu setmuc=new Menu("設置音樂");setmuc.add(nor);setmuc.add(qin);setmuc.add(po);setmuc.add(guang);set
21、muc.add(eye);/給背景音樂菜單項添加監(jiān)聽nor.addActionListener(this);qin.addActionListener(this);po.addActionListener(this);guang.addActionListener(this);eye.addActionListener(this);/給幫助菜單添加菜單項及監(jiān)聽Menu help=new Menu("幫助");help.add(about);about.addActionListener(this);MenuBar bar=new MenuBar();bar.add(choi
22、ce);bar.add(setmuc);bar.add(help);setMenuBar(bar); nor.setEnabled(false);lb=new JLabel("JAVA推箱子",SwingConstants.CENTER);lb2=new JLabel("更換音樂",SwingConstants.CENTER);add(lb);add(lb2);lb.setBounds(100,20,400,20);lb.setForeground(Color.white);lb2.setBounds(625,500,55,20);lb2.setFore
23、ground(Color.white);/創(chuàng)建按鈕btnrenew=new JButton("重來");btnback=new JButton("悔一步");btnlast=new JButton("上一關");btnnext=new JButton("下一關");btnchoose=new JButton("選關");btnfirst=new JButton("第關");btnover=new JButton("最終關");btnmuc=new JBut
24、ton("音樂關");/添加按鈕組件到窗口add(btnrenew);add(btnlast);add(btnnext);add(btnchoose);add(btnfirst);add(btnover);add(btnmuc);add(btnback);/設置按鈕組件的大小及添加監(jiān)聽btnrenew.setBounds(625,100,80,30);btnrenew.addActionListener(this);btnback.setBounds(625,150,80,30);btnback.addActionListener(this);btnfirst.setBou
25、nds(625,200,80,30);btnfirst.addActionListener(this);btnlast.setBounds(625,250,80,30);btnlast.addActionListener(this);btnnext.setBounds(625,300,80,30);btnnext.addActionListener(this);btnover.setBounds(625,350,80,30);btnover.addActionListener(this);btnchoose.setBounds(625,400,80,30);btnchoose.addActio
26、nListener(this);btnmuc.setBounds(625,450,80,30);btnmuc.addActionListener(this);jc.setBounds(625,530,80,20);/添加背景音樂名到窗口jc.addItem("默認");jc.addItem("琴蕭合奏");jc.addItem("泡泡堂");jc.addItem("灌籃高手");jc.addItem("eyes on me");jc.addItemListener(this);cont.add(
27、jc);sound=new Sound();sound.loadSound();panel=new mainpanel();add(panel);panel.Tuixiangzi(panel.level);panel.requestFocus();validate();/對主界面上的一些按鈕的功能的監(jiān)聽及實現(xiàn)public void actionPerformed(ActionEvent e)if(e.getSource()=btnrenew|e.getSource()=renew)panel.Tuixiangzi(panel.level);panel.requestFocus();panel.
28、remove();else if(e.getSource()=btnlast|e.getSource()=last)panel.level-;if(panel.level<1)panel.level+;JOptionPane.showMessageDialog(this,"本關是第一關");panel.requestFocus();else panel.Tuixiangzi(panel.level);panel.requestFocus();panel.remove();else if(e.getSource()=btnnext|e.getSource()=next)
29、panel.level+;if(panel.level>panel.maxlevel()panel.level-;JOptionPane.showMessageDialog(this,"本關已是最后一關");panel.requestFocus();else panel.Tuixiangzi(panel.level);panel.requestFocus();panel.remove();else if(e.getSource()=exit)System.exit(0);else if(e.getSource()=about)JOptionPane.showMessa
30、geDialog(this, "JAVA推箱子");else if(e.getSource()=btnchoose|e.getSource()=choose)String lel=JOptionPane.showInputDialog(this,"請輸入您要轉到的關卡號:(150)");panel.level=Integer.parseInt(lel);panel.remove();if(panel.level>panel.maxlevel()|panel.level<1)JOptionPane.showMessageDialog(this,
31、 "沒有這一關!");panel.requestFocus();elsepanel.Tuixiangzi(panel.level);panel.requestFocus();else if(e.getSource()=btnfirst)panel.level=1;panel.Tuixiangzi(panel.level);panel.requestFocus();panel.remove();else if(e.getSource()=btnover)panel.level=panel.maxlevel();panel.Tuixiangzi(panel.level);pan
32、el.requestFocus();panel.remove();else if(e.getSource()=btnmuc)if(sound.isplay()sound.mystop();btnmuc.setLabel("音樂開");else sound.loadSound();btnmuc.setLabel("音樂關");panel.requestFocus();else if(e.getSource()=btnback|e.getSource()=back)if(panel.isMystackEmpty()JOptionPane.showMessag
33、eDialog(this, "您還未移動!");elseswitch(panel.back()case 10:panel.backup(10);break;case 11:panel.backup(11);break;case 20:panel.backdown(20);break;case 21:panel.backdown(21);break;case 30:panel.backleft(30);break;case 31:panel.backleft(31);break;case 40:panel.backright(40);break;case 41:panel.b
34、ackright(41);break;panel.requestFocus();else if(e.getSource()=nor)jc.setSelectedIndex(0);else if(e.getSource()=qin)jc.setSelectedIndex(1);else if(e.getSource()=guang)jc.setSelectedIndex(3);else if(e.getSource()=eye)jc.setSelectedIndex(4);else if(e.getSource()=po)jc.setSelectedIndex(2);/對音樂選項的操作實現(xiàn)pub
35、lic void itemStateChanged(ItemEvent ie)int no=jc.getSelectedIndex();switch(no)case 0:sound.setMusic("nor.mid"); if(sound.isplay() sound.mystop(); sound.loadSound(); btnmuc.setLabel("音樂關"); nor.setEnabled(false); qin.setEnabled(true); guang.setEnabled(true); eye.setEnabled(true);
36、po.setEnabled(true); panel.requestFocus(); break; case 1:sound.setMusic("qin.mid"); if(sound.isplay() sound.mystop(); sound.loadSound(); btnmuc.setLabel("音樂關"); nor.setEnabled(true); qin.setEnabled(false); guang.setEnabled(true); eye.setEnabled(true); po.setEnabled(true); panel.r
37、equestFocus(); break; case 2:sound.setMusic("popo.mid");if(sound.isplay()sound.mystop();sound.loadSound();btnmuc.setLabel("音樂關");nor.setEnabled(true);qin.setEnabled(true);guang.setEnabled(true);eye.setEnabled(true);po.setEnabled(false);panel.requestFocus();break;case 3:sound.setM
38、usic("guang.mid");if(sound.isplay()sound.mystop();sound.loadSound();btnmuc.setLabel("音樂關");nor.setEnabled(true);qin.setEnabled(true);guang.setEnabled(false);eye.setEnabled(true);po.setEnabled(true);panel.requestFocus();break;case 4:sound.setMusic("eyes on me.mid");if(so
39、und.isplay()sound.mystop();sound.loadSound();btnmuc.setLabel("音樂關");nor.setEnabled(true);qin.setEnabled(true);guang.setEnabled(true);eye.setEnabled(false);po.setEnabled(true);panel.requestFocus();break;/游戲操作功能的實現(xiàn)class mainpanel extends JPanel implements KeyListenerint max=50;int map,maptmp
40、;int manX,manY,boxnum;Image myImage;Readmap Levelmap;Readmap Levelmaptmp;int len=30;public int level=1;Stack mystack=new Stack();mainpanel()/設置大小setBounds(15,50,600,600);/設置顏色setBackground(Color.white);addKeyListener(this);myImage=new Image10;for(int i=0; i<10; i+) myImagei = Toolkit.getDefaultTo
41、olkit().getImage("pic"+i+".gif");setVisible(true);/開始繪制地圖void Tuixiangzi(int i)Levelmap=new Readmap(i);Levelmaptmp=new Readmap(i);map=Levelmap.getmap();manX=Levelmap.getmanX();manY=Levelmap.getmanY();maptmp=Levelmaptmp.getmap();repaint();int maxlevel()return max;public void paint
42、(Graphics g)for(int i=0; i<20; i+)for(int j=0; j<20; j+) g.drawImage(myImagemapji,i*len,j*len,this);/設置顏色g.setColor(new Color(0,0,0);/設置字體g.setFont(new Font("楷體_2312",Font.BOLD,30);/設置關數(shù)g.drawString("現(xiàn)在是第",150,40);g.drawString(String.valueOf(level),310,40);g.drawString(&quo
43、t;關",360,40);/實現(xiàn)鍵盤控制移動的方法public void keyPressed(KeyEvent e)if(e.getKeyCode()=KeyEvent.VK_UP)/上移鍵實現(xiàn)上移方法moveup();if(e.getKeyCode()=KeyEvent.VK_DOWN)/下移鍵實現(xiàn)下移方法movedown();if(e.getKeyCode()=KeyEvent.VK_LEFT)/左移鍵實現(xiàn)左移方法moveleft();if(e.getKeyCode()=KeyEvent.VK_RIGHT)/右移鍵實現(xiàn)右移方法moveright();if(iswin()if(l
44、evel=max)/通過最后一關時顯示"恭喜您通過最后一關!"JOptionPane.showMessageDialog(this, "恭喜您通過最后一關!");else/通過非最后一關時顯示"恭喜您通過第""關!n是否要進入下一關?"String msg="恭喜您通過第"+level+"關!n是否要進入下一關?"int type=JOptionPane.YES_NO_OPTION;String title="過關"int choice=0;choice=
45、JOptionPane.showConfirmDialog(null,msg,title,type);/如果選擇取消,則退出游戲if(choice=1)System.exit(0);else if(choice=0)level+;Tuixiangzi(level);mystack.removeAllElements();public void keyTyped(KeyEvent e)public void keyReleased(KeyEvent e)/無鍵盤操作時返回無操作boolean isMystackEmpty()return mystack.isEmpty();int back()r
46、eturn (Integer)mystack.pop();void remove()mystack.removeAllElements();/實現(xiàn)上移操作void moveup()if(mapmanY-1manX=2|mapmanY-1manX=4)if(maptmpmanYmanX=4|maptmpmanYmanX=9)mapmanYmanX=4;elsemapmanYmanX=2;mapmanY-1manX=8;repaint();manY-;mystack.push(10);else if(mapmanY-1manX=3)if(mapmanY-2manX=4)if(maptmpmanYm
47、anX=4|maptmpmanYmanX=9)mapmanYmanX=4;else mapmanYmanX=2;mapmanY-1manX=8;mapmanY-2manX=9;repaint();manY-;mystack.push(11);else if(mapmanY-2manX=2)if(maptmpmanYmanX=4|maptmpmanYmanX=9)mapmanYmanX=4;else mapmanYmanX=2;mapmanY-1manX=8;mapmanY-2manX=3;repaint();manY-;mystack.push(11);else mapmanYmanX=8;repaint();else if(mapmanY-1manX=9)if(mapmanY-2manX=4)if(maptmpmanYmanX=4|maptmpmanYmanX=9)mapmanYmanX=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中級微觀經(jīng)濟學知到課后答案智慧樹章節(jié)測試答案2025年春浙江大學
- 2025年天一大聯(lián)考海南省高三2月英語試題模擬試題含解析
- 寧夏警官職業(yè)學院《外國民族音樂概論》2023-2024學年第一學期期末試卷
- 焦作大學《泰語口語》2023-2024學年第二學期期末試卷
- 江西理工大學《過程裝備集成科學與技術》2023-2024學年第二學期期末試卷
- 廣東海洋大學《紡織綠色制造》2023-2024學年第二學期期末試卷
- 四川省綿陽市游仙區(qū)2025年數(shù)學五下期末檢測模擬試題含答案
- 上海市格致初級中學2025年高考模擬(4月)英語試題含解析
- 工傷認定風險點和防范措施
- 2025年五氧化二磷行業(yè)政策分析:五氧化二磷行業(yè)標準規(guī)范行業(yè)發(fā)展
- 2024年高等教育自學考試自考《英語二》試卷及解答參考
- DB34∕ 1659-2022住宅工程質量常見問題防治技術規(guī)程
- 2024-2030年氣體探測器行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 特種設備生命周期管理數(shù)字化
- 2024年個人述職報告范文5
- 二年級心理健康教學課件-第4課-彬彬有禮的好孩子
- 2024年計算機程序設計員(高級三級)職業(yè)技能鑒定考試題庫-上(單選題)
- 2024年山西省中考一模理綜物理試題(附答案解析)
- 普鐵旅客出行行為分析
- 高鐵乘務測試題題庫
- 全屋定制專業(yè)知識培訓
評論
0/150
提交評論