C++语言课程设计一拍飞虫(12页).doc

上传人:1595****071 文档编号:36399551 上传时间:2022-08-26 格式:DOC 页数:12 大小:175KB
返回 下载 相关 举报
C++语言课程设计一拍飞虫(12页).doc_第1页
第1页 / 共12页
C++语言课程设计一拍飞虫(12页).doc_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《C++语言课程设计一拍飞虫(12页).doc》由会员分享,可在线阅读,更多相关《C++语言课程设计一拍飞虫(12页).doc(12页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、-C+语言课程设计一拍飞虫-第 12 页C+语言课程设计一拍飞虫一、实验内容玩家通过控制拍子拍打飞虫获取分数。要求如下:1、 游戏的初始界面如图一,单击空格键即可进入游戏。进入游戏后的界面如图二。左上角有两个记录游戏数据标示。上面一个是记录游戏剩余时间,下面一个是记录本局的游戏分数。下面也有五个记录游戏数据的标示,从左到右分别是记录各局游戏分数分数最高的前五个。图 一图 二2、 移动鼠标可以控制拍子的移动,单击鼠标左键可以控制拍子拍打动作。3、 游戏开始的时候,系统随机生成12个虫子,其中大虫子5个,小虫子7个,每打死一个大虫子获得1分,打死一个小虫子获得2分。游戏的分数会实时的显示在左上角。

2、二、实验指南实验一 开始实验【实验任务】步骤一、打开FunCode,创建一个的C+语言项目;步骤二、导入KillFeiChong模板。【实验思路】按实验指导完成。1、 打开FunCode,点击“项目”菜单,选择“创建C+工程”注意:工程名名称要求字母开头,只能包含字母和数字,且名字中间不能有空格。2、 点击菜单“项目”中的“导入地图模块”,如图一。跳出一个对话框,选中“KillFeiChong”模板,点击“导入到工程”按钮,如图二。 图 一 图 二3、 导入成功后的,界面如下图所示:实验二 移动拍子【实验内容】步骤一、单击空格键开始游戏步骤二、初始化游戏数据步骤三、移动拍子【实验思路】获取系统

3、响应键盘按下的消息函数的数据,如果是空格键则进入游戏界面,初始化游戏数据。同时获取鼠标的坐标,设置为拍子精灵的坐标。【实验指导】1、 进入LessonX.h中,添加如下的成员变量声明:CSprite*m_pPaizi;/拍子精灵CSprite*m_pKaishi;/空格开始精灵floatm_fGameTime;/ 本局游戏剩余时间CTextSprite*m_pTime; /显示时间文字编辑精灵CTextSprite*m_pScore;/显示分数文件编辑精灵floatm_fPosX;/拍子精灵的x坐标floatm_fPosY;/拍子精灵的y坐标intm_iGameScore;/ 本局游戏当前积分

4、值2、 进入LessonX.cpp中添加以上变量的初始化代码:1) 在构造函数中添加如下代码:m_fGameTime=0.f;m_iGameScore=0;m_fPosX=0.f;m_fPosY=0.f;m_pKaishi=new CSprite(kaishi);m_pPaizi=new CSprite(paizi);m_pTime=new CTextSprite(Time);m_pScore=new CTextSprite(Score);2) 在GameInit中获取拍子的初始位置:m_fPosX=m_pPaizi-GetSpritePositionX();m_fPosY=m_pPaizi-

5、GetSpritePositionY();3、 要实现单击空格键进入游戏,就需要添加一个自定义函数处理系统键盘按下事件中得到的数据。1) 进入LessonX.h中添加自定义函数OnKeyDown的声明:voidOnKeyDown( const int iKey, const int bAltPress, const int bShiftPress, const int bCtrlPress );2) 进入LessonX.cpp中添加该函数的定义代码:void CGameMain:OnKeyDown( const int iKey, const int bAltPress, const int

6、bShiftPress, const int bCtrlPress )3) 首先要判断得到的键盘键值是不是空格键,以及游戏的状态是不是等待开始状态,是的话则设置游戏状态为初始化,更新分数显示和游戏剩余时间,隐藏空格开始精灵和鼠标。在上面的函数定义里面添加如下的代码:if( KEY_SPACE = iKey & 0 = m_iGameState )m_iGameState =1;m_iGameScore=0;m_fGameTime=5.f; /游戏总共的时间/ 更新当前游戏积分显示(清零上一局积分显示值)m_pScore-SetTextValue(m_iGameScore);/ 更新当前游戏剩余

7、时间显示, 由于游戏刚开始,所以直接设置为g_fMaxGameTimem_pTime-SetTextValue(m_fGameTime);/ 隐藏 按空格开始游戏 这个提示图片m_pKaishi-SetSpriteVisible(false);/ 隐藏鼠标CSystem:ShowCursor(false);4) 最后在Main.cpp中的OnKeyDown函数里面添加对我们自定义函数的调用:g_GameMain.OnKeyDown(iKey,bAltPress,bShiftPress,bCtrlPress);4、 游戏初始化之后,每次系统刷新界面的时候对游戏总共的时间m_fGameTime减去

8、一个fDeltaTime,这样整体效果是游戏时间在不断的减少,判断游戏时间如果小于0,则游戏结束,回到空格开始界面。如果不是,则在地图的左上角消失当前剩余的时间。在GameRun函数里面添加如下代码:1) 判断游戏时间是否大于0,是的话,显示游戏剩余时间。更改LessonX.cpp中的GameMainLoop ( floatfDeltaTime )函数,将函数中case 2:if( true )GameRun( fDeltaTime );elseSetGameState(0);GameEnd();改为:case 2:if(m_fGameTime 0)GameRun( fDeltaTime );

9、elseSetGameState(0);GameEnd();这样,运行时,只有当剩余时间大于0时,才会运行GameRun()函数。2) 游戏总时间减少并把剩余时间实时的显示在游戏中,在GameRun()中添加代码: m_fGameTime -= fDeltaTime;m_pTime-SetTextValue(int)m_fGameTime);3) 如果游戏时间小于等于0,则设置游戏状态为游戏结束,在GameEnd()函数中添加如下代码:m_iGameState = 0;m_pKaishi-SetSpriteVisible(true);m_fGameTime = 0.f;m_pScore-Set

10、TextValue(int)m_fGameTime);CSystem:ShowCursor(true);m_pPaizi-SetSpritePosition(m_fPosX,m_fPosY);5、 要使拍子随鼠标移动,则要通过系统获取到鼠标的坐标位置,然后用SetSpritePosition设置拍子精灵的位置即可。1) 进入LessonX.h中添加我们的自定义函数声明:voidOnMouseMove( const float fMouseX, const float fMouseY );2) 进入LessonX.cpp中添加该函数的定义:void CGameMain:OnMouseMove(

11、const float fMouseX, const float fMouseY )3) 如果当前游戏状态是初始化或者正在进行中,则将鼠标位置赋给拍子,在上面的函数中添加如下代码:if(m_iGameState=1|m_iGameState=2)m_pPaizi-SetSpritePosition(fMouseX, fMouseY);4) 在Main.cpp中的OnMouseMove函数中添加对我们自定义函数的调用:g_GameMain.OnMouseMove(fMouseX,fMouseY);实验三 拍子模拟拍打动作【实验内容】步骤一、拍子模拟拍打飞虫的动作【实验思路】在系统鼠标单击函数里面

12、处理拍子拍打动作。设置拍子角度改变,同时设置一个动作时间,在游戏过程中不断减少该时间的值,如果改值为0,则恢复拍子的角度,这样整体的效果就是拍打的动作。【实验指导】1、 进入LessonX.h中添加下面的成员变量声明:floatm_fRotateTime;/ 拍子拍下后距离复位还差多少时间floatm_fOldRotation;/ 拍子的初始角度2、 在LessonX.cpp的构造函数中初始化以上的成员变量:m_fRotateTime=0.f;m_fOldRotation=0.f;3、 获取拍子的初始角度并保存,在GameInit中添加下面一行代码:m_fOldRotation=m_pPaiz

13、i-GetSpriteRotation();4、 添加一个自定义函数来处理拍子角度改变的动作。1) 在LessonX.h中添加自定义函数的声明:voidOnMouseClick( const int iMouseType, const float fMouseX, const float fMouseY );2) 在LessonX.cpp中添加该函数的定义:void CGameMain:OnMouseClick( const int iMouseType, const float fMouseX, const float fMouseY )3) 判断游戏的状态是否是初始化或者进行中,是的话则改

14、变拍子的角度,设置一个拍下的动作时间。在上面的函数定义中添加以下代码:if(m_iGameState=1|m_iGameState=2)m_pPaizi-SetSpriteRotation(m_fOldRotation - 10);m_fRotateTime=0.2f;4) 在Main.cpp中的OnMouseClick函数中添加对自定义函数的调用:g_GameMain.OnMouseClick(iMouseType,fMouseX,fMouseY);5、 在游戏中判断拍子拍下后,动作时间是否达到了0,是的话恢复拍子的角度。在GameRun中添加下面的代码:if(m_fRotateTime 0

15、)m_fRotateTime -= fDeltaTime;if(m_fRotateTime SetSpriteRotation(m_fOldRotation);至此,本实验结束。实验四 模拟拍打飞虫【实验内容】步骤一、创建飞虫精灵步骤二、判断拍子是否打中飞虫步骤三、改变飞虫位置【实验思路】创建一个飞虫精灵,使它从世界边界的一侧飞到令一侧,如果碰到世界边界,则随机改变飞虫的位置,从世界边界的另一个位置出现,循环上述动作。飞虫飞行过程中,判断飞虫的中心点是否在拍子精灵中,如果是则中断飞行动作,随机从世界边界另一个位置出现,这样就实现了拍子拍打飞虫的效果了。【实验指导】1、 进入LessonX.h中

16、添加如下的成员变量声明:floatm_fScreenLeft;/ 屏幕的4个边界值:上下左右floatm_fScreenRight;floatm_fScreenTop;floatm_fScreenBottom;CSprite*m_pFeichong;/飞虫精灵2、 在LessonX.cpp中的构造函数中添加以上变量的初始化代码:m_fScreenBottom=0.f;m_fScreenLeft=0.f;m_fScreenRight=0.f;m_fScreenTop=0.f;m_pFeichong=new CSprite(feichong_0);3、 首先需要添加一个自定义函数Flying来处理

17、飞虫飞行的动作。1) 在LessonX.h中添加该函数的声明:voidFlying(const char* szName); /参数为设置飞虫飞行的名字LessonX.cpp中添加该函数的定义:void CGameMain:Flying(const char* szName)2) 使用随机函数RandomRange生成飞虫出现的位置,这里采用switch-case结构,分四个位置,分别是世界边界的上下左右边界。在每个边界上用RandomRange随机生成飞虫出现的x和y坐标。在上面的函数定义添加如下代码:int iDir = 0;float fPosX, fPosY, fPosX1, fPos

18、Y1;float fSpeed;iDir = CSystem:RandomRange(0,3);/随机生成飞虫出现的方向switch(iDir)case 0: / 左方fPosX = CSystem:RandomRange(m_fScreenLeft-5.f, m_fScreenLeft); fPosY=CSystem:RandomRange(m_fScreenTop-5.f,m_fScreenBottom+5.f); break;case 1: / 下方fPosX= CSystem:RandomRange(m_fScreenLeft-5.f, m_fScreenRight+5.f);fPos

19、Y=CSystem:RandomRange(m_fScreenBottom,m_fScreenBottom+5.f);break;case 2: / 右方fPosX = CSystem:RandomRange(m_fScreenRight, m_fScreenRight+5.f);fPosY=CSystem:RandomRange(m_fScreenTop-5.f,m_fScreenBottom+5.f);break;case 3: / 上方mfPosX= CSystem:RandomRange(m_fScreenLeft-5.f, m_fScreenRight+5.f);fPosY = CS

20、ystem:RandomRange(m_fScreenTop-5.f, m_fScreenTop-5.f);3) 最后随机生成飞虫的飞行速度,以及飞虫飞行终点位置,调用SpriteMoveTo函数模拟飞虫飞行的动作。添加如下代码:fSpeed = CSystem:RandomRange(10, 40);/随机生成飞虫飞行速度/飞虫飞行的终点位置fPosX1 = CSystem:RandomRange(m_fScreenLeft+15.f, m_fScreenRight-15.f);fPosY1=CSystem:RandomRange(m_fScreenTop+15.f, m_fScreenBo

21、ttom-15.f);m_pFeichong-SetSpritePosition( fPosX, fPosY);m_pFeichong-SpriteMoveTo(fPosX1, fPosY1, fSpeed, false);4、 游戏开始的时候使用CloneSprite函数创建一个飞虫精灵实体,然后让他执行飞行动作。在LessonX.cpp中的OnKeyDown函数里面的if判断里添加如下的代码:/ 从精灵模板中复制出一只精灵m_pFeichong-CloneSprite(feichong_muban1);/ 调用函数,设置飞虫飞行轨迹Flying(feichong_0);5、 获取到世界边界

22、范围并设置飞虫的时间边界限制,以及飞虫碰触到世界边界的处理:1) 在GameInit中获取世界边界的值:/ 获取屏幕边界值m_fScreenLeft = CSystem:GetScreenLeft();m_fScreenRight = CSystem:GetScreenRight();m_fScreenTop = CSystem:GetScreenTop();m_fScreenBottom = CSystem:GetScreenBottom();2) 同时在该函数中设置飞虫的世界边界限制:/ 设置该精灵的世界边界m_pFeichong-SetSpriteWorldLimit(WORLD_LIM

23、IT_NULL, m_fScreenLeft-10.f, m_fScreenTop-10.f, m_fScreenRight+10.f, m_fScreenBottom+10.f);3) 处理飞虫碰到世界边界的动作需要添加一个自定义函数,进入LessonX.h中添加该函数的声明:voidOnSpriteColWorldLimit( const char *szName, const int iColSide );4) 在LessonX.cpp中添加该函数的定义:void CGameMain:OnSpriteColWorldLimit( const char *szName, const int

24、 iColSide )5) 如果系统检测到飞虫飞到世界边界的位置,则让飞虫在其他位置重新执行飞行的动作。在上面的函数里面添加如下代码:if(strcmp(szName, m_pFeichong-GetName()=0)Flying(feichong_0);6) 在Main.cpp中的OnSpriteColWorldLimit函数中添加对自定义函数的调用代码:g_GameMain.OnSpriteColWorldLimit(szName,iColSide);6、 在拍子拍下的瞬间,获取飞虫的坐标,判断是否在拍子精灵里面,是的话则调用Flying函数让飞虫在其他位置重新执行飞行动作,这样就实现了拍

25、子拍打飞虫的动作了。在OnMouseClick函数中添加如下代码:/ 获取飞虫的中心点坐标float fPosX, fPosY;fPosX = m_pFeichong-GetSpritePositionX();fPosY = m_pFeichong-GetSpritePositionY();/ 飞虫中心点在拍子范围内,说明拍子打中飞虫if(m_pPaizi-IsPointInSprite(fPosX, fPosY)Flying(feichong_0);7、 游戏结束后需要将该飞虫精灵删除掉,在GameEnd函数的函数中添加下面一行代码:m_pFeichong-DeleteSprite();8、

26、 最后为了测试实验结果是否符合预定要求,可以延长游戏时间,将LessonX.cpp的OnKeyDown中将游戏时间设置为m_fGameTime=30.f;实验五 实现拍打飞虫并计分【实验内容】步骤一、创建飞虫精灵步骤二、计算本局分数步骤三、排序分数显示前五个最高分【实验思路】创建一个飞虫精灵数组,将所有的飞虫精灵实体存放到数组中,同时增加一个对应的int数组m_iScore记录打死每个飞虫所能得到的分值,大飞虫的分值是1分,小飞虫的分值是2分。通过Flying函数,将飞虫精灵的名称传入是该飞虫实体执行飞行动作。用m_iHighScore记录分值最高的五个,每局结束后将该局分数与m_iHighS

27、core数组中的分值进行比较得到新的分值最高的五个。【实验指导】1、 进入LessonX.h中添加如下的成员变量的声明,同时将实验四中添加的CSprite*m_pFeichong变量注释掉。CSprite*m_pFeichong15;/飞虫精灵intm_iScore15;/拍中对应飞虫精灵的得分intm_iCount;/ 记录游戏中一共创建多少只飞虫intm_iHighScore5 ;/ 最高的5局分数CTextSprite*m_pScoreNum5;/地图下方的5个文字显示精灵数组2、 在LessonX.cpp中的构造函数中添加以上成员变量的初始化代码:m_iCount=0;for(int

28、i=0;i5;i+)m_iHighScorei=0;m_pScoreNumi=new CTextSprite(CSystem:MakeSpriteName(Score,i);同时注释掉上一个实验中的如下代码:m_pFeichong=new CSprite(feichong_0);3、 添加一个函数AddFlyBugs来创建所有的飞虫精灵。1) 进入LessonX.h中添加该函数的声明:voidAddFlyBugs();/ 添加飞虫2) 在LessonX.cpp中添加该函数的定义:void CGameMain:AddFlyBugs()3) 利用两个for循环创建12个飞虫精灵,前5个为大飞虫精灵

29、,分值为1,后7个为小飞虫精灵,分值为2,命名方式为feichong_i,其中i为0到11的值,每个飞虫的分值用对应的m_iScore数组记录。在上面的函数定义中添加下面的代码:for(int i=0; i5; i+)m_pFeichongm_iCount=new CSprite(CSystem:MakeSpriteName(feichong_,m_iCount);m_iScorem_iCount=1;m_iCount+;for(int i=0; i7; i+)m_pFeichongm_iCount=new CSprite(CSystem:MakeSpriteName(feichong_,m_

30、iCount);m_iScorem_iCount=2;m_iCount+;4) 使用两个for循环复制精灵实体,同时获取世界边界范围,设置飞虫的世界边界限制,最后调用Flying函数设置飞虫的飞行动作:for(int i=0; iCloneSprite(feichong_muban1);elsem_pFeichongi-CloneSprite(feichong_muban2);/ 获取屏幕边界值m_fScreenLeft = CSystem:GetScreenLeft();m_fScreenRight = CSystem:GetScreenRight();m_fScreenTop = CSys

31、tem:GetScreenTop();m_fScreenBottom = CSystem:GetScreenBottom();/ 设置该精灵的世界边界m_pFeichongi-SetSpriteWorldLimit(WORLD_LIMIT_NULL, m_fScreenLeft-10.f, m_fScreenTop-10.f, m_fScreenRight+10.f, m_fScreenBottom+10.f);5) 进入游戏的时候,首先调用AddFlyBugs创建飞虫精灵,然后用两个for循环分别从飞虫精灵模板中复制出一只飞虫精灵实体,最后再设置飞虫的世界边界限制。在LessonX.cpp中

32、的OnKeyDown函数里面添加如下代码:将以下代码注释掉:/ 从精灵模板中复制出一只精灵m_pFeichong-CloneSprite(feichong_muban1);在GameInit()函数中调用AddFlyBugs创建精灵:AddFlyBugs();4、 与上一个实验不一样,这个实验中不止一个飞虫精灵,因此需要修改下Flying函数,添加一个参数szName表示传进入的精灵名称,这样就可以分别设置不同的飞虫精灵的飞行动作了。1) 添加一个自定义函数FindSpriteByName,参数是const char*类型的变量szName,通过传入的精灵名称找到精灵实体。在LessonX.c

33、pp中添加该函数的声明:CSprite*FindSpriteByName(const char* szName);通过变量飞虫精灵数组,找到与传进去的名称相同的飞虫精灵并将它返回,在LessonX.cpp中添加该函数的定义:CSprite* CGameMain:FindSpriteByName(const char* szName)for(int i=0;iGetName()=0)return m_pFeichongi;2) 在函数Flying的定义里面将以下代码一改为代码二:代码一:m_pFeichong-SetSpritePosition( fPosX, fPosY);m_pFeichon

34、g-SpriteMoveTo(fPosX1, fPosY1, fSpeed, false);代码二:CSprite* tmpSprite=FindSpriteByName(szName);tmpSprite-SetSpritePosition(fPosX, fPosY);tmpSprite-SpriteMoveTo(fPosX1, fPosY1, fSpeed, false);通过FindSpriteByName函数找到需要重新设定飞行行为的飞虫精灵。1) 在前边创建的AddFlyBugs()函数,创建精灵实体的for循环中添加设置飞虫飞行动作的函数Flying,让新创建的飞虫飞起来。Flyi

35、ng(m_pFeichongi-GetName(); /设置飞虫的飞行动作2) 如果系统检测到精灵碰撞世界边界,判断是否为飞虫精灵,如果是则变量飞虫精灵数组,判断是哪个飞虫,再对飞虫调用Flying函数随机位置重新设置飞行动作。在LessonX.cpp中的OnSpriteColWorldLimit函数里面将一些代码注释掉同时添加新的代码:这部分代码注释:if(strcmp(szName, m_pFeichong-GetName()=0)Flying();新增的代码如下:if(strstr(szName, feichong)!=NULL)/判断是否是飞虫精灵/遍历飞虫精灵判断是哪个飞虫for(i

36、nt i=0; iGetName()=0)Flying( m_pFeichongi-GetName();/重新设置飞虫的飞行动作3) 最后将GameInit函数中的下面代码注释掉:/ 获取屏幕边界值m_fScreenLeft = CSystem:GetScreenLeft();m_fScreenRight = CSystem:GetScreenRight();m_fScreenTop = CSystem:GetScreenTop();m_fScreenBottom = CSystem:GetScreenBottom();/ 设置该精灵的世界边界m_pFeichong-SetSpriteWorl

37、dLimit(WORLD_LIMIT_NULL, m_fScreenLeft-10.f, m_fScreenTop-10.f, m_fScreenRight+10.f, m_fScreenBottom+10.f);5、 处理拍子拍打飞虫的动作,需要变量飞虫数组,获取每一个飞虫的坐标,同时判断是否在拍子精灵中,如果是则重新设定该飞虫精灵的飞行动作,游戏总分数m_iGameScore相应增加。1) 将LessonX.cpp中的OnMouseClick函数中的如下代码注释掉:fPosX = m_pFeichong-GetSpritePositionX();fPosY = m_pFeichong-Ge

38、tSpritePositionY();/ 飞虫中心点在拍子范围内,说明拍子打中飞虫if(m_pPaizi-IsPointInSprite(fPosX, fPosY)Flying();2) 在该函数中添加如下代码:/遍历飞虫数组for(int i=0; iGetSpritePositionX(); fPosY = m_pFeichongi-GetSpritePositionY();/ 飞虫中心点在拍子范围内,说明拍子打中飞虫if(m_pPaizi-IsPointInSprite(fPosX, fPosY)Flying(m_pFeichongi-GetName();m_iGameScore +=

39、m_iScorei;m_pScore-SetTextValue(m_iGameScore);/更改游戏分数显示6、 在游戏下方显示历史最高的5个分数,这部分需要在游戏结束后完成,在GameEnd函数中添加如下代码:1) 将m_pScore-SetTextValue(int)m_fGameTime);改为:m_pTime-SetTextValue(int)m_fGameTime);这样游戏结束后仍显示本局游戏分数,同时重新设定游戏剩余时间。2) 将以下代码:m_pFeichong-DeleteSprite();改为:for(int i=0; iDeleteSprite();使用一个for循环遍历

40、飞虫数组,逐个删除精灵。3) 添加以下代码:m_iCount = 0;/ 把本局分数与历史最高的5次分数比较if(m_iGameScore m_iHighScore4)m_iHighScore4 = m_iGameScore;int temp = 0;for(int i=4; i0; i-)if(m_iHighScorei m_iHighScorei-1)temp = m_iHighScorei;m_iHighScorei = m_iHighScorei-1;m_iHighScorei-1 = temp;elsebreak;由于游戏界面上下部的五个记录分数的文字显示精灵记录的数值是从左到右按从

41、大到小来排列。依次数组中m_iHighScore也是下标从0到4按从大到小存放,因此只需将本局分数m_iGameScore与m_iHighScore4比较即可,如果m_iGameScore大于m_iHighScore4,则改变m_iHighScore4的值。再逆序遍历m_iHighScore数组,数组前一个元素的值是否小于当前值。是的话交换即可。4) 添加一个自定义函数FindTextSpriteByName通过传如文字显示精灵名称返回该精灵的实体。进入LessonX.h中添加该函数声明:CTextSprite*FindTextSpriteByName(const char* szName);在LessonX.cpp中添加该函数的定义,函数的实现方法与FindSpriteByName函数类似:CTextSprite* CGameMain:FindTextSpriteByName(const char* szName)for(int i=0;iGetName()=0)return m_pScoreNumi;5) 在GameEnd函数中添加下面代码实现最高的前五个分数的显示:char szName256;for(int i=0; iSetTextValue(m_iHighScorei);至此,本实验结束。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com