版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、职业技术学院毕业设计论文题目基于Qt的扫雷游戏设计信息工程系专业计算机应用技术班级学号指导教师日期二零一二年九月基于Qt的扫雷游戏设计摘要扫雷游戏是一款经典的小游戏,这款游戏不仅可以让人们充分享受娱乐的目的,而且可以通过这款小游戏开发人的逻辑推理能力和判断能力。本次毕业设计我们以Qt4.6为开发环境,设计并开发了基于Qt的扫雷游戏。扫雷游戏主要研究以下两个方面:第一是初始化问题,包括随机产生本局游戏中的雷数,雷的分布对于每个小区域如何获得周围地区分布的雷数等等。第二就是对鼠标事件的处理,即在游戏过程中对鼠标事件应如何做出反响。本论文以Qt作为开发软件,首先使用信号与槽的方法实现菜单、工具栏的功
2、能,其次又以MousePressEven僦标事件发出信息来了解使用者的意图,进而做出相对应的动作,再次介绍了去除地雷区方块的方法,通过递归程序的编写,在程序代码上会变得相当简洁。最后利用布局管理组Layouts进展整体布局。使用C+语言设计完成了扫雷游戏的初始化界面,实现了扫雷游戏的计时、重新开场、难度设置、排行榜、帮助等功能。还增加了游戏在成败时弹出对话框等功能。总的来说本次设计在功能上已经根本到达预期的要求。但还有一些缺乏,比方扫雷游戏设计还可以添加一些背景音乐、背景图片、视频等功能,更能增加人们的娱乐性。关键词:扫雷游戏;Qt;C+ABSTRACTMinesweepergameisacl
3、assicgame,thegamecannotonlyallowpeopletofullyenjoytheentertainmentpurposes,andbythissmallgamedevelopmentlogicalreasoningabilityandjudgment.ThegraduationprojecttoQt4.6developmentenvironment,designanddevelopmentofQt-basedgameofMinesweeper.Theminesweepergamethefollowingtwoaspects:Thefirstistheinitializ
4、ationproblems,includingrandomlygeneratednumberofCouncilGameRayRaydistributionforeachsmallareahowtogetaroundthegeographicaldistributionofRay.Thesecondistheprocessingofmouseevents,mouseeventsinthecourseofthegamehowtoreact.Inthisthesis,QTsignalsandslotsasthedevelopmentofsoftware,thefirsttousethemethodt
5、oachievethefunctionalityofthemenus,toolbars,followedYouyimousePressEventmouseeventsissuedinformationtounderstandtheusersintent,andthenmakeacorrespondingaction,againintroducedaclearMinefieldsboxbyrecursiveprogramcodewillbeequitesimple.Finally,thethelayoutmanagementgroup(Layouts)overalllayout.pletedmi
6、nesweepinggamesinitializationinterfacedesign,toachieveamine-sweepinggameoftiming,startagain,difficultysettings,rankings,helpfunctionsusingtheClanguage.Gameinthesuccessorfailureofthepop-updialogbox.Overall,thedesignfunctionhasbasicallyreachedtheexpectedrequirements.Buttherearesomedisadvantagessuchasm
7、inesweepinggamedesigncanalsoaddsomebackgroundmusic,backgroundimage,video,andcanhelpincreasepeoplesentertainment.Keywords:Minesweepergame;Qt;C+目录摘要IIABSTRACTII第1章绪论-1- TOC o 1-5 h z 研究背景-1-研究原因-1-研究意义-1-第2章Qt简介-2-Qt特征-2-Qt核心编程技术-2-元对象系统-2-信号和槽机制-3-QObject类-3-对象树-3-事件-3-QApplication类-3-QWidget类-4-根本布局
8、(QLayout)-4-C+面向对象程序设计-4-Qt程序用到的类-5-Qt应用程序实现-5-本章小结-6- TOC o 1-5 h z HYPERLINK l bookmark24 o Current Document 第3章扫雷游戏设计-8-扫雷游戏功能需求分析-8-扫雷游戏整体框架介绍-8- HYPERLINK l bookmark26 o Current Document 扫雷游戏主要功能的实现-9-菜单栏的实现-9-菜单栏的功能-11-鼠标事件的实现-11-完成扫雷游戏逻辑的设计-12-扫雷游戏状态分类-12-初始化界面功能实现-13-雷区的随机布置-13-去除未靠近地雷的方块-14
9、-游戏的判断-15-游戏成功-15-游戏失败-15-游戏测试结果-16-结论-17-致-18-参考文献-19-第1章绪论研究背景随着计算机与网络的普及,人们生活水平的提高,电脑游戏越来越成为人们生活中不可或缺的一局部,在人们繁忙的工作之余,给人带去欢乐。随着电脑游戏产业的规模越来越大,开发一款成功的电脑游戏靠个人之力已非易事。不过,随着市场上开发的游戏产品越来越丰富,各种题材的游戏越来越多,创意已成为一款成功游戏的最重要的特点。例如目前流行的游戏“植物大战僵尸、“愤怒的小鸟,虽然都是一些很小的休闲游戏,但是因其特有的风格,使得它们都深受人们的喜爱。本次毕业设计将利用Qt4.6作为开发工具,设计
10、了基于Qt的扫雷游戏。研究原因扫雷游戏是Windows操作系统自带的一款小游戏,与那些网络游戏和3D游戏相比,它有编写简单容易上手等特点,游戏开发本钱比拟低,开发娱乐性强的游戏就成为当前的主要课题,在这种趋势下各种小型的低本钱的游戏软件应运而生。其中,系统自带的小游戏也占据了相当重要的地位,非常符合人们娱乐的要求。这些小游戏大都是以益智和娱乐为目的,不仅给紧工作的人们以放松,还可以让人们的大脑得到开发。本课题就是基于Qt扫雷游戏的设计。研究意义经过三年的大学学习,我对理论知识已经有了一定的了解与认知,本次的毕业设计便是将书本上所学的理论知识与实际相结合,同时也是对所学知识的一种检查,希望通过本
11、次的毕业设计使自己在程序编写和游戏开发上有新的认识并能有所提高。本次毕业设计既锻炼了我们的实际动手能力,又培养了我们的自信心。在教师的指导下进展了一次模拟实际产品的开发,这对以后工作和学习能力的培养具有重要意义。第2章Qt简介Qt是一个跨平台的C+图形用户界面应用程序框架。它给应用程序开发者提供建立艺术级图形用户所需的所有功能。它是完全面对对象的,很容易扩展,并且允许真正的组件编程。Qt已经在Windows、Linux和EmbbededLinux上成功的推广。而且Qt是一个开源工程,开发本钱比拟低,又为开发者提供了免费而又友好的集成开发环境。Qt采用C+语言作为开发语言,使用C+语言开发,其运
12、行效率可以得到保证。Qt特征引入一种信号和槽机制,可查询和可设计的属性,强大的事件和事件过滤器,根据上下文进展国际化的字符串翻译,完善的时间间隔驱动的计时器使得在一个事件驱动的图形界面程序中很好地集成许多任务成为可能。以一种自然的方式组织对象所有权的分层次和可查询的对象树。Qt核心编程技术元对象系统Qt元对象系统提供了对象间的通信机制信号与槽、运行时类型信息和动态属性系统的支持,是标准的C+的一个扩展,它使Qt能更好地实现GUI图形用户界面编程。Qt的元对象系统不支持C+模板,尽管模板扩展了标准C+的功能,但是对元对象系统提供了模板无法提供的一些特性。Qt的元对象基于三个事实:基类Q_Obje
13、ct:任何想使用元对象系统功能的类必须继承QObject。Q_OBJECT宏:Q_OBJECT宏必须出现在类的私有声明区,已启动元对象的特性。元对象编译器(Meta-Objectpilegmoc):为QObject子类实现元对象特性提供必要的代码实现。编译器moc产生能被标准C+编译器访问的附加C+代码,带有moc预编译器的C+根本上提供了面向对象的灵活性,并保持了C+的执行效率和扩展性。信号和槽机制Qt提供了信号和槽机制来完成界面操作的响应,是完成任意两个Qt对象之间的通信机制。其中,信号会在某个特定的情况或动作下被触发,槽是等同于承受并处理信号的函数。每个Qt对象都包含假设干个预定义的信号
14、和假设干个预定义的槽,当某一个特定事件发生时,一个信号被发射,与信号相关联的槽那么会响应信号完成相应的处理。当一个类被继承时,该类的信号和槽也同时被继承,也可以根据需要自定义信号和槽。常用的连接方式为:connect(Object1,SIGNAL(singal),Object2,SLOT(slot);singal为对象Objectl的信号,slot为对象Object2的槽。QObject类QObject是Qt类体系的唯一基类,是Qt各种功能的源头活水,就象MFC中的CObject和Dephi中的TObject。对象树QObject在对象树中组织它们自己。当你以另外一个对象作为父对象来创立一个Q
15、Object时,它就被添加到父对象的children(冽表中,并且当父对象被删除的时候,它也会被删除。这种机制很好的适合了图形用户界面应用对象的需要。事件事件是由窗口系统或Qt本身对各种事务的反响而产生的。当用户按下、释放一个键或鼠标按钮,一个键盘或鼠标事件被产生;当窗口第一次显示,一个绘图事件产生,从而告知最新的可见窗口需要重绘自身。大多数事件是由于响应用户的动作而产生的,但还有一些,比方定时器等,是由系统独立产生的。QApplication类QApplication类和QWidget类都是QObject类的子类。QApplication类负责GUI应用程序的控制流和主要的设置,它包括主事件
16、循环体,负责处理和调度所有来自窗口系统和其他资源的事件,并且处理应用程序的开场、完毕以及会话管理,还包括系统和应用程序方面的设置。对于一个应用程序来说,建立此类的对象是必不可少的。QWidget类QWidget类是所有用户接口对象的基类,它继承了QObject类的属性。组件是用户界面的单元组成局部,它接收鼠标、键盘和其它从窗口系统来的事件,并把它自己绘制在盘屏幕上。QWidget类有很多成员函数,但一般不直接使用,而是通过子类继承来使用其函数功能。如,QPushButton、QlistBox等都是它的子类。根本布局(QLayout)Qt提供了QHBoxLayout类、QVBoxLayout类及
17、QGridLayout类等的根本布局管理,分别是水平布局管理、垂直布局管理和网格布局管理。他们之间的继承管理如图2-1所小。图2-1各种布局类及之间的关系C+面向对象程序设计面向对象编程是一种计算机编程架构。面向对象的一条根本原那么是计算机程序由单个能够起到子程序作用的单元或对象组合而成。面向对象编程到达了软件工程的三个主要目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够承受信息、处理数据和向其他对象发送信息。面向对象程序设计中的概念主要包括:类、对象、数据封装、继承、动态绑定、多态性、数据抽象、消息传递。通过这些概念面向对象的思想得到了具体的表达。类类是具有一样类型的对象的抽象
18、。一个对象所包含的所有数据和代码可以通过类来构造。C+中,class类声明的关键字,class的后面是要声明的类名。类中的数据和函数都是类的成员,分别称为数据成员和成员函数。类中的关键字public、private和protected声明了类中的成员与类外之间的关系,称为访问权限。其中,对于private成员来说,它们是私有的,不能在类外访问,数据成员只能由类中的函数所使用,成员函数只允许在类中调用;对于public成员来说,它们是公有的,可以在类外访问;而对于protect成员来说,它们是受保护的,具有半公开性质,可在类中或其子类中访问。对象对象是运行的根本实体,它是一个封装了数据和操作这些
19、数据的代码的逻辑实体。作为一种复杂的数据构造类型,类声明后,就可以定义该类的对象。封装封装是将数据和代码捆绑在一起,以防止外界的干扰和不确定性。对象的某些数据和代码可以是私有的,不能被外界访问,以此实现对数据和代码不同级别的访问权限。继承继承是让某个类型的对象获得另一个类型的对象的特征。通过继承可以实现代码的重用:从已存在的类派生出的一个新类将自动具有原来那个类的特性,同时,它还可以拥有自己的新特性:单向性、传递性、可重用性。多态多态是指不同事物具有不同表现形式的能力。多态机制使具有不同部构造的对象可以共享一样的外部接口,通过这种方式减少代码的复杂度。Qt程序用到的类本次的设计用QMainWi
20、ndow作为主窗体。QMainWindow是一个为用户提供主窗口程序的类,可包含一个菜单栏menubaE、多个工具栏toolbar、一个状态栏statusbar以及一个中心部件centralwidget,是许多应用程序的根底,如文本编辑器、图片编辑器等。Qt应用程序实现由以上简介可知,Qt是一个创立GUI程序的C+类库,编写Qt应用程序的主要工作是基于已有的Qt类编写用户类。Qt提供了一组围相当广泛的C+类库,并包含了几种命令行和图形界面的工具,有效地使用这些工具可以加速开发过程。QtDesigner:Qt设计器,用来可视化地设计应用程序界面。QtLinguist:Qt语言学家,用来翻译应用程
21、序。以此提供对多种语言的支持。Qmake:使用此工具可以由简单的、与平台无关的工程文件来生成编译所需的Makefile。QtAssistant关于Qt的帮助文件,类似于MSDN。可以快速地发现你所需要的帮助。moc:元对象编译器。uic:用户界面编译器。在程序编译时被自动调用,通过ui_*.h文件生成应用程序界面。Qt应用程序的设计使用基于工程的方法,并通过.pro文件进展工程管理。实现应用程序的第一步是编写.pro文件,然后使用Qt4自带的qmake工具生成Makefile,最后进展源代码的编译。Qmake的过程如下:qmake-project/生成.pro的工程文件qmake/生成Make
22、filenmake/编译本章小结随着越来越多的第三方软件公司利用Qt/Embedded开发嵌入式Linux下的应用软件,Qt的应用已经越来越广泛。本章主要介绍了Qt的背景和描述了Qt实现的构造原理,还简述了Qt的相关特性。此外,也介绍了Qt应用程序开发时的相关工具和C+面向对象程序设计原那么。同时为本次设计的扫雷游戏的移植提供便利的条件。第3章扫雷游戏设计本次设计是以Qt为开发软件,Qt是一个跨平台的C+图形用户界面应用程序框架。它给应用程序开发者提供建立艺术级图形用户所需的所有功能。设计并实现基于嵌入式Qt的扫雷游戏。扫雷游戏名称为mine_sweeper_v1.2属于益智类游戏。通过鼠标即
23、可操作游戏。游戏特点为操作简单、易于上手。扫雷游戏功能需求分析扫雷游戏以满足用户娱乐、益智为宗旨,不断创新以适应用户越来越多的要求,本设计以用户需求为导向,在实现现主要完成以下功能:游戏的初始化。菜单栏功能的实现。游戏难度的选择。雷数的随机布置。游戏的测试。扫雷游戏整体框架介绍根据实际需求分析、功能设计,整个系统大致可以分为鼠标事件和菜单事件两个模块,程序设计的流程主要为先实现扫雷游戏主要功能,扫雷游戏的系统流程图如图3-1。图3-1扫雷游戏系统流程图扫雷游戏主要功能的实现菜单栏的实现在主函数中实现菜单功能,主要有游戏的开场、退出、排行榜如图3-2。voidMainWindow二create_
24、menus()添加头文件#include#include图3-2菜单中游戏选项游戏难度的选择及自定义设置如图3-3。图3-3菜单栏游戏难度选项/*游戏的设置容易、中等、困难及自定义*/voidMainWindow:slot_standard(QAction*standard_action)if(standard_action=easy_standard_action)current_standard_=0;row_=9;column_=9;mine_number_=10;elseif(standard_action=middle_standard_action)current_standard
25、_=1;row_=16;column_=16;mine_number_=40;elseif(standard_action=hard_standard_action)current_standard_=2;row_=16;column_=30;mine_number_=99;elseif()帮助菜单中的关于游戏、关于Qt的介绍等主要功能的实现。如图3-4J.走雷游戏:I神脂I帚新询S-汨旃j|_I(_QtDDuulMui口rn口图3-4扫雷游戏的帮助菜单菜单栏的功能新新游戏:根据当前游戏难度直接开场一局新游戏。初级、中级、高级游戏设定:根据选项设定游戏难度后开场新游戏。定自定义难度:首先弹出游
26、戏设置对话Ig,让用户设置扫雷游戏根本属性,然后根据用户设定的属性开场新游戏。自定义对话框设计如图3-5图3-5自定义难度时弹出的对话框鼠标事件的实现在游戏过程中,我们利用鼠标所发出的信息了解游戏者的意图,进而做出相对应的动作。在MousePressEven事件中,可以捕捉鼠标所按下或放开的按键、鼠标光标在该组件上的坐标及是否同时按下辅助键等。函数原型如下:voidBlock二mousePressEvent(QMouseEvent*event)添加头文件:#include假设游戏者发现标示地雷的小旗方块是错误的,再重新点击一下右键,就会取消小旗,这时按下左键,该方块就会重新选择,假设再按下左键
27、,那么该方块因为已成为“已标示方块,所以就无法翻开。在窗口的软件中,鼠标的应用是不可或缺的,但鼠标固然好用,如果程序设计不当,也可能造成使用者的不便。通常鼠标在软件的应用上经常使用右键作为确定使用者的操作意图,而只把MousePressEven事件当做标示的用途用意就如同前面所提,只是为给使用者一个反悔的时机。游戏的操作方面主要以鼠标为主,当鼠标指针对准未翻开的方块按下左键时即表示翻开方块;当鼠标指针对准未翻开的方块按下右键时即表示标示或疑示地雷,反复按下右键那么方块会以“未标示-“标示的关系不断循环。完成扫雷游戏逻辑的设计设计实现:在程序中,使用一个MainWindow类完成所有游戏逻辑功能
28、。扫雷表现形式:使用二维数组存储当前游戏状态。扫雷游戏的实质即是在二维空间,不同的点之间所具有的不同状态。例如该格子是雷,可以用数字-1表示该格子周围一个雷也没有,可以用0表示。使用二维数组能够完全表示所有地雷地图的数据。再利用另一个二维数组,用以表示当前点是否已被用户点击。游戏根本属性:地雷数组行数、列数、地雷数量、游戏难度。游戏状态:游戏初始界面,游戏进展中,游戏失败,游戏成功。MainWindow类主要功能:初始化游戏界面、生成随机的地雷数,根据生成的地雷位置,将其余并非地雷的位置填上数字,数字代表该格子周围八个格子里有几个地雷。设置游戏等级:初级、中级、高级和自定义。其三者都由默认设置
29、游戏属性。通过游戏等级的设置,间接设置游戏的根本属性。扫雷游戏状态分类当玩家扫雷时,即用鼠标左、右键点击一个格子时,有以下几种状态:踩到雷:游戏失败,完毕游戏。点到的是数字:显示数字,游戏继续。假设玩家点到的格子周围一颗雷也没有时:就采用递归算法,继续向周围扩展。当玩家点开所有的非雷的格子:提示游戏通过,并且完毕游戏。标示雷:右键点击出现小旗,代表下面是地雷。初始化界面功能实现计时窗口的实现在游戏的初始化界面时右下角的显示时间最初时0秒,随着时间的增长,它会记录你玩好这局游戏需要多长时间。其功能实现:voidMainWindow:slot_timer()time_label-setText(Q
30、String(%1).arg(time.elapsed()/1000);扫雷面板3-6。通过QMainWindow类创立扫雷游戏应用程序用户界面。游戏需要提供一个菜单栏。提供游戏的新游戏、设置、帮助等选项。在游戏区按功能将它分成雷区和提示区。Qt4使用”动作的概念简化了有关菜单和工具栏的编程一个动作(action潮是一个可以添加到任意菜单和工具栏上。扫雷游戏的初始化界面。如图HSWK_n济比二三桂的CCCD匚I匚图3-6扫雷游戏的初始界面雷区的随机布置这里重点介绍的就是雷的随机布置。当游戏界面初始化完成后,这时在地雷区中并未产生地雷,只有当玩家在地雷区中第一次点下左键后,才会在地雷区中随机的布
31、置当前游戏难度下应该产生的地雷总数,主要用意在于不让玩家第一次就踩到地雷,这样在某种程度上可以提高玩家游戏的气氛。实现其功能局部代码:ptrdiff_trandom(ptrdiff_ti)/雷的随机布置returnqrand()%i;ptrdiff_t(*p_random)(ptrdiff_t)=random;BlockArea:BlockArea(introw,intcolumn,intmine_number,QWidget*parent):QWidget(parent)set_block_area(row,column,mine_number,true);去除未靠近地雷的方块去除为靠近地雷
32、的方块也是本论文介绍的重点对象。这里首先引入一个“递归的概念,“递归(Recursion简单的说,就是一个程序能被自己所定义的语句调用。递归在程序设计上是一种重要的数据构造形态,通过递归程序的编写,在程序代码上会变得相当简洁,不过如果设计不当,会造成无穷循环或堆迭溢满的情形,所以递归的程序中心必须含有ifthen或SelectCas等设计,以终止递归执行。在游戏过程中,当游戏者按下非地雷方块时,方块会沿四周八个方向向外翻开非地雷的方块。程序的执行方面必须判断:以按下方块为中心,检查周围八个方块是否为非地雷方块,假设其中有一个方块是非地雷方块时,那么又以其为中心,向外检查周围八个方块是否为非地雷
33、方块,如此反复的执行即构成递归的使用条件。前面已经提到,递归必须设计终止的条件判断,在本游戏的递归架构中,当判断方块的容为数字时即在非地雷方块周围,即立即停顿递归程序。递归其实也不是万能的,以本游戏做测试,当地雷区围越大,且地雷数目不多时一翻开非地雷方块,几乎全部方块都会翻开,执行递归就会变的非常缓慢,甚至造成堆迭溢满缺乏的情形,所以在游戏设计上必须考虑地雷区的大小,以免造成执行时错误中断的情况发生。游戏的判断游戏成功当在规定的时间将所有的雷都正确的标示出来或把雷全部留下不去翻开它,游戏就会就是成功,而且会弹出一个对话框“请输入你的如图3-7。这样就会在排行榜上显示你所创造的记录如图3-8。图3-7游戏成功界面及弹出对话框图3-8排行榜显示信息游戏失败当鼠标左键按下的方块为地雷方块时,地雷将会被引爆,游戏立即完毕,弹出一个对话框“你输了如图3-9。耐FM图3-9游戏失败匚匚匚口 1 1口 一游戏测试结果在程序代码根本完成后,经过不断的调试与修改,最后测试本次所设计的扫雷游戏能够正常运行,在根本功能与画面上与Windows自带的扫雷游戏没有太大差异,没有出现明显的错误和漏洞,但是在一些细节方面仍然需要完善,比方在游戏中可以参加一些声音的提示,在游戏完成和失败的时候可以弹出一些小的Flash动画。总的来说本次设计在功能上已经根本到达
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2030年热水器储水箱行业市场现状供需分析及投资评估规划分析研究报告
- 2024年安全责任追究制度范例(二篇)
- 2024年学校档案室管理制度例文(二篇)
- 2024年学生会干事个人工作计划例文(五篇)
- 山东专用2024年高考地理二轮复习第一篇专题三考点2河流特征学案
- 2024年学校体育教研组工作计划样本(二篇)
- 毕业班散学典礼讲话稿(21篇)
- 有关端午节活动方案9篇
- 消费品调查分析、召回通知书、安全风险评估意见表、事故及重大危险报告信息表、新闻稿、阶段性总结
- 广东省江门市新会区七堡镇南竹柏顺小学2024-2025学年二年级上学期11月期中语文试题
- 2023《商业银行金融资产风险分类办法》全面解读
- 锅炉炉膛有限空间应急预案
- 老旧小区改造监理实施细则
- 幼儿园故事《水果屋》
- 环保设备运行与维护管理
- 工程设备采购方案(模板16篇)
- 【新能源汽车的成本控制与盈利能力-以比亚迪公司为例(论文)】
- 601团体心理辅导记录表格
- T-STSI 43-2023 人工智能算力资源池技术规范
- 刑法总论智慧树知到课后章节答案2023年下华东师范大学
- 腹腔镜操作流程图
评论
0/150
提交评论