版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、成绩 本科生毕业论文 题 目: 扫雷游戏软件设计与实现 年 级:0801专 业:计算机科学与技术学 号:姓 名: 指导教师: 年 月 日诚信声明本人郑重声明:本人所呈交的毕业论文(设计)是在导师的指导下独立进行研究所取得的成果。毕业论文(设计)中凡引用他人已经发表或未发表的成果、数据、观点等,均已明确注明出处。除文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或在网上发表的论文。特此声明。论文作者签名: 日 期: 年 月 日目 录1引言 1.1 课题背景及意义1.2开发工具的选用及介绍2游戏软件的总体分析与设计2.1软件功能需求分析2.2 软件界面设计2.3算法流程设计3游戏软件的详
2、细设计3.1游戏初始化3.2雷区的布置3.3游戏中主要功能模块实现3.3.1底层逻辑模块 游戏逻辑模块 通信模块3.3.2程序设计的界面实现功能模块4游戏软件测试结 论参考文献1引言1.1 课题背景及意义 随着不断发展的社会,科学也一步步的提升,而计算机也成为了当今社会不可或缺的一部分,今天,人们用计算机工作、通讯、聊天、视频、游戏、娱乐。我们每天都在使用着计算机。在如此快速的社会里,每一个人都有着重大的压力。而此刻游戏也就成了我们没一个人用于释放压力的首选。 近年来,随着网络的发展,游戏便成为了许多人关注的焦点。与传统的影音产业一样,游戏产业也是娱乐行业的一个重要
3、组成部分,基于数字化的网络游戏更让人们找到了前所未有的感受,并已经成为全球互联产业的热点。就在我们所熟悉的windows7系统中就携带了不少这样的游戏。扫雷游戏就是windows操作系统自带的一款小游戏,在过去的几年里,windows操作系统历经数次换代更新,变得越来越庞大、复杂,功能也越来越强大,但是这款小游戏依然保持原来的容貌,可见这款小游戏受到越来越多人的喜爱。不过还是有很多人对这款游戏不太了解。本次的毕业设计我将利用eclipse 3.4.2作为开发工具,开发一款类似的“扫雷游戏”。从而对这款游戏能够有进一步的了解,熟悉此游戏的后台运行情况。并且此次毕业设计能将书本上所学的理论知识与实
4、际相结合,同时也是对所学知识的一种检查,希望通过本次的毕业设计能使自己在程序的开发和设计上有新的认识和提高。本次毕业设计既锻炼了我们的实际动手能力,又在老师的指导下进行了一次模拟实际产品的开发,对于我们以后工作能力的培养具有重要意义。通过研究windows操作系统自带的扫雷游戏,我们可以发现在这个游戏中主要有以下几个关键的地方: 1.初始化问题,关于产生雷数的问题,即随机产生本局游戏中雷的总数,游戏的每一个级别产生的雷数不同,如何做到在不同的级别中产生不同的雷数。关于类的分布问题,在游戏中雷的分布对于每一个小区域是不同的,如何获取周围地区分布的雷数,在雷随机分布之后,如何获取每个区域周围累的个
5、数。 2.对鼠标事件的处理问题,既在游戏过程中对鼠标事件应如何做出反应。当单击鼠标左键时,软件对该事件的处理,是雷的处理和不是雷的处理。当单击鼠标右键时,系统做出的处理。 3.游戏中的另一个难点是,在游戏过程中,左右键同时点击数字,会有一个提示,这里的做法是如果是数字的格子,监听到左右键同时点击数字事件,查找这个格子周围的8个格子的红旗数,如果周围的红旗数正好是格子上的数字,那么就将除红旗之外的所有内容都显示出来。4.游戏规则、胜负判断方法,关于时间的计算。经过四年的大学学习,我对程序开发和设计、java语言等几种语言及eclipse等多个开发平台已经有了一定的了解与认知,本次的毕业设计便是将
6、书本上所学的理论知识与实际相结合,同时也是对所学知识的一种检查,希望通过本次的毕业设计使自己在程序的开发和设计上有新的认识并能有所提高。1.2开发工具的选用及介绍 通过在大学的学习,对多种语言及多个程序开发平台、软件有了初步的了解,例如:c语言、c+、vb、java、html等。vc+、visual basic 、microsoft.net、eclipse sdk等软件。 而eclipse 是一个被人们熟知的优秀java集成开发环境(ide),eclipse是众多java程序员的首选。和netbeans一样,eclipse也是一个完全免费的软件,而且还是开源的。同时,eclipse不需要安装,
7、解压出来即可使用,相当方便。故此选择eclipse作为此次毕设所用的开发工具。 但eclipse是使用java语言编写的。所以要运行eclipse必须在机器中安装jdk,遗憾的是,eclipse官方没有提供简体中文版的下载,只有英文版的,不过,经常使用eclipse习惯了之后就不会过于依赖于软件界面的语言了。eclipse不仅能开发java程序,还能开发jsp,c+等程序。eclipse官方将软件分成了普通java版,jee版,c+版。每个版本都针对相应的语言各司其职,其中jee版包括java的全部功能。 java development kit (jdk) 是sun公司针对java开发员的软
8、件开发工具包。自从java推出以来,jdk已经成为使用最广泛的java sdk(software development kit)。eclipse 是一个开放源代码的、基于 java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,eclipse 附带了一个标准的插件集,包括 java 开发工具(java development tools,jdt)。 eclipse最初是由ibm公司开发的替代商业软件visual age for java的下一代ide开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟eclipse基金会(
9、eclipse foundation)管理。 2003年,eclipse 3.0选择osgi服务平台规范为运行时架构。 2007年6月,稳定版3.3发布。2008年6月发布代号为ganymede的3.4版。2009年7月发布代号为galileo的3.5版。eclipse是著名的跨平台的自由集成开发环境(ide)。最初主要用来java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如c+和python的开发工具。eclipse的本身只是一个框架平台,但是众多插件的支持使得eclipse拥有其他功能相对固定的ide软件很难具有的灵活性。许多软件开发商以eclipse为框架开发自己的ide。
10、eclipse 最初由oti和ibm两家公司的ide产品开发组创建,起始于1999年4月。ibm提供了最初的eclipse代码基础,包括platform、jdt 和pde。目前由ibm牵头,围绕着eclipse项目已经发展成为了一个庞大的eclipse联盟,有150多家软件公司参与到eclipse项目中,其中包括borland、rational software、red hat及sybase等。eclipse是一个开发源码项目,它其实是 visual age for java的替代品,其界面跟先前的visual age for java差不多,但由于其开放源码,任何人都可以免费得到,并可以在此
11、基础上开发各自的插件,因此越来越受人们关注。近期还有包括oracle在内的许多大公司也纷纷加入了该项目,并宣称eclipse将来能成为可进行任何语言开发的ide集大成者,使用者只需下载各种语言的插件即可。 虽然大多数用户很乐于将 eclipse 当作 java ide 来使用,但 eclipse 的目标不仅限于此。eclipse 还包括插件开发环境(plug-in development environment,pde),这个组件主要针对希望扩展 eclipse 的软件开发人员,因为它允许他们构建与 eclipse 环境无缝集成的工具。由于 eclipse 中的每样东西都是插件,对于给 ecl
12、ipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。基于 eclipse 的应用程序的突出例子是 ibm 的 websphere studio workbench,它构成了 ibm java 开发工具系列的基础。例如,websphere studio application developer 添加了对 jsp、servlet、ejb、xml、web 服务和数据库访问的支持。 eclipse的主要组成eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由eclipse项目、ec
13、lipse工具项目和eclipse技术项目三个项目组成,具体包括四个部分组成eclipse platform、jdt、cdt和pde.jdt支持java开发、cdt支持c开发、pde用来支持插件开发,eclipse platform则是一个开放的可扩展ide,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。eclipse platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。eclipse sdk(软件开发者包)是eclipse platform、jdt和pde所生产的组件合并,它们可以一次下载。
14、这些部分在一起提供了一个具有丰富特性的开发环境,允许开发者有效地建造可以无缝集成到eclipse platform中的工具。eclipse sdk由eclipse项目生产的工具和来自其它开放源代码的第三方软件组合而成。eclipse项目生产的软件以 cpl发布,第三方组件有各自自身的许可协议。2.游戏软件的总体分析与设计 相信大多数使用windows操作系统的使用者,对这款游戏都不陌生。这款游戏不止操作简单,规则也不难,再加上游戏速度的控制机制得宜,让整个游戏在操作过程中充满了快乐与紧张的气氛。除了游戏当中能带给使用者快乐之外,游戏的设计内容无形中也不断训练使用者的逻辑思考能力,对于依靠高度脑
15、力工作的现代人,都可以通过这个游戏,不时的检验一下自己,所以我们不难发现,在各种可携带的电子产品上都有这款游戏的踪影。2.1软件功能需求分析 单机游戏的开发有很大的发展前途,而扫雷游戏则是建立在此基础上的。在设计之前,我们先来了解这款游戏的规则。扫雷就是要把所有非地雷的格子揭开即胜利;踩到地雷格子就算失败。 游戏主区域由很多个方格组成。使用鼠标左键随机点击一个方格,方格即被打开并显示出方格中的数字;方格中数字则表示其周围的8个方格隐藏了几颗雷;如果点开的格子为空白格,即其周围有0颗雷,则其周围格子自动打开;如果其周围还有空白格,则会引发连锁反应;在你认为有雷的格子上,点击右键即可标记雷;如果一
16、个已打开格子周围所有的雷已经正确标出,则可以在此格上同时点击鼠标左右键以打开其周围剩余的无雷格。 1代表1的上下左右及斜角合计有一颗雷,依次轮推,2则有2颗,3则有3颗. 在确实是炸弹的方格上点了标记,就安全了,不是炸弹的被点了标记,后面会被炸死的。问号就先不确定这里有没有炸弹,不会存在点错了被炸死的状况。有个小窍门,在数字旁同时点左键和右键可以排雷。左键点开,右键标记雷,同时左右键点数字可以判断周围的雷是否已经全部标出。 通过单击即可挖开方块。如果挖开的是地雷,则您输掉游戏,如果方块上出现数字,则表示在其周围的八个方块中共有多少颗地雷。要标记您认为可能有地雷的方块,请右键单击它。 游戏区包括
17、雷区、地雷计数器和计时器。数字就是这个方块周围的8个方块里有的雷的数量,问号是自己弄上去的,可以的地方可以弄个问号,标记就是确定那里有雷了。 在不掀开任何藏有地雷的方块情况下,以最快的速度找出所有的地雷。如果在掀开方块的过程中,不小心翻开(踩到)藏有地雷的方块,则宣告失败(游戏结束),惟有将所有不含地雷的方块掀开,游戏才算成功。游戏的操作方法主要以鼠标为主,当鼠标指针对准未翻开的方块按下左键时即表示翻开方块,当鼠标指针对准未翻开的方块按下右键时即表示标示或疑示地雷,反复按下右键则方块会以未标示疑似取消疑似三者关系不断循环。游戏者可以通过地雷区内的数字提示了解以数字为中心的其周边八个方格内所含的
18、地雷数,假若翻开的方块显示数字“3”,则表示以其为中心的周边方块内藏有3个地雷。当按下的方块不是地雷,且周边八个方块也都没有地雷时,方块会以被翻开方块的八个方向将空白方块翻开。2.2 软件界面设计本次设计我将主要运用java语言来完成。java语言是一种跨平台,适合于分布式计算环境的面向对象编程语言,用java写的应用程序不用修改就可在不同的软硬件平台上运行。java的图形界面图形界面简称gui,是用图形的方式,借助菜单、按纽等标准界面元素和鼠标操作,帮助用户方便地想计算机系统发出指令、启动操作,并将系统的运行结果同样以图形方式显示给用户的技术。java的图形界面技术既为使用java.awt包
19、来创建图形界面的方法,包括awt组件、窗口和菜单设计、布局管理器以及绘图操作等。public void initgui() p3=new jpanel();b=bon;jmenubar menubar=new jmenubar();jmenu menu1=new jmenu(游戏);jmenu menu2=new jmenu(帮助);jmenuitem mi1=new jmenuitem(初级);jmenuitem mi2 = new jmenuitem(中级);jmenuitem mi3 =new jmenuitem(高级);mi1.addactionlistener(this);menu1
20、.add(mi1);mi2.addactionlistener(this);menu1.add(mi2);mi3.addactionlistener(this);menu1.add(mi3);menubar.add(menu1);menubar.add(menu2);p3.add(menubar);b1=new jlabel(bon+);a1=new intbon;btn =new jbutton(开始);btn.addactionlistener(this);b2=new jlabel(0);b3=new jlabel();btns=new jbuttonrow*col; p=new jpa
21、nel();p.setlayout(new borderlayout();contentpane.add(p);p.add(p3,borderlayout.north);/combo=new jcombobox(new object初级,中级,高级 );/加监听/*combo.additemlistener(new itemlistener();*/ p1=new jpanel();/在那个位置/( flowlayout)p1.getlayout().setalignment( flowlayout.right);p1.add(b1);p1.add(btn);p1.add(b2);p1.add
22、(b3);p.add(p3,borderlayout.north);p.add(p1,borderlayout.center); p2=new jpanel();p2.setlayout(new gridlayout(row,col,0,0);for(int i=0;irow*col;i+)btnsi=new jbutton();btnsi.setmargin(new insets(0,0,0,0);btnsi.setfont(new font(null,font.bold,25);btnsi.addactionlistener(this);btnsi.addmouselistener(new
23、 normoremouseevent();p2.add(btnsi);contentpane.add(p,borderlayout.north);contentpane.add(p2,borderlayout.center);awt概述awt既抽象窗口工具集,用于图形用户界面的开发。awt的功能包括以下方面:(1)丰富的图形界面组件。(2)强大的事件处理模型图形和图形工具,包括形状、颜色和字体。(3)布局管理器,可以进行灵活的的窗口布局,设计特定窗口的尺寸和和屏幕分辨率。(4)无关数据传送类,可以通过本地平台的剪贴板来进行剪切和粘贴操作。(5)打印和无鼠标操作。java.awt是java基本包
24、中最大的一个,其中定义了所有的gui组件类,以及其他用于构造图形界面的类。awt基本组件(1)标签组件(label)标签组件显示的是静态文本,在通常情况下是不能编辑的,能起到提示的作用label组件有三种构造函数:label(): 创建空的标签label(string):创建一个带初始字符串的标签。label(string,int):创建一个带初始字符串及指定对齐方式的标签。(2)文本域文本域一般用来让用户输入姓名、信用卡号等这样的信息,它是一个能够接收用户的键盘输入的小块区域。textfield():创建空的文本域(3)按钮(button)几乎所有的交互式程序中都会有按纽,它是一种交互能力强
25、且交互方便的控件,这个控件提供了“按下并动作”的基本用户界面。按纽的构造方法有:button():建立一个没有标示字符串的新按纽类对象。button(string label):建立一个标示字符串为label的新按纽类的对象(4)画板组件(panel)我们在界面上安排各种组件时,有时会需要将组件成组放置,这时就可以使用面板组件。panel是最简单的容器组件,本身是一个矩形区域,可以在其中放入各种组件。但它仅仅是安排各种组件的一种结构,需要最后加入到别的容器中才能实现gui的功能。面板组件的创建panel():用默认的布局管理器创建面板组件。panel(layoutmanager layout)
26、:用指定的布局管理器创建面板组件。(5)框架窗口组件(frame)frame是独立于浏览器的可独立运行的主窗口,通常用于进行开发桌面应用程序。frame拥有边界和标题栏设置,其大小可以进行设置调整。frame里面需要加入组件,也可以加入菜单,或在上面绘图。frame的创建frame():创建一个没有窗口标题的窗口框架。frame(string):创建一个指定窗口标题的窗口框架。(6)布局管理器flowlayout布局管理器flowlayout布局管理是一种最简单的布局管理方法,是panel的默认布局。它以流式的方式,自左向右,自上而下地放置容器中的组件,即组件按每行先后自左向后放置,一行放不下
27、再换行。flowlayout布局管理器的创建flowlayout():创建默认的flowlayout布局管理器flowlayout(int):以指定的对齐方式创建flowlayout布局管理器。其中的参数有flowlayout.left、flowlayout.right、flowlayout.centerflowlayout(int,int,int):以指定的对齐方式及间距创建flowlayout布局管理器。其中第一个参数为对齐方式,第二个参数为组件间间距,第三个参数为列间距。(7)事件处理事件处理是一个接受事件、解释事件并处理用户交互的方法。事件处理有三个要素:事件源 事件源是一个时间的产生
28、者,如按牛、窗口及文本域等。事件类型 java中所有的事件都封装成一个类,这些事件类被集中在java.awt.exent包和java.swing.event包中,所有的事件类均继承了awtevent类和一个方法getsouce()方法,该方法返回发生事件的对象。事件监听器 不同的类型事件发生后,由事件监听器接受事件并调用响应的事件处理方法,所有的事件监听器实际上都是一个java.awt.exent包中的借口,继承了java.util.eventlistener接口。不同的事件有不同的处理方法,(8)键盘事件处理该程序使用的是键盘监听事件,键盘事件对应的事件类是keyevent类,使用的该类的方
29、法是getkeycode()获得按下或释放的键代码getkeytext()获得按下或释放的键的字符串。键盘事件对应的事件监听器为:keylistener或keyadapter实现键盘事件的操作步骤是:第一步,注册keylistener监听器addkeylistener().当事件源所在的类已经实现keylistener的接口时,参数可用this,否则需创建或继承一个keylistener第二步,实现keylistener接口的所有方法,即keypressed(keyevent e)、keyreleased(keyevent e)、keytyped(mouseevent e)。 2.3算法流程设
30、计 流程规划大致上可以分为三个部分,分别为:画面初始、游戏者按下第一个方块和为非地雷方块时展开。 画面初始时,以游戏者最后一次设定的地雷区大小为范围画出地雷区,但此时并未产生地雷。当游戏者按下第一个方块时产生地雷资料并启动定时器,为何在游戏者按下第一个方块才产生地雷资料呢?其主要的用意在于不要让游戏者第一次就踩到地雷,这样在某种程度上可以提高游戏者游玩的气氛。接着就是如何判断按下的方块是非地雷时的处理,这也是整个游戏的技术核心,我们可以通过递归的观念来检查周边的方块是否含有地雷及是否继续往外翻开。开始 初始化等待按键 否右键左键 否 是 是第一次按下显示方块 否按下方块周围展开非地雷方块 是1
31、. 布置地雷2. 启动计时按下方块是雷 否 是显示分数是否再玩 是结束 否3游戏软件的详细设计3.1游戏初始化当玩家开始游戏时,游戏画面如图:地雷区计数及状态区我们可以清楚的看到,游戏界面主要分为两个主要部分:1. 计数及状态区;2.地雷区。 1 设计整个游戏的结构,一般采用mvc作为整个游戏的结构,结构清晰又容易理解。 2 一般来说,做这些游戏的时候,我们先从底层的model开始做起。在这里,model部分就是由两张二维数组表组成,其中一张是mine,他上面放的就是一些最底层的数据,也就是说雷得分布情况。另外一张表是界面表chess,就是记录一些显示给用户的数据。 3 然后要做的是对两张表的
32、初始化,这一步非常重要,对于第一张表mine的的初始化的方法为先随机n个不重复的雷,分布到mine表中,然后,对雷周围的格子进行赋值。这里我用到方法为:遍历所有的雷,将雷周围的格子加一,这样就能达到赋数值这个工作了。其中,这里有一个难点,就是如何判定雷周围的八个格子,其实方法很多,但是大多代码繁琐,或者处理边界困难。这里我用到的方法是,计算两个格子之间的距离,如果与雷的距离为1或者根号2的话,就能确定该格子在雷的周围。然后是对chess进行初始化,chess就是界面表,也就是说,这里的数据是直接显示给用户看的。当然,初始化部分就是直接将赋值为板,就是等待去扫雷的状态。 4 然后就是扫雷部分,就
33、是点击一个格子,利用jlabel的触发器将格子坐标传送到controller中去,controller中根据mine表判断点击的是什么,分三种情况,如果是雷,那就将底层的所有数据都赋到chess中,然后gameover。如果是数字,那就直接把数字赋值到chess中去。如果是0,那就非常麻烦了,这也是这个游戏中的一个难点,玩过扫雷的同学应该都知道,点击0时,会散开周围所有的0.我这边的解决方法是,将点到的0的坐标加到list里面去,在遍历这个list,取出里面的坐标,查找他周围的8个格子,如果是0,且坐标不与list中的坐标重复,就将第二次查找到的坐标放到list里面,然后取list的下一个值,
34、点击这个点,然后就是循环上面的语句。 5 游戏中的另一个难点是,在游戏过程中,左右键同时点击数字,会有一个提示,这里的做法是如果是数字的格子,监听到左右键同时点击数字事件,查找这个格子周围的8个格子的红旗数,如果周围的红旗数正好是格子上的数字,那么就将除红旗之外的所有内容都显示出来。这样,游戏界面的初始化工作就基本完成了,下面就是地雷的随机产生。3.2雷区的布置当游戏界面初始化完成后,这时在地雷区中并未产生地雷,只有当玩家在地雷区中第一次点下左键后,才会在地雷区中随机的布置当前游戏难度下应该产生的地雷总数,其主要用意在于不让玩家第一次就踩到地雷,这样在某种程度上可以提高玩家游戏的气愤。具体实现
35、如下所示:for(int i=0;ibon;i+) int p=1;int m=(int)(math.random()*row*col);while(p=1) int l=1; int j;for( j=0;ji&l=1;j+) if(a1j=m) m=(int)(math.random()*row*col); l=0; if(j=i)a1i=m;p=0;b1.settext(bon+);b2.settext(0);3.3游戏中主要功能模块实现本扫雷游戏的实现,共分为五个模块,分别表述为:模块1 定义雷的类,鼠标左键点击不是雷,右键点击是雷,数字表示周围有多少个雷,具体实现函数如下示:模块2:
36、雷的分布和雷的画法具体实现函数的核心代码如下示:模块3 图形界面的设计,具体实现函数如下示:模块4 游戏胜利和失败的条件创建,当所有雷都被找出时胜利,当左键点击到雷时失败,具体实现函数如下示:模块5 键盘事件的监听,使用q键退出图形界面,具体实现函数如下示:3.3.1底层逻辑模块 游戏逻辑模块 通信模块3.3.2程序设计的界面实现功能模块4游戏软件测试在程序代码基本完成后,经过不断的调试与修改,最后测试本次所设计的扫雷游戏能够正常运行,在基本功能与画面上与windows自带的扫雷游戏没有太大差别,没有出现明显的错误和漏洞,但是在一些细节方面仍然需要完善,比如在游戏中可以加入一些声音的提示,在游戏完成和失败的时候可以弹出一些小的flash动画,还有就是可以加入一个扫雷英雄榜等等。总的来说本次设计在功能上已经基本达到要求,其他细节方面有待以后完善。结 论毕业设计是本科学习阶段一次非
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐饮冷链解决方案
- 建设工程管理总结
- 高三化学二轮复习 -《探究性实验微专题》说播课课件
- 防溺水防雷击安全教育
- 开花树课件教学课件
- 3.3.2氮氧化物及含氮废水的处理 课件高一上学期化学鲁科版(2019)必修第一册
- 药物滥用危害健康
- 迈柯维呼吸机培训
- 急性创伤相关知识及护理常规
- 酒店如何做好食品安全
- 医院品牌建设课件
- JJG 113-2013标准金属洛氏硬度块(A,B,C,D,E,F,G,H,K,N,T标尺)
- GB/T 5169.5-2020电工电子产品着火危险试验第5部分:试验火焰针焰试验方法装置、确认试验方法和导则
- GB/T 1957-2006光滑极限量规技术条件
- GB/T 1423-1996贵金属及其合金密度的测试方法
- GB/T 10002.1-2006给水用硬聚氯乙烯(PVC-U)管材
- 机械设计齿轮传动设计课件
- 杜甫-大学语文课件
- 产城(产业发展基础、城服务功能)融合示范建设总体方案
- 课堂纪律检查表
- DBJ50-T-389-2021 高性能混凝土应用技术标准
评论
0/150
提交评论