文档库 最新最全的文档下载
当前位置:文档库 › 02 FunCode C 实验教学指南

02 FunCode C 实验教学指南

02 FunCode C 实验教学指南
02 FunCode C 实验教学指南

实验教学

实验:海底世界

实现鱼来回游动

学习目标

用代码响应“精灵与世界边界碰撞”事件;

如何让精灵调头运动;

复习选择结构;

学习应用dSetSpriteFlipX和dSetSpriteFlipY函数;

学习应用strcmp函数。

在“入门”一章中,我们学会了如何设计游戏界面,也知道简单地编一点小程序。从这章开始,我们开始用代码写稍微复杂一些的小游戏。

在这个实验中,我们还是使用seafish项目。到目前为止,我们能让yellowfish游动了,但是它游出屏幕以后就不再回来了。现在,我们要求它游到屏幕左边界时,就调头向右游动;游到右边界时,就调头向左游动。

Step1:

创建C语言工程,工程的名字起为seafish,然后添加相应的精灵,鱼和背景图片。

Step2:让鱼水平游动

在WinMain的游戏初始化部分:先将yellowfish改为水平游动。修改dSetWindowTitle 中的内容,将下列代码添加到dSetWindowTitle函数的下边:

dSetWindowTitle(“seafish”); //游戏的名字为seafish

dSetSpriteLinearVelocity (“yellowfish”, 10, 0); //初始化yellowfish的X方向速度

Step3:设置鱼的世界边界

在“入门”一章,我们已经学习了精灵与世界边界碰撞事件(具体查看“项目改进”之“精灵与世界边界的碰撞”)。在界面中将yellowfish的世界边界设计得与可见区域重合,然后将“限制模式”改为NULL。

现在我们通过代码实现精灵与世界边界碰撞模式的设置:

在step2的代码下面添加以下代码:

dSetSpriteWorldLimitMode(“yellowfish”, WORLD_LIMIT_NULL); //将碰撞模式设置为NULL Step 4:精灵与世界边界碰撞的响应函数

这个响应函数就是dOnSpriteColWorldLimit函数,函数定义在Main.cpp文件中。WinMain 函数中,每次循环调用dEngineMainLoop函数时,引擎会检查是否有精灵与世界边界碰撞事件发生。如果有,再检测限制模式是否是NULL。如果是NULL,就调用该函数并执行函数内部代码。函数定义如下:

void dOnSpriteColWorldLimit( const char *szName, const int iColSide )

{

}

其中,szName是与世界边界碰撞的精灵的名称。

iColSide用来表示与哪个边界碰撞,0 –左边界,1 –右边界,2 –上边界,3-下边界。

因此,对该事件的处理代码,我们只需要写在这个函数中就可以了。

Step5:判断鱼碰到了那个边界

由step4可以知道,关于精灵与世界边界碰撞的处理都写在dOnSpriteColWorldLimit中,那么判断也应写在该函数中,代码如下:

if(0 == iColSide)

{

dSetSpriteLinearVelocity("yellowfish", 10, 0);

}

else if(1 == iColSide)

{

dSetSpriteLinearVelocity("yellowfish", -10, 0);

}

Step 6:鱼碰到右边界后调头

运行step5可以看到精灵虽然反向游动了,但是头还没有调转。这里我们学习两个新的API,用来将精灵沿着X轴或Y轴调转。

/* dSetSpriteFlipX:设置精灵图片X方向翻转显示

* 参数szName:精灵名字

* 参数iFlipX:1 翻转0不翻转(恢复原来朝向)

*/

extern void dSetSpriteFlipX( const char *szName, const int iFlipX );

/* dSetSpriteFlipY:设置精灵图片Y方向翻转显示

* 参数szName:精灵名字

* 参数iFlipY:1 翻转0不翻转(恢复原来朝向)

*/

extern void dSetSpriteFlipY( const char *szName, const int iFlipY );

如果我们要让yellowfish在X方向上来回的游动,应该怎么过办呢??

在step5中的if-else if语句中添加代码如下:

if(0 == iColSide)

{

dSetSpriteFlipX(“yellowfish”, 0);//yellowfish不进行水平翻转,可以试试不加

//这句有什么效果

dSetSpriteLinearVelocity("yellowfish", 10, 0);

}

else if(1 == iColSide)

{

dSetSpriteFlipX(“yellowfish”, 1); //yellowfish进行水平翻转

dSetSpriteLinearVelocity("yellowfish", -10, 0);

}

Step 7:根据名称判断精灵

我们这个实验中,目前只对yellowfish进行处理。但是在以后的实验中,我们会对多个精灵进行处理。因此,我们在处理某个精灵时,有必要根据精灵名称先进行判断。我们要用到strcmp函数对精灵名称进行判断。该函数是C语言标准库函数,所在头文件为String.h,所以我们需要在Main.cpp顶部增加一句:

#include ;

函数原型是:

extern int strcmp(const char *s1,const char * s2);

当s1指向的字符串和s2指向的字符串相等时,函数返回值为0。

如果与世界边界发生碰撞的精灵名称为yellowfish,代码实现如下:

if(strcmp(szName, “yellowfish”) == 0)

{

}

szName是发生碰撞的精灵名称,它与字符串yellowfish一致,说明发生碰撞的精灵是yellowfish。

如果是精灵yellowfish与右边界发生碰撞,实现代码如下:

if(strcmp(szName, “yellowfish”) == 1)

{

if(iColSide == 0)

{

dSetSpriteLinearVelocity(szName,10,0);

dSetSpriteFlipX(szName, 0);

}

else if(iColSide == 1)

{

dSetSpriteLinearVelocity(szName,-10,0);

dSetSpriteFlipX(szName, 1);

}

}

在函数dSetSpriteLinearVelocity和dSetSpriteFlipX中,第一个参数,我们都直接使用szName,因为我们已经对这个变量做了判断,所以可以直接使用。另外,使用变量,而不是直接使用常量“yellowfish”,当我们修改判断条件时,比如改成判断是bluefish,相应代码就不必修改了,显得更加灵活。

练习:

1、完成yellowfish碰到上下边界的情况处理;

2、要求bluefish也在屏幕中间来回游动;

3、如果要求yellowfish游出屏幕,但很快又游回来应该如何处理。

键盘控制鱼游动一

学习目标

用代码响应“键盘按下”和“键盘弹起”事件;

了解键盘常量;

复习switch-case语句;

初步了解调试;

在这个实验中,我们还是使用seafish项目。到目前为止,我们能让bluefish游动并且掉头了,但是却无法控制鱼的走向,本节中我们将学习如何通过键盘的WSAD来控制bluefish 的上下左右移动。

Step1:键盘常量

首先我们来学习键盘的常量定义,打开CommonAPI.h(该文件位于:\实验项目路径\SourceCode\Header),找到enum KeyCodes,其中定义了键盘上的按键对应的常量定义。enum 是枚举类型,本质是整型变量,通过枚举类型将一类相关联的的标识组合起来,增加程序的可读性和可维护性。

这里说明常用的按键及其命名规则:KEY_ + 按键标识,常用的介绍如下:

英文字母与数字:

变量键盘上的键

KEY_A A

KEY_B B

KEY_1 1

KEY_2 2

动作键

变量键盘上的键

KEY_BACKSPACE BACKSPACE

KEY_TAB TAB

KEY_ENTER ENTER

KEY_CONTROL CONTROL

KEY_ALT ALT

KEY_SHIFT SHIFT

KEY_ESCAPE ESC

KEY_SPACE SPACE

KEY_LEFT ←

KEY_UP ↑

KEY_RIGHT →

KEY_DOWN ↓

这节中我们要用到的显然就是KEY_W ,KEY_S,KEY_A ,KEY_D

Step2:键盘按下与键盘松开响应函数

要想用WSAD来控制小鱼,那么必须捕捉键盘的输入,在funCode中,我们利用

dOnKeyDown来捕捉按键按下的操作,dOnKeyUp来捕捉按键放开的操作

事件函数声明如下:

/* dOnKeyDown:键盘被按下后将被调用的函数,可在此函数体里(Main.cpp)增加自己* 的响应代码

* 参数iKey:被按下的键,值见enum KeyCodes 宏定义

* 参数iAltPress, iShiftPress,iCtrlPress:键盘上的功能键Alt,Ctrl,Shift当前是否也* 处于按下状态(0未按下,1按下)

*/

extern void dOnKeyDown( const int iKey, const int iAltPress, const int iShiftPress, const int iCtrlPress );

/* dOnKeyUp:键盘按键弹起后将被调用的函数,可在此函数体里(Main.cpp)增加自己* 的响应代码

* 参数iKey:弹起的键,值见enum KeyCodes 宏定义

*/

extern void dOnKeyUp( const int iKey );

Step 3:思路阐述

利用WSAD来控制鱼的上下左右移动,那么我们再按下相应的按键时,需要给鱼儿设置一个对应方向的速度。如按下W,设置一个向左的速度。同时当松开按键时其对应方向的速度应该置为0。

Step 4:代码详解

(1). 选择bluefish, 如下图

(2). 按下键盘的操作应该在dOnKeyDown函数中完成。

我们先定义4个变量,用来表示鱼游动的四个方向上的速度。代码如下:

float fSpeedUp = 0,fSpeedDown = 0,fSpeedLeft = 0,fSpeedRight = 0;

可以用if-else语句,或者switch-case语句来判断按下什么键,并且根据按下的键,把速度值保存到相应的变量中。代码如下:

switch(iKey)

{

case KEY_W:

fSpeedUp = -10.f;

break;

case KEY_A:

fSpeedLeft = -15.f;

break;

case KEY_S:

fSpeedDown = 10.f;

break;

case KEY_D:

fSpeedRight = 15.f;

break;

}

同样在dOnKeyDown事件函数中调用dSetSpriteLinearVelocity函数,设置bluefish的速度,代码如下。

dSetSpriteLinearVelocity("bluefish", fSpeedLeft + fSpeedRight, fSpeedUp + fSpeedDown);

思考:为什么水平方向速度是左方向速度加右方向速度;垂直方向速度是上方向速度加下方向速度。

运行程序,看看游戏效果。

进一步,我们还需要让鱼跟随方向键而调头。比如,按D键,鱼朝向右方;按左键,鱼朝向左方。在dSetSpriteLinearVelocity函数下添加代码如下:

if((fSpeedLeft + fSpeedRight) > 0)

dSetSpriteFlipX("bluefish", false); // 向右游,图片不需要翻转else if((fSpeedLeft + fSpeedRight) < 0)

dSetSpriteFlipX("bluefish", true); // 向左游,图片需要翻转保存代码,再次运行游戏,看看游戏效果。

(3). 当我们按下WASD键中的某一个键时,bluefish就朝某个方向游动。现在,我们希望当松开WASD键中的任一个键时,bluefish就将该方向的速度设置为0。键盘松开的操作在dOnKeyUp函数中完成。请同学们考虑,代码应该如何完成?

键盘控制鱼游动二

学习目标

掌握全局变量和局部变量;

在上一节中,我们用WASD键来控制bluefish上下左右游动。但是,我们发现bluefish 只能是直线运动,不能斜着游动。原因在哪里?我们如何让bluefish也能斜着游动呢。

Step1:全局变量和局部变量

简答的说,全局变量是在这个文件中都可以使用的变量,它常常定义在文件开始处,在任何函数的外面。而局部变量只是在局部范围内使用的变量,当离开了这个范围那么,该变量就会被自动销毁,不能再利用。

如下所示:

int g_x = 3;

void f ( )

{

Int b =4;

}

void g( ){}

其中g_x就是全局变量,它可以在函数g()中被调用,而b只能在函数f中使用,离开了f,那么它就会被销毁。

Step 2:思路阐述

WSAD控制鱼的上下左右移动相信同学们都已经了解了。然而在上述实验中,如果同时按下WD为何鱼不会向斜向上的方向移动呢。这就需要结合局部变量和全局变量的知识了。

float fSpeedUp = 0,fSpeedDown = 0,fSpeedLeft = 0,fSpeedRight = 0;都是局部变量,当每次进入函数时,他们都会被重新初始化为0,离开时则被销毁。所以当同时按下WD时,OnKeyDown就会被调用两次,所以他无法保存前一次的速度值,因此速度只能是上下左右了。

如果把速度方向替换为全局变量,他们的作用域是全局,那么是否就可以实现斜上斜下方等操作呢。我们不妨来尝试一下。

Step 3:代码详解

(1). 用/**/将上一个实验的代码给注释掉,如图

在dOnKeyDown中

在dOnKeyUp中

(2). 在main.cpp开始部分定义全局变量

分别表示上下左右的速度,全局变量要在函数外部声明,我们一般在include语句下方,其他函数顶部,这样文件中的所有函数都能使用这些变量。根据匈牙利命名法,g表示作用域为全局,f表示浮点数,其他的则是描述符。

练习:

1、参考“键盘控制鱼游动一”中的代码,修改dOnKeyDown函数和dOnKeyUp函数。运行程序,要求按下组合键,比如WD、WA等,bluefish可以斜着游动。并思考为什么?

用鼠标控制鱼游动

学习目标

用代码响应“鼠标滑动”事件;

学习使用dSetSpritePosition、dGetSpritePositionX、dGetSpritePositionY、dSpriteMoveTo 函数;

学习使用sqrt函数;

用全局变量作条件判断。

在上一节中,我们利用全局变量实现了鱼的斜线方向上的移动,至此键盘操作控制鱼游动已基本实现。接下来我们来实现用鼠标来控制鱼的移动,要点如下:

1、鼠标移动到哪里,鱼就移动到哪里。

2、根据鼠标在鱼的前后方,控制鱼调头;

3、鱼游动的速度,根据鼠标移动的快慢而快慢;

4、程序刚启动时,鱼的位置出现在鼠标位置上。

Step1:鼠标移动事件的响应函数及其他API

鼠标移动事件函数为

/* dOnMouseMove:鼠标移动后将被调用的函数,可在此函数体里(Main.cpp)增加自* 己的响应代码

* 参数fMouseX, fMouseY:为鼠标当前坐标

*/

extern void dOnMouseMove( const float fMouseX, const float fMouseY );

精灵移动函数:

/* dSpriteMoveTo:让精灵按照给定速度移动到给定坐标点

* 参数szName:精灵名字

* 参数fPosX:移动的目标X坐标值

* 参数fPosY:移动的目标Y坐标值

* 参数fSpeed:移动速度

* 参数iAutoStop:移动到终点之后是否自动停止, 1 停止0 不停止

*/

extern void dSpriteMoveTo( const char *szName, const float fPosX, const float fPosY, const float fSpeed, const int iAutoStop );

获得精灵szName的X坐标:

/* dGetSpritePositionX:获取精灵X坐标

* 参数szName:精灵名字

* 返回值:精灵的X坐标

*/

extern float dGetSpritePositionX( const char *szName );

获得精灵szName的Y坐标:

/* dGetSpritePositionY:获取精灵Y坐标

* 参数szName:精灵名字

* 返回值:精灵的X坐标

*/

extern float dGetSpritePositionY( const char *szName );

设置精灵坐标:

/* dSetSpritePosition:设置精灵位置

* 参数szName:精灵名字

* 参数fPosX:X坐标

* 参数fPosY:Y坐标

*/

extern void dSetSpritePosition( const char *szName, const float fPosX, const float fPosY );

Step 2:“鱼跟着鼠标移动”思路阐述

要想让鱼跟着鼠标移动,必须捕捉鼠标的坐标位置,通过dOnMouseMove可以捕捉到鼠标在窗口中的位置,然后可以通过设置dSpriteMoveTo来让鱼向目标点(鼠标所在位置)移动,即可实现鱼跟着鼠标移动。

Step 3:“鱼跟着鼠标移动”代码详解

(1). 添加一条新的鱼,如下图:

起名为followMouseFish,世界边界参数为STICKY

(2). 鱼跟随鼠标移动

在鼠标移动事件函数dOnMouseMove中添加代码

dSpriteMoveTo("followMouseFish", fMouseX, fMouseY, 30,1);

编译运行,即可实现鱼跟着鼠标走,游到鼠标位置后,停止不动。

说明:这里速度为30,可根据情况自行设定

(3). 通过鼠标移动控制鱼的朝向

现在我们发现虽然鱼可以跟着鼠标移动了,但是当鼠标在鱼的后面时,鱼是倒着游,并且没有转头,现在我们就来解决这个问题。

当鼠标移动时,我们就比较鱼和鼠标的X坐标。

当鼠标的X坐<鱼的X坐标,说明鼠标在左,鱼在右,应该让鱼朝向左。

当鼠标的X坐>鱼的X坐标,说明鼠标在右,鱼在左,应该让鱼朝向右。

鼠标的坐标可以通过dMouseMove中的参数获得,鱼的X坐标可通过dGetSpritePositionX 来获取。

在dOnMouseMove中添加如下代码:

float fFishX = dGetSpritePositionX("followMouseFish");

if(fMouseX

{

dSetSpriteFlipX("followMouseFish",true); //鼠标在鱼的后头,设置掉头}

else

{

dSetSpriteFlipX("followMouseFish",false);

}

编译运行即可实现鱼跟着鼠标移动,并且可以实现鱼转头。

(4). 根据鼠标移动的快慢设置鱼移动的速度

思路:要判断鼠标移动的快慢需要一个参照物,这里我们不妨利用鱼为参照点。只要在鼠标移动时算出鼠标和鱼之间的距离d。d越大,说明鼠标移动的速度越大,d越小,鼠标移动的速度越小。进而可以通过d来自定义设置鱼移动的速度。这里不妨设为fFishSpeed = 5*sqrt(d).

代码实现:

在前面的基础上,在dOnMouseMove中的fFishX下添加:

float fFishY = dGetSpritePositionY("followMouseFish");

float distance = sqrt((fMouseX-fFishX)*(fMouseX-fFishX)+(fMouseY-fFishY)*

(fMouseY-fFishY));

float speed = 5*sqrt(distance);

说明:其中sqrt为标准库函数中的开方,需要在文件顶部引入头文件:

#include

然后修改dSpriteMoveTo中的速度值,将30替换为speed。接着,编译运行即可。

(5). 开始运行时鱼的位置处于鼠标位置上

鼠标位置只能在dOnMouseMove中捕捉,我们通过dSetSpritePosition来设置鱼的初始位置,即鼠标所在位置。

在dOnMouseMove中添加:

dSetSpritePosition("followMouseFish", fMouseX, fMouseY);

编译运行!开始时鱼的确和鼠标在一起,然而不管如何移动鼠标,鱼总是和鼠标在一起!前面的效果都消失了!

问题在于,我们只是让程序启动时让鱼和鼠标在一起,而不是总是在一起。所以我们定义一个全局变量g_iStart = 0。当第一次运行dOnMouseMove时,置其为1;这样之后无论怎么移动鼠标,都不会再运行dSetSpritePosition函数了。

代码如下所示:

在文件开头定义全局变量

int g_iStart = 0;

在dOnMouseMove中,修改为如下代码:

if(g_iStart == 0) // 第一次时为0,将与位置设置在鼠标位置

{

g_iStart = 1; // 置其为 1 ,以后就再也不会进入了

dSetSpritePosition("followmousefish", fMouseX, fMouseY); // 仅在第一次时调用}

复制多条鱼

学习目标

从模板复制出多个精灵;

复制精灵时,精灵的命名规则;

随机数的应用。

作为海底世界的最后一个实验,我们要实现复制多条鱼。我们新建一个鱼精灵作为模板,命名为rockfishTemplate,并将其拖到主窗口外面。

然后复制该模板得5条同样的鱼,并命名为rockfish0, rockfish1, rockfish2。最后为他们随机设置一个纵向坐标Y,让他们来回游动!

Step1:本实验用到的API

/*

* 返回值:1克隆成功0克隆失败。失败的原因可能在地图中未找到对应名字的精灵* 参数szSrcName:地图中用做模板的精灵名字

* 参数szMyName:新的精灵名字

*/

extern int dCloneSprite( const char *szSrcName, const char *szMyName );

说明:复制精灵时,不但复制精灵的图片,还复制它的属性,如坐标、速度、世界边界等等。

/*

* dRandomRange:获取一个位于参数iMin到参数iMax之间的随机数,即[iMin,iMax] * 返回值:int,范围iMin - iMax

* 参数iMin:小于iMax的整数

* 参数iMax:大于iMin的整数

*/

extern int dRandomRange( const int iMin, const int iMax );

/*

* dMakeSpriteName: 将前面的字符串与后面的数字整合成一个字符串。

* 参数szPrev:一个非空字符串,最长不能超过20个英文字符。名字前面的字符。

* 参数iId:一个数字

* 返回值:返回一个字符串,比如传入("xxx", 2),则返回"xxx2"

*/

extern char* dMakeSpriteName(const char *szPrev, const int iId);

/*

* 找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。

* 返回值:返回该位置的指针,如找不到,返回空指针。

* strstr(szName, “feichong”) != NULL 说明szName中包含feichong

*/

extern char *strstr(char *str1, char *str2);

Step2 模板的建立

如下图所示,添加rockfishTemplate,并将其拖出窗口,并设置其世界边界为NULL

Step3:复制多条鱼并设置随机位置

调用dCloneSprite函数从rockfishTemplate模板复制出多条鱼,然后通过dRandomRange 来随机得到纵向坐标,最后利用dSetSpritePositionY来为复制出来的鱼设置各自的Y坐标,将下列代码添加到while循环以前:

for(int i=0;i<3;i++)

{

// 生成待拷贝鱼的名字

char *destFish = dMakeSpriteName("rockfish",i);

// 拷贝rockfishTemplate到destFish

dCloneSprite("rockfishTemplate",destFish);

// 随机产生鱼的纵坐标

float tmpY = dRandomRange(-37,37);

//设置拷贝得到的鱼的Y坐标

dSetSpritePositionY(destFish,tmpY);

dSetSpriteLinearVelocity(destFish, 15, 0);

}

Step3:给这些鱼处理与世界边界的碰撞

最后在dOnSpriteColWorldLimit中添加新生成精灵的碰撞处理。因为这些鱼的名称中都包含“rockfish”的子字符串,可以通过strstr函数来判断这些精灵的名称。

代码如下:

if(strstr(szName, "rockfish") !=NULL)

{

// 如果子串中包含rockfish

if(iColSide == 0)

{

dSetSpriteLinearVelocity(szName, 10, 0);

dSetSpriteFlipX(szName,false);

}

else if(iColSide == 1)

{

dSetSpriteLinearVelocity(szName, -10, 0);

dSetSpriteFlipX(szName,true);

}

}

编译运行即可,最后的效果图如下所示:

实验:黄金矿工

完成本实验后,可以实现矿工抓金子并计分的效果,如下所示:

复制金块

学习目标

学习应用dGetScreenLeft,dGetScreenRight,dGetScreenTop,dGetScreenBottom

学习应用srand函数。

这节我们实现黄金矿工的金块随机分布,并设置不同金块的大小,为后续的抓取金块做好准备。

Step1:图片资源导入

新建一个新的项目,取名为GoldenManDemo。

添加如图所示资源到环境中:

并按如下所示布置图片位置:

并为金子取名为goldTemplate

Step2:本实验用到的API

/* dGetScreenLeft:获取世界边界之左边X坐标* 返回值:左边界X坐标

*/

extern float dGetScreenLeft();

/* dGetScreenTop:获取世界边界之上边Y坐标

* 返回值:上边界Y坐标

*/

extern float dGetScreenTop();

/* dGetScreenRight:获取世界边界之右边X坐标* 返回值:右边界X坐标

*/

extern float dGetScreenRight();

/* dGetScreenBottom:获取世界边界之下边Y坐标

* 返回值:下边界Y坐标

*/

extern float dGetScreenBottom();

/* dSetSpriteWidth:设置精灵外形宽度

* 参数szName:精灵名字

* 参数fWidth:宽度值,大于0

*/

extern void dSetSpriteWidth( const char *szName, const float fWidth );

/* dGetSpriteWidth:获取精灵外形宽度

* 参数szName:精灵名字

* 返回值:精灵宽度值

*/

extern float dGetSpriteWidth( const char *szName );

/* dRandomRange:获取一个位于参数1到参数2之间的随机数

* 返回值:int,范围iMin - iMax

* 参数iMin:小于iMax的整数

* 参数iMax:大于iMin的整数

*/

extern int dRandomRange( const int iMin, const int iMax );

Step 3:思路阐述

要实现金块的随机分布,首先需要利用模板复制一定数量的金块,然后将他们随机布置在窗口中,可以通过dSetSpritePosition来设置金块的横纵坐标。接下来要面临的问题就是,如何获取窗口中不同位置的坐标。利用dGetScreenLeft,dGetScreenRight,dGetScreenBottom,dGetScreenTop来获取窗口的范围,然后使用dRandomRange在该范围中随机一个新的坐标。对于金块的大小设置,可以利用dSetSpriteHeight和dSetSpriteWidth来实现。

Step 4:代码详解

首先定义全局变量,定义如下全局变量:

int g_fGoldBornMinX = 0;

int g_fGoldBornMaxX = 0;

int g_fGoldBornMinY = 0;

int g_fGoldBornMaxY = 0;

int g_iGoldCount = 0;

金块布置属于初始化工作,在WinMain的初始化部分添加如下代码:

dSetWindowTitle("黄金矿工");

g_iGoldCount=20;//金子数量

g_fGoldBornMinX = dGetScreenLeft() + 5; //金子左边界

g_fGoldBornMaxX = dGetScreenRight() - 5; //金子右边界

g_fGoldBornMinY = dGetScreenTop() + 20; //金子上边界

g_fGoldBornMaxY = dGetScreenBottom() – 5; //金子下边界

利用循环生成20个金子,以goldTemplate为模板

int iLoop = 0; //循环变量控制

int iSize = 4, iPosX = 0, iPosY = 0; //iSize表示金块大小的变量

for( iLoop = 0; iLoop < g_iGoldCount; iLoop++ )

{

if( iLoop < 10 ) //生成10个小金块,大小为4

{

iSize = 4;

}

else if( iLoop >= 10 && iLoop < 16 ) //生成6个中金块,大小为6 {

iSize = 6;

}

else //生成4个大金块,大小为8

{

iSize = 8;

}

//初始化金子精灵实例

char* tmpName;

tmpName=dMakeSpriteName("GoldBlock",iLoop); //生成金块名字

dCloneSprite("goldTemplate",tmpName);

dSetSpriteWidth(tmpName,(float)iSize); //设置金块的宽度dSetSpriteHeight(tmpName,(float)iSize); //设置金块的高度

//设置金子精灵位置

iPosX = dRandomRange(g_fGoldBornMinX, g_fGoldBornMaxX);

iPosY = dRandomRange(g_fGoldBornMinY, g_fGoldBornMaxY);

dSetSpritePosition(tmpName,(float)iPosX, (float)iPosY);

}

编译运行,可得到如下所示的效果:

练习:

1.自定义金子的大小和数量;

旋转钩子

学习目标

学习应用dSetSpriteRotation函数

学会利用屏幕刷新时间fTimeDelta来实现一些复杂的操作。

这节我们实现黄金矿工的钩子180度来回转动,这样矿工就可以控制抓取范围了,也为后面的抓取金子做好准备。

Step1:图片资源导入

点击添加一个新的动画

添加GolderManAnimation1,GolderManAnimation2,GolderManAnimation3到环境中,添加完后效果如图:

将GolderManAnimation2拖进屏幕,并取名为GoldMan,如下图所示:

同理,将静态精灵中的钩子,拖进屏幕,按初始界面排放。并在右侧的“编辑”中设置名称如下:

钩子

布置好后的效果如下:

小学科学实验教学中应该注意的问题

小学科学实验教学中应该注意的问题 要教好科学课,就必须注重实验课的教学。 一、要认真备好课 俗话说“台上一分钟,台下十年功”,上好任何一门课都必须得做好充分的课前准备,备好课对于科学课来说尤为重要。我认为科学课的备课应从以下几个环节入手: 1、读通整册教材。 要上好科学实验课,首先就得通读整册科学教材,对整册教材所需材料进行整体性的研究,列出清单,有步骤、分阶段地进行材料准备,才能在准备详尽的某一课时得心应手。而如果一课课临时去准备材料,就难免会发生措手不及的情况,影响科学课的教学,你会感到每天都是紧紧张张的。就一册教材来说,每一册教学参考书上都有主要材料清单,上面列出了本学期要用的主要材料。因此,在开学初就应该去认真看一看,做到心中有数,是非常有必要的。 2、熟悉本单元教学内容 科学教师要想比较松弛的上好科学课,除了通读整册教材之外,还要更加细心的去钻研本单元的教学内容,因为教师只有熟悉了本单元的教材之后,教师才能在准备实验材料的时候,事先知道本单元哪些材料使用的频率高,哪些材料可以顺便一次性准备好,哪些材料实验仪器室里已经有了,哪些材料需要自制,哪些材料需要购买,哪些材料学生能够自己准备……这样提前心中有数,教师在准备材料时才能得心应手,松弛自如,从而节省时间,提高效率。 3、提前动手做实验 科学课中的每项实验,在让学生动手实验之前,教师应该提前做一做。这样就能明白这个实验哪些地方学生简易出错,哪些现象不够明明,哪一项器材要换,哪一种方法需要改进。教师课前做好实验,才能更有针对性的指导学生,才能预防各种失败和事故,防止教学中的失误。 二、要准备好实验材料

1、要熟悉本校仪器室里的仪器药品。 由于我们学校没有专门的仪器室管理员,因此,科学教师熟悉仪器室里所有的仪器药品是十分必要的。只有这样,才能在备课时清晰的知道哪些材料仪器室里有,哪些材料需要教师和学生自己准备。 2、督促学生准备实验材料。 科学课准备实验材料不仅包括教师的准备,也有学生的准备。很多分组实验材料单凭老师一人去准备是很难完成的,那不仅要花费老师大量的时间,大量的精力。而且准备实验材料全由教师代替学生准备,效果也不会很好,因为那样相反让学生缺乏动手动脑的锻炼机会。 3、把自制的教具和实验材料存放在仪器室里,做到资源共享。 科学课的很多实验材料是可以重复使用的,这些材料不管是老师自制或是购买,我们用过之后都应该主动的把它摆在保管室里,以备下一年使用。每个人都把自制的实验材料放到仪器室里,做到资源共享。 三、精心组织课堂教学 科学课按照课标规定每周三节课,现在的科学课内容比原来的自然课多了许多,要想很好的完成教学任务,我们除了认真做好课前的一些准备工作之外,还必须精心的组织好课堂教学,向40分钟要质量,我认为要从以下几个环节入手:1、设计好导入,充分激发学生的学习兴趣。 一堂课精彩的开始是胜利的一半,要想提高科学课的教学效率,就必须想办法从一开始就把学生的注意力,把学生的思维集中到教学中来,这就要求老师们要想尽办法设计好精彩的导入,导入有很多的方法,要根据例外的教学内容选择例外的方法,而且每一种方法也不是万能的。 2、掌握好实验课教学的五个环节。 小学科学课中的实验教学,无论是操作实验,还是观察实验,虽然没有科学家所做的科学实验那样繁复和规范,其目的也是让学生像科学家那样,用科学实验的方法,去探索、认识自然界的事物的性质和规律。这就是一种科学能

计算机操作系统教学大纲

《计算机操作系统》课程教学大纲 一. 课程名称 操作系统原理 二. 学时与学分 学时共64学时(52+12+8) 其中,52为理论课学时,12为实验学时,8为课外实验学时 学分 4 三. 先修课程 《计算机组成原理》、《C语言程序设计》、 《IBM—PC宏汇编程序设计语言》、《数据结构》 四. 课程教学目标 通过本课程的学习,要达到如下目标: 1.掌握操作系统的基本原理与实现技术,包括现代操作系统对计算机系统资源的管理策略与方法、操作系统进程管理机制、现代操作系统的用户界面。 2.了解操作系统的结构与设计。 3.具备系统软件开发技能,为以后从事各种研究、开发工作(如:设计、分析或改进各种系统软件和应用软件) 提供必要的软件基础和基本技能。 4.为进一步学习数据库系统、计算机网络、分布式系统等课程打下基础。 五. 适用学科专业 信息大类各专业

六. 基本教学内容与学时安排 主要内容: 本课程全面系统地阐述计算机操作系统的基本原理、主要功能及实现技术,重点论述多用户、多任务操作系统的运行机制;系统资源管理的策略和方法;操作系统提供的用户界面。讨论现代操作系统采用的并行处理技术和虚拟技术。本书以Linux系统为实例,剖析了其特点和具体的实现技术。 理论课学时:52学时 (48学时,课堂讨论2学时,考试2学时) ?绪论4学时 ?操作系统的结构和硬件支持4学时 ?操作系统的用户界面4学时 ?进程及进程管理8学时 ?资源分配与调度4学时 ?存储管理6学时 ?设备管理4学时 ?文件系统6学时 ?Linux系统8学时 七、教材 《计算机操作系统》(第2版),庞丽萍阳富民人民邮电出版社,2014年2月 八、考核方式 闭卷考试

渠县中小学实验教学管理人员培训资料

渠县中小学实验教学管理人员培训资料 提纲:一、教学仪器的管理 二、实验教学的管理 三、实验室账册管理 四、实验室档案资料管理 一、教学仪器管理 1、教学仪器的配备 仪器的配备,首先要做好配备计划。这方面,要注意以下三点: (1)掌握不同要求的配备标准 由于学校性质不同,如普通完中、单设初中、小学等等,配备标准也有所不同。就是同一性质的学校,由于学校所在的地域和学生人数的差异以及经济条件的差别,配备的标准及类别也不一样。因此,要按照国家教育部和各地教育行政主管部门颁发的教学仪器配备目录的要求,对照学校的类别并充分考虑到今后发展的趋势制定切实可行的配备计划,这是用好教仪经费的关键一步。值得注意的是,许多配备目录中所要求的配备数量仅仅是最低的要求,因此,我们不反对在经济条件许可的情况下适当增加仪器的配备数量;但也要注意不可强求一致地进行“翻番”处理。因为有的仪器,特别是一些档次较高的演示仪器,在教学实践中使用率并不太高,一般学校没必要“加倍”配备。当前学校经费如此紧张,应避免不必要的浪费。 (2)摸清家底 由于经费的限制,教材配备目录的变动,学校配备教学仪器都难以一次性配齐。就是已经基本配齐的学校,也有个补充更新的问题。所以,制定仪器配备计划,特别是补充更新的计划,一定要摸清家底,才能做到心中有数,计划才能切实可行,不滥配、重配。 (3)按需选用合适的仪器品种 制订教学仪器采购计划还要注意二个问题:一是“可代用仪器”。配备目录说明中讲得很明确:“目录中‘名称’栏所列的仪器是经过优选的品种,购置仪器时应优先选用。”但目录中还有一个“可代用仪器”栏,列出功能相近、经过选择的其他仪器,可供选用。原先已配备的这类仪器只要能正常使用,就不必再

科学实验总结

科学实验总结 -标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

三年级下册科学实验教学总结 在教学中,为了充分发挥实验室的作用,在开学之初,认真做好实验计划,在具体安排中,做到既科学,又不互相冲突,保证每节课都能在实验室中进行。 本学期按照实验教学计划,认真完成了教学任务。三年级演示实验开出了24个,学生的观察能力、实验能力、操作能力、比较能力、分类能力、推理能力等得到了不同程度的提高。养成了爱科学、学科学的学习积极性,做实验能正确规范地操作,善于观察,乐于探究、总结。并能将学到的相关知识应用于生活实际中,能够解释常见的自然现象及生活现象。 小学《科学》教材体现了面向全体学生、具有弹性和开放性的特点。在使用这一教材中,我感觉这一教材在编排中充分考虑了学生在生活环境、经验背景、个性特点等方面存在的差异,在学习内容、教学活动、设计制作、综合评价等多方面都给学生和教师提供了更多的选择机会和创新空间。它并不象小学自然教材那样内容非常的固定,实验过程、方法非常的单调、一陈不变,而是相当的灵活,可依据学校和学生的实际进行调节,而学生也可以有更多的自行探索创新的空间,因此,我觉得这一教材具有弹性和开放性的特点。 随着课程改革的深入进行,我确实转变了观念,构建了新的教育教学理念,自学相关知识,及时查阅课程改革的相关资料,确立了“提出问题、做出假设、设计实验、操作实验、总结规律、交流互补”的教学模式,课堂真正体现学生自主探究的理念。根据年级特征及学生的年龄特征,在教学中教师扶放有度,可完全放手让学生自行操作,在教师的适当帮助下可进行自主探究(除带有危险性的操作外),学生的自主能动性被充分地调动起来,学习的兴趣浓厚,实验室成了学生爱去、常去的乐园。 在抓好课堂教学的同时,根据班级具体情况安排指导学生参与课外研究,将课堂教学延伸到课外,丰富了学生的知识,培养了学习科学知识的兴趣,提高了技能,培养学生长期坚持实验、连续观察记录、查阅资料的学习习惯,逐步提高学生的科学素养,鼓励学生走进大自然探究科学知识,学习和应用科学知识解决生活中的实际问题。本学期中,大部分同学自愿参加兴趣小组的活动,学生主动参与,自主探究,积极性非常高。每周有两名同学负责观察每天的天气状况,记录气温、风向、风力、干湿情况等,一个学期结束后,引导小组同学分析数据,总结当地的气候变化特点,据此推理下一年的气候变化规律,从中体验科学无处不在,从小激发努力学习科学知识的积极性。对于实验器材做到认真负责,定期清洗、整

三年级下册科学实验教学计划.

三年级下册科学实验教学计划 实验是自然科学研究中十分重要的认识方法,它对于激发儿童的科学志趣,培养儿童的科学能力,提高儿童的科学素质都有着十分重要的意义。在新课程理念的引领下,在总结以往经验的基础上,特制定以下实验教学计划: 一、目的要求: 1、通过学习各种实验操作,培养学生认真、细致的科学态度,启发学生探究自然事物间的相互联系,培养学生勇于探索、独立思考的科学态度和创新精神。 2、通过学习各种实验操作,培养学生认真、细致的实践能力,使学生勤于动手勇于探究,培养学生的创新意识及创新能力。 3、通过观察和实验,使学生理解我们身边处处有科学,我们的生活离不开科学的道理,提高学科学、用科学的积极性、主动性。 4、通过用温度计进行测量,知道使用工具比感官更有效;能运用温度计对物体进行定量观察,采集数据;知道如何正确使用温度计测量常见物体的温度,并作简单记录。 5、通过浮和沉的实验,使学生能对浮和沉的转换提出自己的猜想和假设;能用实验验证自己的猜想和假设;知道改变浮沉的方法及其在生活中的应用。 二、实验教学方法措施 1、教师端正教育教学思想,认真备课,精心设计实验教学过程,不断改进教学方法,提高实验质量。 2、教学中要符合学生的认知规律,根据教材内容及学生特点,新课标要求,要由浅入深,有利于学生学科学、用科学,发展学生的创造能力。

3、实验中,要充分利用学校现有的教学实验仪器,还应尽量创造条件,自制器材,努力按计划、按要求完成实验教学,培养学生的实验能力。 2011-2 四年级科学下册实验教学计划 观察和实验是人类认识自然的基本途径,也是自然教学的特点。学校和教师要十分重视学生观察和实验能力的培养,尽量创造条件,让学生亲自参加观察和实验活动,进而培养学生严谨的科学态度和科学的自然观。 一、学情分析 本年级学生都具有一定的实验能力,教师主要是引导学生,让学生合作完成实验。 二、实验教学的目的 通过观察和实验教学,指导学生获得一些浅显的自然科学基础知识,同时培养他们的科学志趣积学科学、用科学的能力,使他们受到科学自然观、科学态度,爱家乡、爱祖国、爱大自然等思想品德教育,促进他们身心健康发展。 三、实验教学要求 1、指导学生认识一些常用的实验器材。 2、学会实验操作的要领和操作规范,培养学生初步的实验操作能力。 3、保证演示实验和分组实验的开出率达100%。 4、教师要充分认识式实验教学的重要意义,认真做好每个实验的准备工作。要求每个实验,课前教师都要认真操作一遍,保证实验效果和实验的顺利进行。对于那些一般性的,无特别要求和危险的探究性实验,教师要放手让学生自己设计实验,自己

实验室培训材料汇编

督导评估实验室培训材料 标准是什么,水平与方向 实验室的的重要性 具象到抽象再到具象的场地 实验室管理 实验室管理笼统的讲是对人、财、物的管理,具体的说:机构人员、制度档案、仪器管理、帐目管理、环境人文、实验应用 (一)健全实验教师管理机构,重视实验教师队伍建设 《规程》指出:“学校要加强对实验室工作的领导和管理。要有一名学校负责人分管学校的实验室工作。对实验室工作应做到有计划、有检查、有总结,经费有落实,及时解决实验室建设和实验教学中遇到的各种问题。”《河北省中小学实验室工作章程》要求,学校要有一名校长负责实验室工作,4轨及4以上学校应成立实验教学研究组,配备数量足够、素质较高、相对稳定的专(兼)职实验教师。 具有良好素质的实验教师队伍,是顺利推进新课程的保证。实验教师不仅要熟悉新课程的理念,还应掌握新教材的内容;实验教师不仅是理科实验的准备员、管理员,更应是理科实验的研究员、新实验的研制者。所以,实验教研组要发扬团队精神,始终站在实验教学的前沿,努力学习现代信息技术,能运用计算机及其他新的仪器设备开展创新性的实验研究。 (二)加强实验室制度建设,规范实验室档案管理 1、制度建设: 完善的实验室管理制度,是实验教学工作顺利进行的重要保证。根据省(冀教备[1996]3号)要求,实验室应建立健全七种规章制度,一种应急措施,按相应各室悬挂上墙。分别是: (1)、《理科教师(含自然教师)实验教学守则》(悬挂于实验教师办公室、学科准备室)。 (2)、《实验教师岗位职责》(悬挂于实验教师办公室、学科准备室)。(3)、《学生实验守则》(悬挂于理、化、生实验室)。 (4)、《实验室管理规则》(悬挂于实验教师办公室、学科准备室)。(5)、《化学实验室安全守则》(悬挂于化学实验室)。 (6)、《危险药品的使用规则》(悬挂于化学实验室、准备室)。(7)、《关于教学仪器损坏、丢失赔偿的规定》(悬挂于理、化、生实验室)。 (8)、《实验室一般性伤害的应急措施》(悬挂于理、化、生实验室、学科准备室)

小学科学实验教学工作总结

小学科学实验教学工作总结 基本完成了实验教学计划的演示实验和学生分组实验,并填写了相关的表册资料,学生分组实验还填写了学生实验报告单。在开展实验教学的同时还注意培养学生爱科学、学科学的热情,不只是在实验室里完成各项实验,还让学生走向生活、走向社会,让学生在实际生活中体验科学。 一、工作回顾 本学期,严格实验教学目录认真开展实验教学工作,基本完成了实验教学计划的演示实验和学生分组实验,并填写了相关的表册资料,学生分组实验还填写了学生实验报告单。在开展实验教学的同时还注意培养学生爱科学、学科学的热情,不只是在实验室里完成各项实验,还让学生走向生活、走向社会,让学生在实际生活中体验科学。 为了上好实验课,每上一节课实验都要做充分的准备,认真研究教材,熟悉实验的操作步骤,考虑实验中的安全因素,坚持"课前准备,课后整理"的原则开展实验教学工作。对实验仪器的保管和使用都有严格的规定,严格按有关规定操作,并教育学生在使用中加强防范意识,对易损、易坏仪器要特别小心,注意轻拿轻放,从而降低了仪器的损耗率。 二、具体做法 1、实验教学完成情况 开学初,严格按下发实验目录,结合本校实验仪器配备情况,拟定实验教学工作计划和学生分组定期完成实验进度表,理清实验教学思路,从而指导实验教学的开展,顺利完成了本册教材中的分组实验、演示实验以及课外实验。并对学生实验操作和科学探究能力进行了考核登记,评定了学生的实验成绩。 2、仪器的使用与保管 实验仪器的保管有了良好的条件,进而更好的推动了实验教学开展,仪器开出率得到大幅度的提高。在教学中,仪器的使用方法及注意事项给学生进行了详细的讲解,使学生了解仪器的正确使用方法,并且对易碎的玻璃等仪器要小心轻放。从而降低了仪器的损失率。同时还对学生进行实验安全教育,使学生注意实验安全事项,因而降低了实验安全事故的发生。 3、账册表册资料的整理 对新购入的实验教学仪器及时进行入账,各表册资料的搜集,主要采取了"课前填写,课后整理归档"的方法进行。实验教师提前两天填写的"实验通知单"、"仪器借(领)还登记表",用后及时归还,然后进行整理归档,装入档案备查。 三、存在的问题 在实验教学中,还存在一些不足之处,主要表现在以下几方面:

一年级科学实验教学计划

2017 —2018 学年度第一学期一年级科学上册教学计划蚕庄完全小学刘斌教材遵循《新课程标准》的要求,在内容的选编上贴近儿童的生活实际,顺应现代科学技术的发展,以基础性的、浅显的科学活动作为学生探究活动的主题,同时注重对科学探究、情感态度与价值观、科学知识的整合。 一、指导思想 充分挖掘课程资源,和孩子们一起探究,实施真正意义上的科学探究性教学,有效地组织学生开展真正有深度的科学探究性活动。 二、教学目标 1、培养学生的科学兴趣和思维方法,努力发展学生解决问题的能力。 2、使得学生们在日常生活中愿意亲近科学、运用科学,把科学转化为对自己日常生活的指导,逐渐养成科学的行为习惯和生活习惯。 3、了解科学探究的过程和方法,让学生亲身经历科学探究的全过程,从中获得科学知识,增长才干,体会科学探究的乐趣,理解科学的真谛,逐步学会科学地看问题、想问题。 4、指导、引导学生学习运用假设,分析事物之间的因果关系,注重观察实验中的测量,特别是控制变量、采集数据,并对实验结果作出自己的解释,学习建立解释模型,以验证自己的假设。 5、保持和发展对周围世界的好奇心与求知欲,形成大胆细心、注重证据、敢于质疑的科学态度和爱科学、爱家乡、爱祖国的情感。 6、亲近自然、欣赏自然、珍爱生命,积极参与资源和环境的保护,关心现代科技的发展。 三、学生现状分析本学期一年级学生在对基础知识的掌握以及听课的技巧上还不够好。学生课堂上常常表现的是玩完后,一问三不知,因此针对这种情况,本学期的科学课要对学生进行科学启蒙教育,要对学生主动 - 可编辑修改 -

探究科学知识的能力进行专门的训练,发展学生们的爱科学,学科学、用科学的志趣和能力,在本学期中我要从抓学生的综合实践能力入手,从实验方面入手,结合科学课的新课程标准,合理的运用电教媒体,创造性培养学生的科学探究能力和创新精神。努力培养学生的创新思维和创新能力。把科学课的新课程标准落实到科学教学中去,使科学教学进入到一个走进新课程改革的新时期。 四、教材分析 1、我们一起学科学:(1---2 )课,以学生玩玩具的生活经验为线索展开,拓展到了解身边熟悉的、常见的事物,教材中设计了丰富多彩的学生感兴趣的探究活动,通过亲历活动,使学生“认识科学” 初步感悟到身边处处有科学,生活离不开科学的道理。 2、我们怎么知道:(3--6 )课,以“学生对身边事物已有的观察、认识”为引领,进一步认识身边的物体,初步掌握科学探究的基本方法、步骤,为学生亲历科学提供一把入门的钥匙。 3 、玩中学(7-10 )课,通过了解玩具中的一些初级科学知识。 4、水:(11---14 )课,以‘‘学生对水已有的认知”为线索,通 过让学生了解自然界中的水,层层展开,逐步推进,使学生亲历科学探究的过程,体验科学探究的基本手段和方法,了解、认识水的特点。 5、工具是个好帮手:(15--16 )课,以“学生对天气的亲身体验” 为线索,进行观察、记录、整理、制作等探究活动,增强学生观察身边科学现象的意识,培养学生乐于探究身边常见科学现象的情感,意识到探究科学可以从身边的科学现象入手。 五、教学重点、难点从科学课特点出发,以“学生的生活经验”为线索切入到基础性的、规范的科学探究活动之中。教材主要围绕“走近科学” 、“亲历科学”、“自主探究”三个专题选择内容,遵循儿童的生理、心理特点,既注重知识的传授,更注意探究能力的培养,使学生在独立操作中观察、思考,提出问题,并解决问题,培养学生的创新精神和实践能力,使学生有爱科学,学科学、用科学的志趣和能力。 重点:1-4 单元 难点:使学生以自主体验为手段,以科学探究为核心,亲历科学探究的过程。

操作系统课程设计2014教学大纲

《操作系统课程设计》大纲 一、设计目的和要求 目的:本课程设计是为配合计算机相关专业的重要专业课《操作系统》而开设的,其主要内容是让学生实际进行操作系统功能模块的设计和编程实现。通过本课程设计的实施,使学生能将操作系统的概念具体化,并从整体和动态的角度去理解和把握操作系统,以巩固和补充操作系统的原理教学,提高学生解决操作系统设计及实现过程中的具体问题的能力。 要求:通过本课程设计的实施,要求培养学生以下能力: (1)培养学生在模拟条件下与实际环境中实现功能模块和系统的能力:课程设计要求学生实际进行操作系统功能模块的设计和编程实现,具体包括:基于线程的多任务调度系统的设计与实现;一个简单文件系统的设计与实现。 (2)培养学生设计和实施工程实验的能力,合理分析试验结果的能力:学生在完成项目的过程中,需要进行实验设计、程序调试、错误分析,从而熟悉实验设计方法及实验结果的分析方法。 (3)培养学生综合运用理论和技术手段设计系统和过程的能力:学生需根据设计项目的功能要求及操作系统原理的相关理论提出自己的解决方案,需考虑项目实现的软硬件环境,设计相关数据结构及算法,在实现过程中发现解决方案的问题并进行分析改进。 (4)培养学生分析并清楚阐述设计合理性的能力:要求学生在项目上机验收和实验报告中分析阐述设计思路的合理性和正确性。 (5)培养学生的组织管理能力、人际交往能力、团队协作能力:课程设计分小组进行,每个小组有一个组长,负责组织本组成员的分工及合作。 二、设计学时和学分 学时:32 ;学分:1 三、设计的主要内容 以下三个题目中:1、2中选做一题,第3题必做。 1、基于线程的多任务调度系统的设计与实现 (1)线程的创建、撤消和CPU切换。 掌握线程的定义和特征,线程的基本状态,线程的私有堆栈,线程控制块TCB,理解线程与进程的区别,实现线程的创建、撤消和CPU切换。 (2)时间片轮转调度 理解各种调度算法、调度的原因,完成时钟中断的截取,具体实现调度程序。 (3)最高优先权优先调度 理解优先权的概念,并实现最高优先权优先调度策略。 (4)利用记录型信号量实现线程的同步

实验教学汇报材料

2016-2017年度 第二学期实验教学检查情况汇报 根据教务处实验教学运行课表,校教学督导专家组于本学期第五、六周(3 月13日-3月26日)分赴第二、第三、第十、化学楼、信计楼、茶业楼、动科楼、轻纺楼、经管楼、人文楼等教学大楼(覆盖14个学院)进行了实验教学运行状态 检查和实验教学质量的调研。检查时段包括上午、下午、晚上和周六、周日。着重 从实验教学环境、教学保障、执行课表、实验教材(含实验指导书、实验报告等) 的使用、教学状态、教学效果等六个方面了解实验教学情况,并于3月28日下午及 时召开督导例会,督导专家们对第五、第六周检查及调研情况作了广泛而深入的交流。现分实验教学运行状态、实验课程教学质量、问题和建议等3个方面汇报如下: 一、实验教学运行状态 (一)基本情况校教学督导专家组于第五周深入各实验教学中心进行了实验 教学运行状态的检查,总体上说:大部分实验课程课前准备充分,绝大多数教师能 提前到岗,讲解清楚,操作规范,耐心辅导;对学生要求较严,实验纪律较好;多 数教师能及时、认真批改实验报告,实验考核方式多样,注重实验技能考核。实验 教学运行状况良好。 (二)教学秩序在被检查的实验教学班级中,按课表正常开出实验课的占94.49%(比上学年同期提高5.34个百分点)。开出率较高的10个学院依次为:生命科学学院、轻纺与艺术学院、信息与计算机学院、园艺学院、理学院、动物科技 学院、工学院、资源与环境学院、茶与食品科技学院、经济管理学院;在被检查的 实验指导教师中,其中有2名未到场,教师所属资源与环境学院、动物科技学院; 3名上课迟到,教师所属工学院、生命科学学院、园艺学院;3名因指导教师准备 不充分,把实验课上成了理论课,或是实验进行不顺利。

科学教学心得体会

科学教学心得体会 我是一名普通的小学科学教师,由于器材的原因和教师自身的特点,对于许多科学实验只能简单的演示。其实学生的好奇心很强,求知欲望热烈,这样的教学并不能满足学生的好奇心,更不能达到真正的教学效果。只能让学生自主、合作、探究去发现问题,再去解决问题。也就是说不仅要让学生理解、掌握一定的知识,更重要的是在学习过程中,培养发展学生各方面的能力,尤其是在积极主动动手实践能力和创新能力上。 一、运用多种手段,培养学生观察和探究能力 在教学中我注意引导学学生勤于动手、动口、动脑、动眼、动耳,为他们设置种种参与实践锻炼的情境,提供实践操作的机会,只有让学生亲身感受、亲身体验了,他们的实践能力才会不断得到提高。另外学生的思维特点是具体形象性,对摸得着、看得到、闻得出、觉得到的极易掌握。针对此特点,在《空气》这个模块的教学中,为了扭转学生总认为空间是什么也没有这一思维定势,我设计了看、摸、听、称等几个环节。首先是感受空气的踪迹,我让学生每人拿一个塑料袋来回甩动,一会儿工夫,袋里就装满了气。再让学生一手抓袋口,一手去捏、去摸。接着把袋口拔开一点,靠近耳边,挤压袋内空气,听声音。再装气,用牙签扎一个小孔,压入水中观察。就这样,依靠视觉、触觉和听觉,学生就乐意接受空间存在着空气,空气会流动这一事实。在课外延伸活动中,我又给学生布置了个小任务,让学生回家用铁丝做个平衡器,两端分别挂上空塑料袋并使其平衡,接着取一端的袋子装上空气再称,这时你会发现什么?把你的发现带到学校来和大家一起分享。学生带着问题回家去做实验了。第二天来校,兴奋的告诉大家平衡被破坏了。原来是空气在捣鬼。这一实验,使学生又明白了原来空气是有重量的。这一教学设计,既降低了知识难度,又调动了学生学习的积极性,学生对新知的探究率也大大提高了。 二、在实验中要让学生享受快乐,有助于学生创新能力的培养 具体、形象、生动、有趣是科学实验课的主题及生命。只有科学课充满生机和活力,才能吸引学生主动参与并投入其中,达到寓教于乐、启智于动的目的。五彩缤纷的科学实验要让学生耳目一新,兴趣倍增,要让学生在“做中学”科学实验中学有所乐、学有所得、不断的享受成功的快乐。学生在一个个小实验中,不断的探索,解决了一个问题,又会碰到一个问题,推动着学生不断探索解决问题的新方法。 三、在实验中要注意发挥个性,让学生有创造的机会 在实验教学中,要让学生动够。即动手做够,动口说够,动口问够,动脑想够,动眼看够。给学生思考的空间,只有自己思考才能遇到困难,才能发现问题,才能产生创造的火花。“有疑才会有进步”,注重让学生自由发挥,观察到什么现象,将是答案纷纭、稀奇古怪,虽然会花去许多课堂教学时间,但我却十分愿意,因为这正是学生思维发展的火花,学习知识的闪光点。因此作为老师要有耐心,有信心,能让学生一直的发问,直至问够,说够。另外,还要注意在实验中让学生玩个“尽兴”,如果时间确实不够了,可以让学生回家继续做延伸活动,或通知家长,帮孩子一起完成实验,切不可半途而费,草草收场,因为实验的整个操作过程是学生不断发现知识的过程,是知识表露的过程。最后还要让学生用眼看够,认真的观察,仔细的观察,让每一位学生都能观察到事物的变化,都能明白整个实验的过程。

三年级上册教科版科学实验教学方案计划

科学上册实验教学计划 三年级上册 中心小学 三年级

小学科学三年级上册实验教学计划 《新标准》明确指出:“小学科学课程是以培养科学素养为宗旨的科学启蒙课程”,“亲身经历以探究为主的学习活动是学生学习科学的主要途径”。这标志着,小学科学课程在培养目标、学生的学习方式和教师的教学方式方面都将发生重大的变化。 一、教材分析: 本册的教学内容主要由“植物”“动物”“我们周围的材料”和“水和空气”这四个单元组成。 1.“植物”这个单元引导学生进行观察、研究大树和树叶的活动;鼓励学生亲近自然,关注自然,利用课外时间在校内外进行一些观察植物和搜集树叶的活动;让学生在对大树和美丽的树叶的观察研究活动中产生情感体验,对学生进行“爱护草木,保护环境”的教育。组织和指导学生在有结构的观察活动中,获取关于叶的颜色、形状、大小、构成、叶脉、叶柄等多方面的知识。 2.“动物”单元引导和推动学生开展寻访调查小动物的活动;鼓励学生亲近和关注周围环境中的小动物,在课外或校外进行一些观察研究小动物的活动;并以活动经历和体验的形式进行爱护小动物,珍惜生命,保护生态环境的教育。组织和指导学生在有结构的观察活动中,获得关于动物的观察特征、分类特征、动物的多样性、动物的运动、

动物和食物、动物和环境、环境保护等多方面的丰富的直接认识。鼓励学生在此基础上,联系来自其他渠道的信息,发展自己的认识。3.“我们周围的材料”单元能有顺序、有目的、仔细地观察。能用文字、图画、表格等多种形式记录和呈现观察结果。对生活中的常见物品从材料角度进行分类。总结木头、纸、金属和塑料等材料的物理性质。 4.“水和空气”单元学生能利用自己的感官和简单的器材(瓶子、脸盘等),通过观察、对比等方法收集整理关于水的资料,发现和提出关于水的相关问题,并能用多种方法(语言、文字、符号等)将通过观察所发现的现象表述出来。进一步认识水的基本物理性质,懂得液体的含义,认识生活中常见的液体,能够用多种方法区分各种溶液并比较溶液的多少。 通过本册的学习,将重点发展学生想办法解决一些简单科学问题的能力;进行持续、细致、有联系的两两对比观察的能力;多次重复,进行简单对比实验的能力;综合运用观察和实验所得证据,经过思维加工并尝试进行解释的能力。在对科学探究的理解力方面,希望学生能认识到,将观察和实验结果用于科学讨论和解释,更具有说服力;探究受到多种因素影响,因此有必要重复实验;运用工具会帮助我们更精确地获得事实。 二、学生分析:

《计算机操作系统》实验指导书

《计算机操作系统》 实验指导书 (适合于计算机科学与技术专业) 湖南工业大学计算机与通信学院 二O一四年十月

前言 计算机操作系统是计算机科学与技术专业的主要专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。计算机操作系统的实验目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握操作系统的基本原理,加深对操作系统基本方法的理解,加深对课堂知识的理解,为学生综合运用所学知识,在Linux环境下调用一些常用的函数编写功能较简单的程序来实现操作系统的基本方法、并在实践应用方面打下一定基础。要求学生在实验指导教师的帮助下自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个实验解决一类问题。要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,并且能够进行简单分析和判断;能够熟练使用Linux用户界面;掌握操作系统中进程的概念和控制方法;了解进程的并发,进程之间的通信方式,了解虚拟存储管理的基本思想。同时培养学生进行分析问题、解决问题的能力;培养学生完成实验分析、实验方法、实验操作与测试、实验过程的观察、理解和归纳能力。 为了收到良好的实验效果,编写了这本实验指导书。在指导书中,每一个实验均按照该课程实验大纲的要求编写,力求紧扣理论知识点、突出设计方法、明确设计思路,通过多种形式完成实验任务,最终引导学生有目的、有方向地完成实验任务,得出实验结果。任课教师在实验前对实验任务进行一定的分析和讲解,要求学生按照每一个实验的具体要求提前完成准备工作,如:查找资料、设计程序、完成程序、写出预习报告等,做到有准备地上机。进行实验时,指导教师应检查学生的预习情况,并对调试过程给予积极指导。实验完毕后,学生应根据实验数据及结果,完成实验报告,由学习委员统一收齐后交指导教师审阅评定。 实验成绩考核: 实验成绩占计算机操作系统课程总评成绩的20%。指导教师每次实验对学生进行出勤考核,对实验效果作记录,并及时批改实验报告,综合评定每一次的实验成绩,在学期终了以平均成绩作为该生的实验成绩。有以下情形之一者,实验成绩为不及格: 1.迟到、早退、无故缺勤总共3次及以上者; 2.未按时完成实验达3次及以上者; 3.缺交实验报告2次及以上者。

科学实验教学心得doc

科学实验教学心得 科学是一门以观察,实验为基础的自然科学,许多科学知识是在观察和实验的基础上,认真总结和思考得来的。作为一名科学教师在教授学生科学知识过程中,如能正确的演示或指导学生实验,对学生掌握知识,运用知识可以起着很大的积极作用,同时还能激发学生求知欲望,以及培养学生严谨,求是的科学态度,所以实验教学是科学教学中一个必不可少,而且相当重要的环节。 本人就几年来的教学实验经验积累,提几点建议和看法,以供大家作参考。我认为一堂完整的科学实验课,应做好如下几个环节: 一:看 所谓“看”即“观察和了解”是所有实验的第一环节,包括对实验器材的选取,器材的使用规则,器材的使用范围,以及器材的精确度等,要有一个详尽的了解。例如:测量教室的长度,我们是选用米尺还是选用皮尺呢?因为测量工具的米尺和皮尺,最显具的特点是它们测量范围――量称不同。如果用米尺就必须采用重复测量的方法,即使方法和操作都正确,但仍加大了实验的误差,而皮尺可以一次性测量,有效地减小了误差。使用前,我们还用“看”它零刻度的位置,零刻度是否磨损,以及它的分度值。这些因素直接关系到我

们是否操作恰当,读数是否准确的问题。 在体温计的使用上,体温计作为一种特殊的温度计,它有着与其他温度计显具的不同点,(1)量程不同:其它温度计量称一般是从-100℃致100℃甚至更大。而体温计的量称只是从35℃到42℃。(2)构造不同:体温计有一纤细的缩口而其它温度计没有,构造不同导致使用上的不同,体温计读数时可以离开被测物,而其它温度计不允许。更应值得注意的是:每次使用体温计之前,要“看”水银柱是否退回玻璃泡,如果没有,需甩几下,否则使用时可能导致数据的不真实:如:已知甲、乙两人的体温分别为38℃和37.5℃,测量完甲的体温以后,医生忘了甩几下,又直接去测量乙的体温,这时体温计上显示的数据将不会是37.5℃而是38℃二:调 即“调整或调节”,它是进行实验的一个准备阶段,调整或调节的正确与否对实验的成功有决定性的作用。对部分需要“调”的实验仪器,应注重怎样正确的“调”。最好当学生的面示范一次或几次。例如:托盘天平的调平衡,首要条件是要将托盘天平放在水平桌面上,然后才能调平,在调平的过程中,双眼应指针,轻轻旋动平衡螺母,使指针指在分度盘的中间,(如不能达到目的,则需移动,并记下游码的位置)。在此过程中,不能用力太猛,否则易于损坏刀刃,

小学科学实验教学计划

小学科学实验教学计划 一、指导思 为进一步提高小学实验的管理水平和能力,以及实验室材料实现科学化、分类、分档、档案管理,加强实验水平和实验效果,更好,更全面地实施素质教育,推进教育发展。 二、主要任务及目标 按国家教委颁布的课程标准开齐开足实验教学课程,实验开出率达到90%以上,引导学生基本能亲手完成各个实验,形成一定实验技能,培养科学的实践,实验,观察能力。 三、具体工作措施 1、实验室工作由主任教师直接管理,实验室设兼职管理员,即实验员,具体管理实验室工作。 2、实验室管理员任务,目标; (1)实验员必须拟定科学教学计划,各年级科学教学工作须按计划进行实验教学,实验教学需填写演示实验计划、分组实验计划、演示实验单、分组实验单等表格。 (2)在进行实验教学前必须准备好实验所需仪器,材料,教师对每组

实验有充分准备,精心设计实验步骤和实验过程,方法,写出相应实验方案,以保证实验的科学性,安全性及效果。 (3)在引导学生进行分组实验时,应要求学生准备好相关的实验材料,以确保学生在实验中有物可做,并指导学生观察,讨论,得出相应的结论,完成实验教学; (4)指导学生进行分组实验后,应指导学生完成实验报告单(试验记录),并认真审阅,引导学生在实验、观察中养成科学的科学观和相应的实验能力; (5)开学及时收取科学各年级《教学工作计划》、《演示实验计划表》、《分组实验计划表》;期末按时收取《教学工作总结》、《演示实验记录表》、《分组实验记录》 (6)在实验教学、教研方面,以全体科学任课教师为组,进行相应的科学教学与实验教学研究,以不断提高科学学科教师的教学与实验能力。 3、材料归档 (1)每学期(学年)按时将各类材料分类装订后归档,并按时填写相应试验开出数、开出率,完成实验室材料的归档管理,做到科学、规范,便于查阅; (2)在材料归档的过程中注意材料的质量与数量应答相应要求; 4、实验室器材管理

操作系统实验教学改革探讨

操作系统实验教学改革探讨 摘要《操作系统》是计算机专业必修专业课。该课程概念众多、内容抽象、灵活性与综合性较强。本文结合“计算机操作系统”课程的特点,分析了教中实验课的开设现状,结合多年的教学经验,有针对性地提出了计算机操作系统实验的设计思想、教学内容及其教学模式。 关键词操作系统教学改革计算机专业教学中图分类1 背景介 号:G642 文献标识码:A 绍《计算机操 作系统》是各高校计算机专业学生必修的专业主干课程,是一门理论性和综合性比较强的学科。计算机操作系统实验教学作为课堂教学的继续,通过实验课程的教学,使学生初步受到有关操作系统设计的基础理论、设计方法的系统训练;帮助学生进一步了解操作系统的概念和理论,从而加深对操作系统的认识和理解。 2操作系统实验教学的现状任何一门计算机课程的学习,都与实践操作分不开。对于理论性较强操作系统,情况也是如此。但长

未能达到应有的教学效果 目前,各高校的操作系统教学普遍存在如下几个 问题: 2.1注重理论教学,忽视实践环节 操作系统作为计算机专业的核心课程,有一定难 度,各高校的教学都由骨 时较多。但因其理论性较强,导致很多学校感觉找不 到合适的实验平台。使得实践环节被一直忽视,实验 课课时被严重压缩,造成了学生整天在用操作系统, 也学习了操作系统理论,但就是不知道二者之间的联 系,从而达不到实验效果。 2.2 实验环境不好选择 当前多数操作系统是 windows ,而 unix 或者 linux 操作系统学生接触比较少, windows 的操作系统学生 都已经很熟练了, 缺少了学习的兴趣; 而 linux 系统的 人机界面虽然改观不少,但相对来说还是比较差,对 于初学者来说,在短时间内掌握该系统软件有一定的 难度,造成部分学生出现畏难情绪。因此实验不好选 择。 2.3 实验内容相对较难 期以来,大部分高校计算机相关专业的操作系统教学 由于教学硬件环境的缺乏,教材配置的滞后,在实验 教学 教师担任主讲,且分配课

实验教学案例

视频案例简介 实验一舌诊脉诊 实验二麻黄汤对正常大鼠足跖汗液分泌的影响 实验三DNA琼脂糖凝胶电泳 实验一舌诊 辨舌,又称舌诊,是温病诊断中的一种非常重要的方法。舌为心之苗,又与肝、肾、脾、膀胱、三焦等许多经络相同,使舌与全身形成了一个整体,许多内在病变可以从舌象上反映出来。尤其在温病过程中,其变化既迅速又明显,凡脏腑虚实、气血盛衰、津液盈亏、邪正消长、病情轻重、病位深浅、预后好坏等等,都能较客观地反映在舌象上。由于舌象的变化快、较敏感,所以在温病诊断中尤为重要,故有“杂病重脉,温病重舌”之说。舌象的变化主要为舌苔和舌质两个方面,舌诊则主要观察它们形态、色泽、润燥以及动态的变化。 一、舌苔 舌苔是由胃气熏蒸而形成的。在温病过程中,由于发热、伤津和脾胃功能失常等原因,舌苔可以有许多不同的表现,临床上主要观察其色泽、厚薄、润燥等情况。舌苔的变化主要反映卫分和气分的病变,尤其能反映出病邪的性质和津液的盈亏。 (一)白苔: 白苔有厚薄润燥之分,总的来说,薄者主表,病属卫分,一般见于温病初起,病变尚轻浅;厚者主里,病属气分,多见于湿热为患,如湿温之湿重热轻证。润者主津伤不甚,燥者则提示津液已伤。温病的主要白苔有以下几种: 1、苔薄白欠润,舌边尖略红: [临床表现] 指舌苔薄而色白,近似常人之苔,惟欠滋润,舌的两边及尖部,比正常舌质略红。 [临床意义] 为温病初袭人体,邪在肺卫,多见于风温初起。 [鉴别] 风寒表证之薄白苔质地润泽、舌色正常。 [医案] 周某,女,50岁。 初诊:身热头痛,体温38.3℃,微恶风寒,无汗咳嗽,咽红且痛,口微渴,舌边尖红,苔薄白,两脉浮数。 诊断:风温(上呼吸道感染) 辨证:风温之邪,侵袭肺卫。 治法:辛凉疏卫,宣肺退热。饮食当慎,荤腥宜忌。

关于实验教学心得体会范文

关于实验教学心得体会范文 实验教学是小学科学教学的一个重要 方面。教师十分注重、学生非常喜欢,都希望做好每一个实验。然而,在自然实验教学中,常会因器材或某些实验现象的可见度小,造成许多困难,影响实验的顺利进行,影响实验的效果。如介绍实验器材、观察动物形态、动态、发现客观事物的一些规律和现象等等。 视频展示台的显微镜头一般可将实物 放大到600倍以上,可以很清晰的显示微小的事物,增大其可见度。在实验教学中使用视频展示台,可以解决实验中的难题,并收到意想不到的效果。在此,我谈几点自己的体会。 一、介绍实验器材时,巧用视频展示 台进行有效的指导。 实验教学中,介绍实验器材是必不可少的一步,且是指导学生进行实验操作的关键一步。在小学自然实验器材中,有许多实验

盒,诸如简单机械实验盒、电流实验盒、物体沉浮实验盒、一、二年级自然实验盒等等,这些实验盒为学生分组实验提供了方便。但盒内器材太小,在知道学生选用器材时,由于器材可见度小,学生很难看清老师手中所拿的器材,确实给学生学习上带来了不便和麻烦,教师只好一组组地去指导,真是费时费力。例如,在使用简单机械实验盒时,要学生拿出旋坚碟形螺母,教师把它出示给学生,前排的学生看清了,而后面的学生看不清楚,一片茫然。自己既不认识旋坚蝶形螺母,又看不清老师手上拿着什么,就相互询问甚至下位走向讲台,这样一来教师里一片混乱真烦人。我想,这个问题得想想办法解决,后来我将器材放于视频展示台上,难题解决了。教学时,我将旋坚牒形螺母往视频展示台上一放,全体学生都能清楚地看到屏幕上的旋坚牒形螺母的形状和正反两方面 的样子,这样一来学生能很快地认识它并把它拿出来。在以后的教学中,凡是介绍实验器材(除大器材不需要展示的或无法展示的外),我都采用视频展示台投影,真是省时

操作系统 实验教学大纲

厦门大学实验教学大纲 课程编号:TX13 课程类型:学科通修课程 课程名称:实用操作系统课程英文名称:Applied Operating Systems 课程总学时:64 实验学时:16 总学分:3 适用对象:软件学院软件工程专业 先修课程:计算机硬件基础 实验指导教材及参考书: 《操作系统实验指导》,徐虹何嘉等编著,清华大学出版社,2004年 主要仪器设备:计算机及Windows 和Unix 操作系统 一、课程性质、目的和任务 操作系统作为计算机专业的一门专业基础课,是计算机专业的核心课程之一,学好与否直接关系到学生是否能更好地学习后续课程。通过本课程的学习,使学生掌握操作系统设计所遵循的基本原理,基本方法,建立多道程序设计环境下的并行程序设计的思维方式。此外,操作系统用到的各种算法也是学生加强算法锻炼的好机会,对日后从事系统开发方面的工作有直接的借鉴作用。 二、教学基本要求 本门实验课程是对《实用操作系统》课堂教学的一个重要补充,与理论学习起着相辅相成的作用,是实施《实用操作系统》教导的一个重要组成部分。通过实验(设计)使学生加强对操作系统原理的理解,深入而直观地理解操作系统使用的各类算法,提高学生自适应能力,为将来使用各类新出现的操作系统打下良好的基础。 三、教学内容及要求 实验1 进程管理 【实验要求】 掌握子进程的创建、父子进程的通信及其原理。 【实验内容】 ●熟悉linux环境的基本使用命令,熟悉使用vi、gdb、gcc等编程工具或软件 ●使用系统调用fork()创建两个子进程,父进程、子进程并发执行,输出并发执行的消息, 如: 父进程正在执行….. 子进程1正在执行….. 子进程2正在执行….. 一段时间后,父进程杀死子进程,然后结束自己的进程,分别显示: 子进程1被父进程杀死 子进程2被父进程杀死 父进程结束 实验2 使用信号量实现进程互斥与同步

相关文档
相关文档 最新文档