java课程设计报告拼图游戏

上传人:仙*** 文档编号:114286925 上传时间:2022-06-28 格式:DOC 页数:25 大小:1.54MB
收藏 版权申诉 举报 下载
java课程设计报告拼图游戏_第1页
第1页 / 共25页
java课程设计报告拼图游戏_第2页
第2页 / 共25页
java课程设计报告拼图游戏_第3页
第3页 / 共25页
资源描述:

《java课程设计报告拼图游戏》由会员分享,可在线阅读,更多相关《java课程设计报告拼图游戏(25页珍藏版)》请在装配图网上搜索。

1、 面向对象的课程设计与分析(java)——拼图游戏 (学号。。。班级。。。姓名。。。) 目录 一、 题目介绍..。. 3 1、题目.。。.。.......。.。..。..。..。...。.。。。......。。。。。。。..。。。..。.。。。。.。。.。..。。。。。。....。。。。.。....。..。.。。。3 2、任务。。。。。...。。.。。。......。。.。。。.。。..。..。。。.......。..。。...。。。.。.。。.。。..。...。.。...。.。。。..。。.。..。。..。。3 3、要

2、求。。...。。。.。。。。。。..。..。。...。。。。.。..。。..。。.。。....。。...。.。。....。。.。。。。。。。.。。。..。..。.。.。。...。.。。。。.。3 二、需求分析.。。.。。。....。。。..。。....。..。.。..。..。..。....。.。。。.。。。.。。。。.。。。。.。...。.。。.。.。.。。。3 三、 概要设计。...。。...。。。.。。。。..。。。。。.。..。。.。。..。。。.。。.。....。。。。。。..。。.。.。。.。。.。。。。。。。。..。.4 1、功能分析..。。.。.....。......

3、.。.。.。..。。。...。.。。。。.....。..。。..。.。。。。...........。.。。。。..。...。。。。。.。.4 2、界面初始化。...。..。。。。。...。。..。.。。。。。.。..。。.。。。...。..。.。。。..。。。.。。.。。。.。。.。...。。.。。.。。....。。.。4 3、事件处理(1)鼠标事件.。。..。....。.。...。。。。。..。..。...。..。。。.。。。..。...。..。..。。.。.。。..4 4、事件处理(2)键盘事件......。。.。.。。....。...。.。。。。.....。...

4、.。。.。.。...。.。.。.。。。.。.。。。5 5、状态判断。.。。。。.....。。。..。。。.。。。.。..。..。。...。。..。。..。。...。。...。.。.。.。。.。。..。。.。......。..。。。。。.。。5 6、程序流程图。。。。。。。。。.....。。...。。.。..。。。.。......。。..。.。.。。。。.。。。。.。.。.。..。。.。。。。..。.。。。.。...。.。5 四、 详细设计.。。..。。。。。.。.。。.。。.。.。。。。.。。..。。.。.。。..。.。。.。.。。.。。。.。....。.。..。..。.。.

5、。..。。..6 1、。html代码设计。.。.。。.........。.。。。。..。..。.。.。..。。。....。..。。.。。。。...。。..。...。。.。..。..。....。6 2、。java代码设计。...。。。.。.。。.......。。.。..。.。..。..。..。。.。。.。。。。.。。.。。。.。。。。。。。。。。。。。..。.。...。6 五、调试结果。..。。.。..。。..。.....。..。.....。.。。。。。。.。.。...。。。。.。.。。.。。。。。。..。。.。。。.。。。.。。。。。19 第一个大图的拼图界面。。.。。.。

6、.。..。。...。.。。。。.。.。.。。。。.。.....。。..。。。。..。.....。。...。。.。...。。。。。..。19 第一个拼图全图预览。.。.....。.....。。..。。。....。。.。。。..。。.。。。。。.。。..。。.。..。。.。。..。..。..。.。。。。..。..。。19 第二个大图的拼图界面.。。....。。.。..。。。。.。。.。。。.。..。.。..。.......。..。.。。.。。.。。。...。.。。。...。.。...。。20 第二个拼图全图预览...。..。..。。。。.。。.。。..。...。.。....。.。。...。。

7、.。。.。.。.。。。..。..。。.。。。。.。。。.。..。.。。..20 第三个大图的拼图界面.。。.。。。.。...。。.。....。..。.。........。.。.。。.。。。。。...。。。。.。。。.。。.....。。..。.。.。21 第三个拼图全图预览.....。。.。..。。。.。。.。。。。.。。.。。..。。。..。...。.。。。。。。。。。。..。。。.。...。.。。.....。.。.。。。。21 六、心得总结.。。。。。.。。。。。.。.。..。.。.。.。。.。...。。.。。.。.......。.。。.。。...。。.。..。..。。。。。。.。。.

8、...22 七、参考资料 ...。。.....。。.。。。。。.。。.。.......。。..。。。。..。..。。。..。。...。。。..。。。..。.。.。.。。。。..22 一、 题目介绍 1、 题目: 拼图游戏设计 2、 任务: 利用java的图形用户界面设计,设计一个拼图游戏界面,能够实现基本的游戏功能。 3、 要求: (1)游戏者可以选择不同的图片。 (2)按完成的时间计算成绩. (3)记录拼图完成的总步数。 二、 需求分析 拼图游戏是一个简单的小程序,游戏规则如下:

9、 将一张大图打散成9张小图,然后在游戏里任意挑8张图,贴在3行3列的矩阵中的任意位置.通过鼠标或键盘的方向键移动打乱的8张图片,让其复原成原来的顺序,玩家就胜利了,游戏就结束了。在游戏结束之后,算出玩家的得分。 三、概要设计 1、功能分析 由于要计算游戏的时间,需要引入线程,通过实现Runnable接口和创建Thread类来实现线程的功能.使用多线程机制来计算时间的流逝。引入AWT绘图包,实现图片的绘制。 引入事件处理机制,要求对鼠标事件,键盘事件进行相应,实现移动图片,预览全图等功能。 按键“Y"实现临时的原图整体预览。 按键“1或者2或者3”实现大图选择、 2、 界面初始化

10、 调用public void init()通过接收html数据,加载三张源图片,安装媒体监视器和鼠标键盘监听器,实现界面初始化; 调用public void initData()将加载的一张大图分割成九个随机分布的小图部分; 调用public void paint(Graphics g)划分提示信息区域和拼图区域; 3、 事件处理 (1) 鼠标事件 调用public void mouseClicked(MouseEvent e)方法实现鼠标事件处理。 调用Public int directionCanMove(int nCol,int nRow)方法检测那个方向没有拼

11、图而可以向之移动。 调用public void move(int nCol,int nRow,int nDirection)方法实现鼠标激活拼图移动. (2) 键盘事件 调用public void keyPressed(KeyEvent e)方法实现键盘事件处理. 调用public void initImageAgain(int nImgNo)方法实现重新加载另一张大图. 调用public boolean move(int nDirection)方法实现判断指定拼图是否可以往方向nDirection移动。 4、状态判断 动过调用public void checkSt

12、atus()方法来 检测拼图状态,判断是否拼图成功,确定游戏是否结束. 5、附加功能 调用public void run()方法,给游戏过程添加计时进程。 6、程序流程图 四、 详细设计 1、 编写。html代码 〈head〉 〈title> 拼图游戏 拼图游戏

13、通过鼠标和键盘来移动小图,移动的次数和拼成
一张大图所化费的时间作为游戏得分的依据。〈br> 成绩=1000—时间(秒)—移动步数*10〈br> 按F1键重新开始该游戏,按Y健可以预览整个的图片


〈applet code=”pintu.class” width="480" height="360"〉 〈param name=NumOfImg value=”3”〉 〈param name=Image1 value=”pintu”

14、> 〈param name=Image2 value="pintu2”〉 〈/body> 〈/html〉 2、 编写。java代码 1、界面设计和附加功能 import java。applet.*; import java。awt。*; import java.awt.event。*; import 。*; //Download by public class pintu extends Applet implements MouseListener,KeyListener,R

15、unnable { Image[] m_Image=new Image[9]; //9个用来装入每个拼图的图片对象 Image m_ImgAll; //总的大图片 int m_nImageNo[][]=new int[3][3]; ////标志现在各个拼图的排列情况 final int NO_IMAGE=-1; //此位置没有拼图,表示空白拼图 final int IMAGE_WIDTH=120; //每张拼图的宽 final int IMAGE_HEIGHT=120; ////每张拼图的

16、高 final int DIRECTION_UP=1; final int DIRECTION_DOWN=2; final int DIRECTION_LEFT=3; final int DIRECTION_RIGHT=4; final int DIRECTION_NONE=—1; final int DELTAX=120; //标志提示信息区的宽度 boolean bWantStartNewGame=false; //游戏是否结束,是否需要开始新游戏 int nStep=0; //已经走的步数 in

17、t nTime=0; //已经玩过的时间,以秒为单位 Thread thTimer; //计时器线程 int nScore=0; //玩家所得的分数 int m_nNumOfImg=0; //拼图底图所使用的图片的个数 String m_sImgName[]=new String[9]; //记录拼图底图的名字 boolean bOnShowAll=false; //预览的开关 AudioClip m_audioClip1,m_audioClip2; //装载要播放

18、的声音对象 public void init()/ { String param=getParameter("NumOfImg”); try { m_nNumOfImg=Integer.parseInt(param); } catch(Exception e) { m_nNumOfImg=1; System.out.println(”Can't convert the param’s name

19、to int.”); } for(int i=0;i〈m_nNumOfImg;i++) { m_sImgName[i]=getParameter(”Image"+(i+1))+”。jpg”; //用字符串数组m_sImgName分别保存三个大图及其规范命名:p //pintu。jpg pintu1.jpg pintu2.jpg System。out。println(m_sImgName[i]); } System.out。println(para

20、m); MediaTracker mediaTracker=new MediaTracker(this); //为这个拼图界面设置一个监视器 m_ImgAll=getImage(getDocumentBase(),"img/"+m_sImgName[0]); //从装载总的大图片 mediaTracker。addImage(m_ImgAll,1); //为向此媒体跟踪器正在跟踪的图像列表中添加一个图像, //并分配一个表示号1 给这个图像 try { mediaTracker.wa

21、itForID(1); //加载所跟踪的图像列表中的某一个标识号所对应的的一个图像 } catch(Exception e) { System.out.println(”图片装载出错"); } if(mediaTracker.isErrorAny())System.out。println("图片装载出错"); for(int i=0;i〈9;i++) { m_Image[i]=createImage(IMAGE_WIDTH,IMAGE_HEIGHT); G

22、raphics g=m_Image[i]。getGraphics(); int nRow=i%3; int nCol=i/3; g.drawImage(m_ImgAll, 0, 0, IMAGE_WIDTH, IMAGE_HEIGHT, nRow*IMAGE_WIDTH, nCol*IMAGE_HEIGHT, (nRow+1)*IMAGE

23、_WIDTH, (nCol+1)*IMAGE_HEIGHT, this); System。out.println(”init "+i); } //将一个大图切割成九个小图 System.out.println("init over"); thTimer=new Thread(this); //为线程分配内存空间 thTimer.start(); //开始线程 initData(); m

24、_audioClip1=getAudioClip(getCodeBase(),"au/move.au"); m_audioClip2=getAudioClip(getCodeBase(),”au/notmove。au”); addMouseListener(this); addKeyListener(this); public void initData() { System.out。println(”run initData”); int[] nHasDistrib=new int[9]; //为每个小图分

25、配一个数字标识,用来判定该小图是否被随机编一个二维数组号 for(int i=0;i〈9;i++)nHasDistrib[i]=0; for(int j=0;j<3;j++) { for(int i=0;i〈3;i++) { int nCount=j*3+i; int nImgNo=-1; do { nImgNo=(int)(Math.random()*9);

26、 }while(nHasDistrib[nImgNo]==1); //1代表已经分配了这张图片到二维数组中的随机位置 m_nImageNo[i][j]=nImgNo; nHasDistrib[nImgNo]=1; System.out.println("test..”); } } m_nImageNo[(int)(Math.random()*3)][(int)(Math.random()*3)]=NO_IMA

27、GE; nStep=0; nTime=0; //清空计时器 } public void run() { while(Thread.currentThread()==thTimer) { try { thTimer。sleep(990); String sTemp=”你玩了"+nTime+”秒的时间,”; if(nTime>20

28、0)sTemp=sTemp+”时间用的很长了,你可要加油啦!”; else sTemp=sTemp+”别紧张,慢慢来。”; showStatus(sTemp); if(!bWantStartNewGame)nTime++; } catch(Exception e) { } } } public void paint(Graphic

29、s g) { g。setColor(Color.blue); //将当前颜色变为蓝色 g。fillRect(0,0,DELTAX,IMAGE_HEIGHT*3); //填充左边的提示信息区域 g.setFont(new Font(”宋体",Font。PLAIN,15)); //设置字体 /*Font是一个字体类!PLAIN是它的一个静态常量!类似的还有BOLD,ITALIC Font.PLAIN 是一个普通的系统默认的字体! jMenuSystem.setFont(new java.awt

30、。Font("华文新魏”, Font.PLAIN, 20)); 设置字体为 华文新魏 类型: 普通系统默认 大小为20 */ g.setColor(Color.red); //setColor函数对该函数调用的下文进行颜色设置 g.drawString("步数:”+nStep,5,20); g.drawString("现有图片"+m_nNumOfImg+”张",5,60); g。drawString("请按1-”+m_nNumOfImg+"键改变图片”,5,100); //在坐标

31、(5,20)画出字串,来显示现在走了多少步。 g。setColor(Color.blue); if(bOnShowAll) { int x=DELTAX; int y=0; g。drawImage(m_ImgAll,x,y,this); return; } for(int i=0;i〈3;i++) { for(int j=0;j<3;j++) { int x=i*IMAGE_WI

32、DTH+DELTAX; int y=j*IMAGE_HEIGHT; if(m_nImageNo[i][j]==NO_IMAGE) g。fill3DRect(x,y,IMAGE_WIDTH,IMAGE_HEIGHT,false); else { g.drawImage(m_Image[m_nImageNo[i][j]],x,y,this); g.drawRect(x,y,IMAGE_WIDTH,IMAGE_HEIGHT); }

33、 } } checkStatus(); if(bWantStartNewGame) { //如果游戏结束,玩家将拼图的顺序排对之后 nScore=1000-nStep*10-nTime; g。setColor(Color。blue); g.drawString(”请按任意键重新开始",5,140); g。setColor(Color。red); g。setFont(new Font(”宋

34、体",Font。PLAIN,40)); g。drawString("你赢了"+nScore+”分",70+DELTAX,160); g。drawString(”祝贺你!”,110+DELTAX,210); } } } public void checkStatus() { boolean bWin=true; //定义成员,默认值为真 int nCorrectNum=0; for(int j=0;j〈3;j++)

35、 { for(int i=0;i〈3;i++) { if(m_nImageNo[i][j]!=nCorrectNum&& m_nImageNo[i][j]!=NO_IMAGE) bWin=false; nCorrectNum++; } } //比较拼图是否都放到了正确的位置上,如果,有一个没有放到正确位置上,则游戏就不能结束。 if(bWin)bWantSt

36、artNewGame=true; } 2、鼠标事件处理 public void mouseClicked(MouseEvent e) { //Invoked when the mouse has been clicked on a component. if(bOnShowAll)return; if(bWantStartNewGame) { initData(); repaint(); bWantStartNewGame=false;

37、 return; } int nX=e.getX()—DELTAX; int nY=e。getY(); int nCol=nY/IMAGE_HEIGHT; int nRow=nX/IMAGE_WIDTH; System。out.println(”col:”+nCol+” row:"+nRow); int nDirection=directionCanMove(nCol,nRow); if(nDirection!=DIRECTION_NONE) { move(nCol,nRow,nDire

38、ction); nStep++; m_audioClip1。play(); repaint(); } else { m_audioClip2。play(); } } public void mouseEntered(MouseEvent e) { //Invoked when the mouse has been clicked on a component。 } pub

39、lic void mouseExited(MouseEvent e) { //Invoked when the mouse has been clicked on a component. } public void mousePressed(MouseEvent e) { //Invoked when the mouse has been clicked on a component. } public void mouseReleased(MouseEvent e) { //Invoked when the mouse has been cli

40、cked on a component. } public int directionCanMove(int nCol,int nRow) //检测那个方向没有拼图而可以向之移动 { if((nCol-1)>=0) if(m_nImageNo[nRow][nCol-1]==NO_IMAGE) return DIRECTION_UP; if((nCol+1)〈=2) if(m_nImageNo[nRow][nCol+1]==NO_IMAGE) return DIRECTION_DOWN; if((nRow—1)〉=0)

41、if(m_nImageNo[nRow—1][nCol]==NO_IMAGE) return DIRECTION_LEFT; if((nRow+1)〈=2) if(m_nImageNo[nRow+1][nCol]==NO_IMAGE) return DIRECTION_RIGHT; return DIRECTION_NONE; } public void move(int nCol,int nRow,int nDirection) { switch(nDirection) { case DIRECTION_UP:

42、m_nImageNo[nRow][nCol-1]=m_nImageNo[nRow][nCol]; m_nImageNo[nRow][nCol]=NO_IMAGE; break; case DIRECTION_DOWN: m_nImageNo[nRow][nCol+1]=m_nImageNo[nRow][nCol]; m_nImageNo[nRow][nCol]=NO_IMAGE; break; case DIRECTION_LEFT: m_nImageNo[nRow-1][nCol]=m_nImageNo[nRow][

43、nCol]; m_nImageNo[nRow][nCol]=NO_IMAGE; break; case DIRECTION_RIGHT: m_nImageNo[nRow+1][nCol]=m_nImageNo[nRow][nCol]; m_nImageNo[nRow][nCol]=NO_IMAGE; break; } 3、键盘事件处理 public void keyPressed(KeyEvent e) { //Invoked when a key has been pressed. if(

44、bOnShowAll) { if(e。getKeyCode()==KeyEvent。VK_Y) { bOnShowAll=false; repaint(); } return; } System。out.println(”press key”+e。getKeyCode()+" ” +e。getKeyText(e.getKe

45、yCode())); System。out.println(KeyEvent.VK_LEFT); if(bWantStartNewGame) { initData(); bWantStartNewGame=false; repaint(); return; } int nDirection=DIRECTION_NONE; switch(e.getKeyCode()) { case K

46、eyEvent。VK_DOWN: nDirection=DIRECTION_DOWN; break; case KeyEvent.VK_UP: nDirection=DIRECTION_UP; break; case KeyEvent.VK_LEFT: System.out。println("left111..."); nDirection=DIRECTION_LEFT; break; case KeyEvent.VK_RIGHT: System。out。println("left.。.")

47、; nDirection=DIRECTION_RIGHT; break; case KeyEvent.VK_F1: //F1键按下,重新开始游戏 initData(); //init(); repaint(); return; case KeyEvent。VK_1: case KeyEvent.VK_2:

48、 case KeyEvent.VK_3: case KeyEvent。VK_4: case KeyEvent.VK_5: case KeyEvent.VK_6: case KeyEvent.VK_7: case KeyEvent.VK_8: case KeyEvent.VK_9: int nImgNo=e。getKeyCode()-KeyEvent。VK_1; if(nIm

49、gNo〈m_nNumOfImg) { System。out。println(nImgNo); initImageAgain(nImgNo); initData(); repaint(); } return; case KeyEvent。VK_Y: if(bOnShowA

50、ll) bOnShowAll=false; else bOnShowAll=true; repaint(); return; default: return; } boolean bCanMove=move(nDirection); if(bCanMove) { nS

51、tep++; m_audioClip1。play(); repaint(); } else { m_audioClip2.play(); } } public void keyReleased(KeyEvent e) { //Invoked when a key has been pressed。 } public void keyTyped(KeyEvent e) { //Invoked when a

52、 key has been pressed。 } public void initImageAgain(int nImgNo) { //nImgNo为要装载的图像是第几个图像。 if(nImgNo>m_nNumOfImg) { showStatus(”你要的图片不存在!!"); return; } // System。out.println(param); MediaTracker mediaTracker=new Med

53、iaTracker(this); //建立一个监视器 m_ImgAll=getImage(getDocumentBase(),"img/”+m_sImgName[nImgNo]); //装载总的大图片 mediaTracker.addImage(m_ImgAll,1); try { mediaTracker。waitForAll(); } catch(Exception e) { System。out。println(”图片装载出错"); } for(i

54、nt i=0;i<9;i++) { m_Image[i]=createImage(IMAGE_WIDTH,IMAGE_HEIGHT); Graphics g=m_Image[i]。getGraphics(); int nRow=i%3; int nCol=i/3; g。drawImage(m_ImgAll,0,0,IMAGE_WIDTH,IMAGE_HEIGHT,nRow*IMAGE_WIDTH,nCol*IMAGE_HEIGHT,(nRow+1)

55、*IMAGE_WIDTH,(nCol+1)*IMAGE_HEIGHT,this); System.out。println("dfsdfdfdsdf”+i); } } // public void update(Graphics g) // { // paint(g); // } // 由于: //paint方法是applet继承自awt中的Component的方法, //会在对象加载时自动调用,用来绘制该组件内部的所有内容。 //如果想重新调用该方法中执行的操作可以使用repaint()方

56、法。 //如果paint方法在其他方法中调用,则会在对象加载是自动调用调用了paint方法的那个方法。 //代码中之所这样包含以下,作用其实是为paint改一个更合乎代码业务逻辑的名称。 public boolean move(int nDirection) { int nNoImageCol=—1; int nNoImageRow=-1; int i=0; int j=0; while (i〈3 && nNoImageRow==—1) { while (j〈3 && nNoImageCol==—1) { if(m_nI

57、mageNo[i][j]==NO_IMAGE) { nNoImageRow=i; nNoImageCol=j; } j++; } j=0; i++; } //以上判断哪个拼图可以往方向nDirection移动 //可以移动的拼图的位置为第nNoImageCol行,第nNoImageRow列. System。out.println(nNoImageCol+”,,”+nNoImageRow); swi

58、tch(nDirection) { case DIRECTION_UP: if(nNoImageCol==3)return false; m_nImageNo[nNoImageRow][nNoImageCol]=m_nImageNo[nNoImageRow][nNoImageCol+1]; m_nImageNo[nNoImageRow][nNoImageCol+1]=NO_IMAGE; break; case DIRECTION_DOWN: if(nNoImageCol==0)return false; m_nI

59、mageNo[nNoImageRow][nNoImageCol]=m_nImageNo[nNoImageRow][nNoImageCol—1]; m_nImageNo[nNoImageRow][nNoImageCol—1]=NO_IMAGE; break; case DIRECTION_LEFT: if(nNoImageRow==3)return false; m_nImageNo[nNoImageRow][nNoImageCol]=m_nImageNo[nNoImageRow+1][nNoImageCol]; m_nImageN

60、o[nNoImageRow+1][nNoImageCol]=NO_IMAGE; break; case DIRECTION_RIGHT: if(nNoImageRow==0)return false; m_nImageNo[nNoImageRow][nNoImageCol]=m_nImageNo[nNoImageRow—1][nNoImageCol]; m_nImageNo[nNoImageRow—1][nNoImageCol]=NO_IMAGE; break; } return true; } }

61、 五、 调试结果 (图一:第一个拼图全图预览) (图二:第一个大图的拼图界面) (图三:第二个拼图全图预览) (图四:第二个大图的拼图界面) (图五:第三个大图的全图预览) (图六:第三个大图的拼图界面) 六、 心得总结 经过这段时间的学习收获不小,总结起来有如下几点: 1、更进一步理解了JAVA编程的思想,体会到JAVA与其他编程语言的不同.对于这种面向对象的编程思想,使刚入门的人很快就能写出自己的程序。 2 、锻炼了自己的动手和自学能力,在编程中有

62、许多类和方法在课本中没有学 到和提及到。都是通过自己查帮助文档,或通过网络进行学习和了解到的.和同组同学在一起交流是一件很快了的事. 3 、体会到写程序最重要的是程序思想,而不是单纯的写代码。如何解决类之 间的关联和继承关系,如何组织类是很关键的。此外对于接口和变量的私有还是公有,以及参数传递等方面也收获不小。 七、 参考资料 张白一、崔尚森 《面向对象程序设计—Java》 西安电子科技大学出版社 (美)Paul S. Wang 《Java面向对象程序设计》 清华大学出版社 孙一林 《Java语言高级编程》 清华大学出版社 25

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!