




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课 程 设 计 报 告 课程名称:面向对象程序设计C+ 设计题目: 贪 吃 蛇 专 业:计算机科学与技术 姓 名: 学 号: 指导教师: 李 晓 虹 2015 年 12 月 20 日一、系统需求分析 贪吃蛇游戏作为一款经典小游戏,版本多样,娱乐性也很高,适合在闲暇时放松心神。并且可在多个平台上实现,程序简单易懂,非常适合初学者学习制作。1、语言的使用现在的贪吃蛇游戏一般是用C语言实现的,用C语言编写贪吃蛇游戏比较简单易懂,当然也可以用其他语言来实现,比如Java、C+、C#等,这里我们用C+来实现。2、用C+的优势C+在一定程度上可以和C语言很好的结合,甚至大多数C语言程序是在C+的集成开发环境中完成的。C+相对众多的面向对象的语言,具有相当高的性能。C+引入了面向对象的概念,使得开发人机交互类型的应用程序更为简单、快捷。很多优秀的程序框架包括Boost、Qt、MFC、OWL、WTL就是使用的C+。二、系统总体设计1游戏界面设计运行程序。点击“游戏-开始游戏”,出现围墙界面,一条蛇在密闭的围墙内,在围墙内随机出现一食物,游戏开始。游戏开始后,通过四个方向键控制蛇的运动方向,吃掉随机出现的豆子,若不小心碰到墙壁或者与自身相交,则该轮游戏结束。游戏结束后,会弹出游戏得分。点击“游戏-退出游戏”,退出游戏。点击“游戏设置-等级设置”,设置游戏相应等级。点击“游戏帮助-帮助”,查看游戏的玩法。点击“游戏帮助-关于”,查看游戏的版本信息。单击“英雄榜”,查看高手信息。2游戏运行流程图如下: 三、详细设计1新建工程打开VC+6.0,选择文件新建命令,新建一个工程,再选择MFC APPwizardexe,工程名取为:Snake。新建Menu菜单,其ID设置为IDR_MAIN_MENU。2控件的设计各控件设置属性如下:3添加主菜单对象成功设置ID之后 我们通过类向导添加相应函数,设置完毕后再在头文件中增加一个主菜单对象,代码如下:4具体实现游戏4.1 菜单响应函数的声明,代码如下:/ SnakeDlg.h : header file#if !defined(AFX_SNAKEDLG_H_275E8D1B_43B7_4FE8_B6AF_4897C77E9FED_INCLUDED_)#define AFX_SNAKEDLG_H_275E8D1B_43B7_4FE8_B6AF_4897C77E9FED_INCLUDED_#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000/ CSnakeDlg dialog#include SnakeGame.hclass CSnakeDlg : public CDialog/ Constructionpublic:void Help();void HeroList();void PlayBackMusic(BOOL bflg);void InitMenu();CSnakeDlg(CWnd* pParent = NULL);/ standard constructor/ Dialog Data/AFX_DATA(CSnakeDlg)enum IDD = IDD_SNAKE_DIALOG ;/ NOTE: the ClassWizard will add data members here/AFX_DATA/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CSnakeDlg)protected:virtual void DoDataExchange(CDataExchange* pDX);/ DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:HICON m_hIcon;/主图标CMenu m_main_menu;/主菜单对象BOOL m_bStart;/游戏开始标志CSnakeGame m_snake;/主游戏对象/ Generated message map functions/AFX_MSG(CSnakeDlg)virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();afx_msg void OnUpdatePlayMusic(CCmdUI* pCmdUI);afx_msg void OnUpdateHigh(CCmdUI* pCmdUI);afx_msg void OnUpdateLow(CCmdUI* pCmdUI);afx_msg void OnUpdateNor(CCmdUI* pCmdUI);afx_msg void OnUpdateHelp(CCmdUI* pCmdUI);afx_msg void OnUpdateHeroList(CCmdUI* pCmdUI);afx_msg void OnUpdateExitGame(CCmdUI* pCmdUI);afx_msg void OnUpdateAbout(CCmdUI* pCmdUI);afx_msg void OnUpdateStartGame(CCmdUI* pCmdUI);afx_msg void OnTimer(UINT nIDEvent);afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);/AFX_MSGDECLARE_MESSAGE_MAP();/AFX_INSERT_LOCATION/ Microsoft Visual C+ will insert additional declarations immediately before the previous line.#endif / !defined(AFX_SNAKEDLG_H_275E8D1B_43B7_4FE8_B6AF_4897C77E9FED_INCLUDED_)4.2 菜单响应函数实现,代码如下:/ SnakeDlg.cpp : implementation file/#include stdafx.h#include Snake.h#include SnakeDlg.h#include HelpDlg.h#include HeroDlg.h#include #ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialogpublic:CAboutDlg();/ Dialog Data/AFX_DATA(CAboutDlg)enum IDD = IDD_ABOUTBOX ;/AFX_DATA/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CAboutDlg)protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/AFX_MSG(CAboutDlg)/AFX_MSGDECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)/AFX_DATA_INIT(CAboutDlg)/AFX_DATA_INITvoid CAboutDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAboutDlg)/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAboutDlg, CDialog)/AFX_MSG_MAP(CAboutDlg)/ No message handlers/AFX_MSG_MAPEND_MESSAGE_MAP()/ CSnakeDlg dialogCSnakeDlg:CSnakeDlg(CWnd* pParent /*=NULL*/): CDialog(CSnakeDlg:IDD, pParent)/AFX_DATA_INIT(CSnakeDlg)/ NOTE: the ClassWizard will add member initialization here/AFX_DATA_INIT/ Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);void CSnakeDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CSnakeDlg)/ NOTE: the ClassWizard will add DDX and DDV calls here/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CSnakeDlg, CDialog)/AFX_MSG_MAP(CSnakeDlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_UPDATE_COMMAND_UI(IDR_PLAY_MUSIC, OnUpdatePlayMusic)ON_UPDATE_COMMAND_UI(IDR_HIGH, OnUpdateHigh)ON_UPDATE_COMMAND_UI(IDR_LOW, OnUpdateLow)ON_UPDATE_COMMAND_UI(IDR_NOR, OnUpdateNor)ON_UPDATE_COMMAND_UI(IDR_HELP, OnUpdateHelp)ON_UPDATE_COMMAND_UI(IDR_HERO_LIST, OnUpdateHeroList)ON_UPDATE_COMMAND_UI(IDR_EXIT_GAME, OnUpdateExitGame)ON_UPDATE_COMMAND_UI(IDR_ABOUT, OnUpdateAbout)ON_UPDATE_COMMAND_UI(IDR_START_GAME, OnUpdateStartGame)ON_WM_TIMER()ON_WM_KEYDOWN()/AFX_MSG_MAPEND_MESSAGE_MAP()/ CSnakeDlg message handlersBOOL CSnakeDlg:OnInitDialog()CDialog:OnInitDialog();/对话框初始化ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);SetIcon(m_hIcon, TRUE);/设置大图标SetIcon(m_hIcon, FALSE);/设置小图标m_main_menu.LoadMenu(IDR_MAIN_MENU);SetMenu(&m_main_menu);InitMenu();m_snake.CreateEx( WS_EX_CLIENTEDGE, _T(SNAKEMAP), NULL, WS_VISIBLE | WS_BORDER | WS_CHILD, CRect( 0, 0, 325, 425 ), this, SNAKEMAP );GetDlgItem( SNAKEMAP )-SetFocus();return TRUE; void CSnakeDlg:OnSysCommand(UINT nID, LPARAM lParam)if (nID & 0xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;dlgAbout.DoModal();elseCDialog:OnSysCommand(nID, lParam);void CSnakeDlg:OnPaint() if (IsIconic()CPaintDC dc(this); / device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);/ Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;/ Draw the icondc.DrawIcon(x, y, m_hIcon);elseCDialog:OnPaint();HCURSOR CSnakeDlg:OnQueryDragIcon()return (HCURSOR) m_hIcon;void CSnakeDlg:InitMenu()/初始化菜单m_main_menu.CheckMenuItem(IDR_LOW, MF_BYCOMMAND | MF_CHECKED);m_main_menu.CheckMenuItem(IDR_HIGH, MF_BYCOMMAND | MF_UNCHECKED);m_main_menu.CheckMenuItem(IDR_NOR, MF_BYCOMMAND | MF_UNCHECKED);m_main_menu.CheckMenuItem(IDR_PLAY_MUSIC, MF_BYCOMMAND | MF_UNCHECKED);m_bStart = FALSE;m_snake.SetGameLevel(GAME_LEVEL_LOW);/播放音乐 菜单栏响应函数void CSnakeDlg:OnUpdatePlayMusic(CCmdUI* pCmdUI) /判断播放音乐菜单当前状态BOOL bCheck = (BOOL)m_main_menu.GetMenuState(IDR_PLAY_MUSIC, MF_CHECKED);if(m_bStart)if(bCheck)m_main_menu.CheckMenuItem(IDR_PLAY_MUSIC, MF_BYCOMMAND | MF_UNCHECKED);elsem_main_menu.CheckMenuItem(IDR_PLAY_MUSIC, MF_BYCOMMAND | MF_CHECKED);PlayBackMusic(!bCheck);/调用播放背景音乐功能函数/游戏等级|高菜单栏响应函数void CSnakeDlg:OnUpdateHigh(CCmdUI* pCmdUI) /判断当前菜单状态BOOL bCheck = (BOOL)m_main_menu.GetMenuState(IDR_HIGH, MF_CHECKED); if(!m_bStart)if( !bCheck )m_snake.SetGameLevel(GAME_LEVEL_HIGH);m_main_menu.CheckMenuItem(IDR_HIGH, MF_BYCOMMAND | MF_CHECKED);m_main_menu.CheckMenuItem(IDR_LOW, MF_BYCOMMAND | MF_UNCHECKED);m_main_menu.CheckMenuItem(IDR_NOR, MF_BYCOMMAND | MF_UNCHECKED);Invalidate();/游戏等级|低菜单栏响应函数void CSnakeDlg:OnUpdateLow(CCmdUI* pCmdUI) /判断当前菜单状态BOOL bCheck = (BOOL)m_main_menu.GetMenuState(IDR_LOW, MF_CHECKED); if(!m_bStart)if( !bCheck )m_snake.SetGameLevel(GAME_LEVEL_LOW);m_main_menu.CheckMenuItem(IDR_LOW, MF_BYCOMMAND | MF_CHECKED);m_main_menu.CheckMenuItem(IDR_NOR, MF_BYCOMMAND | MF_UNCHECKED);m_main_menu.CheckMenuItem(IDR_HIGH, MF_BYCOMMAND | MF_UNCHECKED);Invalidate();/游戏等级|中菜单栏响应函数void CSnakeDlg:OnUpdateNor(CCmdUI* pCmdUI) /判断当前菜单状态BOOL bCheck = (BOOL)m_main_menu.GetMenuState(IDR_NOR, MF_CHECKED); if(!m_bStart)if( !bCheck )m_snake.SetGameLevel(GAME_LEVEL_NOR);m_main_menu.CheckMenuItem(IDR_NOR, MF_BYCOMMAND | MF_CHECKED);m_main_menu.CheckMenuItem(IDR_LOW, MF_BYCOMMAND | MF_UNCHECKED);m_main_menu.CheckMenuItem(IDR_HIGH, MF_BYCOMMAND | MF_UNCHECKED);Invalidate();/游戏帮助菜单栏响应函数void CSnakeDlg:OnUpdateHelp(CCmdUI* pCmdUI) Help();/调用帮助功能函数/关于菜单栏响应函数void CSnakeDlg:OnUpdateAbout(CCmdUI* pCmdUI) CAboutDlg dlgAbout;dlgAbout.DoModal();/弹出关于对话框/英雄榜菜单栏响应函数void CSnakeDlg:OnUpdateHeroList(CCmdUI* pCmdUI) HeroList();/调用英雄榜功能函数/退出菜单栏响应函数void CSnakeDlg:OnUpdateExitGame(CCmdUI* pCmdUI) CDialog:OnCancel();/退出对话框功能函数/开始游戏菜单栏响应函数void CSnakeDlg:OnUpdateStartGame(CCmdUI* pCmdUI) m_snake.GameStart();/调用开始新游戏功能函数void CSnakeDlg:PlayBackMusic(BOOL bflg)/指定文件并播放if(bflg)sndPlaySound(music.wav,SND_ASYNC);/播放音乐elsesndPlaySound(NULL,SND_PURGE);/停止播放void CSnakeDlg:HeroList()CHeroDlg dlg;dlg.DoModal();void CSnakeDlg:Help()CHelpDlg dlg;dlg.DoModal();void CSnakeDlg:OnTimer(UINT nIDEvent) / TODO: Add your message handler code here and/or call defaultCDialog:OnTimer(nIDEvent);void CSnakeDlg:OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) CDialog:OnKeyDown(nChar, nRepCnt, nFlags);小结:从以上代码,不难看出其中几个主要函数的实现办法如下:1.“播放背景音乐”菜单栏响应函数的实现是:通过调用播放音乐成员函数来实现音乐播放功能。2.“游戏等级”菜单栏响应函数的实现是:通过改变当前游戏等级变量的值,来实现游戏等级的选择。3.“帮助”菜单栏响应函数的实现是:通过创建帮助对话框类的对象,用调用其成员函数,将帮助对话框弹出。4.“开始游戏”菜单栏响应函数的实现是:通过调用对话框的开始游戏成员函数,来实现开始新游戏功能。4.3 游戏帮助界面设计:添加一个对话框资源到工程中,并填写说明文字,如下图所示4.31 添加帮助对话框类声明,代码如下:#if !defined(AFX_HELPDLG_H_EE6E6AF7_690A_431B_A0A9_C94F68CCE3E1_INCLUDED_)#define AFX_HELPDLG_H_EE6E6AF7_690A_431B_A0A9_C94F68CCE3E1_INCLUDED_#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000/ HelpDlg.h : header file/ CHelpDlg dialogclass CHelpDlg : public CDialog/ Constructionpublic:CHelpDlg(CWnd* pParent = NULL); / standard constructor/ Dialog Data/AFX_DATA(CHelpDlg)enum IDD = IDD_HELP_DLG ;/ NOTE: the ClassWizard will add data members here/AFX_DATA/ Overrides/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CHelpDlg)protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/ Generated message map functions/AFX_MSG(CHelpDlg)virtual void OnOK();/AFX_MSGDECLARE_MESSAGE_MAP();4.32 帮助对话框类的实现,代码如下:/ HelpDlg.cpp : implementation file/#include stdafx.h#include Snake.h#include HelpDlg.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CHelpDlg dialogCHelpDlg:CHelpDlg(CWnd* pParent /*=NULL*/): CDialog(CHelpDlg:IDD, pParent)/AFX_DATA_INIT(CHelpDlg)/ NOTE: the ClassWizard will add member initialization here/AFX_DATA_INITvoid CHelpDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CHelpDlg)/ NOTE: the ClassWizard will add DDX and DDV calls here/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CHelpDlg, CDialog)/AFX_MSG_MAP(CHelpDlg)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CHelpDlg message handlersvoid CHelpDlg:OnOK() CDialog:OnOK();实现了帮助对话框类后,还要实现在CSnakeDlg中的Help()函数,这个函数通过创建CHelpDlg类的对象,弹出帮助对话框,代码如下:#include HelpDlg.h.void CSnakeDlg:help()CHelpDlg dlg;dlg.Domodal();4.4 “英雄榜”的实现4.41 创建一个英雄榜对话框资源,并加入工程中。对话框中的资源ID及名称如表所示ID名称IDC_NAME_EDIT姓名编辑框IDC_SCORE_EDIT分数编辑框IDC_LEVEL_EDIT等级编辑框4.42 创建配置文件Hero.ini,内容如下:HEROname=22score=34level=2 4.43 英雄榜对话框类的声明,代码如下:#if !defined(AFX_HERODLG_H_6DD769D0_3A89_47E8_A982_DE8BD87975FE_INCLUDED_)#define AFX_HERODLG_H_6DD769D0_3A89_47E8_A982_DE8BD87975FE_INCLUDED_#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000/ HeroDlg.h : header file/ CHeroDlg dialogclass CHeroDlg : public CDialog/ Constructionpublic:void SetWriteFlg(BOOL bflg);CHeroDlg(CWnd* pParent = NULL); / standard constructor/ Dialog Data/AFX_DATA(CHeroDlg)enum IDD = IDD_HERO_LIST ;intm_level;CStringm_name;intm_score;/AFX_DATA/ Overrides/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CHeroDlg)public:virtual int DoModal();protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/ Generated message map functions/AFX_MSG(CHeroDlg)virtual void OnOK();afx_msg void OnBtn();virtual BOOL OnInitDialog();/AFX_MSGDECLARE_MESSAGE_MAP()private:BOOL m_bWriteflg;/AFX_INSERT_LOCATION/ Microsoft Visual C+ will insert additional declarations immediately before the previous line.#endif / !defined(AFX_HERODLG_H_6DD769D0_3A89_47E8_A982_DE8BD87975FE_INCLUDED_)4.44 “英雄榜”对话框分为2中情况。一种是显示当前最高纪录;另一种是写入当前最高纪录。所以必须在其内部有一个状态标志位变量来区别。当需要写入时,设置其为有效。需要显示时,设置其为无效。代码如下:/ HeroDlg.cpp : implementation file/#include stdafx.h#include Snake.h#include HeroDlg.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CHeroDlg dialogCHeroDlg:CHeroDlg(CWnd* pParent /*=NULL*/): CDialog(CHeroDlg:IDD, pParent)m_bWriteflg = FALSE;void CHeroDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CHeroDlg)DDX_Text(pDX, IDC_LEVEL_EDIT, m_level);DDX_Text(pDX, IDC_NAME_EDIT, m_name);DDX_Text(pDX, IDC_SCORE_EDIT, m_score);DDV_MinMaxInt(pDX, m_score, 0, 10000);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CHeroDlg, CDialog)/AFX_MSG_MAP(CHeroDlg)ON_BN_CLICKED(IDOK_BTN, OnBtn)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CHeroDlg message handlersvoid CHeroDlg:OnOK() void CHeroDlg:SetWriteFlg(BOOL bflg)m_bWriteflg = bflg;int CHeroDlg:DoModal() char pszTmp128 = 0;/读取配置文件GetPrivateProfileString(HERO, name, 0, pszTmp, 127, .hero.ini);m_name = CString(pszTmp);if(!m_bWriteflg)GetPrivateProfileString(HERO, score, 0, pszTmp, 127, .hero.ini);m_score = atoi(pszTmp);GetPrivateProfileString(HERO, level, 0, pszTmp, 127, .hero.ini);m_level = atoi(pszTmp);return CDialog:DoModal();void CHeroDlg:OnBtn() UpdateData(TRUE);if(m_bWriteflg)CString tmp;tmp.Format(%d, m_score);WritePrivateProfileString(HERO, name, m_name, .hero.ini);WritePrivateProfileString(HERO, score, tmp, .hero.ini);tmp.Format(%d, m_level);WritePrivateProfileString(HERO, level, tmp, .hero.ini);m_bWriteflg = FALSE;CDialog:OnOK();BOOL CHeroDlg:OnInitDialog() CDialog:OnInitDialog();if(m_bWriteflg)SetDlgItemText(IDOK_BTN, 记录);return TRUE; CSnakeDlg中的HeroList()函数主要通过创建CHeroDlg类对象,再通过该对象来调用弹出对话框函数,代码如下:#include HelpDlg.h.void CSnakeDlg:HeroList()CHelpDlg dlg;/英雄对话框类函数dlg.Domodal();/弹出对话框4.5 游戏背景音乐播放的实现游戏背景音乐播放,是通过调用Windows的API函数sndPalySound()来实现的。要实现这个功能,需要如下几步。4.51 在工程文件中,添加winmm.lib静态库文件及头文件4.52 实现CSnakeDlg中的PlayBackMusic()函数,代码如下#include .void CSnakeDlg:PlayBackMusic(BOOL bflg)/指定文件播放if(bflg)/播放音乐sndPalySound(music.wav,SND_ASYNC);else/停止播放sndPalySound(NULL,SND_PURGE);4.6 主游戏类的设计4.61 果实出现的设计思路(1) 采用随机数生成果实出现坐标(2) 判断当前生成的果实坐标是否在贪吃蛇身体范围类(3) 如果在,重新生成直到不在为止;如果不在,则把坐标位置返回给调用对象4.62 贪吃蛇更新的设计思路(1) 接受玩家按下的方向键消息,并保存到方向变量中(2) 定义一个时间定时器,时间间隔由游戏等级决定(3) 当每次时间间隔到达时,则根据方向变量来更新贪吃蛇BODY向量(4) 判断BODY向量的第一个元素中的坐标数据是否碰到边界或者蛇身,如果有,转到第(7)部(5) 判断BODY向量
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 道路货运业务员国庆节后复工安全考核试卷含答案
- 稀土催化材料工国庆节后复工安全考核试卷含答案
- 混铁炉工中秋节后复工安全考核试卷含答案
- 通信网络电缆线务员节假日前安全考核试卷含答案
- K树脂装置操作工节假日前安全考核试卷含答案
- 鱼糜制作工中秋节后复工安全考核试卷含答案
- 石膏制品生产工节假日前安全考核试卷含答案
- 幼儿营养膳食搭配指南及菜单示例
- 乐器设计师节假日前安全考核试卷含答案
- 房产测量员国庆节后复工安全考核试卷含答案
- ISO 22000-2018食品质量管理体系-食品链中各类组织的要求(2023-雷泽佳译)
- 卡巴斯基应急响应指南
- 理财规划大赛优秀作品范例(一)
- 2023年四川能投筠连电力招聘笔试参考题库附带答案详解
- 护理管理组织结构与设计
- 静配中心清洁消毒考核试题
- 一级烟草专卖管理师理论考试题库(含答案)
- 小学数学《分数除法》50道应用题包含答案
- 碳捕集、利用与封存技术课件
- 化工试生产总结报告
- 复句与单句的辨析课件
评论
0/150
提交评论