随着计算机的飞速发展,常规的教学活动中引入计算机辅助教学的情况越来越多。计算机辅助教学可以增加教学的可观性,激发学生的学习兴趣,促进师生之间的双向交流,提高教学效果。特别是对一些抽象的、理论性强的学科,如果采用传统的教学方法,不但老师讲得费劲,学生也听得枯燥无味,而且,教学效果也不理想,久而久之,容易形成恶性循环。要突破这一恶性循环,必需采用一些新的教学方法,计算机辅助教学就是其中比较有效的方法。
计算机辅助教学以计算机为工具,在计算机中显示教学内容,同时辅以声音、图像、动画,增加学生的视觉和听觉的刺激,同时还可以让学生与计算机进行双向交流,这样极大缩短了教学时间,提高了教学效果。
用VC开发教学课件,只要用VC的一小部分:多媒体,其他方面都不涉及,这就大大降低了设计难度,而且教学课件可以做得非常好。
制作方法
教学课件是将文字内容、图形或图表、解说词、背景音乐、动画等分别按一定规律连接起来形成的一种计算机软件。
1.文字内容
文字内容是用来表达课程的定理、定义、概念、公式等内容的文本,是教学课件中不可缺少的部分。我们可以用VC中视图类的OnDraw()函数来制作文字
内容。在OnDraw()函数中用pDC->TextOut(x,y,“文字内容”) 函数可以完美无缺地再现文字内容,其中x和y分别是文字在计算机屏幕上显示时的横坐标和纵坐标;字体大小和方式可以用CFont类的CreateFont()函数实现;文字内容的颜色由pDC->SetTextColor()实现;背景颜色由pDC->SetBkColor()实现。这样,VC的4个函数就可以将教师写在黑板上的内容漂亮地搬到计算机的屏幕上。如果内容过多,一屏显示不下,还可以用滚动条翻页。
2.图形或图表
图形或图表可以很形象地表现出事物之间的对比关系,是教学课件中一个重要的组成部分,起图文并茂的作用。我们可以先把图形或图表制好,制作图形的方法有两种:简单的图形就直接用VC的绘画函数;较复杂的图形用扫描仪和Photoshop等绘画类软件来制作。然后用VC的CBitmap类的LoadBitmap()函数在计算机屏幕上实现出来。
3.解说词
解说词可以从声音方面加强学生对需要重点掌握部分的印象,也是教学课件中一个重要的组成部分。我们可以用录音机程序把解说词录好,转换成WAV文件存储在磁盘上,然后可以根据实际情况,选择VC的多媒体组件中4种播放方式的一种进行播放:
利用sndPlaySound(*.wav,SND_ASYNC)函数进行播放,播放完后用sndPlaySound(NULL,0)进行关闭;
利用Windows的媒体控制接口(MCI)播放;
利用WaveOut()系列API函数播放;
利用MCIWnd窗口类播放。
4.背景音乐
背景音乐在教学课件中起烘托气氛,造就身临其境的意境的作用。我们可以根据教学课件的内容选择相应的背景音乐,再用VC的MCI多媒体接口来实现背景音乐的播放:
mciSendCommand(Idevice,MCI_PLAY,MCI_FROM|
MCI_NOTIFY,(DWORD)(LPVOID)&mciPlayParams)//播放函数
mciSendCommand(Idedice,MCI_STOP,MCI_WAIT,NULL)// 关闭函数
我们也可以用WCIWnd类实现背景音乐的播放。VC可以让解说词和背景音乐同时播放,并且都放在后台进行,丝毫不影响教师、学生对教学课件的控制、操作和信息交互。
5.动画
动画是教学课件中吸引学生的注意力,表现事物发展的渐进过程的部分。动画分两类:
一类界面复杂,但播放时间有限。如图1所示的“多媒体世界”的渐进播放。图1
这样的动画我们可以用3DMAX等软件制作,再用VC进行调用,方法有两种:
利用Windows的MCI多媒体控制接口进行播放;
利用MCIWnd窗口类播放;
另一类表现简单,但时间无限制。如图2所示的小圆形霓虹灯来回不断地扫描。
图2
我们可以直接用VC的定时器来制作动画,VC有10个定时器,就是说可以表演10个不同频度的动画,如果需要表演更多的动画,可以让几个动画共用一个定时器。
6.交互性
交互性是学生与教学课件之间的双向交流,是决定一个教学课件水平高低的关键部分。没有交互性,学生在接受教学课件时就如同一个看客一样无所作为,主观能动性、参与性发挥不出来,这种教学课件是不成功的。双向交流有两种:
功能上的交互。学生可以自由选择学习的章节、内容和采取何种方式。我们可以用VC的菜单项或工具栏的工具条来让学生进行选择,根据实际情况设计若干菜单或工具条,在每一个菜单或工具栏上加以提示,让学生很方便地选择其中的某一部分来学习。如图3所示。
图3
数据上的交互。在数学、物理、化学的公式中,不同参数的变化会引起结果的变化,因此教学课件要能与学生进行数据上的交互。在VC中我们可以用模式对话框来进行数据的交互。如图4所示。
图4
实现步骤
用VC制作教学课件时,首先要确定课件的教学目的,然后根据目的确定课件的中心、重点、难点。在具体的制作中分成两个步骤 :
1.前期准备
首先要制作和搜集课件的素材,准备与教学内容有关的文字、图形或图表、解说词、背景音乐、动画等。
2.后期合成
把我们收集到的文字、图形或图表、解说词、背景音乐、动画等根据教学内容、教学规律有机地联系起来形成一个整体。
应用实例
笔者用VC制作了一个单片机控制霓虹灯闪烁的教学课件。
1.开始部分的动画
为了吸引学生的注意,笔者用的是较复杂的AVI动画,利用如下函数进行播放:
MCIWndCreate(m_hWnd,AfxGetInstanceHandle(),0,filename);
MCIWndPlay(m_hWnd);
2.单片机控制霓虹灯的原理、电路图
此部分在OnDraw()函数中用绘图函数与文本输
出等函数实现:
pDC->RectAngle();
pDC->MoveTo();
pDC->LineTo();
pDC->TextOut();
3.单片机控制霓虹灯显示数字
可以通过按鼠标左键来达到霓虹灯不同位置的明暗变化引起显示的数字的变化,实现从0到9不断地循环变化。
4.单片机控制霓虹灯的扫描
该教学课件中有两种扫描方式:逐渐扫描与交替扫描,逐渐扫描用的是矩形灯管;交替扫描用的是圆形灯泡。它们都可以不断地改变闪烁的位置,并可以无限制地循环下去。该部分的主要实现程序如下:
Stdio1View::OnTimer(UINT nIDEvent)
{
CDC* pDC=GetDC();
int nDrawMode=pDC->SetROP2
(R2_NOTXORPEN);
CBrush Brush,brFill;
CBrush* pOldBrush1;
CPen pen,pen1,pen2,pen3,pen4;
CPen pen5,pen6,pen7,pen8;
pen.CreatePen(PS_SOLID,1,RGB(0,0,0));
CPen* pOldPen1, pOldPen;
CStatusBar* pStatus;
switch(nIDEvent)
{
case 1://逐渐扫描的定时器
{
Brush.CreateSolidBrush(RGB(255,0,0));
pOldBrush1=pDC->SelectObject(&Brush);
brFill.CreateSolidBrush(m_color);
pOldBrush1=pDC->SelectObject(&brFill);
pDC->Rectangle(m_pntCenter.left,80,m_pntCenter.right,320);
CRect rect;
GetClientRect(&rect);
//回到原位
if(m_pntCenter.left+m_nMove>700)
{
m_pntCenter.left=100;
m_pntCenter.right=130;
}
else//移动位置
{
m_pntCenter.left+=m_nMove;
m_pntCenter.right+=m_nMove;
}
pDC->Rectangle(m_pntCenter.left,80,m_pntCenter.right,320);
pDC->SetROP2(nDrawMode);
break;
}
case 2:// 交替扫描的定时器
Brush.CreateSolidBrush(RGB(255,0,0));
pOldBrush1=pDC->SelectObject(&Brush);
brFill.CreateSolidBrush(m_color);
pOldBrush1=pDC->SelectObject(&brFill);
pDC->Ellipse(m_m1.left,400,m_m1.right,440); pDC->Ellipse(m_m2.left,400,m_m2.right,440);
pDC->Ellipse(m_m3.left,400,m_m3.right,440);
pDC->Ellipse(m_m4.left,400,m_m4.right,440);
pDC->Ellipse(m_m5.left,400,m_m5.right,440);
//移动位置
if(m_m4.left+70>600)
{
m_m4.left=520;m_m4.right=560;
m_m3.left=380;m_m3.right=420;
m_m2.left=240;m_m2.right=280;
m_m1.left=100;m_m1.right=140;
m_m5.left=660;m_m5.right=700;
}
else//回到原位
{
m_m4.left+=70;m_m4.right+=70;
m_m3.left+=70;m_m3.right+=70;
m_m2.left+=70;m_m2.right+=70;
m_m1.left+=70;m_m1.right+=70;
m_m5.left+=70;m_m5.right+=70;
}
pDC->Ellipse(m_m2.left,400,m_m2.right,440);
pDC->Ellipse(m_m3.left,400,m_m3.right,440);
pDC->Ellipse(m_m4.left,400,m_m4.right,440);
pDC->Ellipse(m_m5.left,400,m_m5.right,440);
pDC->SetROP2(nDrawMode);
break;
default:
break;
}
ReleaseDC(pDC);
CView::OnTimer(nIDEvent);
}
该课件可以让学生随心所欲地改变霓虹灯的颜色、扫描速度等,还可以调用当前时间作为标准,对比扫描频度的快慢,以及根据课堂的需要随时打开或关闭背景音乐。
计算机辅助教学以计算机为工具,在计算机中显示教学内容,同时辅以声音、图像、动画,增加学生的视觉和听觉的刺激,同时还可以让学生与计算机进行双向交流,这样极大缩短了教学时间,提高了教学效果。
用VC开发教学课件,只要用VC的一小部分:多媒体,其他方面都不涉及,这就大大降低了设计难度,而且教学课件可以做得非常好。
制作方法
教学课件是将文字内容、图形或图表、解说词、背景音乐、动画等分别按一定规律连接起来形成的一种计算机软件。
1.文字内容
文字内容是用来表达课程的定理、定义、概念、公式等内容的文本,是教学课件中不可缺少的部分。我们可以用VC中视图类的OnDraw()函数来制作文字
内容。在OnDraw()函数中用pDC->TextOut(x,y,“文字内容”) 函数可以完美无缺地再现文字内容,其中x和y分别是文字在计算机屏幕上显示时的横坐标和纵坐标;字体大小和方式可以用CFont类的CreateFont()函数实现;文字内容的颜色由pDC->SetTextColor()实现;背景颜色由pDC->SetBkColor()实现。这样,VC的4个函数就可以将教师写在黑板上的内容漂亮地搬到计算机的屏幕上。如果内容过多,一屏显示不下,还可以用滚动条翻页。
2.图形或图表
图形或图表可以很形象地表现出事物之间的对比关系,是教学课件中一个重要的组成部分,起图文并茂的作用。我们可以先把图形或图表制好,制作图形的方法有两种:简单的图形就直接用VC的绘画函数;较复杂的图形用扫描仪和Photoshop等绘画类软件来制作。然后用VC的CBitmap类的LoadBitmap()函数在计算机屏幕上实现出来。
3.解说词
解说词可以从声音方面加强学生对需要重点掌握部分的印象,也是教学课件中一个重要的组成部分。我们可以用录音机程序把解说词录好,转换成WAV文件存储在磁盘上,然后可以根据实际情况,选择VC的多媒体组件中4种播放方式的一种进行播放:
利用sndPlaySound(*.wav,SND_ASYNC)函数进行播放,播放完后用sndPlaySound(NULL,0)进行关闭;
利用Windows的媒体控制接口(MCI)播放;
利用WaveOut()系列API函数播放;
利用MCIWnd窗口类播放。
4.背景音乐
背景音乐在教学课件中起烘托气氛,造就身临其境的意境的作用。我们可以根据教学课件的内容选择相应的背景音乐,再用VC的MCI多媒体接口来实现背景音乐的播放:
mciSendCommand(Idevice,MCI_PLAY,MCI_FROM|
MCI_NOTIFY,(DWORD)(LPVOID)&mciPlayParams)//播放函数
mciSendCommand(Idedice,MCI_STOP,MCI_WAIT,NULL)// 关闭函数
我们也可以用WCIWnd类实现背景音乐的播放。VC可以让解说词和背景音乐同时播放,并且都放在后台进行,丝毫不影响教师、学生对教学课件的控制、操作和信息交互。
5.动画
动画是教学课件中吸引学生的注意力,表现事物发展的渐进过程的部分。动画分两类:
一类界面复杂,但播放时间有限。如图1所示的“多媒体世界”的渐进播放。图1
这样的动画我们可以用3DMAX等软件制作,再用VC进行调用,方法有两种:
利用Windows的MCI多媒体控制接口进行播放;
利用MCIWnd窗口类播放;
另一类表现简单,但时间无限制。如图2所示的小圆形霓虹灯来回不断地扫描。
图2
我们可以直接用VC的定时器来制作动画,VC有10个定时器,就是说可以表演10个不同频度的动画,如果需要表演更多的动画,可以让几个动画共用一个定时器。
6.交互性
交互性是学生与教学课件之间的双向交流,是决定一个教学课件水平高低的关键部分。没有交互性,学生在接受教学课件时就如同一个看客一样无所作为,主观能动性、参与性发挥不出来,这种教学课件是不成功的。双向交流有两种:
功能上的交互。学生可以自由选择学习的章节、内容和采取何种方式。我们可以用VC的菜单项或工具栏的工具条来让学生进行选择,根据实际情况设计若干菜单或工具条,在每一个菜单或工具栏上加以提示,让学生很方便地选择其中的某一部分来学习。如图3所示。
图3
数据上的交互。在数学、物理、化学的公式中,不同参数的变化会引起结果的变化,因此教学课件要能与学生进行数据上的交互。在VC中我们可以用模式对话框来进行数据的交互。如图4所示。
图4
实现步骤
用VC制作教学课件时,首先要确定课件的教学目的,然后根据目的确定课件的中心、重点、难点。在具体的制作中分成两个步骤 :
1.前期准备
首先要制作和搜集课件的素材,准备与教学内容有关的文字、图形或图表、解说词、背景音乐、动画等。
2.后期合成
把我们收集到的文字、图形或图表、解说词、背景音乐、动画等根据教学内容、教学规律有机地联系起来形成一个整体。
应用实例
笔者用VC制作了一个单片机控制霓虹灯闪烁的教学课件。
1.开始部分的动画
为了吸引学生的注意,笔者用的是较复杂的AVI动画,利用如下函数进行播放:
MCIWndCreate(m_hWnd,AfxGetInstanceHandle(),0,filename);
MCIWndPlay(m_hWnd);
2.单片机控制霓虹灯的原理、电路图
此部分在OnDraw()函数中用绘图函数与文本输
出等函数实现:
pDC->RectAngle();
pDC->MoveTo();
pDC->LineTo();
pDC->TextOut();
3.单片机控制霓虹灯显示数字
可以通过按鼠标左键来达到霓虹灯不同位置的明暗变化引起显示的数字的变化,实现从0到9不断地循环变化。
4.单片机控制霓虹灯的扫描
该教学课件中有两种扫描方式:逐渐扫描与交替扫描,逐渐扫描用的是矩形灯管;交替扫描用的是圆形灯泡。它们都可以不断地改变闪烁的位置,并可以无限制地循环下去。该部分的主要实现程序如下:
Stdio1View::OnTimer(UINT nIDEvent)
{
CDC* pDC=GetDC();
int nDrawMode=pDC->SetROP2
(R2_NOTXORPEN);
CBrush Brush,brFill;
CBrush* pOldBrush1;
CPen pen,pen1,pen2,pen3,pen4;
CPen pen5,pen6,pen7,pen8;
pen.CreatePen(PS_SOLID,1,RGB(0,0,0));
CPen* pOldPen1, pOldPen;
CStatusBar* pStatus;
switch(nIDEvent)
{
case 1://逐渐扫描的定时器
{
Brush.CreateSolidBrush(RGB(255,0,0));
pOldBrush1=pDC->SelectObject(&Brush);
brFill.CreateSolidBrush(m_color);
pOldBrush1=pDC->SelectObject(&brFill);
pDC->Rectangle(m_pntCenter.left,80,m_pntCenter.right,320);
CRect rect;
GetClientRect(&rect);
//回到原位
if(m_pntCenter.left+m_nMove>700)
{
m_pntCenter.left=100;
m_pntCenter.right=130;
}
else//移动位置
{
m_pntCenter.left+=m_nMove;
m_pntCenter.right+=m_nMove;
}
pDC->Rectangle(m_pntCenter.left,80,m_pntCenter.right,320);
pDC->SetROP2(nDrawMode);
break;
}
case 2:// 交替扫描的定时器
Brush.CreateSolidBrush(RGB(255,0,0));
pOldBrush1=pDC->SelectObject(&Brush);
brFill.CreateSolidBrush(m_color);
pOldBrush1=pDC->SelectObject(&brFill);
pDC->Ellipse(m_m1.left,400,m_m1.right,440); pDC->Ellipse(m_m2.left,400,m_m2.right,440);
pDC->Ellipse(m_m3.left,400,m_m3.right,440);
pDC->Ellipse(m_m4.left,400,m_m4.right,440);
pDC->Ellipse(m_m5.left,400,m_m5.right,440);
//移动位置
if(m_m4.left+70>600)
{
m_m4.left=520;m_m4.right=560;
m_m3.left=380;m_m3.right=420;
m_m2.left=240;m_m2.right=280;
m_m1.left=100;m_m1.right=140;
m_m5.left=660;m_m5.right=700;
}
else//回到原位
{
m_m4.left+=70;m_m4.right+=70;
m_m3.left+=70;m_m3.right+=70;
m_m2.left+=70;m_m2.right+=70;
m_m1.left+=70;m_m1.right+=70;
m_m5.left+=70;m_m5.right+=70;
}
pDC->Ellipse(m_m2.left,400,m_m2.right,440);
pDC->Ellipse(m_m3.left,400,m_m3.right,440);
pDC->Ellipse(m_m4.left,400,m_m4.right,440);
pDC->Ellipse(m_m5.left,400,m_m5.right,440);
pDC->SetROP2(nDrawMode);
break;
default:
break;
}
ReleaseDC(pDC);
CView::OnTimer(nIDEvent);
}
该课件可以让学生随心所欲地改变霓虹灯的颜色、扫描速度等,还可以调用当前时间作为标准,对比扫描频度的快慢,以及根据课堂的需要随时打开或关闭背景音乐。