C语言程序设计课程设计(论文)扫地雷游戏

上传人:仙*** 文档编号:32873872 上传时间:2021-10-16 格式:DOC 页数:31 大小:144.03KB
返回 下载 相关 举报
C语言程序设计课程设计(论文)扫地雷游戏_第1页
第1页 / 共31页
C语言程序设计课程设计(论文)扫地雷游戏_第2页
第2页 / 共31页
C语言程序设计课程设计(论文)扫地雷游戏_第3页
第3页 / 共31页
点击查看更多>>
资源描述
辽 宁 工 业 大 学 C语言程序设计 课程设计(论文)题目: 扫地雷游戏 院(系): 软件学院 专业班级: 电子商务091班 学 号: 学生姓名: 指导教师: 教师职称: 助 教 起止时间:2009.12.14至2009.12.26 课程设计(报告)任务及评语院(系):软件学院 教研室:软件教研窒学 号学生姓名专业班级电子商务091班程序设计(报告)题目C语言课程设计-扫地雷游戏程序设计(报告)任务程序设计的任务与要求:(1)掌握C语言编程的基础知识。(2)较熟练地编写C语言应用程序。(3)了解C语言的常用标准函数、编程技巧、异常处理。(5)联系已学过的内容,巩固所学的理论,增强独立工作能力。(6)通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高。(7)通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。课程设计过程中,要严格遵守实践环节的时间安排,听从指导教师的指导。正确地完成上述内容,记录实习日记,规范完整地撰写出课程设计报告。指导教师评语及成绩成绩: 指导教师签字: 2009 年 1 月 13 日辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)目 录第1章 课程设计的目的与要求11.1 课程设计目的11.2 课程设计的实验环境11.3 课程设计的预备知识11.4 课程设计要求1第2章 课程设计内容22.1程序功能介绍22.2程序整体设计说明22.2.1设计思路22.2.2数据结构设计及用法说明32.2.3程序结构(流程图)32.2.4各模块的功能及程序说明32.2.5程序结果62.3程序源代码及注释6第3章 课程设计总结17参考资料19第1章 课程设计的目的与要求1.1 课程设计目的本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完程序设计语言(C)课程后进行的一次全面的综合练习。本课程设计的目的和任务: 1. 巩固和加深学生对C语言课程的基本知识的理解和掌握 2. 掌握C语言编程和程序调试的基本技能 3. 利用C语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力1.2 课程设计的实验环境硬件要求能运行Windows 2000/XP操作系统的微机系统。C语言程序设计及相应的开发环境。1.3 课程设计的预备知识熟悉C语言及C语言开发工具。1.4 课程设计要求1. 分析课程设计题目的要求2. 写出详细设计说明3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告第2章 课程设计内容2.1程序功能介绍自Windows系统推出以来,系统所带扫雷游戏深受人们喜爱,她是一个益智游戏,令人百玩不厌。本课题要求利用Turbo C编写与它功能相仿的扫雷游戏,寓学于乐。程序的功能要求随机生成地雷数,通过鼠标操作玩游戏,不接受键盘,按任意键结束程序。单击屏幕上的笑脸可以重新开始游戏。所有地雷标出后胜利,当鼠标左键单击到地雷时失败。2.2程序整体设计说明2.2.1设计思路首先在雷区上随机地放上雷,没有雷的地方被点击 后就会显示一个数字表示它周围有几个雷,这是怎么实现的呢?我们可以把整个雷区看成一个二维数组ai,j,如雷区 11 12 13 14 15 16 17 18 21 22 23 24 25 26 27 28 31 32 33 34 35 36 37 38 41 42 43 44 45 46 47 48 51 52 53 54 55 56 57 58要知道a34周围有几个雷,就只有去检测 a23,a24,a25 a33, a35 a43,a44,a45这8个雷区是否放上了雷,仔细观察它们成在数学关系。抽象出来就是:ai,j的雷的个数就是由 ai-1,j-1,ai-1,j,ai-1,j+1 a i ,j-1, a i ,j+1 ai+1,j-1,ai+1,j,ai+1,j+1 (如果超出边界再加以判断)这样的8个雷区决定的。 扫雷程序还会自动展开已确定没有雷的雷区。如果a3,4周围雷数为1,a2,3已被标示为地雷,那么a24,a25,a33,a35,a43,a44,a45将被展开,一直波及到不可确定的雷区。这也是实现的关键。我们可以把数组的元素设定为一个类对象,它们所属的类设定这样的一个事件:在被展开时,检查周围的雷数是否与周围标示出来的雷数相等,如果相等则展开周围未标示的雷区。这样新的雷区展开又触发这个事件,就这样递归下去,一直蔓延到不可展开的雷区。相信在了解以上两个要点后,把雷区这个类编写完全(如添加是否有雷标记,是否展开标记,周围雷数等,双击,左右单击的鼠标事件等),实现扫雷程序应是十分简单的一件事。扫雷的地图一般是一个矩形,所以,我用一个a*b的二维数组就完全可以表示整个地图。 有了地图以后地图里面的类容自然就有一部分是表示地雷啦,既然这样,那不如就这样/* * 20 标志该位置为地雷 * =10的数字表示已翻开的方块及周围的地雷数目 * */ 表示方法就出来了,逻辑也明朗起来了。 我要将某个块翻开,只要将他加上10 格是否为地雷就可以了。2.2.2数据结构设计及用法说明 扫雷的数据结构就是一个二维数组,数组的每个元素是个结构体。记录着每个雷区的状态,包括是否有雷, 是否打开,是否插了红旗,以及周围的雷数。当鼠标按下指定雷区,从雷区的各个信息中判断并做出相应的反应。 /*雷区的数据结构*/ struct char lei; /*lei=1有雷,lei=0无雷 */ .char close; /*close=1雷区未打开,close=0雷区以打开*/ .char hong; /*hong=1插了红旗,hong=0没有红旗*/ .char shu; /*周围的雷数*/ lei3218; 在这说明一点,为了算法简洁,我们在程序中只使用数组lei1-max-11-max-1 还要说明的就是周围区域并不是没有用,只是把它们设置成无雷和全部打开。 这样做的目的是更好的统计周围的雷数和其他一些操作,这样设计即使是最边上的雷区 周围也是有8个雷区。算法就大大简化了。 2.2.3程序结构(流程图)如图2.1图2.12.2.4各模块的功能及程序说明1.主函数主要定义常用到的常量,全局变量,有关的函数原形说明。然后随机布雷,统计好每个格子周围的雷数,画扫雷游戏界面,游戏接受鼠标操作,按任意键结束游戏,关闭图形系统,程序结束。void main() int i; int Total=0; BYTE Button; BOOL QUIT=FALSE; star(); /*调用游戏前景动画函数*/ if (!InitMouse() /*对鼠标端口进行判断*/ printf(Mouse not installed!); getch(); clrscr(); CursorHide(); randomize(); /*取随机数*/ Locate(36,20); printf(Mines:%d ,0); for (y=0;y10;y+) for (x=0;x10;x+) Mineyx=NULL; Turnyx=FALSE; /*随机产生地雷坐标*/ for (i=0;i10;i+) /*用FOR循环取十颗地雷*/ x=random(10); /*随机产生一颗地雷 横 坐标*/ y=random(10); /*随机产生一颗地雷 纵 坐标*/ while (Mineyx) /*将随机产生的地雷坐标赋给数组*/ x=random(10); y=random(10); Mineyx=MINE; for (y=0;y10;y+) for (x=0;x=0) i+; /*雷区坐边界判断*/ if (Mineyx+1=MINE)&(x+1)=0) i+; /*雷区上边界判断*/ if (Miney+1x=MINE)&(y+1)=0)&(y-1)=0) i+; /*雷区左上角判断*/ if (Miney-1x+1=MINE)&(x+1)=0) i+; /*雷区右上角判断*/ if (Miney+1x+1=MINE)&(x+1)10)&(y+1)=0)&(y+1)10) i+; /*雷区左下角判断*/ Mineyx=i; Prt(x+SX,y+SY,1,15); /*雷区图形和颜色*/ 2失败判断函数void FailExitGame() sound(1000); /*失败警告声音*/ delay(500); /*延迟时间*/ nosound(); /*关闭失败警告声音*/ for (y=0;y10;y+) for (x=0;x10;x+) if (Mineyx=MINE) Prt(x+SX,y+SY,*,14+128); MouseHide(); /*鼠标隐藏*/ CursorShow(); /*光标显示*/ printf(nFail!n); /*在屏幕上打印失败提示*/ getch(); /*等待按键*/ exit(0); /*推出程序*/ 3.胜利判断函数void ExitGame() int i,m=0; for (i=0;i10;i+) if (MineMarki1Marki0) m+; if (m9) FailExitGame(); MouseHide(); /*鼠标隐藏*/ CursorShow() /*光标显示;*/ printf(nOK,Good!n); /*在屏幕上打印胜利提示*/ getch(); exit(0);2.2.5程序结果游戏开始画面 如图2.2 图2.2游戏进行画面 如图2.3图2.3游戏失败,按笑脸从新游戏 如图2.4图2.42.3程序源代码及注释#include #include #include #define LEFTPRESS 0xff01#define LEFTCLICK 0xff10#define LEFTDRAG 0xff19#define MOUSEMOVE 0xff08struct int num;/*格子当前处于什么状态,1有雷,0已经显示过数字或者空白格子*/ int roundnum;/*统计格子周围有多少雷*/ int flag;/*右键按下显示红旗的标志,0没有红旗标志,1有红旗标志*/Mine1010;int gameAGAIN=0;/*是否重来的变量*/int gamePLAY=0;/*是否是第一次玩游戏的标志*/int mineNUM;/*统计处理过的格子数*/char randmineNUM3;/*显示数字的字符串*/int Keystate;int MouseExist;int MouseButton;int MouseX;int MouseY;void Init(void);/*图形驱动*/void MouseOn(void);/*鼠标光标显示*/void MouseOff(void);/*鼠标光标隐藏*/void MouseSetXY(int,int);/*设置当前位置*/int LeftPress(void);/*左键按下*/int RightPress(void);/*鼠标右键按下*/void MouseGetXY(void);/*得到当前位置*/void Control(void);/*游戏开始,重新,关闭*/void GameBegain(void);/*游戏开始画面*/void DrawSmile(void);/*画笑脸*/void DrawRedflag(int,int);/*显示红旗*/void DrawEmpty(int,int,int,int);/*两种空格子的显示*/void GameOver(void);/*游戏结束*/void GameWin(void);/*显示胜利*/int MineStatistics(int,int);/*统计每个格子周围的雷数*/int ShowWhite(int,int);/*显示无雷区的空白部分*/void GamePlay(void);/*游戏过程*/void Close(void);/*图形关闭*/void main(void) Init(); Control(); Close();void Init(void)/*图形开始*/ int gd=DETECT,gm; initgraph(&gd,&gm,c:tc);void Close(void)/*图形关闭*/ closegraph();void MouseOn(void)/*鼠标光标显示*/ _AX=0x01; geninterrupt(0x33);void MouseOff(void)/*鼠标光标隐藏*/ _AX=0x02; geninterrupt(0x33);void MouseSetXY(int x,int y)/*设置当前位置*/ _CX=x; _DX=y; _AX=0x04; geninterrupt(0x33);int LeftPress(void)/*鼠标左键按下*/ _AX=0x03; geninterrupt(0x33); return(_BX&1);int RightPress(void)/*鼠标右键按下*/ _AX=0x03; geninterrupt(0x33); return(_BX&2);void MouseGetXY(void)/*得到当前位置*/ _AX=0x03; geninterrupt(0x33); MouseX=_CX; MouseY=_DX;void Control(void)/*游戏开始,重新,关闭*/ int gameFLAG=1;/*游戏失败后判断是否重新开始的标志*/ while(1) if(gameFLAG)/*游戏失败后没判断出重新开始或者退出游戏的话就继续判断*/ GameBegain(); /*游戏初始画面*/ GamePlay();/*具体游戏*/ if(gameAGAIN=1)/*游戏中重新开始*/ gameAGAIN=0; continue; MouseOn(); gameFLAG=0; if(LeftPress()/*判断是否重新开始*/ MouseGetXY(); if(MouseX280&MouseX65&MouseY85) gameFLAG=1; continue; if(kbhit()/*判断是否按键退出*/ break; MouseOff();void DrawSmile(void)/*画笑脸*/ setfillstyle(SOLID_FILL,YELLOW); fillellipse(290,75,10,10); setcolor(YELLOW); setfillstyle(SOLID_FILL,BLACK);/*眼睛*/ fillellipse(285,75,2,2); fillellipse(295,75,2,2); setcolor(BLACK);/*嘴巴*/ bar(287,80,293,81);void DrawRedflag(int i,int j)/*显示红旗*/ setcolor(7); setfillstyle(SOLID_FILL,RED); bar(198+j*20,95+i*20,198+j*20+5,95+i*20+5); setcolor(BLACK); line(198+j*20,95+i*20,198+j*20,95+i*20+10);void DrawEmpty(int i,int j,int mode,int color)/*两种空格子的显示*/ setcolor(color); setfillstyle(SOLID_FILL,color); if(mode=0)/*没有单击过的大格子*/ bar(200+j*20-8,100+i*20-8,200+j*20+8,100+i*20+8); else if(mode=1)/*单击过后显示空白的小格子*/ bar(200+j*20-7,100+i*20-7,200+j*20+7,100+i*20+7);void GameBegain(void)/*游戏开始画面*/ int i,j; cleardevice(); if(gamePLAY!=1) MouseSetXY(290,70); /*鼠标一开始的位置,并作为它的初始坐标*/ MouseX=290; MouseY=70; gamePLAY=1;/*下次按重新开始的话鼠标不重新初始化*/ mineNUM=0; setfillstyle(SOLID_FILL,7); bar(190,60,390,290); for(i=0;i10;i+)/*画格子*/ for(j=0;j10;j+) DrawEmpty(i,j,0,8); setcolor(7); DrawSmile();/*画脸*/ randomize(); for(i=0;i10;i+)/*100个格子随机赋值有没有地雷*/ for(j=0;j10;j+) Minej.num=random(8);/*如果随机数的结果是1表示这个格子有地雷*/ if(Minej.num=1) mineNUM+;/*现有雷数加1*/ else Minej.num=2; Minej.flag=0;/*表示没红旗标志*/ sprintf(randmineNUM,%d,mineNUM); /*显示这次总共有多少雷数*/ setcolor(1); settextstyle(0,0,2); outtextxy(210,70,randmineNUM); mineNUM=100-mineNUM;/*变量取空白格数量*/ MouseOn();void GameOver(void)/*游戏结束画面*/ int i,j; setcolor(0); for(i=0;i10;i+) for(j=0;j10;j+) if(Minej.num=1)/*显示所有的地雷*/ DrawEmpty(i,j,0,RED); setfillstyle(SOLID_FILL,BLACK); fillellipse(200+j*20,100+i*20,7,7); void GameWin(void)/*显示胜利*/ setcolor(11); settextstyle(0,0,2); outtextxy(230,30,YOU WIN!);int MineStatistics(int i,int j)/*统计每个格子周围的雷数*/ int nNUM=0; if(i=0&j=0)/*左上角格子的统计*/ if(Mine01.num=1) nNUM+; if(Mine10.num=1) nNUM+; if(Mine11.num=1) nNUM+; else if(i=0&j=9)/*右上角格子的统计*/ if(Mine08.num=1) nNUM+; if(Mine19.num=1) nNUM+; if(Mine18.num=1) nNUM+; else if(i=9&j=0)/*左下角格子的统计*/ if(Mine80.num=1) nNUM+; if(Mine91.num=1) nNUM+; if(Mine81.num=1) nNUM+; else if(i=9&j=9)/*右下角格子的统计*/ if(Mine98.num=1) nNUM+; if(Mine89.num=1) nNUM+; if(Mine88.num=1) nNUM+; else if(j=0)/*左边第一列格子的统计*/ if(Minej+1.num=1) nNUM+; if(Minei+1j.num=1) nNUM+; if(Minei-1j.num=1) nNUM+; if(Minei-1j+1.num=1) nNUM+; if(Minei+1j+1.num=1) nNUM+; else if(j=9)/*右边第一列格子的统计*/ if(Minej-1.num=1) nNUM+; if(Minei+1j.num=1) nNUM+; if(Minei-1j.num=1) nNUM+; if(Minei-1j-1.num=1) nNUM+; if(Minei+1j-1.num=1) nNUM+; else if(i=0)/*第一行格子的统计*/ if(Minei+1j.num=1) nNUM+; if(Minej-1.num=1) nNUM+; if(Minej+1.num=1 nNUM+; if(Minei+1j-1.num=1) nNUM+; if(Minei+1j+1.num=1) nNUM+; else if(i=9)/*最后一行格子的统计*/ if(Minei-1j.num=1) nNUM+; if(Minej-1.num=1) nNUM+; if(Minej+1.num=1) nNUM+; if(Minei-1j-1.num=1) nNUM+; if(Minei-1j+1.num=1) nNUM+; else/*普通格子的统计*/ if(Minei-1j.num=1) nNUM+; if(Minei-1j+1.num=1) nNUM+; if(Minej+1.num=1) nNUM+; if(Minei+1j+1.num=1) nNUM+; if(Minei+1j.num=1) nNUM+; if(Minei+1j-1.num=1) nNUM+; if(Minej-1.num=1) nNUM+; if(Minei-1j-1.num=1) nNUM+; return(nNUM);/*把格子周围一共有多少雷数的统计结果返回*/int ShowWhite(int i,int j)/*显示无雷区的空白部分*/ if(Minej.flag=1|Minej.num=0)/*如果有红旗或该格处理过就不对该格进行任何判断*/ return; mineNUM-;/*显示过数字或者空格的格子就表示多处理了一个格子,当所有格子都处理过了表示胜利*/ if(Minej.roundnum=0&Minej.num!=1)/*显示空格*/ DrawEmpty(i,j,1,7); Minej.num=0; else if(Minej.roundnum!=0)/*输出雷数*/ DrawEmpty(i,j,0,8); sprintf(randmineNUM,%d,Minej.roundnum); setcolor(RED); outtextxy(195+j*20,95+i*20,randmineNUM); Minej.num=0;/*已经输出雷数的格子用0表示已经用过这个格子*/ return ; /*8个方向递归显示所有的空白格子*/ if(i!=0&Minei-1j.num!=1) ShowWhite(i-1,j); if(i!=0&j!=9&Minei-1j+1.num!=1) ShowWhite(i-1,j+1); if(j!=9&Minej+1.num!=1) ShowWhite(i,j+1); if(j!=9&i!=9&Minei+1j+1.num!=1) ShowWhite(i+1,j+1); if(i!=9&Minei+1j.num!=1) ShowWhite(i+1,j); if(i!=9&j!=0&Minei+1j-1.num!=1) ShowWhite(i+1,j-1); if(j!=0&Minej-1.num!=1) ShowWhite(i,j-1); if(i!=0&j!=0&Minei-1j-1.num!=1) ShowWhite(i-1,j-1);void GamePlay(void)/*游戏过程*/ int i,j,Num;/*Num用来接收统计函数返回一个格子周围有多少地雷*/ for(i=0;i10;i+) for(j=0;j280&MouseX65&MouseY190&MouseX90&MouseY290)/*当前鼠标位置在格子范围内*/ j=(MouseX-190)/20;/*x坐标*/ i=(MouseY-90)/20;/*y坐标*/ if(Minej.flag=1)/*如果格子有红旗则左键无效*/ continue; if(Minej.num!=0)/*如果格子没有处理过*/ if(Minej.num=1)/*鼠标按下的格子是地雷*/ MouseOff(); GameOver();/*游戏失败*/ break; else/*鼠标按下的格子不是地雷*/ MouseOff(); Num=MineStatistics(i,j); if(Num=0)/*周围没地雷就用递归算法来显示空白格子*/ ShowWhite(i,j); else/*按下格子周围有地雷*/ sprintf(randmineNUM,%d,Num);/*输出当前格子周围的雷数*/ setcolor(RED); outtextxy(195+j*20,95+i*20,randmineNUM); mineNUM-; MouseOn(); Minej.num=0;/*点过的格子周围雷数的数字变为0表示这个格子已经用过*/ if(mineNUM190&MouseX90&MouseY290)/*当前鼠标位置在格子范围内*/ j=(MouseX-190)/20;/*x坐标*/ i=(MouseY-90)/20;/*y坐标*/ MouseOff(); if(Minej.flag=0&Minej.num!=0)/*本来没红旗现在显示红旗*/ DrawRedflag(i,j); Minej.flag=1; else if(Minej.flag=1)/*有红旗标志再按右键就红旗消失*/ DrawEmpty(i,j,0,8); Minej.flag=0; MouseOn(); sleep(1); 第3章 课程设计总结C语言程序设计是从程序开始的,程序是为了使计算机完成指定任务而编写的具有特定语法规则的指令序列,课程设计是学习C语言最好的一次检测。课程设计是培养学生综合运用所学的C语言知识 ,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程,提高运用C语言解决实际问题的能力.当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握程序运用技术是十分重要的,而C语言又是最常见,功能最强大的一种高级语言,因此学好C语言课程是十分必要的。作为一名初学者从拿到题目开始,就感到这次任务存在很大的困难,从开始到结束,我受益匪浅,不仅巩固了以前所学过的知识,而且从课外书中学到了很多新的知识。虽然只是研究一个很简单的游戏,但是我感到理论与实际相差很多,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才算学有所成,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中,我遇到了很多困难,但我从不气馁,不断努力。从这次设计过程中,我感到所学的知识掌握得不够牢固,比如说结构体,指针我又把前面所学过的知识又重新温故了一遍。 通过这次课程设计,我对C语言有了更深入的了解,原来要想学好一门语言重在实践,要通过不断的上机操作不断总结才能更好地掌握它,虽然我还没有对C语言的一些标准库函数不太了解,对函数调用的正确使用不够熟悉,但我充满信心。这次实践的学习,我了解到学好C语言要重视实践操作,我想学好其它的语言也是一样,都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己能更好地学好计算机其它课程, 在课程设计过程中,收获知识,提高能力的同时,我也懂得怎么样去制定计划,怎么样去实现这个计划,都应按部就班,都应对自已充满信心。以后的生活和学习的过程中,我一定会更加努力去奋斗,勇往直前,创造自己更辉煌的明天!参考文献1谭浩强C语言程序设计M,北京:清华大学出版社,20002 王四万 C语言程序设计M,北京:西安交通大学出版社,20033 鲁辉 C语言程序设计M,北京:机械工业出版社,20024 苏传芳 C语言程序设计M,北京:电子工业出版社,20045 Brian W. Kernighan,The C Programming Language 2nd Ed(英文影印版),清华大学出版社,2001年11月6 Clovis L. Tondo,The C Answer Book Solutions to the Exercises in The C Programming Language(英文影印版),清华大学出版社,2001年12月7张磊C语言程序设计 出版社:高等教育出版社 书号:ISBN-7-04-016437-6 X 8严桂兰 C语言程序设计M,厦门:厦门大学出版社,20069梁翎 李爱齐C语言程序设计实用技巧与程序实例 上海科普出版社,1996,5 10李铮,叶艳冰,汪德俊 C语言程序设计基础与应用M 北京:清华大学出版社,200511张磊 C语言程序设计M 北京:高等教育出版社,200412刘福基 C语言程序设计实训教程M北京:科学出版社,2004 27
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档


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

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


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