




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、課程設(shè)計報告題 目: 潛艇大作戰(zhàn)軟件設(shè)計與實現(xiàn) 院 (系): 信息科學(xué)與工程學(xué)院 專業(yè)班級: 計算機科學(xué)與技術(shù)1201班 學(xué)生姓名:程偉學(xué) 號: 20121183011指導(dǎo)教師: 吳奕 20 14 年 12 月 29 日至20 15 年 1 月 9 日華中科技大學(xué)武昌分校制面向?qū)ο蟪绦蛟O(shè)計 課程設(shè)計任務(wù)書一、設(shè)計(調(diào)查報告/論文)題目潛艇大作戰(zhàn)軟件設(shè)計與實現(xiàn)二、設(shè)計(調(diào)查報告/論文)主要內(nèi)容內(nèi)容:設(shè)計一個戰(zhàn)艦獵捕潛艇的游戲,玩家以鍵盤輸入來控制戰(zhàn)艦的行動,獵殺潛艇獲得分?jǐn)?shù),進(jìn)入前十名有排名。 基本功能與要求:1首先繪制一個首頁,首頁包括開始,退出按鈕,采用事件監(jiān)聽。2進(jìn)入游戲后使用,通過讀取文
2、件,讀出以前的最好成績,使用菜單按鈕開始游戲。3通過方向鍵來控制潛艇的移動方向,空格鍵釋放魚雷。4 擊中敵人后加分,同時被敵人擊中一次就扣除一次機會,共三次機會三、原始資料1.面向?qū)ο蟪绦蛟O(shè)計課程設(shè)計指導(dǎo)書2.耿祥義JAVA大學(xué)實用教程北京:清華大學(xué)出版社,2009四、要求的設(shè)計(調(diào)查/論文)成果五、進(jìn)程安排布置任務(wù),查找資料、需求分析1天總體設(shè)計1天測試與修改1天撰寫課設(shè)報告2天六、主要參考資料1 張廣彬. Java課程設(shè)計案例精編(第二版).北京:清華大學(xué)出版社, 2011.2 耿祥義. Java課程設(shè)計(第二版).北京:清華大學(xué)出版社, 2008.3 耿祥義JAVA大學(xué)實用教程北京:清華
3、大學(xué)出版社,20094 鄒林達(dá)陳國君 Java2程序設(shè)計基礎(chǔ)北京:清華大學(xué)出版社,20105 鄒林達(dá)Java2程序設(shè)計基礎(chǔ)實驗指導(dǎo)北京:清華大學(xué),2010指導(dǎo)教師(簽名): 20 年 月 日目 錄1需求與總體設(shè)計11.1需求分析11.1.1界面需求11.1.2性能需求11.2總體設(shè)計思路,功能圖,類圖11.2.1程序設(shè)計思路11.2.2功能圖21.2.3類圖32詳細(xì)設(shè)計42.1詳細(xì)設(shè)計思路與類的說明、細(xì)化42.1.1流程圖42.1.2類的說明53編碼實現(xiàn)63.1 JAVA編碼實現(xiàn)64系統(tǒng)測試724.1開始游戲的界面724.2進(jìn)入游戲并選擇開始734.3暫停游戲的界面744.4前十名對話框與排名
4、界面75總 結(jié)761需求與總體設(shè)計分析界面是一個窗口,游戲在此窗口上運行,窗口上有分?jǐn)?shù)設(shè)置。此游戲分?jǐn)撤綕撏Вㄈ舾桑┖臀曳綉?zhàn)艦(生命值3條)兩個角色,敵方潛艇在水下攻擊我方戰(zhàn)艦,我方戰(zhàn)艦于水上獵殺敵方潛艇??傮w設(shè)計思路,功能圖,類圖此游戲的關(guān)鍵點是潛艇是否被擊中的判斷,整個屏幕是個二維坐標(biāo)系,軍艦在一個水平位置移動,當(dāng)在某個位置發(fā)射魚雷,判斷魚雷的圖片與不斷移動的潛艇圖片是否會有重合的地方,如果有發(fā)生爆炸,如果沒有繼續(xù)移動。2詳細(xì)設(shè)計2.1詳細(xì)設(shè)計思路與類的說明、細(xì)化2流程圖本游戲的基本運行流程是啟動后把整個畫布昨為一個線程,隨時準(zhǔn)備響應(yīng)用戶按鍵操作K的響應(yīng),100ms掃描一次潛艇和水雷等物體
5、的運行狀態(tài)。在掃描潛艇和水雷運動時,執(zhí)行各個物體畫面的移動方法。程序并不為每隔新增潛艇和水雷開啟一個新線程,太多線程會造成程序的性能直線下降;而是將每一個物體類型直接加入到畫布中,每當(dāng)一個新物體產(chǎn)生,將直接在畫布上畫出;當(dāng)物體消除時,將直接在畫布上被消除。這樣就形成以種注冊機制,所有游戲物體產(chǎn)生和消除都需要畫布注冊,畫布擁有不同類型物體的所有“名單”,所有,當(dāng)執(zhí)行的命令只是需要遍歷畫布中所有游戲物體,依次執(zhí)行每隔游戲物體中定義的移動方法即可。2類的說明Blast:潛艇發(fā)射魚雷擊中戰(zhàn)艦后爆炸的效果。Bum:炸彈FrameObservable:監(jiān)聽者模式來監(jiān)聽游戲畫面切換。HelpDialog:游
6、戲規(guī)則的對話框,提示游戲規(guī)則信息。Hit:潛艇被擊中的爆炸效果。InfoDialog:關(guān)于我們的對話框,關(guān)于游戲的一些信息。InputDialog:玩家得分進(jìn)圖前十名的提示對話框。MainPanel:進(jìn)圖游戲的主界面面板。MyButton:繪制游戲背景MyDialog: 暫停游戲的提示對話框。MyFrame:游戲窗體。MyPanel:主程序ScoreDialog:玩家沒有進(jìn)入前十名游戲就結(jié)束的提示對話框。Submarine:潛艇對象。SubmarineWarMain:重新開始游戲。TimeManager:計時器產(chǎn)生潛艇。TimeManager2:計時器產(chǎn)生魚雷。Torpedo:潛艇發(fā)射的魚雷對
7、象。WallDialog:玩家進(jìn)入前十名之后的成績排名信息對話框。WarShip:戰(zhàn)艦對象。3編碼實現(xiàn) JAVA編碼實現(xiàn)package com.stj.views;import java.awt.Color;import java.awt.Graphics2D;import java.util.Random;/* 潛艇發(fā)射的魚雷擊中戰(zhàn)艦后爆炸的效果對象,原理:繪制多個從小到大然后從大到小的圓顯示爆炸效果 */public class Blast implements Runnableprivate int X; private int Y;private int r = 2,3,5,8,12,
8、15,18,20,25,30,33,25,17,15,13,9,5; /圓的半徑集合private int step = 0; /集合中圓的位置標(biāo)記private boolean flag = false;public Blast(int x,int y)this.X = x;this.Y = y;public void drawBlast(Graphics2D g)Random random =new Random();int c = random.nextInt(2);if(c = 0)g.setColor( Color.RED);else if(c = 1)g.setColor(Colo
9、r.ORANGE);if(this.step < r.length)/System.out.println("draw");/g.setColor(Color.gray);g.fillOval(this.X, this.Y, this.rthis.step, this.rthis.step);/step +;public void run() while(!this.flag)step +;/System.out.println(step);try Thread.sleep(10); catch (InterruptedException e) / TODO Auto
10、-generated catch blocke.printStackTrace();if(this.step = r.length)this.flag = true;public int getX() return X;public void setX(int x) X = x;public int getY() return Y;public void setY(int y) Y = y;public boolean isFlag() return flag;public void setFlag(boolean flag) this.flag = flag;package com.stj.
11、views;import java.awt.*;import javax.swing.ImageIcon;public class Bumb implements Runnableprivate WarShip ship;private int beginX;private int beginY;private int width = 5;private int height = 15;public boolean flag = false;private MyPanel panel;private Image image;public Bumb(MyPanel p,WarShip ship)
12、this.beginX= ship.getBeginX()+20;this.beginY = ship.getBeginY()+20;this.panel = p;this.ship = ship;image = Toolkit.getDefaultToolkit().getImage("imgs/炸彈.png");image = new ImageIcon(image).getImage();this.width = image.getWidth(panel);this.height = image.getHeight(panel);/System.out.println
13、("bumb width:"+this.width);/System.out.println("bumb height:"+this.height);public void run() while(!flag)this.moveDown();if(this.panel.isStop() = true)synchronized(MyPanel.subLock)tryMyPanel.subLock.wait();catch(Exception e)e.printStackTrace();this.flag = true;tryThread.sleep(10)
14、;catch(Exception event)event.printStackTrace();this.flag = true;public void drawBumb(Graphics2D g)/g.setColor(Color.BLACK);/g.fillOval(this.beginX, this.beginY, this.radius, this.radius);g.drawImage(image, this.beginX, this.beginY, this.panel);public void moveDown()this.beginY += 1;if(this.beginY &g
15、t; (this.panel.getHeight() - this.height / 2)flag = true;/this.panel.repaint();public WarShip getShip() return ship;public void setShip(WarShip ship) this.ship = ship;public int getBeginX() return beginX;public void setBeginX(int beginX) this.beginX = beginX;public int getBeginY() return beginY;publ
16、ic void setBeginY(int beginY) this.beginY = beginY;public int getWidth() return width;public void setWidth(int width) this.width = width;public int getHeight() return height;public void setHeight(int height) this.height = height;import java.util.Observable;/*監(jiān)聽者模式來監(jiān)聽游戲畫面切換,從游戲進(jìn)入畫面到游戲主畫面,用MyFrame對象監(jiān)聽
17、MainPanel */publicclass FrameObservable extends Observablepublicvoid notifyObservers(Object arg)/System.out.println("notify");this.setChanged();super.notifyObservers(arg); / arg為被觀察的對象import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;import java
18、.awt.LinearGradientPaint;import java.awt.Shape;import java.awt.Frame;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.awt.event.MouseMotionListener;import java.awt.geom.AffineTransform;import java.awt.geom.Area;import java.awt.geom.Ellipse2D;import java.awt.geom.Point
19、2D;import java.awt.geom.RoundRectangle2D;import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.plaf.basic.BasicGraphicsUtils;import com.sun.awt.AWTUtilities;/*游戲規(guī)則的對話框,提示游戲規(guī)則信息 */public class HelpDialog extends JDialog implements MouseMotionListener,MouseListenerprivate static fina
20、l long serialVersionUID = 1L;protected JFrame frame1; private MyPanel panel;private boolean flag = false;private boolean isDraw = false;private boolean isOutDraw = false;public HelpDialog(Frame frame,boolean modal,MyPanel panel)super(frame,modal);this.panel = panel;this.addMouseMotionListener(this);
21、this.addMouseListener(this);this.setLocation(frame.getBounds().x + 180,frame.getBounds().y + 200);this.setSize(300, 200);this.setUndecorated(true); this.setVisiableRigeon(this.getWidth(), this.getHeight();this.setVisible(true);public void paint(Graphics g)super.paint(g);Graphics2D g2 = (Graphics2D)
22、g;/g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING , RenderingHints.VALUE_ANTIALIAS_ON);Point2D start = new Point2D.Float(this.getWidth()/2, 0);Point2D end = new Point2D.Float(this.getWidth()/2, this.getHeight();float dist = 0.05f,1.0f;Color colors = new Color(58,95,205), Color.CYAN;LinearGradie
23、ntPaint p =new LinearGradientPaint (start,end, dist, colors);g2.setPaint(p);g2.fillRect(0,0, this.getWidth(), this.getHeight();String title = new String("游戲規(guī)則");g2.setFont(new Font("華文行楷",Font.BOLD,25);g2.setColor(Color.yellow);BasicGraphicsUtils.drawString(g2, title, 100, 90, 50
24、);String context = new String("按 <- 或 A 鍵 控制軍艦向左");g2.setFont(new Font("華文行楷",Font.BOLD,15);g2.setColor(Color.yellow);BasicGraphicsUtils.drawString(g2, context, 100, 50, 100);String context1 = new String("按 -> 或 D 鍵 控制軍艦向右");g2.setFont(new Font("華文行楷",Fo
25、nt.BOLD,15);g2.setColor(Color.yellow);BasicGraphicsUtils.drawString(g2, context1, 100, 50, 120);String context2 = new String("按空格鍵扔炸彈");g2.setFont(new Font("華文行楷",Font.BOLD,15);g2.setColor(Color.yellow);BasicGraphicsUtils.drawString(g2, context2, 100, 50, 140);/g2.setRenderingHin
26、t(RenderingHints.KEY_ANTIALIASING , RenderingHints.VALUE_ANTIALIAS_ON);this.repaintShape(); /設(shè)置對話框為圓角矩形public void setVisiableRigeon(int width,int height)Shape shape = new RoundRectangle2D.Float(20,20,this.getWidth() - 40,this.getHeight()-40,15.0f,15.0f);Shape shape2 = new Ellipse2D.Double(this.getW
27、idth() - 40, 10,30,30);Area area = new Area(shape);Area area2 = new Area(shape2);area.add(area2);AWTUtilities.setWindowShape(this,area);public void mouseClicked(MouseEvent arg0) public void mouseEntered(MouseEvent arg0) /System.out.println("enter");public void mouseExited(MouseEvent arg0)
28、/System.out.println("exit");this.flag = false;this.isDraw = false;if(!this.isOutDraw)/this.repaint(this.getWidth() - 40,10,30,30);this.repaintShape();this.isOutDraw = true;public void mousePressed(MouseEvent arg0) int x = arg0.getX();int y = arg0.getY();Shape shape = new Ellipse2D.Double(t
29、his.getWidth() - 40, 10, 30, 30);/System.out.print(111111);if(shape.contains(x,y)this.panel.goOn();this.setVisible(false);public void mouseReleased(MouseEvent arg0) / TODO Auto-generated method stubpublic void mouseDragged(MouseEvent arg0) / TODO Auto-generated method stubpublic void mouseMoved(Mous
30、eEvent arg0) int x = arg0.getX();int y = arg0.getY();/System.out.print(x + " ");/System.out.println(y);Shape shape = new Ellipse2D.Double(this.getWidth() - 40, 10, 30, 30);Shape shape2 = new Ellipse2D.Double(this.getWidth() - 40, 10,30,30);Area area = new Area(shape);Area area2 = new Area(
31、shape2);area.add(area2);if(shape.contains(x,y)this.flag = true;this.isOutDraw = false;if(!this.isDraw)/this.repaint(this.getWidth() - 40,10,30,30);this.repaintShape();this.isDraw = true;else if(!shape.contains(x,y)this.flag = false;this.isDraw = false;if(!this.isOutDraw)/this.repaint(this.getWidth()
32、 - 40,10,30,30);this.repaintShape();this.isOutDraw = true;public void repaintShape()Graphics2D g2 = (Graphics2D) this.getGraphics();if(!flag)g2.setColor(Color.gray);else if(flag)g2.setColor(Color.red);g2.fillOval(this.getWidth() - 40, 10, 30, 30);g2.setColor(Color.white);Shape shape = new RoundRecta
33、ngle2D.Float( this.getWidth() - 40 + 3,10 + 15 - 3,24,6,1.0f,1.0f);AffineTransform af = AffineTransform.getRotateInstance(0.7,this.getWidth() - 40 + 3 + 12,10 + 15 -3 + 3);shape = af.createTransformedShape(shape);g2.fill(shape);Shape shape2 = new RoundRectangle2D.Float( this.getWidth() - 40 + 3,10 +
34、 15 - 3,24,6,1.0f,1.0f);AffineTransform af2 = AffineTransform.getRotateInstance(-0.7,this.getWidth() - 40 + 3 + 12,10 + 15 -3 + 3);shape2 = af2.createTransformedShape(shape2);g2.fill(shape2);package com.stj.views;import java.awt.Graphics2D;import java.awt.Image;import java.awt.Toolkit;import javax.s
35、wing.ImageIcon;/*潛艇被擊中的爆炸效果,通過圖片顯示 */public class Hit implements Runnable private MyPanel panel; /主面板private Image image; /圖片private int liveTime = 500; /爆炸效果顯示的時間默認(rèn)為500毫秒private int beginX = 0; /位置 x yprivate int beginY = 0;private boolean isRunning = false; /游戲是否正在運行標(biāo)志public Hit(int x,int y,MyPane
36、l panel)this.beginX = x;this.beginY = y;this.panel = panel;this.image = Toolkit.getDefaultToolkit().getImage("imgs/炸彈效果.png");this.image = new ImageIcon(this.image).getImage();public void drawHitting(Graphics2D g)g.drawImage(this.image, this.beginX,this.beginY,this.panel);public void run()
37、while(!this.isRunning)try Thread.sleep(this.liveTime); catch (InterruptedException e) / TODO Auto-generated catch blocke.printStackTrace();this.isRunning = true;public boolean isRunning() return isRunning;public void setRunning(boolean isRunning) this.isRunning = isRunning;package com.stj.views;impo
38、rt java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.LinearGradientPaint;import java.awt.Shape;import java.awt.Frame;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.awt.event.MouseMotionListener;import java.awt.ge
39、om.AffineTransform;import java.awt.geom.Area;import java.awt.geom.Ellipse2D;import java.awt.geom.Point2D;import java.awt.geom.RoundRectangle2D;import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.plaf.basic.BasicGraphicsUtils;import com.sun.awt.AWTUtilities;/* 關(guān)于我們的對話框,關(guān)于游戲的一些信息 *
40、/public class InfoDialog extends JDialog implements MouseMotionListener,MouseListenerprivate static final long serialVersionUID = 1L;protected JFrame frame1;private MyPanel panel;private boolean flag = false;private boolean isDraw = false;private boolean isOutDraw = false;/private MouseInfo mouse;pu
41、blic InfoDialog(Frame frame,boolean modal,MyPanel panel)super(frame,modal);this.panel = panel;this.addMouseMotionListener(this);this.addMouseListener(this);this.setLocation(frame.getBounds().x + 180,frame.getBounds().y + 200);this.setSize(300, 200);this.setUndecorated(true); this.setVisiableRigeon(t
42、his.getWidth(), this.getHeight();this.setVisible(true);public void paint(Graphics g)super.paint(g);Graphics2D g2 = (Graphics2D) g;/g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING , RenderingHints.VALUE_ANTIALIAS_ON);Point2D start = new Point2D.Float(this.getWidth()/2, 0);Point2D end = new Point2
43、D.Float(this.getWidth()/2, this.getHeight();float dist = 0.05f,1.0f;Color colors = new Color(58,95,205), Color.CYAN;LinearGradientPaint p =new LinearGradientPaint (start,end, dist, colors);g2.setPaint(p);g2.fillRect(0,0, this.getWidth(), this.getHeight();String title = new String("關(guān)于我們");g
44、2.setFont(new Font("楷體",Font.BOLD,25);g2.setColor(Color.yellow);BasicGraphicsUtils.drawString(g2, title, 100, 90, 50);String context = new String("本游戲為Java awt和swing組件");g2.setFont(new Font("楷體",Font.BOLD,15);g2.setColor(Color.yellow);BasicGraphicsUtils.drawString(g2, c
45、ontext, 100, 35, 80);String context1 = new String("模擬的休閑小游戲潛艇大戰(zhàn)");g2.setFont(new Font("楷體",Font.BOLD,15);g2.setColor(Color.yellow);BasicGraphicsUtils.drawString(g2, context1, 100, 35, 100);String context2 = new String("由于本人時間有限,沒有對代碼");g2.setFont(new Font("楷體"
46、,Font.BOLD,15);g2.setColor(Color.yellow);BasicGraphicsUtils.drawString(g2, context2, 100, 35, 120);String context3 = new String("進(jìn)行優(yōu)化和界面UI處理,所以有");g2.setFont(new Font("楷體",Font.BOLD,15);g2.setColor(Color.yellow);BasicGraphicsUtils.drawString(g2, context3, 100, 35, 140);String con
47、text4 = new String("很多的不足之處,僅做學(xué)習(xí)之用。");g2.setFont(new Font("楷體",Font.BOLD,15);g2.setColor(Color.yellow);BasicGraphicsUtils.drawString(g2, context4, 100, 35, 160);/g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING , RenderingHints.VALUE_ANTIALIAS_ON);this.repaintShape(); public v
48、oid setVisiableRigeon(int width,int height)Shape shape = new RoundRectangle2D.Float(20,20,this.getWidth() - 40,this.getHeight()-40,15.0f,15.0f);Shape shape2 = new Ellipse2D.Double(this.getWidth() - 40, 10,30,30);Area area = new Area(shape);Area area2 = new Area(shape2);area.add(area2);AWTUtilities.s
49、etWindowShape(this,area);public void mouseClicked(MouseEvent arg0) public void mouseEntered(MouseEvent arg0)/System.out.println("enter");public void mouseExited(MouseEvent arg0) /System.out.println("exit");this.flag = false;this.isDraw = false;if(!this.isOutDraw)/this.repaint(thi
50、s.getWidth() - 40,10,30,30);this.repaintShape();this.isOutDraw = true;public void mousePressed(MouseEvent arg0) int x = arg0.getX();int y = arg0.getY();Shape shape = new Ellipse2D.Double(this.getWidth() - 40, 10, 30, 30);/System.out.print(111111);if(shape.contains(x,y)this.panel.goOn();this.setVisib
51、le(false);public void mouseReleased(MouseEvent arg0) / TODO Auto-generated method stubpublic void mouseDragged(MouseEvent arg0) / TODO Auto-generated method stubpublic void mouseMoved(MouseEvent arg0) int x = arg0.getX();int y = arg0.getY();/System.out.print(x + " ");/System.out.println(y);Shape shape = new Ellipse2D.Double(this.getWidth() - 40, 10, 30, 30);Shape shape2 = new Ellipse2D.Double(this.getWidth() - 40, 10,30,30);Area a
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- JB/T 20208-2024大蜜丸涼丸機
- 統(tǒng)編版二年級語文下冊期末達(dá)標(biāo)測試卷(模擬沖刺)(含答案)
- 湖南省岳陽市臨湘市2024-2025學(xué)年高三下學(xué)期入學(xué)考試物理試題(含答案)
- 2025年軍隊文職人員招聘之軍隊文職政治學(xué)能力提升試卷A卷附答案
- 2023年遼寧省中考地理試卷(含答案)
- 2021-2022學(xué)年廣東省廣州四中教育集團七年級(下)期中數(shù)學(xué)試卷(含答案)
- 護師房顫考試題及答案
- 2025年法律知識競賽判斷題庫及答案
- 智能能源管理平臺開發(fā)合作協(xié)議
- 工業(yè)制造業(yè)技術(shù)創(chuàng)新成果展示表
- 血細(xì)胞分析報告規(guī)范化指南解讀
- 橋梁與地下工程上崗資格考試題庫(濃縮500題)
- 《大學(xué)物理學(xué)》精美課件(全)
- 政府投資項目立項申請表-正面
- me實驗2 電位、電壓的測定及電路電位圖的繪制
- EGCs與腸道微環(huán)境相互作用的研究進(jìn)展
- 三年級下冊英語教材解讀-教材解讀|魯科版(五四學(xué)制)(三起)
- 道路施工導(dǎo)改及施工方案
- 《實數(shù)》單元作業(yè)設(shè)計
- (word完整版)教師個人簡歷模板
- 專題11 以小見大-【幫作文】初中語文之從課文中學(xué)習(xí)寫作 課件(共25張PPT)
評論
0/150
提交評論