欢乐五子棋课程设计报告_第1页
欢乐五子棋课程设计报告_第2页
欢乐五子棋课程设计报告_第3页
欢乐五子棋课程设计报告_第4页
欢乐五子棋课程设计报告_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机学院信息管理与信息系统专业《管理信息系统课程设计》报告〔2010/2011学年第一学期〕学生姓名:学生班级:学生学号:指导教师:2011年1月15日目录7150第一章课程设计目的和要求 1303251.1课程设计目的 1189891.2课程设计要求 123121第二章课程设计任务和内容 2103482.1设计的主要工作 284992.2系统设计原那么 212677第三章详细设计说明 3258013.1游戏分析和介绍 3250243.3文字说明 472383.5主循环控制模块 5141793.6对方和己方下子 5105423.7盘面分析填写棋型表 5247893.8胜负判断 5203463.9程序流程图 619629第四章软件使用说明 871334.1测试方案 8131584.2限制条件 114401第五章课程设计心得体会 1212178附录1:参考文献 1332342附录2:程序清单 14欢乐五子棋第一章课程设计目的和要求通过此次课程设计,进一步加深对C++语言和运用的了解,将理论知识运用于开发的实践,并在实践中逐步掌握软件工具的使用。稳固已经学习过的C++理论知识;进一步学习程序设计、程序调试的能力;进一步学习面向对象编程的知识和程序调试的能力;增强VisualC++编程环境的应用能力掌握并且熟练应用《C++程序设计》中所学知识。掌握函数功能的划分方法,并运用此方法解决问题。学会程序测试方案的制定,并且实现程序的测试。通过此次实践,积累经验,提高分析和解决问题的能力。另外,能够运用所学知识了解五子棋游戏制作的结构,将所学知识用于实践中。1〕在了解课程设计要求的情况下,运用C++编一个关于五子棋的程序,并可以实现相关功能。2〕在课程设计的过程中,难免会遇到一些困难和错误,这就要求自己在遇到困难时学会查找和解决,并向同学,老师请教。最后不能解决的问题要如实反映。3〕在整个过程中,需要设计者独立完成,不得抄袭,养成独立思考的能力。课程设计任务和内容(1)总体设计:包括功能结构图和系统流程图的设计〔包含五子棋游戏的各种功能步骤〕。

(2)细节局部:实现人人对弈和人机对弈的要求,并且对输入的内容判断棋盘是否已满,判断输入坐标〔下棋的位置〕是否已有棋子,如果有就提示重下,判断是否胜利,再者是循环整个游戏或者换成人人对弈或者人机对弈,可按玩家意愿选择,并且可选是自己先玩还是电脑先玩。〔3〕程序的运行:编译后的游戏按规那么步骤的将数据输入,然后按照提示就可以将游戏进行,并将其剪切出来。系统设计原那么(1)系统性。系统是作为统一整体而存在的,因此,在系统设计中,要从整个系统的角度进行考虑,系统的代码要统一,设计标准要标准,传递语言要尽可能一致,对系统的数据采集要做到数出一处、全局共享,使一次输入得到屡次利用。

(2)灵活性。为保持系统的长久生命力,要求系统具有很强的环境适应性,为此,系统应具有较好的开放性和结构的可变性。在系统设计中,应尽量采用模块化结构,提高各模块的独立性,尽可能减少模块间的数据耦合,使各子系统间的数据依赖减至最低限度。

(3)可靠性。可靠性是指系统抵御外界干扰的能力及受外界干扰时的恢复能力。一个一起玩家有乐趣的游戏系统必须具有较高的可靠性,如循环连接、检错及纠错能力、简明易懂等。

(4)标准性。游戏的运用以吸引玩家的乐趣为前提;一方面,系统设计中应尽量防止不必要的复杂化,另一方面各模块应尽量简洁,以便缩短处理流程。第三章详细设计说明3.1游戏分析和介绍基于本游戏,首先得为整个棋盘建立一张表格用以记录棋子信息,我们使用一个20*20的二维数组

Table[20][20]

(20*20是五子棋棋盘的大小),数组的每一个元素对应棋盘上的一个交叉点,用点表示空位、“1”和“2”在刚开始表示人机对弈或者人人对弈,之后表示人或电脑谁先下棋。通过输入姓名来确定玩家身份,这张表也是今后分析的根底。在此还要为两个玩家双方各建立一张棋型表Computer[20][20][4]和Player[20][20][4],用来存放棋型数据欢乐五子棋欢乐五子棋人人对弈或人机对弈判断棋盘是否已满双方交替循环下棋对输入内容判断并提示错误判断哪方获胜循环进行游戏图3-13.3文字说明该五子棋程序根本上实现了五子棋的游戏功能,有双方下棋的棋盘界面及最终判定结果的界面。同时该游戏采用二维坐标实现,明了易懂,方便玩家在游戏过程中的根本操作,使游戏更加简便。在细节方面,该系统判别棋面状况,如已有棋,那么提示重下,当棋盘满时,判断为平局。该游戏根本实现了欢乐五子棋游戏的一些要求和特征。在游戏的源程序及文档方面,我们也严格遵守软件工程思想,立足实验要求,确定任务,需求分析,设计和编码,每个步骤力求清晰易懂。原代码注释详尽,各功能模块功能清楚,可移植性强。当然该系统也有很多缺乏的地方,第一次进行独立的课程设计,也有很多细节方面是考虑不到的,这款游戏也是在不断的调试和修改中产生和完善的。希望老师能够指出缺乏,帮助我不断提高。3.4初始化:首先,建立盘面数组Table[20][20]、对战双方的棋型表Computer[20][20][4]和Player[20][20][4]并将它们清零以备使用;然后初始化显示器、键盘、鼠等输入输出设备并在屏幕上画出棋盘。〔棋盘已经显示〕主循环控制模块控制下棋顺序,当轮到某方下子时,负责将程序转到相应的模块中去,主要担当一个调度者的角色。下子当轮到对方下时,您通过键盘输入0到20的数字,回车键后在棋盘上落子,程序会根据该点的位置,在Table[20][20]数组的相应地方记录,以说明该子是玩家下的或者电脑下的,然后提示另一玩家下子。将自己和对手调换一下位置,然后用上面的方法来预测对手的棋,这样既可以防住对手巧妙的攻击,又能待机发动还击,玩家假设想赢的游戏,必须认真考虑每一步,在人机对弈中,要注意防范,也要考虑下一步对方怎么走,否那么容易输。盘面分析填写棋型表您在下五子棋时,一定会先根据棋盘上的情况,找出当前最重要的一些点位,如“活三”、“冲四”等;然后再在其中选择落子点。先来分析己方的棋型,我们从棋盘左上角出发,向右逐行搜索,当遇到一个空白点时,以它为中心向左挨个查找,如果遇到己方的子那么记录然后继续,如果遇到对方的子、空白点或边界就停止查找。左边完成后再向右进行同样的操作;最后把左右两边的记录合并起来,得到的数据就是该点横向上的棋型,然后把棋型的编号填入到Computer[x][y][n]中就行了〔x、y代表坐标,n=0、1、2、3分别代表横、竖、左斜、右斜四个方向〕。而其他三个方向的棋型也可用同样的方法得到,当搜索完整张棋盘后,己方棋型表也就填写完毕了。然后再用同样的方法填写对方棋型表。胜负判断当某方连成五子〔包括横,竖,斜〕即获胜,当某方获胜时,输出该方获胜,游戏结束,并进行下一轮游戏,提示摁1或2来进行人机或者人人对弈。本程序定义了各种操作函数、各种状态判定宏,思想明确,思路清晰。各个判断选择了不同路径,因此继续进行或输出结果。本流程图中,“循环”的利用非常直接和清晰,双方交替下棋,以及人机对弈,因此循环往复。最终决出胜负或最终平局。分析时,也考虑了许多种情况,针对各个情况均作出了相对措施和解决方案。对弈方式对弈方式人人对弈人机对弈输玩家名先下方入子先下方入子此位是否有子下子棋盘是否满另一方下棋提示重下输出该方胜胜获胜结束开始玩家姓名输1人先下下下2电脑先先判断是否获胜平局1200退出00退出00退出是否是否是否图3-2软件使用说明如图4-1运行结果出示图,输入数字进行游戏的开始或者退出图4-1如图4-2为人机对弈中,玩家自己选择是玩家先下棋或者电脑先下棋图4-2如图4-3为人人对弈过程,输入玩家的姓名图4-3图4-4为人人对弈中,假设输入玩家zhangbei和jinwubing,在对弈之后,zhangbei五子相连,输出“zhangbei获胜,游戏结束”可继续进行游戏。图4-4如图4-5为人机对弈中,最后玩家五子相连,输出了“玩家获胜,游戏结束”,可继续进行游戏。图4-5在运行该程序时,在人人对弈中,当涉及到1*1时,需要6个子才能算获胜,这是本程序的一个缺陷。另外,在本程序中涉及到许多函数都没学过,对这次的设计是一个很大的挑战,但在同学老师的帮助下最终克服了许多困难。第五章课程设计心得体会在本次课程设计中,不仅让我认识到自己学习上的缺乏,也通过请教其他同学和老师学会了修改并运行程序,还让自己复习了编程的知识,对遇到的众多问题,通过思考,耐心动手解决问题,在课程设计期间我也学到了课本中很多学不到的知识,明白了只有通过自己不断的动手实践才能找出缺乏、找出问题和提高自己能力,发现课程设计是我学习和掌握专业知识的好方法,让自己思维变得活泼,也会看懂,学明白程序问题,本次受益匪浅。最后,感谢王俊艳老师教我们《数据结构》这门课程,交给我很多程序设计的思想和知识。这次课程设计最要感谢老师和同学为我提供了这么多珍贵的意见并对我的报告做了很多的批示,给我讲解了很多我不懂得知识及应用方法,为我更好更快的完成报告付出了辛勤和汗水。附录1:参考文献1〕严蔚敏吴伟民《数据结构》北京清华大学出版社2010年2〕苏仕华魏韦巍王敬生刘燕君《数据结构课程设计〔第二版〕》北京机械工业出版社2010年。3〕谭浩强《C程序设计〔第二版〕》北京清华大学出版社1999年4〕谭浩强《C++程序设计》北京清华大学出版社2009年5〕丁展《Visual

C++游戏开发技术与实例》北京人民邮电出版社2005年附录2:程序清单#include<iostream>#include<memory.h>#include<string>usingnamespacestd;constintN=20;//定义棋盘规模intpace=0;//统计步数constcharchess[2]={'X','O'};//定义数组显示棋子颜色intlastI=0;intmaxI=9,maxJ=9;intlastJ=0;boolSystemError=0;voidinitchess(char*A,intN)//该函数,初始化棋盘{inti,j;for(i=0;i<N;i++){for(j=0;j<N;j++){A[i*N+j]='.';}}return;}voidprintchess(char*A,intN)//该函数,打印棋盘{inti,j;for(i=0;i<N;i++){if(i<10)cout<<""<<i;elsecout<<i;}cout<<N<<endl;for(i=0;i<N;i++){if(i<9)cout<<""<<i+1<<"";elsecout<<i+1<<"";for(j=0;j<N;j++){cout<<A[i*N+j];cout<<"";}cout<<endl;}return;}voidplayer(char*A,intN,intcolor)//该函数为玩家落子{inti,j;while(1){if(color==0)cout<<"请黑色方输入落子坐标,格式为xy"<<endl;elsecout<<"请白色方输入落子坐标,格式为xy"<<endl;cout<<"输入00退出游戏"<<endl;cin>>j>>i;if(j==0&&i==0){if(color==0)cout<<"黑色方放弃,白子获胜了,祝贺您!"<<endl;elsecout<<"白色方放弃,黑子获胜了,祝贺您!"<<endl;SystemError=1;return;}i--;j--;if(i<0||i>20||j<0||j>20)cout<<"请您输入1--20的数"<<endl;elseif(A[i*N+j]!='.')cout<<"已有棋子,请您重下"<<endl;elsebreak;}A[i*N+j]=chess[color];lastI=i;lastJ=j;pace++;return;}voidcomputeValue(intcolor,char*A){inti=0,j=0,maxmax=0,mark[400];for(i=0;i<N;i++){for(j=0;j<N;j++)mark[i*N+j]=0;}//初始分数为0charI;charU;if(color==0){I='X';U='O';}else{I='O';U='X';}for(i=1;i<N;i++){for(j=1;j<N;j++){if(A[i*N+j]=='.'){if((A[(i-1)*N+j]==I)||(A[(i+1)*N+j]==I)||(A[i*N+(j+1)]==I)||(A[i*N+(j-1)]==I)){mark[i*N+j]+=9;}//旁边有己方的棋if((A[(i-1)*N+j]==U)||(A[(i+1)*N+j]==U)||(A[i*N+(j+1)]==U)||(A[i*N+(j-1)]==U)){mark[i*N+j]+=10;}//旁边有对方的棋if((A[(i-1)*N+j]==I&&A[(i-2)*N+j]==I)||(A[i*N+(j-1)]==I&&A[i*N+(j-2)]==I)||(A[i*N+(j+1)]==I&&A[i*N+(j+2)]==I)||(A[(i+1)*N+j]==I&&A[(i+2)*N+j]==I)||(A[(i-1)*N+(j+1)]==I&&A[(i-2)*N+(j+2)]==I)||(A[(i+1)*N+(j+1)]==I&&A[(i+2)*N+(j+2)]==I)||(A[(i-1)*N+(j-1)]==I&&A[(i-2)*N+(j-2)]==I)||(A[(i+1)*N+(j-1)]==I&&A[(i+2)*N+(j-2)]==I)){mark[i*N+j]+=70;}//己方##if((A[(i-1)*N+j]==U&&A[(i-2)*N+j]==U)||(A[i*N+(j-1)]==U&&A[i*N+(j-2)]==U)||(A[i*N+(j+1)]==U&&A[i*N+(j+2)]==U)||(A[(i+1)*N+j]==U&&A[(i+2)*N+j]==U)||(A[i-1*N+j+1]==U&&A[i-2*N+j+2]==U)||(A[i+1*N+j+1]==U&&A[i+2*N+j+2]==U)||(A[i-1*N+j-1]==U&&A[i-2*N+j-2]==U)||(A[i+1*N+j-1]==U&&A[i+2*N+j-2]==U)){mark[i*N+j]+=50;}//对方00if((A[i-1*N+j]==I&&A[i+1*N+j])||(A[i*N+j-1]==I&&A[i*N+j+1]==I)||(A[i-1*N+j-1]==I&&A[i+1*N+j+1]==I)||(A[i-1*N+j+1]==I&&A[i+1*N+j-1]==I)){mark[i*N+j]+=75;}//己方##if((A[i-1*N+j]==U&&A[i+1*N+j]==U)||(A[i*N+j-1]==U&&A[i*N+j+1]==U)||(A[i-1*N+j-1]==U&&A[i+1*N+j+1]==U)||(A[i-1*N+j+1]==U&&A[i+1*N+j-1]==U)){mark[i*N+j]+=55;}//对方00if((A[(i-3)*N+j]==I&&A[(i-2)*N+j]==I&&A[(i-1)*N+j]==I)||(A[(i+1)*N+j]==I&&A[(i+2)*N+j]==I&&A[(i+3)*N+j]==I)||(A[i*N+(j-3)]==I&&A[i*N+(j-2)]==I&&A[i*N+(j-1)]==I)||(A[i*N+(j+1)]==I&&A[i*N+(j+2)]==I&&A[i*N+(j+3)]==I)||(A[(i-3)*N+(j-3)]==I&&A[(i-2)*N+(j-2)]==I&&A[(i-1)*N+(j-1)]==I)||(A[(i+3)*N+(j+3)]==I&&A[(i+2)*N+(j+2)]==I&&A[(i+1)*N+(j+1)]==I)||(A[(i-3)*N+(j+3)]==I&&A[(i-2)*N+(j+2)]==I&&A[(i-1)*N+(j+1)]==I)||(A[(i+3)*N+(j-3)]==I&&A[(i+2)*N+(j-2)]==I&&A[(i+1)*N+(j-1)]==I)){mark[i*N+j]+=100;}//己方###if((A[(i-3)*N+j]==U&&A[(i-2)*N+j]==U&&A[(i-1)*N+j]==U)||(A[(i+1)*N+j]==U&&A[(i+2)*N+j]==U&&A[(i+3)*N+j]==0)||(A[i*N+(j-3)]==U&&A[i*N+(j-2)]==U&&A[i*N+(j-1)]==U)||(A[i*N+(j+1)]==U&&A[i*N+(j+2)]==U&&A[i*N+(j+3)]==U)||(A[(i-3)*N+(j-3)]==U&&A[(i-2)*N+(j-2)]==U&&A[(i-1)*N+(j-1)]==U)||(A[(i+3)*N+(j+3)]==U&&A[(i+2)*N+(j+2)]==U&&A[(i+1)*N+(j+1)]==U)||(A[(i-3)*N+(j+3)]==U&&A[(i-2)*N+(j+2)]==U&&A[(i-1)*N+(j+1)]==U)||(A[(i+3)*N+(j-3)]==U&&A[(i+2)*N+(j-2)]==U&&A[(i+1)*N+(j-1)]==U)){mark[i*N+j]+=200;}//对方000if((A[(i+1)*N+j]==I&&A[(i-2)*N+j]==I&&A[(i-1)*N+j]==I)||(A[(i+1)*N+j]==I&&A[(i+2)*N+j]==I&&A[(i-1)*N+j]==I)||(A[i*N+(j+1)]==I&&A[i*N+(j-2)]==U&&A[i*N+(j-1)]==I)||(A[i*N+(j+1)]==I&&A[i*N+(j+2)]==U&&A[i*N+(j-1)]==I)||(A[(i+1)*N+(j+1)]==I&&A[(i-2)*N+(j-2)]==I&&A[(i-1)*N+(j-1)]==I)||(A[(i-1)*N+(j-1)]==I&&A[(i+2)*N+(j+2)]==I&&A[(i+1)*N+(j+1)]==I)||(A[(i+1)*N+(j-1)]==I&&A[(i-2)*N+(j+2)]==I&&A[(i-1)*N+(j+1)]==I)||(A[(i-1)*N+(j+1)]==I&&A[(i+2)*N+(j-2)]==I&&A[(i+1)*N+(j-1)]==I)){mark[i*N+j]+=300;}//己方###if((A[(i+1)*N+j]==U&&A[(i-2)*N+j]==U&&A[(i-1)*N+j]==U)||(A[(i+1)*N+j]==U&&A[(i+2)*N+j]==U&&A[(i-1)*N+j]==U)||(A[i*N+(j+1)]==U&&A[i*N+(j-2)]==U&&A[i*N+(j-1)]==U)||(A[i*N+(j+1)]==U&&A[i*N+(j+2)]==U&&A[i*N+(j-1)]==U)||(A[(i+1)*N+(j+1)]==U&&A[(i-2)*N+(j-2)]==U&&A[(i-1)*N+(j-1)]==U)||(A[(i-1)*N+(j-1)]==U&&A[(i+2)*N+(j+2)]==U&&A[(i+1)*N+(j+1)]==U)||(A[(i+1)*N+(j-1)]==U&&A[(i-2)*N+(j+2)]==U&&A[(i-1)*N+(j+1)]==U)||(A[(i-1)*N+(j+1)]==U&&A[(i+2)*N+(j-2)]==U&&A[(i+1)*N+(j-1)]==U)){mark[i*N+j]+=400;}//对方000if((A[(i-4)*N+j]==I&&A[(i-3)*N+j]==I&&A[(i-2)*N+j]==I&&A[(i-1)*N+j]==I)||(A[(i+1)*N+j]==I&&A[(i+2)*N+j]==I&&A[(i+3)*N+j]==I&&A[(i+4)*N+j]==I)||(A[i*N+(j-4)]==I&&A[i*N+(j-3)]==I&&A[i*N+(j-2)]==I&&A[i*N+(j-1)]==I)||(A[i*N+(j+1)]==I&&A[i*N+(j+2)]==I&&A[i*N+(j+3)]==I&&A[i*N+(j+4)]==I)||(A[(i-4)*N+(j-4)]==I&&A[(i-3)*N+(j-3)]==I&&A[(i-2)*N+(j-2)]==I&&A[(i-1)*N+(j-1)]==I)||(A[(i+4)*N+(j+4)]==I&&A[(i+3)*N+(j+3)]==I&&A[(i+2)*N+(j+2)]==I&&A[(i+1)*N+(j+1)]==I)||(A[(i-4)*N+(j+4)]==I&&A[(i-3)*N+(j+3)]==I&&A[(i-2)*N+(j+2)]==I&&A[(i-1)*N+(j+1)]==I)||(A[(i+4)*N+(j-4)]==I&&A[(i+3)*N+(j-3)]==I&&A[(i+2)*N+(j-2)]==I&&A[(i+1)*N+(j-1)]==I)){mark[i*N+j]+=1000;}//己方####if((A[(i-4)*N+j]==U&&A[(i-3)*N+j]==U&&A[(i-2)*N+j]==U&&A[(i-1)*N+j]==U)||(A[(i+1)*N+j]==U&&A[(i+2)*N+j]==U&&A[(i+3)*N+j]==U&&A[(i+4)*N+j]==U)||(A[i*N+(j-4)]==U&&A[i*N+(j-3)]==U&&A[i*N+(j-2)]==U&&A[i*N+(j-1)]==U)||(A[i*N+(j+1)]==U&&A[i*N+(j+2)]==U&&A[i*N+(j+3)]==U&&A[i*N+(j+4)]==U)||(A[(i-4)*N+(j-4)]==U&&A[(i-3)*N+(j-3)]==U&&A[(i-2)*N+(j-2)]==U&&A[(i-1)*N+(j-1)]==U)||(A[(i+4)*N+(j+4)]==U&&A[(i+3)*N+(j+3)]==U&&A[(i+2)*N+(j+2)]==U&&A[(i+1)*N+(j+1)]==U)||(A[(i-4)*N+(j+4)]==U&&A[(i-3)*N+(j+3)]==U&&A[(i-2)*N+(j+2)]==U&&A[(i-1)*N+(j+1)]==U)||(A[(i+4)*N+(j-4)]==U&&A[(i+3)*N+(j-3)]==U&&A[(i+2)*N+(j-2)]==U&&A[(i+1)*N+(j-1)]==U)){mark[i*N+j]+=900;}//对方0000if(mark[i*N+j]>maxmax){maxmax=mark[i*N+j];maxI=i;maxJ=j;}}}}}voidcomputer(char*A,intN,intcolor)//值评估函数{computeValue(color,A);A[maxI*N+maxJ]=chess[color];lastI=maxI;lastJ=maxJ;}boolcheck(char*A,intN)//该函数,用于判断是否连成五子{inti,j;intnum=0;for(i=lastI-1,j=lastJ;i>0;i--){if(A[i*N+j]==A[lastI*N+lastJ])num++;elsebreak;}for(i=lastI+1,j=lastJ;i<20;i++){if(A[i*N+j]==A[lastI*N+lastJ])num++;elsebreak;}if(num>=4)return1;num=0;for(i=lastI,j=lastJ-1;j>0;j--){if(A[i*N+j]==A[lastI*N+lastJ])num++;elsebreak;}for(i=lastI,j=lastJ+1;j<20;j++){if(A[i*N+j]==A[lastI*N+lastJ])num++;elsebreak;}if(num>=4)return1;num=0;for(i=lastI-1,j=lastJ+1;i>0&&j<20;i--,j++){if(A[i*N+j]==A[lastI*N+lastJ])num++;elsebreak;}for(i=lastI+1,j=lastJ-1;i<20&&j>0;i++,j--){if(A[i*N+j]==A[lastI*N+lastJ])num++;elsebreak;}if(num>=4)return1;num=0;for(i=lastI-1,j=lastJ-1;i>0&&j>0;i--,j--){if(A[i*N+j]==A[lastI*N+lastJ])num++;elsebreak;}for(i=lastI+1,j=lastJ+1;i<20&&j<20;i++,j++){if(A[i*N+j]==A[lastI*N+lastJ])num++;elsebreak;}if(num>=4)return1;elsereturn0;}voidPlay(char*A,intN,intinput)//游戏函数{if(input==2){cout<<"请玩家1输入姓名:"<<endl;stringname1="player1";cin>>name1;cout<<"请玩家2输入姓名:"<<endl;stringname2="player2";cin>>name2;while(1){player(A,N,0);if(SystemError)return;system("cls");printchess(A,N);if(check(A,N)){cout<<name1<<"获胜,游戏结束"<<endl;break;}if(pace==361){

温馨提示

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

评论

0/150

提交评论