




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
铜陵职业技术学院毕业设计题目小游戏连连看系部信息工程系专业计算机应用技术班级12计算机应用技术(2)班姓名章帅指导教师李婷铜陵职业技术学院摘要游戏“连连看”,只要将相同花色的两张牌用三根以内的直线连在一起就可以消除,规则简单容易上手。游戏速度节奏快,画面清晰可爱,老少皆宜。丰富的道具和公共模式的加入,增强游戏的竞争性。多样式的地图,使玩家在各个游戏水平都可以寻找到挑战的目标,长期地保持游戏的新鲜感。使用新颖的连击积分规则,使游戏玩家在体会连击的快感后,同时对自己的游戏速度,更有挑战性和追求极速的欲望。游戏通过定义数组,根据一定的算法实现规定的路径判断。铜陵职业技术学院关键字小游戏连连看数组路径判断铜陵职业技术学院目录第一章引言1第二章游戏规则221游戏规则222连连看游戏的设计步骤223基类源代码详解324卡片类源代码详解425卡片集合类源代码详解526游戏类源代码详解8第三章游戏状态1131游戏状态概述1132“连连看“游戏程序状态的介绍1133程序状态的添加所引起的代码变化1134变化部分代码详解12第四章计时1441程计时器功能简介1442计时器类的添加1443代码变化的类及新添加的模块代码详解1644计时功能中时间显示方式的改变18第5章测试22结束语23致谢24参考文献25第1页共25页第一章绪论现在小游戏、网页游戏等游戏越来越受网民欢迎,除了玩的方法简单外(不像其他游戏还需要注册下载繁琐过程),很多游戏不乏经典。连连看游戏就是典型了不管你走到哪个游戏网站,连连看游戏总是排在受玩家欢迎排名的前5位,休闲、趣味、益智是连连看玩不厌的精华,且不分男女老少、工薪白领,是一款适合大众的经典网络休闲小游戏。游戏产业作为现代电脑电子技术的产物,正在以其独特的魅力在全世界的娱乐领域占据主流位置,我们在承认广大娱乐网民的选择空间狭小的同时,也必须明确的一点就是游戏本身所具有的强大的吸引力。游戏的吸引力主要在于,它在让玩家打发时间的同时,可以让人实现在显示生活中不能实现的理想,得到在现实中不能得到的东西。而且游戏产业促动高科技技术不断升级,作为经济增长的一大支撑点,已经成为经济腾飞的“第四产业”。第2页共25页第二章游戏规则(1)概要玩家可以将2个相同图案的牌连接起来,连接线不多于3根直线,就可以成功将两个牌消除;(2)操作第一次使用鼠标点击游戏界面中的牌,该牌此时为“被选中“,以特殊方式显示;再次以鼠标点击其他牌,若该牌与被选中的牌图案相同,且把第一个牌到第二个牌连起来,中间的直线不超过3根,则消掉这一对牌,否则第一个牌恢复成未被选中状态,而第二个牌变成被选中状态。(3)胜利条件将游戏界面上的牌全部消除掉。(4)失败条件到规定时间,界面上的牌仍未全部消掉。22、“连连看”游戏的设计步骤221程序画面的实现1运行VISUALC,新建一个POCKETPC2003的应用程序。把工程的名字命名为“LINKGAME”。2添加游戏程序相关的资源图片。222程序代码的添加1展示游戏中所有对象的基类OBJECT。把诸如图形绘制相关的位置坐标、选择图形区域等操作都放在了这个类中。这种代码组织结构不但使整个程序看上去结构非常清晰,也很好地体现了面向对象概念的精髓所在。即把共性的东西抽象出来,放在一起,方便后面具体对象的实现。2卡片类CARD。CARD类继承自基类OBJECT,因为卡片类中包含了卡片绘制等一些基本的功能,因此从这个意义上讲,继承自OBJECT是最合适的。以后只需要修改基类OBJECT的相关代码,就可以实现用不同图形的卡片绘制比如,选择不同的卡片作为背景进行绘制等卡片集合类主要负责卡片集合相关的事项。比如,绘制整个卡片数组、实现背景卡片的随机排序、处理鼠标在卡片集合上的单击等。可以说,游戏中关键的功能,如处理鼠标单击,判断两张卡片是否可以可见、连通等功能都是在这里实现的。3游戏程序的主类FRMMAIMCS。FRMMAINCS中主要包含了游戏的主循环、应用程序的初始化、对象的处理、对象的绘制等游戏程序的主要功能。概括地讲,该游戏程序都是依靠这个第3页共25页类“串”起来的。因此,建议读者首先要了解该类中如何把游戏程序的各个功能组合在一起,在此基础上再来仔细研究其余类中代码的具体实现。23、基类源代码详解在程序代码中提到的OBJECT类是所有对象的基类。在这个游戏中,图形的绘制、选中标示的绘制等都需要计算目的位置的坐标、源图像的坐标等。因此,根据面向对象的思想,把所有这些经常用到的属性都抽象成了一个基类。在这个基类当中包含了一些基本的操作,这样当再派生出具体类比如,背景卡片的时候,只需要继承自这个基类就可以了,这就是OBJECT类的作用。231基类的构造函数介绍在一个类中,首先需要实现的就是该类的构造函数。例如PUBUCOBJECTGAMEGRIFLETHISGAMEGAME;PUBLICOBJECTGAMEGAME,IMAGEIMAGE,IMAGEATTRIBUTESIMAGEATTRTHISGAMETHISIMAGEIMAGE;THISIMAGEATTRIMAGEATTR;上面这两个构造函数的函数名称是完全一样的,都是OBJECT,只有里面的参数不相同。我们把这种在同一个类中函数名称相同,而参数类型不同的现象叫做函数的重载。使用重载函数可以使程序代码在编译的时候,根据函数参数的不同自动地选择相应的函数进行编译。这样可以大大降低程序的复杂程度。在“THISGAMEGAME”、“THISIMAGEIMAGE”和“THISIMAGEATTRIMAGEATTR”中,THIS后面的GAME、IMAGE和IMAGEATTR为OBJECT类中的变量,在它们的前面加上THIS就表示是OBJECT类中的变量;等号后面的那些值则为参数列表中传递过来的参数。在第2个构造函数的参数列表后面“THISGAME”的作用是调用OBJECTGAMEGAME。用户可以把THIS看作是OBJECT,这样THISGAME自然就可以被看成是OBJECTGAME,也就是第4页共25页调用第1个构造函数了。这样做的好处在于,当对OBJECTGAMEGAME进行修改以后,第2个构造函数是不需要修改的。当然,也可以在第2个构造函数中添加以下语句THISGAMEGAME虽然这样也可以实现原来函数的功能,但是如果第1个构造函数发生了变化,第2个构造函数也需要进行相应的修改。232基类中其余函数代码的解释PUBLICBOOLVISIBLEGETRETURNTHISVISIBLE;/返回对象是否可见当卡片被消去以后,就处于不可见的状态,反之,则处于可见状态。这就是VISIBLE函数的作用。PUBLICVIRTUATVOIDPROCESS/对对象进行相应的处理和操作。默认值为空,需要的时候可以在子类重写该函数24、卡片类源代码详解241OBJECT类“OBJECT”表示卡片CARD类是OBJECT类的子类,它继承了父类的所有功能,同时又具备自己的一些特性。242卡片类的构造函数PUBILCCARDGAMEGAME,IMAGEIMAGE,IMAGEATTRIBUTESIMAGEATTR,INTLEFT,INTTOPBASEGAME,LMAGE,IMAGEATTR这个构造函数参数列表后面的“BASEGAME,IMAGE,IMAGEATTR”表示构造函数在初始化的时候,会将CARD参数列表里面的GAME、IMAGE和IMAGEATTR传递给基类构造函数OBIECTGAMEGAME,IMAGEIMAGE,IMAGEATTRIBUTESIMAGEATTR,这样就实现了初始化所属游戏GAME、源图像IMAGE和颜色属性IMAGEATTR的功能。第5页共25页243卡片类中其余函数代码的解释PUBLICOVERRIDEVOIDRESET/重置对象SHOW;/重置对象为可见25卡片集合类源代码详解251卡片集合类的构造函数PUBLICCARDSGAMEGAME,IMAGEIMAGECARD,IMAGEATTRIBUTESIMAGEATTRCARDTHISGAMEGAME;/设置游戏对象THISROWSHEIGHT/CARDHEIGHT;/计算卡片集合的行数THISCOLSWIDTH/CARDWIDTH;/计算卡片集合的列数THISCOUNTTHISCOLSTHISROWS;/计算卡片数THISCARDSNEWCARDTHISCOUNT;/生成卡片对象数组FORINTROW0;ROWTOPHEIGHT|XLEFTWIDTHRETURN/不作任何处理第8页共25页/当单击屏幕的位置处于卡片显示范围内的时候,计算鼠标单击处的行和列INTROWYTOP/CARDHEIGHTINTCOIXLEFT/CARDWIDTH/被选中卡片的索引编号INTSELECTEDTHISCOLSROWCOL;IFTHISCARDSSELECTEDVISIBLE当选中的卡片是可见的时候IFTHISSELECTED1/当单击位置上的卡片还没有被选中的时候THISSELECTEDSELECTED;/选中该卡片THISSELECTEDSELECTED语句中,THIS修饰的是CARDS类中的成员变量SELECTED;等号后面出现的是HIT函数中的局部变量SELECTED。254判断两张卡片之间是否可以连通根据游戏的规则,每两张相同卡片之间的拐点不能超过2个,并且拐点之间不能有别的方块进行阻挡。因此,要判断两张卡片是否可以连通,还需要判断中间的两个拐点和其余部分是否可以连通。而要想判断这4个点是否连通,则需要判断每2个点之间是否可以连通。基于这样的一种判断思路,我们分别设计了3个函数。LFINKEDINTSRC,INTDEST。CONNECTEDINTROWL,INTCOLL,INTROW2,INTCOL2,INTROW3,INTCOL3,INTROW4,INTCOL4。THROUGHINTSRCROW,INTSRCCOL,INTDESTROW,INTDESKCOL,BOOLSKIPSRC。用ROWL,COLL代表起始点所处的行列;ROW4,COL4代表目标点所处的行列;ROW2,COL2和ROW3,COL3代表两个拐点所处的行和列。26、游戏类源代码详解261“离屏技术”的画面绘制方法要采取一种被称之为“离屏技术”的画面绘制方法。具体的设计思路是首先创建一个虚拟的屏幕,然后把将要绘制的图形画面绘制到这个虚拟屏幕上,最后把虚拟上的所有内容复制到可以显示的真正的物理屏幕上。使用这种技术可以很好地避免屏幕的闪烁现象。这是因为在第9页共25页绘制到虚拟屏幕的时候,所花费的时间很短。在内容变化不大的时候,几乎看不到任何的闪烁。离屏技术主要有以下3个步骤创建用于离民屏显示的虚拟屏幕。在创建的虚拟屏幕上绘制画面。将虚拟屏幕上的整个画面复制到真正的物理屏幕上。在这个游戏当中,GXPHY对应的是物理屏幕;GXOFF对应的是后台的虚拟屏幕,这样就从编码上实现了离屏显示技术。262游戏程序的初始化PUBLICGAMEINIT;/初始化游戏MAINLOOP;/进入到游戏的主循环当中为了使得在每一次游戏开始的时候,卡片的排列顺序都不相同,在程序代码中就需要用随机函数生成不同的随机数。PROT4ECTEDVOIDINIT/初始化应用程序THISGXPHYSTHISCREATEGRAPHICSO;/在前台物理屏上绘制图像/在后台需要绘制的图像,就是前面提到的图片资源中的BACKGROUNDBMP文件THISIMAGEOFFRESOURCESBACKGROUND;/后台绘图面THISGXOFFGRAPHICSFROMLMAGETHISIMAGEOFF;上面代码中FROMIMAGE的作用为用IMAGEEOFF创建新的GXOFF对象。263游戏对象的处理1处理所有游戏对象的PROCESSALL函数。PUBLICVOIDPROCESSALLTHISCARDSPROCESS;/处理卡片集合2所有游戏对象的绘制DRAWALL函数。第10页共25页PUBLICVOIDDRAWALL/绘制所有游戏对象/绘制背景,以覆盖并准备重绘前景THISGXOFFDRAWLMAGETHISIMAGEBACK,0,0;/绘制卡片集合,调用了CARD类中的DRAW函数THISCARDSDRAWTHISGXOFF;/刷新前台显示屏幕,此时将后台画面一次性绘制到前台,离屏技术的体现THISGXPHYSDRAWLMAGETHISIMAGEOFF,0,0;3所有游戏对象的重置RESETALL函数。PUBLICVOIDRESETALL/重置所有游戏对象THISCARDSRESET;/重置卡片集合264绘制卡片之间的连接线DRAWLINE函数。PUBLICVOIDDRAWLINESINTXL,INTYL,INTX2,INTY2,INTX3,HATY3,INTX4,INTY4PENPENNEWPENCOLORRED;/设置画笔的颜色为红色下面的3行代码实现了在起始点、目标点和两个拐点之间绘制连接线。THISGXPHYSDRAWLINEPEN,XL,YL,X2,Y2;THISGXPHYSDRAWLINEPEN,X2,Y2,X3,Y3;THISGXPHYSDRAWLINEPEN,X3,Y3,X4,Y4;第11页共25页第三章游戏状态31、游戏状态概述在游戏程序设计中,游戏状态的添加可以大大增加游戏产品的完整性、可玩性以及游戏界面的友好性。有的游戏在进入到暂停状态的时候会停止当前画面,然后在画面显示暂停信息;有的游戏则会直接进入到游戏设置画面等。32、程序状态的添加所引起的代码变化“连连看”游戏一共包含4个类,分别为对象的基类、卡片类、卡片集合类和游戏类。其中,对象的基类和卡片类在这个版本的程序中没有发生变化,卡片集合类也只作了很少的修改,惟一变化较大的就是游戏类。321卡片集合类卡片集合CARDS类和上一章的版本相比,DRAW函数发生了比较大的变化。322游戏类在这个版本的“连连看”游戏程序中,发生代码变化较大的是游戏类FRMMAINCS。33、变化部分代码详解331卡片集合类卡片集合CARDS类,主要实现了卡片的屏幕绘制、判断两张卡片之问是否连通等功能。在这个版本的“连连看”中,CARDS类的变化为体现在DRAW函数的变化上。在第2章中,游戏程序在取得胜利以后,画面上是没有任何提示信息。在本章的程序当中,增加了胜利状态的显示画面,使游戏的功能更趋于完整。在程序中定义的BOOL类型变量WON的作用就是表示游戏玩家是否处于胜利通关的状态。循环语句中代码的作用是在屏幕上绘制出所有的背景图案,一般只有在游戏开始的时候,或者重新开始的时候才需要进行游戏画面的绘制。当然,此时玩家不可能处在通关胜利的状态下,因此,在循环语句当中需要添加“WONFALSE”语句。332游戏类游戏类中包含了整个游戏程序的主函数、初始化函数等信息,和第三章的CARDS类相比,变化较大。在本程序中是在构造函数的前面增加一个枚举类型,具体的代码如下第12页共25页PUBLICENUMSTATUSMAINMENU,WON,PAUSED,PLAYING,EXITING;从名称中可以很清楚地看出其代表的含义,分别为MAINMENU主菜单,也就是游戏启动时的状态。WON胜利状态。PAUSE游戏暂停状态。PLAYING游戏正在进行当中。EXITING游戏退出。构造函数和前一个版本的程序相比,构造函数也发生了一定的变化。通过函数的对比,可以发现,在新版本中去掉了MAINLOOP这一行代码。这样做是因为当前版本的游戏程序在初始化的时候,首先展现给玩家的是游戏的启动界面,只有当用户单击屏幕以后才会进入到游戏的循环当中。而前一个版本的游戏直接展现的就是游戏界面,可以直接进入到游戏的循环当中。因为添加了不同的游戏状态,同时需要在进入到游戏主循环函数的时候,进行游戏初始化状态的判断,因此,需要在MAINLOOP函数的最前面添加INITGAME函数。INITGAME函数INITGAME函数是新增加的函数,其作用是初始化游戏,我们把游戏启动时候要做的事情都放在这里。比如,背景画面的重新绘制、状态的设置等。下面来看一下代码实现。PROTECTEDVOIDINITGAMEOIFTHISSTATUSSTATUSMAINMENU|THISSTATUSSTATUSWON/当游戏刚启动的时候,或者游戏处于胜利状态的时候第13页共25页RESETALL;/重新绘制所有的背景画面THISSTATUSSTATUSPLAYING;重新绘制所有的背景画面以后,也就表示重新开始了新的一局游戏,因此,需要把游戏状态设置成正在进行中。这就是最后一条语句的作用。WON函数和LOST函数WON函数和LOST函数都是新添加的函数,分别表示游戏的胜利状态和游戏的失败状态。当游戏胜利的时候,游戏自然就处于WON状态当游戏失败的时候,游戏又会回到开始时候的画面。在这里需要说明的是,本章这个版本的游戏还没有实现对失败情况的判断。但是为了保证各种状态的完整性,可以在这里添加失败时候的游戏状态代码。DRAWLINE函数DRAWLINE函数的变化主要体现在对画笔的设置上。在上一个版本的游戏中玩家或许会觉得方块之间的连线不是很明显,因此在这里对其进行了一定的修改,也就是指定了画笔的宽度。具体的代码如下PENPENNEWPENCOLORRED,2PEN构造函数的原型为PUBLICPENCOLORCOLOR,FLOATWIDTH其中,COLOR指定了画笔的颜色;WIDTH指定了画笔对象的宽度。ONPAINT函数ONPAINT函数为此版本游戏中新添加的函数。当屏幕发生变化比如,最小化,然后最大化以后需要重新绘制的时候,系统会调用ONPAINT函数。从函数的代码中可以很清楚地看到,当游戏处于启动、胜利、暂停状态的时候,需要把整个背景用相应状态下的图片进行绘制;当游戏处于运行状态的时候,则要把画面绘制成原来的样式;退出程序的时候,不需要作任何处理。第14页共25页第四章计时功能41、程序计时功能简介在游戏画面上添加了时间显示,这样每一关就不人无限制地运行下去,玩家的思考时间也会受到时间的限制了。并且当显示的时间变成0的时候,就会终止游戏程序。42、计时器类的添加在这个版本的“连连看”中,发生代码变化的类为GAME类,同时还增加了计时器(TIMER)类。下面是TIMER类的代码USINGSYSTEM;USINGSYSTEMDRAWING;NAMESPACELINKGAMEPUBLICCLASSTIMEROBJECTPUBLICCONSTINTMAX_VALUE120;/计时器最大值PUBLICCONSTINTLEFT24;/计时器左上角X坐标PUBLICCONSTINTTOP2;/计时器左上角Y坐标FONTFONTNULL;/计时器字体SOLIDBRUSHBRUSHNULL;/计时器颜色INTVALUE0/计时器值INTTICKLAST0PUBLICTIMERGAMEGAMEBASEGAMETHISFONTNEWFONT“ARIAL”,16,FONTSTYLEBOLD;THISBRUSHNEWSOLIDBRUSHCOLORRED;SHOW;RESET;第15页共25页PUBLICOVERRIDEVOIDPROCESS/处理对象INTTICKENVIRONMENTTICKCOUNT;/获取系统运行的毫秒数IFTICKTHISTICKLAST1000|TICKL000|TICK1000表示当时间间隔为LS也就是1000MS的时候,TICK1000|/间隔LSTICKTHISTICKLAST/或归0THISVALUEIFTHISVALUE0/计时器值为0,失败THISVALUE0;THISGAMELOST;RESIZEWIDTHTHISVALUE/MAX_VALUE,HEIGHT;/时间条变短THISTICKLASTTICK;/记录系统毫秒数PUBLICOVERRIDEVOIDRESET/重置对象RESIZEWIDTH,HEIGHT;/重置对象大小THISVALUEMAX_VALUE;/重置计时器值第20页共25页443代码变化后的计时器类代码详解1全局量的变化因为要用进度条来显示时间的变化,所以需要定义进度条的长度和宽度。在这个版本的程序中,增加了两个全局常量。PUBLICCONSTINTWIDTH190;PUBLICCONSTINTHEIGHT9其中,WIDTH表示进度条的宽度;HEIGHT表示进度条的高度。因为不再需要对显示时间的字体和颜色进行设置,因此去掉了下面两行代码。FONTFOTNULLSOLIDBRUSHBRUSHNULL2构造函数的变化因为时间显示的方式变成了进度条显示,这样就直接导致TIMER构造函数的变化。由于没有了数字显示,也就不需要设置字体的样式和字体颜色了,因此去掉了对FONT和BRUSH的设置。在进度条显示的时候,需要进行图像位置的确定,这就是MOVE函数的作用。3PROCESS函数的变化在该版本中,由于要用进度条来显示时间长短的变化,因此显示的进度条图形就需要根据时间的变化而改变。在PROCESS函数中,添加了一行代码RESIZEWIDTH,HEIGHT;这行代码的作用就是使进度条根据时间的变化而改变自身的长度,而高度保持不变。同样,这里调用的确RESIZE函数来自基类OBJECT。WIDTH是一个常量,表示进度条的长度。而THISVALUE自程序开始运行以后,其值就小于MAX_VALUE,并且随着时间的变化,THISVALUER的值会越来越小。这样,“WIDTHTHISVALUE/MAX_VALUE”的值也会逐渐地变小。我们就是通过这种方式实现了进度条的变化的。RESET函数的变化在重新设置对象的时候,除了要把值初始化设成最大值,还需要把进度条的长度和宽度初始化到原来的状态,以保证其与数值的变化相对应。这就是RESIZEWIDTH,HEIGHT的作用。第21页共25页444代码变化后的游戏类代码详解和前一个版本的“连连看”相比,新版本的游戏程序只是更改了时间的显示方式,因此在GAME类中只需要把使用到TIMER构造函数的地方进行相应的修改即可。从这一点上,也可以看出采用面向对象方法进行程序设计的好处。在GAME类中,将“THISTIMERNEWTIMERTHIS”修改成了下面的代码THISTIMERNEWTIMERTHIS,RESOURCESTIMER,THISIMAGEATTR;很显然,这个变化是由前面TIMER类构造函数的变化导致的。第22页共25页第五章测试软件测试就是在软件投入运行前,对软件需求分析、设计规格说明书和编码的最终复审,是软件质量保证的关键步骤。测试的目的在于寻找错误,尽量找出系统中所有隐藏的错误。程序的开发者应避免检查自己的程序。如果由别人来测试程序员编写的程序,会更客观,更有效,并更容易取得成功。第23页共25页结束语经过一个月的不断努力,毕业设计内容已经基本上完成了。回顾这个设计过程,我学到了许多书本上没有学到的知识。通过这次自己制作的游戏,丰富了自己的实践技能,扩展了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年中国电凝器行业投资前景及策略咨询报告
- 2025至2030年中国环保矽利康商标行业投资前景及策略咨询报告
- 高中生物跨学科教学对学生综合素质培养的影响
- 2025至2030年中国滋养水蜜桃香皂行业投资前景及策略咨询报告
- 2025至2030年中国涂布淀粉行业投资前景及策略咨询报告
- 2025至2030年中国毛纺锭带行业投资前景及策略咨询报告
- 侧向滑步推铅球接力跑教学设计
- 2025至2030年中国柔性组合夹具行业投资前景及策略咨询报告
- 2025至2030年中国有结复丝网行业投资前景及策略咨询报告
- 啤酒企业经营管理方案
- 数据中心IDC机房运维工程师培训教材
- 血液透析器课件
- 2024届清华大学强基计划数学学科笔试试题(附答案)
- 《篮球:防守无球队员》教案(两篇)
- 2024年高三数学复习备考策略讲座
- 人教版安徽八年级下册语文期末综合模拟测试卷3
- 陕西西安地区2025届高考历史押题试卷含解析
- 2024北京西城区初一(下)期末历史试题及答案
- 湖南定额说明及计算规则
- 舞台灯具检测报告
- 网络空间安全概论智慧树知到期末考试答案2024年
评论
0/150
提交评论