版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 面向?qū)ο蟪绦蛟O(shè)計課程設(shè)計報告題 目: 貪吃蛇游戲設(shè)計與實現(xiàn) 院 (系): 信息科學(xué)與工程學(xué)院 專業(yè)班級: 計科1302班 學(xué)生姓名: 毛慧劍 學(xué) 號: 20131101057 指導(dǎo)教師: 蘇瑩 2015年8月31日至2015年9月25日華中科技大學(xué)武昌分校制 面向?qū)ο蟪绦蛟O(shè)計 課程設(shè)計任務(wù)書一、設(shè)計(調(diào)查報告/論文)題目貪吃蛇游戲設(shè)計與實現(xiàn)二、設(shè)計(調(diào)查報告/論文)主要內(nèi)容內(nèi)容:玩家可以通過鍵盤或鼠標(biāo)控制游戲區(qū)。游戲設(shè)定不同級別,級別越高難度越大,玩家可以根據(jù)自己的需要自由設(shè)定初始游戲級別,當(dāng)玩家取得的分?jǐn)?shù)到達(dá)一定水平時游戲自動進(jìn)入下一個級別。游戲以最終玩家獲得的分?jǐn)?shù)來判斷玩家水平的高低。使
2、用Eclipse 和JDK1.6工具,操作系統(tǒng)為WINDOWS,采用面向?qū)ο蠓椒ㄍ瓿?,包括總體設(shè)計、詳細(xì)設(shè)計、編碼實現(xiàn)、測試。設(shè)計要求如下:游戲由模塊組成:游戲區(qū)模塊,游戲控制模塊,級別設(shè)置模塊和幫助模塊。游戲區(qū)模塊,為玩家提供主體游戲功能,能夠處理玩家的各種游戲操作,顯示得分情況,并最終顯示游戲結(jié)果。游戲控制模塊,該模塊為玩家提供游戲控制功能,應(yīng)包括開始游戲,暫停游戲和退出游戲三部分功能。級別設(shè)置模塊為玩家提供自行設(shè)置游戲的初始級別功能,主要提供初級,中級和高級三個游戲初始級別設(shè)置。 三、原始資料1.面向?qū)ο蟪绦蛟O(shè)計課程設(shè)計指導(dǎo)書2. 耿祥義JAVA大學(xué)實用教程北京:清華大學(xué)出版社,2009
3、四、要求的設(shè)計(調(diào)查/論文)成果1.課程設(shè)計報告2.課程設(shè)計軟件五、進(jìn)程安排布置任務(wù),查找資料、需求分析2天總體設(shè)計1天詳細(xì)設(shè)計2天編制源程序?qū)崿F(xiàn)4天測試與修改1天撰寫課設(shè)報告2天六、主要參考資料1 張廣彬. Java課程設(shè)計案例精編(第二版).北京:清華大學(xué)出版社, 2011. 2 耿祥義. Java課程設(shè)計(第二版).北京:清華大學(xué)出版社, 2008.3 耿祥義JAVA大學(xué)實用教程北京:清華大學(xué)出版社,20094 鄒林達(dá)陳國君 Java2程序設(shè)計基礎(chǔ)北京:清華大學(xué)出版社,2010指導(dǎo)教師(簽名): 20 年 月 日目錄1需求與總體設(shè)計11.1總體設(shè)計思路11.2系統(tǒng)主要功能圖11.3系統(tǒng)主
4、要類圖22詳細(xì)設(shè)計32.1 Login類32.2 SnakeFrame類32.3 SnakeModel類32.4 SnakePanel類32. 5 LocationRO類. .42.6 Location類.43.編碼實現(xiàn)43.1 Login類的詳細(xì)代碼43.2 SnakeFrame類的詳細(xì)代碼73.3 SnakeModel類的詳細(xì)代碼123.4 SnakePanel類的詳細(xì)代碼173.5 LocationRO類的詳細(xì)代碼223.6 Location類的詳細(xì)代碼234系統(tǒng)運行與測試254.1程序主界面254.2游戲開始界面254.3游戲操作界面254.4游戲難度設(shè)置界面264.5游戲窗口大小設(shè)置
5、274.6游戲軟件開發(fā)人員介紹275系統(tǒng)使用步驟28總結(jié)291需求與總體設(shè)計1.1總體設(shè)計思路 本系統(tǒng)要進(jìn)行的是貪吃蛇游戲的開發(fā)。這個游戲是在窗口的平臺上進(jìn)行相關(guān)操作的。為了滿足大部分用戶的要求,本游戲必須實現(xiàn)的功能有如下要求:(1)貪吃蛇游戲是大家很常見的小游戲,在生活工作之余大家可以玩它,已達(dá)到放松各種壓力的目的。 (2)游戲可以進(jìn)行升級,也就是增加吃食物的難度,以便使大家更有挑戰(zhàn)性,不覺得太無趣。(3)游戲界面大小可以任意指定,數(shù)據(jù)從文件讀入。(4)利用swing實現(xiàn)良好的GUI界面。(5)基本功能與要求:給出1條小蛇和隨機出一個食物當(dāng)小蛇吃到食物時就加分.良好的用戶界面,有分?jǐn)?shù)顯示,并
6、且可調(diào)節(jié)小蛇運動速度。良好的方塊形狀設(shè)計,繪制小蛇和食物,小蛇有六個方塊組成,食物由1個方塊組成。小蛇可通過鍵盤方向鍵(上、下、左、右鍵)進(jìn)行向上、向下、向左、向右移動。當(dāng)小蛇吃掉一個食物后會變長,并且吃完食物時食物會消失,并立即隨即生成一個新的食物.1.2系統(tǒng)主要功能圖貪吃蛇實現(xiàn)的基本功能:生成登錄窗口界面,登錄進(jìn)入游戲,可以設(shè)置游戲的窗口大小和難度等級 游戲途中有暫停 繼續(xù) 開始等基本功能。同時還設(shè)有游戲幫助等具體游戲操作指示、在加入了軟件開發(fā)人員的相關(guān)信息介紹結(jié)束游戲之后得分在窗口下自動統(tǒng)計得出貪吃蛇游戲設(shè)計游戲設(shè)置結(jié)束游戲得出分?jǐn)?shù) 控制方向進(jìn)入游戲 登陸界面 圖1-1系統(tǒng)功能圖1.3系
7、統(tǒng)主要類圖 圖1-2類圖2詳細(xì)設(shè)計2.1 Login類Login類,登陸界面要求輸入登陸者輸入用戶名和密碼,分別設(shè)Go和Cancel兩個登陸選項。 2.1.1 Login屬性: 用戶名 密碼Go(進(jìn)入游戲) Cancel(取消)操作: Enter() Close()2.2 SnakeFrame類創(chuàng)建游戲窗口主界面。采用圖形界面設(shè)計,有窗體,菜單欄和游戲操作界面。2.3 SnakeModel類此類為蛇的初始化狀態(tài)及模型,所有的游戲的開始都通過此類初始化及對蛇的操作。SnakeModel屬性: rows,cols,snakeHead,runingDiriction,locRO,snake,play
8、Blocks snakeFood,gameScore,AddScore操作: LocationRO getSnakeHead(),LocationRO getSnakeTail(), Location getRuningDiriction(),LinkedList getSnake(), LinkedList getOthers(), getScore(),getAddScore(), setSnakeHead(Location snakeHead),LocationRO getSnakeFood(), setSnakeFood(),moveTo(Object a,LinkedList fro
9、mlist,LinkedList tolist), init(),SnakeModel(int rows1,int cols1),move(Location direction)2.4 SnakePanel類此類為游戲界面創(chuàng)建蛇的面板和蛇的移動控制實現(xiàn)SnakePanel屬性:gridsPanel, row; col; gridsPanel;direction;snake; snakeBody; otherBlocks;snakeHead; snakeFood; gameScore=0; speed; AddScore; t; isEnd; notExit;操作:SnakePanel(Snak
10、eFrame parent,int row,int col),newGame(long speed)stopGame(),returnGame(),getGameScore(),updateTextFiled(String str)updateColors(),run(),keyPressed(KeyEvent event)keyReleased(KeyEvent event),keyTyped(KeyEvent event)change(SnakeFrame parent,int row2, int col2)2.5 LocationRO類隨機生成的食物位置。用來隨機生成食物。引導(dǎo)蛇的移動方
11、向。2.6 Location類對蛇的位置的描述類Location屬性: x y操作:Location(int x,int y) ,getX(),getY(),setX(int x),setY(int y) ,equalOrRev(Location e),equals(Location e) ,reverse(Location e)3編碼實現(xiàn)1.Login類/登陸界面public class Login extends JFrame private TextField f1;/創(chuàng)建文本框private TextField f2;private JButton b1;/創(chuàng)建按鈕private JB
12、utton b2;public Login() /登陸界面Container cp=getContentPane();/獲取容器cp.setLayout(new GridLayout(4,1);/設(shè)置布局管理為網(wǎng)格四行一列Label l1=new Label("用戶名");/創(chuàng)建標(biāo)簽了l1,l2Label l2=new Label("密 碼"); Panel p1=new Panel();/創(chuàng)建面板,p1,p2,p3,p4Panel p2=new Panel();Panel p3=new Panel();MyPanel1 p4=new MyPanel1(
13、);/創(chuàng)建插入圖片平面p4f1=new TextField(10);f2=new TextField(10);f2.setEchoChar('*');/回顯字符為* 用于輸入密碼,設(shè)置為不可見b1=new JButton("確定");/新建按鈕b1,b2b2=new JButton("取消");p1.add(l1);/第一行添加label 1p1.add(f1);p2.add(l2);p2.add(f2);p3.add(b1);p3.add(b2);cp.add(p4);/面板p4,p1,p2,p3分別加入容器cpcp.add(p1);c
14、p.add(p2);cp.add(p3);b1.addActionListener(new Enter();/添加按鈕事件響應(yīng)b2.addActionListener(new Close(); JFrame.setDefaultLookAndFeelDecorated(true); SnakeFrame frame=new SnakeFrame();/創(chuàng)建游戲主界面 frame.setSize(frame.col*11+11,frame.row*11+100); frame.setResizable(false); frame.setLocation(500,200);/設(shè)置窗體位置 fram
15、e.setTitle("瘋狂貪吃蛇"); frame.setVisible(true); else JOptionPane.showMessageDialog(null, "用戶名或密碼錯誤,請重新登錄!");/錯誤用戶提示class Close implements ActionListener /關(guān)閉登陸按鈕響應(yīng)public void actionPerformed(ActionEvent e) JButton bt=(JButton)e.getSource();if(bt=b2) System.exit(0);/退出/主函數(shù) 程序開始public
16、static void main(String args) Login log=new Login(); log.setTitle("瘋狂貪吃蛇界面登陸"); log.setBounds(500, 200, 300, 300); log.setBackground(Color.blue); log.setVisible(true);class MyPanel1 extends JPanel /插入登陸界面圖片Image img=Toolkit.getDefaultToolkit().getImage("imgs/201.jpg");/添加圖片public
17、 void paint(Graphics g) g.drawImage(img,0,0,this);2.SnakeFrame 類public class SnakeFrame extends JFrame implements ActionListenerint row=30;int col=45;SnakePanel p=new SnakePanel(this,row,col);JMenuBar menubar=new JMenuBar();/菜單條JMenu fileMenu=new JMenu("文件");/菜單JMenuItem newgameitem=new JM
18、enuItem("開始");/菜單條目JMenuItem stopitem=new JMenuItem("暫停");JMenuItem runitem=new JMenuItem("繼續(xù)");JMenuItem exititem=new JMenuItem("退出"); /"設(shè)置"菜單JMenu optionMenu=new JMenu("設(shè)置"); /* * 等級選項 * ButtonGroup 創(chuàng)建一組按鈕選項 * JRadioButtonMenuItem 是屬于一組菜單
19、項中的一個菜單項,該組中只能選擇一個項。 * 被選擇的項顯示其選擇狀態(tài)。選擇此項的同時,其他任何以前被選擇的項都切換到未選擇狀態(tài)。 * Panel 是最簡單的容器類。應(yīng)用程序可以將其他組件放在面板提供的空間內(nèi),這些組件包括其他面板。 */ JMenu degreeMenu=new JMenu("等級"); ButtonGroup groupDegree = new ButtonGroup(); JRadioButtonMenuItem oneItem= new JRadioButtonMenuItem("初級"); JRadioButtonMenuIte
20、m twoItem= new JRadioButtonMenuItem("中級"); JRadioButtonMenuItem threeItem= new JRadioButtonMenuItem("高級"); / 設(shè)置“窗口大小”菜單 JMenu windowsMenu = new JMenu("窗口大小"); JMenu windowsMenu1 = new JMenu("視圖"); ButtonGroup groupDegree1 = new ButtonGroup(); JRadioButtonMenuI
21、tem minItem= new JRadioButtonMenuItem("小"); JRadioButtonMenuItem midItem= new JRadioButtonMenuItem("中"); JRadioButtonMenuItem maxItem= new JRadioButtonMenuItem("大"); / 設(shè)置“作者信息”菜單 JMenu XinXi=new JMenu("關(guān)于開發(fā)者"); JMenuItem XinXiItem=new JMenuItem("軟件相關(guān)"
22、;); /設(shè)置“幫助”菜單 JMenu helpMenu=new JMenu("幫助"); JMenuItem helpItem=new JMenuItem("操作指南"); /可以被選定或取消選定的菜單項. final JCheckBoxMenuItem showGridItem = new JCheckBoxMenuItem("顯示網(wǎng)格"); JLabel scorelabel;/為分?jǐn)?shù)創(chuàng)建標(biāo)簽 public JTextField scoreField;/顯示分?jǐn)?shù)的文本框 private long speedtime=200; p
23、rivate String helpstr = "游戲說明:n1 :方向鍵控制蛇移動的方向."+ "n2 :單擊菜單'文件->開始'開始游戲."+ "n3 :單擊菜單'文件->暫停'或者單擊鍵盤空格鍵暫停游戲."+ "n4 :單擊菜單'文件->繼續(xù)'繼續(xù)游戲."+ "n5 :單擊菜單'設(shè)置->等級'可以設(shè)置難度等級."+ "n6 :單擊菜單'設(shè)置->顯示網(wǎng)格'可以設(shè)置是否顯示網(wǎng)
24、格."+ "n7 :紅色為食物,吃一個得30分同時蛇身加長."+ "n8 :蛇不可以出界或自身相交,否則結(jié)束游戲."SnakeFrame() scoreField.setHorizontalAlignment(0);/設(shè)置圖標(biāo)和文本的水平對齊方式JPanel toolPanel=new JPanel();toolPanel.add(scorelabel);toolPanel.add(scoreField);contentpane.add(toolPanel);/事件監(jiān)聽 使得按鈕可以響應(yīng) showGridItem.addActionListen
25、er(this);public void actionPerformed(ActionEvent e) / 事件響應(yīng) 從接口 ActionListener 復(fù)制的描述 ,發(fā)生操作時調(diào)用。 try/異常捕獲 if(e.getSource()=helpItem) JOptionPane.showConfirmDialog(p,helpstr,"操縱說明",JOptionPane.PLAIN_MESSAGE); else if(e.getSource()=exititem) JOptionPane.showConfirmDialog(null, "你確定退出游戲嗎?&q
26、uot;, " ", JOptionPane.showMessageDialog(this,"瘋狂貪吃蛇nn武昌首義學(xué)院n信息科學(xué)與工程學(xué)院n計算機科學(xué)與技術(shù)" +"n學(xué)號:20131101057" +"n姓名: 毛慧劍n指導(dǎo)老師:蘇瑩n2015年9月", "軟件相關(guān)",JOptionPane.INFORMATION_MESSAGE); else if(e.getSource()=midItem) row=40;col=60; p.change(this,row,col); this.setSi
27、ze(col*11+11,row*11+100); else if(e.getSource()=maxItem) row=50;col=70; p.change(this,row,col); this.setSize(col*11+11,row*11+100); catch(Exception ee)ee.printStackTrace();/異常處理3.SnakeModelimport java.util.LinkedList;import javax.swing.JOptionPane;public class SnakeModel private int rows,cols;/行列數(shù)pr
28、ivate Location snakeHead,runingDiriction;/運行方向private LocationRO locRO;/LocationRO類數(shù)組private LinkedList snake,playBlocks;/蛇及其它區(qū)域塊private LocationRO snakeFood;/目標(biāo)食物private int gameScore=0; /分?jǐn)?shù)private boolean AddScore=false;/加分 /獲得蛇頭public LocationRO getSnakeHead() return (LocationRO)(snake.getLast();
29、/蛇尾public LocationRO getSnakeTail()return (LocationRO)(snake.getFirst();/運行路線public Location getRuningDiriction()return runingDiriction;/獲得蛇實體區(qū)域public LinkedList getSnake()return snake;private void setSnakeHead(Location snakeHead)this.snakeHead=snakeHead; /獲得目標(biāo)食物public LocationRO getSnakeFood()retur
30、n snakeFood;/隨機設(shè)置目標(biāo)食物private void moveTo(Object a,LinkedList fromlist,LinkedList tolist)fromlist.remove(a);tolist.add(a); public void init()playBlocks.clear();snake.clear();gameScore=0; for(int i=0;i<rows;i+) for(int j=0;j<cols;j+) playBlocks.add(locROij); /初始化蛇的形狀 for(int i=4;i<6;i+) moveT
31、o(locRO4i,playBlocks,snake); /蛇頭位置 snakeHead=new Location(4,6); /設(shè)置隨機塊 snakeFood=new LocationRO(0,0); setSnakeFood(); /初始化運動方向 init();/ /*定義布爾型move方法,如果運行成功則返回true,否則返回false/*參數(shù)direction是Location類型,/*direction 的值:(-1,0)表示向上;(1,0)表示向下;/*(0,-1)表示向左;(0,1)表示向右;/*/public boolean move(Location direction)/
32、判斷設(shè)定的方向跟運行方向是不是相反if (direction.reverse(runingDiriction)snakeHead.setX(snakeHead.getX()+runingDiriction.getX();snakeHead.setY(snakeHead.getY()+runingDiriction.getY();elsesnakeHead.setX(snakeHead.getX()+direction.getX();snakeHead.setY(snakeHead.getY()+direction.getY();/如果蛇吃到了目標(biāo)食物tryif (snakeHead.getX(
33、)=snakeFood.getX()&&(snakeHead.getY()=snakeFood.getY()moveTo(locROsnakeHead.getX()snakeHead.getY(),playBlocks,snake);setSnakeFood();gameScore+=30;AddScore=true;elseAddScore=false;/是否出界if(snakeHead.getX()<rows)&&(snakeHead.getY()<cols)&&(snakeHead.getX()>=0&&(
34、snakeHead.getY()>=0)/如果不出界,判斷是否與自身相交if(snake.contains(locROsnakeHead.getX()snakeHead.getY()/如果相交,結(jié)束游戲JOptionPane.showMessageDialog(null, "Game Over!", "游戲結(jié)束", JOptionPane.INFORMATION_MESSAGE);return false;else/如果不相交,就把snakeHead加到snake里面,并且把尾巴移出moveTo(locROsnakeHead.getX()snake
35、Head.getY(),playBlocks,snake);moveTo(snake.getFirst(),snake,playBlocks);elsereturn true;4、SnakePanel類public class SnakePanel extends JPanel implements Runnable,KeyListenerJFrame parent=new JFrame();private int row; /網(wǎng)格行數(shù) 30-341 60-671 40-451private int col; /列數(shù)private JPanel gridsPanel; /面板網(wǎng)格private
36、 Location direction;/方向定位private SnakeModel snake; /貪吃蛇private LinkedList snakeBody; /蛇的身體private LinkedList otherBlocks; /其他區(qū)域private LocationRO snakeHead; /蛇的頭部private LocationRO snakeFood; /目標(biāo)食物private Color bodyColor=Color.blue;/蛇的身體顏色private Color headColor=Color.red; /蛇的頭部顏色private Color foodC
37、olor=Color.pink; /目標(biāo)食物顏色private Color othersColor=Color.white;/其他區(qū)域顏色private int gameScore=0; /總分private long speed; /速度(難度設(shè)置)private boolean AddScore;/加分private Thread t; /線程private boolean isEnd; /暫停private static boolean notExit; /構(gòu)造器,初始化操作public SnakePanel(SnakeFrame parent,int row,int col)chang
38、e(parent,row,col); /開始游戲public void newGame(long speed)this.speed=speed;if (notExit) snake.init();/初始化elserequestFocus();direction.setX(0);direction.setY(1);gameScore=0;updateTextFiled(""+gameScore);isEnd=false; /暫停游戲public void stopGame()requestFocus();isEnd=true; /繼續(xù)public void returnGam
39、e()requestFocus();isEnd=false; /獲得總分public int getGameScore()return gameScore;/更新總分private void updateTextFiled(String str)(SnakeFrame)parent).scoreField.setText(str);/更新各相關(guān)單元顏色private void updateColors() / 設(shè)定蛇身顏色snakeBody=snake.getSnake();Iterator i =snakeBody.iterator();while(i.hasNext()LocationRO
40、 t=(LocationRO)(i.next();gridsPanelt.getX()t.getY().setBackground(bodyColor);/設(shè)定蛇頭顏色snakeHead=snake.getSnakeHead();gridsPanelsnakeHead.getX()snakeHead.getY().setBackground(headColor);/設(shè)定背景顏色otherBlocks=snake.getOthers();i =otherBlocks.iterator();while(i.hasNext()LocationRO t=(LocationRO)(i.next();gr
41、idsPanelt.getX()t.getY().setBackground(othersColor);/設(shè)定臨時塊的顏色/實現(xiàn)Runnable接口public void run() while(true)tryThread.sleep(speed);catch (InterruptedException e) if(!isEnd)isEnd=!snake.move(direction);updateColors(); if(snake.getAddScore()gameScore+=10;updateTextFiled(""+gameScore);/實現(xiàn)KeyListen
42、er接口public void keyPressed(KeyEvent event) int keyCode = event.getKeyCode(); if(notExit) if (keyCode = KeyEvent.VK_LEFT) /向左 direction.setX(0); direction.setY(-1); else if (keyCode = KeyEvent.VK_RIGHT) /向右 direction.setX(0); direction.setY(1); else if (keyCode = KeyEvent.VK_UP) /向上 direction.setX(-1
43、); direction.setY(0); else if (keyCode = KeyEvent.VK_DOWN) /向下 direction.setX(1); direction.setY(0); else if (keyCode = KeyEvent.VK_SPACE) /空格鍵 isEnd=!isEnd;public void keyReleased(KeyEvent event)public void keyTyped(KeyEvent event)public void change(SnakeFrame parent,int row2, int col2) this.row=ro
44、w2;this.col=col2;this.parent=parent;gridsPanel=new JPanelrowcol;5. LocationRO類public class LocationRO private int x;private int y;LocationRO(int x,int y) this.x=x;this.y=y;int getX() return x; int getY()return y;public boolean equalOrRev(LocationRO e) return (e.getX()=getX()&&(e.getY()=getY()|(e.getX()=getX()&&(e.getY()=-1*getY()|(e.getX()=-1*getX()&&(e.getY()=getY();public boolean equals(LocationRO e) return(e.getX()=getX()&&(e.getY()=getY();public boolean reverse(LocationR
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024生鮮乳電商平臺定制購銷及品牌推廣合同3篇
- 二手店鋪過戶協(xié)議模板版B版
- 二零二五年度豪華酒店建筑工程施工總承包合同2篇
- 二零二五年度安置房項目環(huán)保驗收合同6篇
- 二零二五年海洋平臺用鋼板租賃服務(wù)協(xié)議3篇
- 二零二五年度高等教育機構(gòu)教師聘期管理勞動合同范本3篇
- 二零二五年食品安全生產(chǎn)責(zé)任賠償合同3篇
- 武漢工貿(mào)職業(yè)學(xué)院《珠寶商務(wù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年度智能安防產(chǎn)品集成與調(diào)試合同3篇
- 2024銅門制安工程物流服務(wù)合同
- 小學(xué)四年級數(shù)學(xué)知識點總結(jié)(必備8篇)
- GB/T 893-2017孔用彈性擋圈
- GB/T 11072-1989銻化銦多晶、單晶及切割片
- GB 15831-2006鋼管腳手架扣件
- 醫(yī)學(xué)會自律規(guī)范
- 商務(wù)溝通第二版第4章書面溝通
- 950項機電安裝施工工藝標(biāo)準(zhǔn)合集(含管線套管、支吊架、風(fēng)口安裝)
- 微生物學(xué)與免疫學(xué)-11免疫分子課件
- 《動物遺傳育種學(xué)》動物醫(yī)學(xué)全套教學(xué)課件
- 弱電工程自檢報告
- 民法案例分析教程(第五版)完整版課件全套ppt教學(xué)教程最全電子教案
評論
0/150
提交評論