畢業(yè)論文基于Java的拼圖游戲設計

上傳人:仙*** 文檔編號:27849537 上傳時間:2021-08-21 格式:DOC 頁數(shù):28 大?。?60.50KB
收藏 版權申訴 舉報 下載
畢業(yè)論文基于Java的拼圖游戲設計_第1頁
第1頁 / 共28頁
畢業(yè)論文基于Java的拼圖游戲設計_第2頁
第2頁 / 共28頁
畢業(yè)論文基于Java的拼圖游戲設計_第3頁
第3頁 / 共28頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《畢業(yè)論文基于Java的拼圖游戲設計》由會員分享,可在線閱讀,更多相關《畢業(yè)論文基于Java的拼圖游戲設計(28頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、目 錄1 開發(fā)環(huán)境及相關技術的介紹11.1 開發(fā)環(huán)境11.2 Java語言特點12 游戲?qū)崿F(xiàn)功能解析及界面12.1游戲規(guī)則介紹12.2游戲?qū)崿F(xiàn)功能22.2.1主窗口界面22.2.2主窗口菜單32.2.3 游戲過程中的出現(xiàn)的相關窗體63 游戲程序?qū)崿F(xiàn)83.1 程序類主要功能介紹83.2 程序源代碼94 小結27基于Java的拼圖游戲設計1 開發(fā)環(huán)境及相關技術的介紹1.1 開發(fā)環(huán)境操作系統(tǒng):Microsoft Windows XP程序語言:Java 開發(fā)環(huán)境:JDK-6u6-windows-i586-P1.2 Java語言特點1). 平臺無關性Java引進虛擬機原理,并運行于虛擬機,實現(xiàn)不同平臺之

2、間的Java接口。Java的數(shù)據(jù)類型與機器無關。2). 安全性Java的編程類似C+,但舍棄了C+的指針對存儲器地址的直接操作,程序運行時,內(nèi)存由操作系統(tǒng)分配,這樣可以避免病毒通過指針入侵系統(tǒng)。它提供了安全管理器,防止程序的非法訪問。3). 面向?qū)ο?Java吸收了C+面向?qū)ο蟮母拍?,將?shù)據(jù)封裝于類中,實現(xiàn)了程序的簡潔性和便于維護性,使程序代碼可以只需一次編譯就可反復利用。4). 分布式Java建立在TCP/IP網(wǎng)絡平臺上,提供了用HTTP和FTP協(xié)議傳送和接收信息的庫函數(shù),使用其相關技術可以十分方便的構建分布式應用系統(tǒng)。5). 健壯性Java致力與檢查程序在編譯和運行時的錯誤,并自動回收內(nèi)存

3、,減少了內(nèi)存出錯的可能性。Java取消了C語言的結構、指針、#define語句、多重繼承、goto語句、操作符、重載等不易被掌握的特性,提供垃圾收集器自動回收不用的內(nèi)存空間。2 游戲?qū)崿F(xiàn)功能解析及界面2.1游戲規(guī)則介紹1)本游戲是一個Java語言的拼圖游戲,有一個格子是空的,其他格子內(nèi)隨機放置由要拿來拼圖的圖片切割成的若干個小圖片,圖片的切割按照一定的公式計算,因為,該通過單擊任意一個與空格子相鄰的方塊可以把該方游戲中設有拼圖游戲的等級,根據(jù)不同的等級,按照公式會切割成不同的小圖片塊數(shù)。2)在開始游戲之前,可以選擇游戲等級后再點擊“開始”菜單里的“新游戲”,進行拼圖游戲,通過將空格旁邊的小圖片

4、移入空格子內(nèi)(不斷的移動方塊),來實現(xiàn)拼圖,直到方塊一行一行的按圖片的原始樣子拼好即可完成該游戲。3)游戲拼完后,會彈出一個“信息”框,顯示你玩游戲所用的步數(shù)與時間,點擊“確定”后,會彈出一個“輸入”框,可以在里面輸入游戲者的姓名,單擊“確定”后會彈出游戲的記錄框。4)游戲的簡單規(guī)則在游戲界面的“關于”菜單內(nèi)的“幫助”信息框內(nèi)已經(jīng)簡單介紹了。游戲前可以先預覽看看。2.2游戲?qū)崿F(xiàn)功能2.2.1主窗口界面 1) 游戲初始狀態(tài) 當游戲剛運行時,會出現(xiàn)如下界面,本游戲中已經(jīng)存在了三張圖片,如過游戲者想拼自己感興趣的圖片的話,可以將自己的圖片放入到“background”(背景圖片)文件夾中,再進行“選

5、擇”-“背景圖片”中選擇你自己的圖片,然后選擇“等級”-“困難”或“普通”或“簡單”,進行等級選擇,最后選擇“開始”-“新游戲”就可以拼自己想拼的圖了。初始窗口如圖1所示:圖1 游戲初始窗口2)游戲進行狀態(tài)當游戲者選擇好圖片與等級后,就可以進行拼圖游戲了及進入游戲的進行狀態(tài)。其游戲進行狀態(tài)如圖2所示:圖2 游戲進行狀態(tài)3)游戲暫停狀態(tài) 當游戲者,在游戲過程中半途暫停游戲的話,將出現(xiàn)如圖3所示的游戲暫停狀態(tài)的界面。當游戲者又想繼續(xù)游戲時,直接單擊界面上的“繼續(xù)”字樣,就可以繼續(xù)游戲了。 圖3 游戲暫停狀態(tài)2.2.2主窗口菜單在游戲的主窗口菜單中包括如下幾個菜單:(1)“開始”菜單。包括了,“新游

6、戲” 、“成績記錄” 、“圖片預覽” 、“退出游戲” 。如圖4所示。 “新游戲” :單擊可以開始游戲,如圖2所示游戲進行狀態(tài)。 “成績記錄” :單擊可以查看游戲者的游戲成績記錄。如圖5所示。初始的成績記錄。 “圖片預覽” :在游戲過程中可以單擊預覽圖片,對照著拼,如圖6所示。 “退出游戲” :游戲者要結束游戲可直接單擊退出游戲。 圖4 開始菜單 圖5初始成績記錄圖6 圖片預覽 (2)“選擇”菜單。包括了,“等級”、“背景圖片”。如圖7所示。當運行游戲時,如果沒有把“background”這個文件夾放入主程序的目錄下,在運行游戲選擇背景圖片時,將沒有圖片可選,界面如圖8所示,這是可以按照“初始狀

7、態(tài)”界面上的提示進行操作。若正常的有“background”在主程序路徑下的話,運行游戲選擇背景圖片的話,就可以選擇圖片了,界面如圖9所示。 “等級” :在游戲者開始游戲之前,要進行游戲等級選擇,共有困難、普通、簡單三種選擇。其圖片的切割塊數(shù),會根據(jù)選擇的等級不同,而有所不同。簡單的是一共8個小圖片。 “背景圖片” :這里保存了所要拼的所有圖片。在游戲前要進行選擇。 圖7 圖8圖9(3)“關于”菜單。包括了“幫助”、“關于”兩個下拉菜單。如圖10所示。圖10“關于”菜單“幫助”:在游戲時,可以單擊查看游戲的簡單規(guī)則,界面如圖11所示?!瓣P于”:可查看該游戲的版本、作者、與作者的Email的相關

8、信息,界面如圖12所示。圖11 “幫助”信息框圖12 下拉單“關于”的消息框 2.2.3 游戲過程中的出現(xiàn)的相關窗體 (1)提示信息窗口 當游戲者運行游戲時,如果沒有把“background”這個文件夾放入主程序的目錄下,在運行游戲選擇背景圖片時,將沒有圖片可選,若此時直接“開始”-“新游戲”,將會彈出如下提示信息框。如圖13所示。圖13 提示信息框 (2) 拼圖成功界面 若選擇abc.jpg圖片拼圖時,若拼圖成功,界面如圖14所示。 圖14 拼圖成功 (3)成績記錄輸入框 當游戲者完成拼圖游戲后,將出現(xiàn)一個成績記錄框(“輸入”框),輸入游戲者的姓名。如圖15所示。輸入后單擊確定按鈕,將彈出總

9、的成績記錄框。如圖16所示。圖15(a) 輸入前 圖15 (b) 輸入后 圖16 成績記錄框3 游戲程序?qū)崿F(xiàn)3.1 程序類主要功能介紹 該游戲程序中包括11個類。包括: ButtonClick.class、CardFrame.class、GameOver.class、Data.class 、Grades.class、Matrix.class、MenuFrame.class、 point.class、Puzzle.class、ShowImage.class、Split.class。其中主要的類實現(xiàn)的功能如下:1) ButtonClick.class該類主要是實現(xiàn)鼠標事件,讓玩家在用鼠標點擊能夠移

10、動拼圖的小圖片,移動到周圍空格的地方2) CardFrame.class該類主要實現(xiàn),初始界面的相關提示信息。3)GameOver.class 該類主要實現(xiàn)游戲過程中的計時、暫停、結束等功能,游戲結束時的信息。4) Data.class 該類主要實現(xiàn)保存游戲者的游戲成績記錄的相關數(shù)據(jù)。5)Grades.class 該類主要實現(xiàn)成績記錄的初始化,在拼圖成功后可記錄游戲者姓名的功能,并直接提取等級、步數(shù)與時間等信息的功能。保存成績記錄信息,以便游戲者查看。6)MenuFrame.class 該類主要實現(xiàn)有主菜單與子菜單的功能。并設置相關的快捷鍵功能。7)Puzzle.class 該類是該游戲程序的

11、主程序,從游戲界面大小到游戲過程中出現(xiàn)的所有信息框等相關功能都都到了實現(xiàn),調(diào)用相關類實現(xiàn)其功能。8)ShowImage.class 該類主要實現(xiàn)圖片的提取與切割的功能。3.2 程序源代碼1)Arg.javapublic interface Argpublic static final String path = background;public static final String rc = Game.rc;2) ButtonClick.java import java.awt.event.ActionEvent;import java.awt.event.ActionListener;i

12、mport javax.swing.JButton;import javax.swing.JOptionPane;public class ButtonClick implements ActionListenerprivate JButton button;private point pint;private int row;private int cal;private int matrix;private GameOver gOver;private boolean end;public ButtonClick(JButton b, point p, int m, int r, int

13、c, GameOver g)button = b;pint = p;matrix = m;row = r;cal = c;gOver = g;end = false;public void actionPerformed(ActionEvent e)if (end | !pint.neighbor(row, cal)return;int r = pint.getRow();int c = pint.getCal();buttonrc.setIcon(buttonrowcal.getIcon();buttonrowcal.setIcon(null);pint.set(row, cal);int

14、t = matrixrc;matrixrc = matrixrowcal;matrixrowcal = t;end = gOver.judge();3) CardFrame.javaimport java.awt.BorderLayout;import java.awt.CardLayout;import java.awt.Container;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowEvent;import java.awt.event.

15、WindowAdapter;import javax.swing.JButton;import javax.swing.JLabel;import javax.swing.JPanel;public abstract class CardFrame extends MenuFrameprivate CardLayout card;private Container con;protected JPanel panel = new JPanel(), new JPanel();public CardFrame()con = this.getContentPane();card = new Car

16、dLayout();con.setLayout(card);panel0.setLayout(null);JLabel label;label = new JLabel(請輸入你的圖片到);label.setBounds(10, 15, 190, 30);panel0.add(label);label = new JLabel(背景圖片文件夾。n);label.setBounds(10, 30, 190, 45);panel0.add(label);label = new JLabel(單擊選擇-背景圖片);label.setBounds(10, 50, 190, 65);panel0.add

17、(label);label = new JLabel(選擇圖片。n);label.setBounds(10, 65, 190, 80);panel0.add(label);label = new JLabel(接著, 單擊 開始-新游戲 可以);label.setBounds(10, 85, 190, 100);panel0.add(label);label = new JLabel(開始游戲。);label.setBounds(10, 100, 190, 115);panel0.add(label);panel1.setLayout(new BorderLayout();JButton bu

18、tton = new JButton(繼 續(xù));button.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)FrameGetFocus(););panel1.add(button, BorderLayout.CENTER);con.add(panel0, 游戲);con.add(panel1, 暫停);card.show(con, 游戲);this.addWindowListener(new WindowAdapter()public void windowDeactivated(

19、WindowEvent e)FrameLostFocus(););protected void nextCard()card.next(con);protected abstract void FrameLostFocus();protected abstract void FrameGetFocus();4) GameOver.javaimport java.util.Date;public class GameOverprivate boolean gameOver;private boolean stop;private int matrix;private Puzzle Main;pr

20、ivate int step;private long now;private long countTime;public GameOver (Puzzle frm)Main = frm;public void start(int m)gameOver = false;matrix = m;step = 0;Date d = new Date();now = d.getTime();stop = false;countTime = 0;public boolean judge()if (gameOver)return true;step+;int c = 1;for (int i = 0; i

21、 matrix.length; i+)for (int j = 0; j datatype.time | (t = datatype.time & s = datatype.step)return;datatype.name = JOptionPane.showInputDialog(null,你打破了記錄!n請輸入你的名字。);datatype.time = t;datatype.step = s;tryPrintStream f = new PrintStream(Arg.rc);f.printf(%s %d %dn, data0.name, data0.time, data0.step)

22、;f.printf(%s %d %dn, data1.name, data1.time, data1.step);f.printf(%s %d %dn, data2.name, data2.time, data2.step);f.close();catch (Exception e)JOptionPane.showMessageDialog(null, Arg.rc + has broken!);show();public void show()trycreatData();readData();String title = .format(%8s%15s%8s%8sn, 等級, 姓名, 時間

23、, 步數(shù));String h = .format(%8s%15s%8d%8dn, 困難, data0.name, data0.time, data0.step);String n = .format(%8s%15s%8d%8dn, 普通, data1.name, data1.time, data1.step);String e = .format(%8s%15s%8d%8dn, 簡單, data2.name, data2.time, data2.step);JOptionPane.showMessageDialog(null, title+h+n+e);catch (Exception e)J

24、OptionPane.showMessageDialog(null, Arg.rc + has broken!);6) Matrix.javaimport java.awt.image.BufferedImage;import javax.swing.JPanel;import javax.swing.JButton;import javax.swing.ImageIcon;public class Matrixprivate JButton button;private JPanel panel;private int row;private int cal;private int matr

25、ix;private GameOver gOver;public Matrix(JButton b, JPanel p, int len, GameOver g)this.button = b;this.panel = p;this.gOver = g;row = b.length;cal = b0.length;matrix = new introwcal;matrixrow-1cal-1 = row * cal;gOver.start(matrix);panel.removeAll();point pint = new point(row-1, cal-1);for (int i = 0;

26、 i row; i+)for (int j = 0; j cal; j+)buttonij = new JButton();buttonij.setBounds(j*len, i*len, len, len);buttonij.addActionListener(new ButtonClick(button, pint, matrix, i, j, gOver);panel.add(buttonij);public void init(BufferedImage image)if (button = null | image = null)return;ImageIcon icon;int r

27、, c, rad, d, m;boolean visit = new booleanrow*cal-1;for (int i = 0; i row*cal - 1; i+)r = i / cal;c = i % cal;rad = (int)(Math.random()*(row*cal-1-i);for (d = m = 0; d row*cal - 1 & m = rad; d+)if (!visitd)m+;matrixi/cali%cal = d;visit-d = true;icon = new ImageIcon(imaged/cald%cal);buttoni/cali%cal.

28、setIcon(icon);7) MenuFrame.javaimport java.io.File;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JRadioButtonMenuItem;import javax.swing.ButtonGroup

29、;import javax.swing.KeyStroke;public abstract class MenuFrameextends JFramepublic final static int heightTitle = 30;public final static int widthTitle = 6;public final static int heightMenu = 27;private JMenu m = new JMenu(開始(B),new JMenu(選擇(O),new JMenu(關于(A) ;private JMenu mm = new JMenu(等級(L),new

30、 JMenu(背景圖片(B);private boolean update;private int type;private String filename;protected ButtonGroup bgrp = new ButtonGroup();protected ButtonGroup fgrp = new ButtonGroup();public MenuFrame()super(拼圖游戲);addMenu();this.setResizable(false);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setSize(widt

31、hTitle, heightTitle+heightMenu);this.setLocation(this.getToolkit().getScreenSize().width/3 - this.getWidth()/3,this.getToolkit().getScreenSize().height/3 - this.getHeight()/3);private void addMenu()JMenuBar mBar = new JMenuBar();this.setJMenuBar(mBar);mBar.add(m0);mBar.add(m1);mBar.add(m2);m0.setMne

32、monic(B);m1.setMnemonic(O);m2.setMnemonic(A);initMenuBegin();initMenuOption();initMenuAbout();update = false;public abstract void menuNewClick();public abstract void menuGradesClick();public abstract void menuShowClick();public abstract void menuExitClick();private void menuLevelClick(String nm)type

33、 = 3;if (nm.equals(困難)type = 0;else if (nm.equals(普通)type = 1;else if (nm.equals(簡單)type = 2;private void menuBackgroundClick(String nm)filename = nm;public abstract void menuHelpClick();public abstract void menuAboutClick();public int getType()return type;public String getFilename()return filename;

34、private void initMenuBegin()JMenuItem mI = new JMenuItem(新游戲(N),new JMenuItem(成績記錄(G),new JMenuItem(退出游戲(E);mI0.setMnemonic(N);mI1.setMnemonic(G);mI2.setMnemonic(E);mI0.setAccelerator(KeyStroke.getKeyStroke(ctrl N);mI2.setAccelerator(KeyStroke.getKeyStroke(ctrl W);mI0.addActionListener(new ActionLis

35、tener()public void actionPerformed(ActionEvent e)menuNewClick(););mI1.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)menuGradesClick(););mI2.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)menuExitClick(););m0.add(mI0);m0.add(mI1);m0.a

36、dd(mI2);m0.insertSeparator(2);private void initMenuOption()mm0.setMnemonic(L);mm1.setMnemonic(B);m1.add(mm0);m1.add(mm1);initMenuLevel();initMenuBackground();private void initMenuLevel()JRadioButtonMenuItem mi = new JRadioButtonMenuItem(困難),new JRadioButtonMenuItem(普通),new JRadioButtonMenuItem(簡單) ;

37、for (int i = 0; i 3; i+)mii.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)JRadioButtonMenuItem mi = (JRadioButtonMenuItem)e.getSource();menuLevelClick(mi.getText(););bgrp.add(mii);mm0.add(mii);mi1.setSelected(true);menuLevelClick(mi1.getText();public void initMenuBa

38、ckground()mm1.removeAll();File bkg = new File(Arg.path);if (!bkg.exists()return;File list = bkg.listFiles();JRadioButtonMenuItem mi;int j = 0;for (int i = 0; i list.length; i+)if (!listi.isFile() | listi.isHidden()continue;mi = new JRadioButtonMenuItem(listi.getName();mi.addActionListener(new Action

39、Listener()public void actionPerformed(ActionEvent e)JRadioButtonMenuItem mi = (JRadioButtonMenuItem)e.getSource();menuBackgroundClick(mi.getText(););fgrp.add(mi);mm1.add(mi);mi.setSelected(j = 0);if (j = 0)menuBackgroundClick(mi.getText();j+;private void initMenuAbout()JMenuItem mI = new JMenuItem(幫

40、助(H),new JMenuItem(關于(A);mI0.setMnemonic(H);mI1.setMnemonic(A);mI0.setAccelerator(KeyStroke.getKeyStroke(F1);mI0.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)menuHelpClick(););mI1.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)menuA

41、boutClick(););m2.add(mI0);m2.add(mI1);public void updateMenuBegin()update = !update;if (!update)m0.remove(2);return;JMenuItem mi = new JMenuItem(圖片預覽(S);mi.setMnemonic(S);mi.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)menuShowClick(););m0.insert(mi, 2);8) point.ja

42、vapublic class pointint row;int cal;public point(int r, int c)row = r;cal = c;public void set(int r, int c)row = r;cal = c;public int getRow()return row;public int getCal()return cal;public boolean neighbor(int r, int c)int n = Math.abs(row - r) + Math.abs(cal - c);return n = 1;9) Puzzle.javaimport

43、java.awt.image.BufferedImage;import javax.swing.JButton;import javax.swing.ImageIcon;import javax.swing.JOptionPane;import javax.swing.JRadioButtonMenuItem;public class Puzzle extends CardFrameprivate boolean start;private int fWidth = this.getWidth();private int fHeight = this.getHeight();private G

44、ameOver gOver;private boolean index = true;public Puzzle()start = false;ImageIcon icon = new ImageIcon(icon/OK.png);this.setSize(200 + fWidth, 200 + fHeight);this.setIconImage(icon.getImage();this.setVisible(true);private void startGame()if (start)return;start = true;updateMenuBegin();public void en

45、dGame()updateMenuBegin();initMenuBackground();start = false;JOptionPane.showMessageDialog(null,時間: + gOver.getTime() + sn +步數(shù): + gOver.getStep();Grades g = new Grades(this);g.set(int)gOver.getTime(), gOver.getStep();protected void FrameLostFocus()if (start & index)nextCard();if (gOver != null) gOver

46、.pause();index = false;protected void FrameGetFocus()nextCard();if (gOver != null) gOver.pause();index = true;public void menuNewClick()Split sp = Split.get();BufferedImage image;if (!sp.set(getFilename() | (image = sp.divid(getType() = null)JOptionPane.showMessageDialog(null, 圖片不存在!n請重新選擇); return;

47、startGame();this.setSize(fWidth, fHeight);this.setVisible(true);int len = Split.levelgetType();int row = image.length;int cal = image0.length;gOver = new GameOver(this);JButton button = new JButtonrowcal;Matrix matrix = new Matrix(button, panel0, len, gOver);matrix.init(image);this.setSize(cal * len

48、 + fWidth, row * len + fHeight);this.setVisible(true);public void menuGradesClick()Grades g = new Grades(this);g.show();public void menuShowClick()new ShowImage(getFilename();public void menuExitClick()System.exit(0);public void menuHelpClick()String help0 = 通過移動每一個小圖片,最終拼為原本的完整圖片.nn;String help1 = 您可以單擊空白區(qū)周圍的小圖片,可以使它移動到空白區(qū)。;JOptionPane.showMessageDialog(null, help0 + help1);public void m

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!