




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华容道游戏程序操作步骤头文件放置:(1) 确定VC6.0安装是默认路径还是自定义路径A、 默认路径:将openGL文件夹内所有.h类型文件复制到C:Program FileMicrosoft Visual C+6.0VC98IncludeGL文件夹下。 将openGL文件夹内所有.lib类型文件复制到 C:Program FileMicrosoft Visual C+6.0VC98Lib文件夹下。B、 自定义路径:先找到安装Visual C+6.0的路径。找到VC98文件夹将openGL文件夹内所有.h类型文件复制到VC98IncludeGL文件夹下。将openGL文件夹内所有.lib类型文件复制到VC98Lib文件夹下。(2) 将openGL文件夹内所有.dll类型文件复制到C:WINDOWSSystem32文件夹中。1, 打开VC+6.0,新建MFC单文档应用程序,项目名称:HUARD,并将picture文件夹拷贝到此项目文件夹下。(先建工程,再将picture文件夹拷贝到所建立文件夹HUARD中)图1 新建MFC单文档应用程序工程,工程名称:HUARD图2 选择“单文档”程序类型,点击“完成”2打开“资源视图”,在Menu下双击“IDR_MAINFRAME”,新建如下菜单:图3 新建菜单菜单子项ID比翼横空ID_BYHK三军联防ID_SJLF重重包围ID_CCBW调兵遣将ID_DBQJ水泄不通ID_SXBT3点击”HUARD classes”,鼠标右击,选择“new class”.图3_1 新建Cell类选择Generic class,单击ok.(generic CWnd是派生cwind类)图 3_2 新建cell类 4.在cell.h文件中的class cell中添加如下成员变量和成员函数:右击类class cell,加成员变量和成员函数。(cell类型是一个单元格类型。通过界面不难看出棋子是由一个或多个正方形构成的。而cell类型则是构建这个正方形的单元格)Public:void Setpos(GLfloat x,GLfloat y);void Setchessname(GLint name);void Setcellstate(GLint state);int Getchessname();int Getcellstate();bool DrawChess(GLuint *texture);bool CopyCell(cell &tcell);bool clear();private:GLfloat pos_x;GLfloat pos_y;GLint cellstate;GLint chessname;GLuint texid;/(在这里很多类似GLint数据类型的定义。其实就是我们所熟悉的int类型数据。GL是一个平台转换功能。可根据平台的不同,而使后面的int类型能自动适应所在平台。)添加方法如下:图4_1 新建成员函数图4_2 添加成员函数void Setpos(GLfloat x,GLfloat y);图4_3 添加成员变量图4_4 添加成员变量GLfloat pos_x;5在步骤4中添加的函数中添加对应代码,并在cell.h文件首添加头文件:“#include ”,并在cell.cpp中添加函数bool cell:CopyCell(cell &tcell) /复制单元中棋子名称和位置。传引用调用CELL类型变量chessname=tcell.Getchessname();cellstate=tcell.Getcellstate();tcell.clear();return true;bool cell:clear()/将位置和名字置为0chessname=CN_EMPTY;cellstate=CS_EMPTY;return true;void cell:Setpos(GLfloat x,GLfloat y) /赋值位置坐标pos_x=x;pos_y=y;void cell:Setchessname(GLint name) /赋值棋子名字chessname=name;void cell:Setcellstate(GLint state) /赋值棋子部分cellstate=state;int cell:Getchessname()/获得棋子名字return chessname;int cell:Getcellstate()/获得位置return cellstate;bool cell:DrawChess(GLuint *texture) /画棋子,并为每个棋子的纹理标号。 glPushMatrix();/把当前的矩阵数据压栈(就是保存起来)glTranslatef(pos_x,pos_y,0.0); /沿着矩阵中X和Y的位置移动switch (chessname)case CN_CAOCAO:glBindTexture(GL_TEXTURE_2D, texture0) ; /建立一个绑定到目标纹理的有名称的纹理break;case CN_ZHANGFEI:switch (cellstate)case CS_LEFT:case CS_RIGHT:glBindTexture(GL_TEXTURE_2D, texture6);break;case CS_BOTTOM:case CS_TOP:glBindTexture(GL_TEXTURE_2D, texture7);break;break;case CN_ZHAOYUN:switch (cellstate)case CS_LEFT:case CS_RIGHT:glBindTexture(GL_TEXTURE_2D, texture8);break;case CS_BOTTOM:case CS_TOP:glBindTexture(GL_TEXTURE_2D, texture9);break;break;case CN_MACHAO:switch (cellstate)case CS_LEFT:case CS_RIGHT:glBindTexture(GL_TEXTURE_2D, texture4);break;case CS_BOTTOM:case CS_TOP:glBindTexture(GL_TEXTURE_2D, texture5);break;break;case CN_GUANYU:switch (cellstate)case CS_LEFT:case CS_RIGHT:glBindTexture(GL_TEXTURE_2D, texture1);break;case CS_BOTTOM:case CS_TOP:glBindTexture(GL_TEXTURE_2D, texture1);break;break;case CN_HUANGZHONG:switch (cellstate)case CS_LEFT:case CS_RIGHT:glBindTexture(GL_TEXTURE_2D, texture2);break;case CS_BOTTOM:case CS_TOP:glBindTexture(GL_TEXTURE_2D, texture3);break;break;case CN_BIN:case CN_YONG:case CN_ZU:case CN_DIN:glBindTexture(GL_TEXTURE_2D, texture10);break;case CN_EMPTY:glBindTexture(GL_TEXTURE_2D,texture12);break;glBegin(GL_QUADS);switch (cellstate)case CS_TOPLEFT:glTexCoord2f(0.0f,0.5f);glVertex3f(0.0,0.0,0.0); /glTexCoord*() 设置纹理坐标,glVertex*() 设置顶点坐标glTexCoord2f(0.5f,0.5f);glVertex3f(1.0,0.0,0.0);glTexCoord2f(0.5f,1.0f);glVertex3f(1.0,1.0,0.0);glTexCoord2f(0.0f,1.0f);glVertex3f(0.0,1.0,0.0);break;case CS_TOPRIGHT:glTexCoord2f(0.5f,0.5f);glVertex3f(0.0,0.0,0.0);glTexCoord2f(1.0f,0.5f);glVertex3f(1.0,0.0,0.0);glTexCoord2f(1.0f,1.0f);glVertex3f(1.0,1.0,0.0);glTexCoord2f(0.5f,1.0f);glVertex3f(0.0,1.0,0.0);break;case CS_BOTTOMLEFT:glTexCoord2f(0.0f,0.0f);glVertex3f(0.0,0.0,0.0);glTexCoord2f(0.5f,0.0f);glVertex3f(1.0,0.0,0.0);glTexCoord2f(0.5f,0.5f);glVertex3f(1.0,1.0,0.0);glTexCoord2f(0.0f,0.5f);glVertex3f(0.0,1.0,0.0);break;case CS_BOTTOMRIGHT:glTexCoord2f(0.5f,0.0f);glVertex3f(0.0,0.0,0.0);glTexCoord2f(1.0f,0.0f);glVertex3f(1.0,0.0,0.0);glTexCoord2f(1.0f,0.5f);glVertex3f(1.0,1.0,0.0);glTexCoord2f(0.5f,0.5f);glVertex3f(0.0,1.0,0.0);break;case CS_LEFT:glTexCoord2f(0.0f,0.0f);glVertex3f(0.0,0.0,0.0);glTexCoord2f(0.5f,0.0f);glVertex3f(1.0,0.0,0.0);glTexCoord2f(0.5f,1.0f);glVertex3f(1.0,1.0,0.0);glTexCoord2f(0.0f,1.0f);glVertex3f(0.0,1.0,0.0);break;case CS_RIGHT:glTexCoord2f(0.5f,0.0f);glVertex3f(0.0,0.0,0.0);glTexCoord2f(1.0f,0.0f);glVertex3f(1.0,0.0,0.0);glTexCoord2f(1.0f,1.0f);glVertex3f(1.0,1.0,0.0);glTexCoord2f(0.5f,1.0f);glVertex3f(0.0,1.0,0.0);break;case CS_TOP:glTexCoord2f(0.0f,0.5f);glVertex3f(0.0,0.0,0.0);glTexCoord2f(1.0f,0.5f);glVertex3f(1.0,0.0,0.0);glTexCoord2f(1.0f,1.0f);glVertex3f(1.0,1.0,0.0);glTexCoord2f(0.0f,1.0f);glVertex3f(0.0,1.0,0.0);break;case CS_BOTTOM:glTexCoord2f(0.0f,0.0f);glVertex3f(0.0,0.0,0.0);glTexCoord2f(1.0f,0.0f);glVertex3f(1.0,0.0,0.0);glTexCoord2f(1.0f,0.5f);glVertex3f(1.0,1.0,0.0);glTexCoord2f(0.0f,0.5f);glVertex3f(0.0,1.0,0.0);break;case CS_BIN:case CS_EMPTY:glTexCoord2f(0.0f,0.0f);glVertex3f(0.0,0.0,0.0);glTexCoord2f(1.0f,0.0f);glVertex3f(1.0,0.0,0.0);glTexCoord2f(1.0f,1.0f);glVertex3f(1.0,1.0,0.0);glTexCoord2f(0.0f,1.0f);glVertex3f(0.0,1.0,0.0);break;glEnd();glPopMatrix();/把当前的矩阵数据出栈(就是把保存的再回复)return true;6、在文件cell.h首添加如下代码:在类前面添加。enum CHESSNAMECN_EMPTY=0, /0CN_CAOCAO, /1CN_ZHANGFEI,/2CN_ZHAOYUN,/3CN_MACHAO,/4CN_GUANYU,/5CN_HUANGZHONG,/6CN_BIN,/7CN_YONG,/8CN_ZU,/9CN_DIN,/10;enum CELLSTATECS_EMPTY=0, /0CS_TOPLEFT,/曹操左上角部分 /1CS_TOPRIGHT, /2CS_BOTTOMLEFT, /3CS_BOTTOMRIGHT, /4CS_TOP,/将士竖着摆放时,将士上半部分 /5CS_BOTTOM, /6CS_LEFT,/将士横着摆放时,将士左半部分 /7CS_RIGHT, /8CS_BIN,/小将,就占一个格子 /9;/比翼横空static int nameConfig154 =7,0,8,6,9,0,10,6, 3,3,4,4,2,2,1,1, 5,5,1,1;static int stateConfig154 =9,0,9,6,9,0,9,5,7,8,7,8,7,8,3,4, 7,8,1,2 ;/三军联防static int nameConfig254 =7,0,0,8,9,3,3,10, 5,5,2,2,1,1,4,6, 1,1,4,6;static int stateConfig254 =9,0,0,9,9,7,8,9,7,8,7,8,3,4,6,6, 1,2,5,5 ;/重重包围static int nameConfig354 =7,0,0,8,4,2,2,6, 4,5,5,6,3,1,1,9, 3,1,1,10;static int stateConfig354 =9,0,0,9,6,7,8,6,5,7,8,5,6,3,4,9, 5,1,2,9 ;/调兵遣将static int nameConfig454 =0,6,6,0,3,3,4,4, 5,5,2,2,1,1,7,8, 1,1,9,10;static int stateConfig454 =0,7,8,0,7,8,7,8,7,8,7,8,3,4,9,9, 1,2,9,9 ;/水泄不通static int nameConfig554 =7,0,0,8,3,3,4,4, 5,5,2,2,9,1,1,6, 10,1,1,6;static int stateConfig554 =9,0,0,9,7,8,7,8,7,8,7,8,9,3,4,6, 9,1,2,5 ;7、至此,编译程序无错。在文件HUARDView.h中的CHUARDView类中添加如下成员变量和成员函数,添加与步骤4类似。成员变量:Public:CDC* m_hDC;HGLRC m_hRC;CRect m_oldRect;GLfloat W,H;GLuinttexture13;cell cells54;GLboolean moveable;int i_index;int j_index;int ii_index;int jj_index;CHESSNAME mchessname;成员函数:Public:bool movecell(MOVEDIRETION mdirection,int i,int j);bool IsEmpty(int i,int j);void ResetChessState(int index);void DrawBoard(unsigned int mode);void readchessdata(int nameConfig54,int stateConfig54);bool Loadtexfile(char *filename,int texid);void init();void Display();8选中类CHUADView,添加消息响应函数OnCreate,OnSize,OnEraseBKgnd,OnDestroy,添加方法如下:图5 添加系统消息响应函数9在步骤7和8中添加的系统消息响应函数中添加相应代码如下:bool CHUARDView:movecell(MOVEDIRETION mdirection, int i, int j) /移动单元格switch (mdirection)case MD_LEFT:cellsij-1.CopyCell(cellsij);break;case MD_RIGHT:cellsij+1.CopyCell(cellsij);break;case MD_BOTTOM:cellsi-1j.CopyCell(cellsij);break;case MD_TOP:cellsi+1j.CopyCell(cellsij);break;cellsij.clear();return true;bool CHUARDView:IsEmpty(int i, int j) /判断是否为空if(i0 |j4|j4)return false;if (cellsij.Getchessname()=CN_EMPTY)return true;else return false;void CHUARDView:ResetChessState(int index) /设置棋子移动后状态和位置int i=(index-1)/4;int j=index-4*i-1;int t=0;if (cellsij.Getcellstate()=0 & moveable=false)return;/求棋子左下角的索引if(cellsij.Getchessname()!=CN_EMPTY)if (cellsij.Getchessname()=CN_CAOCAO)i=(cellsij.Getcellstate()=CS_BOTTOMLEFT |cellsij.Getcellstate()=CS_BOTTOMRIGHT)?i:i-1;j=(cellsij.Getcellstate()=CS_TOPLEFT |cellsij.Getcellstate()=CS_BOTTOMLEFT)?j:j-1;else if (cellsij.Getchessname()=CN_BIN )i=i;j=j;else i=(cellsij.Getcellstate()=CS_TOP)?i-1:i;j=(cellsij.Getcellstate()=CS_RIGHT)?j-1:j;i_index=i;j_index=j;mchessname=(CHESSNAME)cellsij.Getchessname();moveable=true;/确定棋子移动方向elseswitch (mchessname)case CN_CAOCAO:if(IsEmpty(i_index,j_index-1) & IsEmpty(i_index+1,j_index-1) &(i=i_index& j=j_index-1|i=i_index+1& j=j_index-1)movecell(MD_LEFT ,i_index,j_index);movecell(MD_LEFT ,i_index+1,j_index);movecell(MD_LEFT ,i_index,j_index+1);movecell(MD_LEFT ,i_index+1,j_index+1);if(IsEmpty(i_index-1,j_index) & IsEmpty(i_index-1,j_index+1)&(i=i_index-1& j=j_index|i=i_index-1& j=j_index+1)movecell(MD_BOTTOM ,i_index,j_index);movecell(MD_BOTTOM ,i_index,j_index+1);movecell(MD_BOTTOM ,i_index+1,j_index);movecell(MD_BOTTOM ,i_index+1,j_index+1);if(IsEmpty(i_index,j_index+2) & IsEmpty(i_index+1,j_index+2)&(i=i_index& j=j_index+2|i=i_index+1& j=j_index+2)movecell(MD_RIGHT ,i_index,j_index+1);movecell(MD_RIGHT ,i_index+1,j_index+1);movecell(MD_RIGHT ,i_index,j_index);movecell(MD_RIGHT ,i_index+1,j_index);if(IsEmpty(i_index+2,j_index) & IsEmpty(i_index+2,j_index+1)&(i=i_index+2& j=j_index|i=i_index+2& j=j_index+1)movecell(MD_TOP,i_index+1,j_index);movecell(MD_TOP ,i_index+1,j_index+1);movecell(MD_TOP ,i_index,j_index);movecell(MD_TOP ,i_index,j_index+1);break;case CN_ZHANGFEI:case CN_ZHAOYUN:case CN_MACHAO:case CN_GUANYU:case CN_HUANGZHONG:/如果棋子横放if(cellsi_indexj_index.Getcellstate()=CS_LEFT)if(IsEmpty(i_index,j_index-1) &(i=i_index& j=j_index-1)movecell(MD_LEFT,i_index,j_index);movecell(MD_LEFT ,i_index,j_index+1);if(IsEmpty(i_index-1,j_index) & IsEmpty(i_index-1,j_index+1)&(i=i_index-1& j=j_index|i=i_index-1& j=j_index+1)movecell(MD_BOTTOM,i_index,j_index);movecell(MD_BOTTOM ,i_index,j_index+1);if(IsEmpty(i_index,j_index+2)&(i=i_index& j=j_index+2)movecell(MD_RIGHT,i_index,j_index+1);movecell(MD_RIGHT ,i_index,j_index);/directiont+=MD_RIGHT;if(IsEmpty(i_index+1,j_index) & IsEmpty(i_index+1,j_index+1)&(i=i_index+1& j=j_index|i=i_index+1& j=j_index+1)movecell(MD_TOP,i_index,j_index+1);movecell(MD_TOP ,i_index,j_index);/如果棋子竖放elseif(IsEmpty(i_index,j_index-1) & IsEmpty(i_index+1,j_index-1)&(i=i_index& j=j_index-1|i=i_index+1& j=j_index-1)movecell(MD_LEFT,i_index,j_index);movecell(MD_LEFT ,i_index+1,j_index);if(IsEmpty(i_index-1,j_index) &(i=i_index-1& j=j_index)movecell(MD_BOTTOM,i_index,j_index);movecell(MD_BOTTOM ,i_index+1,j_index);if(IsEmpty(i_index,j_index+1) & IsEmpty(i_index+1,j_index+1)&(i=i_index& j=j_index+1|i=i_index+1& j=j_index+1)movecell(MD_RIGHT,i_index+1,j_index);movecell(MD_RIGHT ,i_index,j_index);if(IsEmpty(i_index+2,j_index)&(i=i_index+2&j=j_index)movecell(MD_TOP,i_index+1,j_index);movecell(MD_TOP ,i_index,j_index);break;case CN_BIN:case CN_YONG:case CN_ZU:case CN_DIN:if(IsEmpty(i_index,j_index-1)&(i=i_index& j=j_index-1 )movecell(MD_LEFT,i_index,j_index);if(IsEmpty(i_index-1,j_index) &(i=i_index-1& j=j_index)movecell(MD_BOTTOM,i_index,j_index);if(IsEmpty(i_index,j_index+1)&(i=i_index& j=j_index+1)movecell(MD_RIGHT,i_index,j_index);if(IsEmpty(i_index+1,j_index)&(i=i_index+1& j=j_index)movecell(MD_TOP,i_index,j_index);break;moveable=false;DrawBoard(GL_RENDER);void CHUARDView:DrawBoard(unsigned int mode) /制作画板int nameNum=0;for (int i=0;i5;i+)for (int j=0;j4;j+)if (mode=GL_SELECT)glLoadName(+nameNum);cellsij.DrawChess(texture);glFlush();void CHUARDView:readchessdata(int nameConfig4, int stateConfig4) /读取棋子坐标位置,名字和单元位置for (int i=0;i5;i+)for (int j=0;jsizeX,pImage-sizeY,GL_RGB,GL_UNSIGNED_BYTE,pImage-data);/二维纹理定义函数:glTexImage2D 宽高要求2n /纹理控制glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);/设置纹理在s方向上的纹理环绕方式glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);/ 线形滤波glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);/ 线形滤波glTexEnvf(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_DECAL); /指定纹理贴图和材质混合的方式free(pImage);return true;void CHUARDView:init()/载入背景颜色和图片glClearColor(0.0,0.0,0.0,1.0); /背景颜色设置为黑色glEnable(GL_TEXTURE_2D); /关闭服务器端的GL功能glGenTextures(13,texture);/申请纹理空间Loadtexfile(picture/曹操.bmp,texture0);/读取图片Loadtexfile(picture/关羽1.bmp,texture1);Loadtexfile(picture/黄忠1.bmp,texture2);Loadtexfile(picture/黄忠2.bmp,texture3);Loadtexfile(picture/马超1.bmp,texture4);Loadtexfile(picture/马超2.bmp,texture5);Loadtexfile(picture/张飞1.bmp,texture6);Loadtexfile(picture/张飞2.bmp,texture7);Loadtexfile(picture/赵云1.bmp,texture8);Loadtexfile(picture/赵云2.bmp,texture9);Loadtexfile(picture/兵.bmp,texture10);Loadtexfile(picture/背景纹理.bmp,texture11);Loadtexfile(picture/空格纹理.bmp,texture12);readchessdata(nameConfig1,stateConfig1);void CHUARDView:Display()/显示功能glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);glBindTexture(GL_TEXTURE_2D,texture11);glTranslatef(0.0,0.0,-0.1);glBegin(GL_QUADS);glTexCoord2f(1.0f,1.0f);glVertex3f(3.0,3.0,0.0);glTexCoord2f(0.0f,1.0f);glVertex3f(-3.0,3.0,0.0);glTexCoord2f(0.0f,0.0f);glVertex3f(-3.0,-3.0,0.0);glTexCoord2f(1.0f,0.0f);glVertex3f(3.0,-3.0,0.0);glEnd();glTranslatef(0.0,0.0,0.1);DrawBoard(GL_RENDER);SwapBuffers(wglGetCurrentDC();int CHUARDView:OnCreate(LPCREATESTRUCT lpCreateStruct) /创建游戏界面消息响应函数if (CView:OnCreate(lpCreateStruct) = -1)return -1;/ TODO: Add your specialized creation code herem_hDC=new CClientDC(this);/初始化像素格式及选取合适的格式来创建RCPIXELFORMATDESCRIPTOR pfd = sizeof(PIXELFORMATDESCRIPTOR) , / pfd结构的大小1 , / 版本号PFD_DRAW_TO_WINDOW | / 支持在窗口中绘图PFD_SUPPORT_OPENGL | / 支持OpenGL PFD_DOUBLEBUFFER| / 双缓存模式PFD_STEREO | /支持立体模式PFD_TYPE_RGBA , / RGBA 颜色模式24 , / 24 位颜色深度0 , 0 , 0 , 0 , 0 , 0 , / 忽略颜色位0 , / 没有非透明度缓存0 , / 忽略移位位0 , / 无累加缓存0 , 0 , 0 , 0 , / 忽略累加位32 , / 32 位深度缓存0 , / 无模板缓存0 , / 无辅助缓存PFD_MAIN_PLANE , / 主层0 , / 保留0 , 0 , 0 / 忽略层, 可见性和损毁掩模;int pixelformat;pixelformat=:ChoosePixelFormat(m_hDC-GetSafeHdc() , &pfd);if (pixelformat=0)MessageBox(选择像素格式失败! , 设置像素格式, MB_ICONERROR);return FALSE;/设置指定象素格式if (:SetPixelFormat(m_hDC-GetSafeHdc() , pixelformat , &pfd)=FALSE)MessageBox(设置像素格式失败! , 设置像素格式 , MB_ICONERROR);return FALSE;/初始化OpenGL,创建渲染描述表m_hRC=:wglCreateContext(m_hDC-GetSafeHdc(); /设置当前的RC,以后的画图操作都画在m_pDC指向的DC上:wglMakeCurrent(m_hDC-GetSafeHdc() , m_hRC); /当前化渲染描述表GetClientRect(&m_oldRect); /获取客户区大小glClearDepth(1.0f);glEnable(GL_DEPTH_TEST); /启动深度测试glMatrixMode(GL_MODELVIEW); /启动模型矩阵glLoadIdentity(); /初始化矩阵init();return 0;void CHUARDView:OnSize(UINT nType, int cx, int cy) /设置界面尺寸消息响应函数CView:OnSize(nType, cx, cy);/ TODO: Add your message handler code
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 探讨2025年航空制造业智能制造系统集成项目的市场前景分析报告
- 学习与探究之二 如果我是历史学家教学设计-2025-2026学年高中历史人民版选修探索历史的奥秘-人民版2004
- 造型生动的水果拼盘 教案-2023-2024学年高一上学期劳动技术
- 2025年9-乙烯基蒽行业研究报告及未来行业发展趋势预测
- 2025年5-羟甲基糠醛行业研究报告及未来行业发展趋势预测
- 反射炉工专业知识考核试卷及答案
- 玻璃厂废品管理制度
- 电池厂搅拌罐安全操作规章
- 竖井钻机工三级安全教育(班组级)考核试卷及答案
- 生物质燃料值班员测试考核试卷及答案
- 学生课程免考(修)申请表(模板)
- 粘膜免疫 2课件
- 电子课件-《可编程序控制器及其应用(三菱-第三版)》-A04-1724-课题一-可编程序控制器基础知识
- 统计业务知识(统计法规)课件
- 实验计划样表
- 艾滋病个案流行病学调查表
- 广告策划与创意课件-2
- 地质勘察任务书模板
- 全国中心血站上岗证考试题库
- 环境社会学整本书课件完整版电子教案全套课件最全教学教程ppt(最新)
- 计算机组装与维护完整版课件(全)
评论
0/150
提交评论