用c++编画板的实训报告

用c++编画板的实训报告
用c++编画板的实训报告

一实训目的

(1)培养分析问题、解决问题的能力

(2)培养考虑问题的周密性和逻辑思维能力

(3)培养实际动手能力

(4)培养C++知识的综合运用能力

二实训任务和要求

1.图形:

带颜色的图形。(增加选色功能)

线粗不同的图形。(修改线粗的功能)

块状图。(图形的填充色和边线颜色可以不同,由用户选择)

等等。。

2. 界面

工具栏,状态栏,改变鼠标,查看窗口等等

3. 编辑

在重新打开时和在正常情况下一样画图或者选中图形进行图形编辑。

4. 文件保存

EMF文件,导入位图文件成为一个(由位图填充的)矢量矩形等等。

5. 编辑

单个图像拖动,改变图形节点位置

能够进行基本的图形绘制功能:直线,圆、矩形和多边形;

数据保存功能,能够把图形数据保存到文件中;

简单的编辑功能:改变线条和填充颜色以及线宽;

三实训过程和内容

3.1需求分析

(1)认识C++编程软件

C++是一种使用非常广泛的计算机编程语言。C++是一种静态数据类型检查的,支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序

设计、制作图标等等泛型程序设计等多种程序设计风格。C++支持C语言的几乎全部功能,在语法上与C语言仅有极微妙的差别;C++语言原本不具备面向对象的设计功能,然而随着面向对象编程的概念的提出以及如Java等语言的发展成熟,C++语言也开发出了支持面向对象功能的版本,现在编程者常用的VC++就是一种面向对象的语言;C++强大(但容易失控的)模板功能使它能在编译期完成许多工作,从而大大提高运行期效率。STL(C++标准模板库,Standard Template Library);随着STL的不断发展,它已经逐渐成为C++程序设计中不可或缺的部分,其效率可能比一般的native代码低些,但是其安全性与规范性使它大受欢迎。

(2)计算机图形的认识

在计算机科学中,图形和图像这两个概念是有区别的:图形一般指用计算机绘制的画面,如直线、圆、圆弧、任意曲线和图表等;图像则是指由输入设备捕捉的实际场景画面或以数字化形式存储的任意画面。图像是由一些排列的像素组成的,在计算机中的存储格式有BMP、PCX、TIF、GIFD等,一般数据量比较大。它除了可以表达真实的照片外,也可以表现复杂绘画的某些细节,并具有灵活和富有创造力等特点,而与图像不同,在图形文件中只记录生成图的算法和图上的某些特点,也称矢量图。在计算机还原时,相邻的特点之间用特定的很多段小直线连接就形成曲线,若曲线是一条封闭的图形,也可靠着色算法来填充颜色。它最大的优点就是容易进行移动、压缩、旋转和扭曲等变换。

3.2 设计

(1)C++程序中的应用程序对象

(a)基于窗口的应用程序还是使用MFC比较多,所以主要介绍一下MFC。

CWnd窗口:它是大多数“看得见的东西”的父类(Windows里几乎所有看得见的东西都是一个窗口,大窗口里有许多小窗口),比如视图CView、框架窗口CFrameWnd、工具条CToolBar、对话框CDialog、按钮CButton,etc;一个例外是菜单(CMenu)不是从窗口派生的。CDocument文档,负责内存数据与磁盘的交互。最重要的是OnOpenDocument(读入),OnSaveDocument(写盘),Serialize(读写)CView视图:负责内存数据与用户的交互。包括数据的显示、用户操作的响应(如菜单的选取、鼠标的响应)。最重要的是OnDraw(重画窗口),通常用CWnd::Invalidate()来启动它。另外,它通过消息映射表处理菜单、工具条、快捷键和其他用户消息。

CDC设备文本:无论是显示器还是打印机,都是画图给用户看。这图就抽象为CDC。CDC与其他GDI(图形设备接口)一起,完成文字和图形、图像的显示工作。把CDC想象成一张纸,每个窗口都有一个CDC相联系,负责画窗口。CDC有个常用子类CClientDC(窗口客户区),画图通常通过CClientDC完成。

CDialog:对话框

CWinApp应用程序类:似于C中的main函数,是程序执行的入口和管理者,负责程序建立、消灭,主窗口和文档模板的建立。

CGdiObject及子类:用于向设备文本画图。它们都需要在使用前选进DC。

CPen笔:画线

CBrush刷子:填充

CFont字体:控制文字输出的字体

CBitmap:位图

CPalette:调色板

CRgn区域:指定一块区域可以用于做特殊处理。

CFile文件:最重要的不外是Open(打开),Read(读入),Write(写)

CString字符串:封装了C中的字符数组

CPoint点:(x,y)对

CRect矩形:(left,top,right,bottom)

CSize大小:(cx,cy)对(宽、高)

(b) MFC五大群组

①General Purpose classes:提供字符串类、数据处理类(如数组与链表),异常情况处理类、文件类等。

②Windows API classes:用来封装Windows API,例如窗口类、对话框类、DC类等。

③Application framework classes:组成应用程序骨干类,即此组类,包括Dcoument/View、消息泵、消息映射、消息传递、动态创建、文件读写等等。

④High level abstractions:包括工具栏、状态栏、拆分窗口、滚动窗口等等。视觉性UI对象属于此类,例如工具栏CToolBar、状态栏CStatusBar、对话框列CDialogBar。加强型的View也属此类,如可滚动的ScrollView、以对话框为基础的CFormView、小型文字编辑器CEditView、树状结构的CTreeView,支持RTF文件格式的CRichEditView等等。

⑤operation system extensions:包括OLE、ODBC、DAO、MAPI、WinSock、ISAPI等等。

(2)文档对象、视图对象和框架对象

在MFC中引入了文档-视图结构的概念,文档相当于数据容器,视图相当于查看数据的窗口或是和数据发生交互的窗口。因此一个完整的应用一般由四个类组成:CWinApp应用类,CFrameWnd窗口框架类,CDocument文档类,CView视类。在程序运行时CWinApp将创建一个CFrameWnd框架窗口实例,而框架窗口将创建文档模板,然后有文档模板创建文档实例和视实例,并将两者关联。一般来讲我们只需对文档和视图进行操作,框架的各种行为已经被MFC安排好了而不需人为干预,这也是设计文档-视结构的本意,让我们将注意力放在完成任务上而从界面编写中解放出来。在应用中一个视图对应一个文档,但一个文档可以包含多个视图。一个应用中只用一个框架窗口,对多文档界面来讲可能有多个MDI子窗口。每一个视图都是一个子窗口,在单文档界面中父窗口即是框架窗口,在多文档界面中父窗口为MDI子窗口。一个多文档应用中可以包含多个文档模板,一个模板定义了一个文档和一个或多个视图之间的对应关系。同一个文档可以属于多个模板,但一个模板中只允许定义一个文档。同样一个视图也可以属于多个文档模板。一般来说用户的输入/输出基本都是通过视图进行,但一些例外的情况下可能需要和框架直接发生作用。

在使用菜单时大家会发现当一个菜单没有进行映射处理时为禁止状态,在多视图的情况下菜单的状态和处理映射是和当前活动视相联系的,这样MFC可以保证视他能正确的接收到各种消息,但有时候也会产生不便。有一个解决办法就是在框架中对消息进行处理,这样也可以保证当前文档可以通过框架得到当前消息。

在用户进行输入后如何使视的状态得到更新?这个问题在一个文档对应一个视图时是不存在的,但是现在有一个文档对应了两个视图,当在一个视上进行了

输入时如何保证另一个视图也得到通知呢?MFC的做法是利用文档来处理的,因为

文档管理着当前和它联系的视图,由它来通知各个视图是最合适的。例如:void CView::OnUpdate( CView* pSender, LPARAM lHint, CObject* pHint ) void CDocument::UpdateAllViews( CView* pSender, LPARAM lHint = 0L,CObject* pHint = NULL )

当文档的UpdateAllViews被调用时和此文档相关的所有视图对象的OnUpdate

都会被调用,而参数lHint和pHint都会被传递。那么还有一个问题:如何在OnUpdate中知道是那个视图发生了改变呢,这就可以利用pHint参数,只要调用

者将this指针赋值给参数就可以了,当然完全可以利用该参数传递更复杂的结构。

视图对象的初始化,当一个文档被打开或是新建一个文档时视图的CView::OnInitialUpdate()会被调用,你可以通过重载该函数对视图对象进行初始化,并

在结束前调用父类的OnInitialUpdate,因为这样可以保证OnUpdate会被调用。

文档中内容的清除,当文档被关闭时(比如退出或是新建前上一个文档清除)void CDocument::DeleteContents ()会被调用,你可以通过重载该函数来进行

清理工作。

在单文档结构中上面两点尤其重要,因为软件运行文档对象和视图对象只会

被产生并删除一次。所以应该将上面两点和C++对象构造和构析分清楚。

文档模板分为两类单文档模板和多文档模板,分别由CSingleDocTemplate和CMultiDocTemplate表示,模板的作用在于记录文档对象,视图对象,框架对象之

间的对应关系。还有一点就是模板可以记录应用程序可以打开的文件的类型,当

打开文件时会根据文档模板中的信息选择正确的文档和视图。当使用者通过视图

对象修改了数据时,应该调用GetDocument()->SetModifiedFlag(TRUE)通知文档

数据已经被更新,这样在关闭文档时会自动询问用户是否保存数据。

(3)菜单设计

(a) 菜单的种类:

①生成数据②插入排序③希尔排序④起泡排序⑤快速排序

⑥选择排序⑦堆排序⑧归并排序(非递归) ⑨归并排序(递归)

⑩退出

(b) 工具条的实现

例如,24位工具条的实现:

①在mainframe.h文件中声明成员变量:

CToolBar m_hotToolBar;

在 CMainFrame::OnCreate() 中创建工具条,假设你已经创建了一个ToolBar资源和两个工具条位图(Bitmap)资源:IDB_TOOLBAR_COLD 和 IDB_TOOLBAR_HOT,前者表

示的是常态按钮,而后者表示的是鼠标移到上面时的状态按钮。用下面的代码创建工具条:

if(!m_hotToolBar.CreateEx(this,TBSTYLE_FLAT|TBSTYLE_LIST,WS_CHILD| WS_VISIBLE | CBRS_TOP| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||

!m_hotToolBar.LoadToolBar(IDR_HOTBAR))

{

TRACE0("Failed to create toolbar\n");

return -1; // fail to create

}

②在CMainFrame::OnCreate()中还要添加如下代码,它们实现对位图资源的存取:

// Set up hot bar image lists.

CImageList imageList;

CBitmap bitmap;

// Create and set the normal toolbar image list.

bitmap.LoadBitmap(IDB_TOOLBAR_COLD);

imageList.Create(21, 20, ILC_COLORDDB|ILC_MASK, 13, 1);

imageList.Add(&bitmap, RGB(255,0,255));

m_hotToolBar.SendMessage(TB_SETIMAGELIST, 0, (LPARAM)imageList.m_hImageList);

imageList.Detach();

bitmap.Detach();

// Create and set the hot toolbar image list.

bitmap.LoadBitmap(IDB_TOOLBAR_HOT);

imageList.Create(21, 20, ILC_COLORDDB|ILC_MASK, 13, 1);

imageList.Add(&bitmap, RGB(255,0,255));

m_hotToolBar.SendMessage(TB_SETHOTIMAGELIST, 0, (LPARAM)imageList.m_hImageList);

imageList.Detach();

bitmap.Detach();

③添加24位色工具条按钮的消息处理函数,这个工具条有五个按钮,那么在mainframe.h中加入消息处理函数声明:

afx_msg void OnBack();

afx_msg void OnForward();

afx_msg void OnStop();

afx_msg void OnRefresh();

afx_msg void OnHome();

在mainframe.cpp中添加消息处理代码:

消息映射

ON_COMMAND(ID_BACK, OnBack)

ON_COMMAND(ID_FORWARD, OnForward)

ON_COMMAND(ID_STOP, OnStop)

ON_COMMAND(ID_REFRESH, OnRefresh)

ON_COMMAND(ID_HOME, OnHome)

以上的结果如下图:

图1 工具条示例

(4)绘图的实现

①窗口消息:WM_CREATE,WM_DESTROY,WM_CLOSE

我们创建一个窗口对象的时候,这个窗口对象在创建过程中收到的就是WM_CREATE 消息,对这个消息的处理过程一般用来设置一些显示窗口前的初始化工作,如设置窗口的大小,背景颜色等,WM_DESTROY消息指示窗口即将要被撤消,在这个消息处理过程中,我们就可以做窗口撤消前的一些工作。WM_CLOSE wm_close消息发生在窗口将要被关闭之前,在收到这个消息后,一般性的操作是回收所有分配给这个窗口的各种资源。

②键盘消息:WM_CHAR,WM_KEYDOWN,WM_KEYUP

这三个消息用来处理用户的键盘数据,当用户在键盘上按下某个键的时候,会产生WM_KEYDOWN消息,释放按键的时候又回产生WM_KEYUP消息,所以WM_KEYDOWN与WM_KEYUP 消息一般总是成对出现的,至于WM_CHAR消息是在用户的键盘输入能产生有效的ASCII 码时才会发生。这里特别提醒要注意前两个消息与WM_CHAR消息在使用上是有区别的。在前两个消息中,伴随消息传递的是按键的虚拟键码,所以这两个消息可以处理非打印字符,如方向键,功能键等。而伴随WM_CHAR消息的参数是所按的键的ASCII码,ASCII 码是可以区分字母的大小写的。而虚拟键码是不能区分大小写的。

③鼠标消息:WM_MOUSEMOVE,WM_LBUTTONDOWN, WM_LBUTTONUP,

WM_LBUTTONDBCLICK,WM_RBUTTONDOWN, WM_RBUTTONUP,WM_RBUTTONDBCLICK 这组消息是与鼠标输入相关的,WM_MOUSEMOVE消息发生在鼠标移动的时候,剩余的六个消息则分别对应于鼠标左右键的按下、释放、双击事件,要指出的是WINDOWS系统并不是在鼠标每移动一个像素时都产生MOUSEMOVE消息,这一点要特别注意。

④另一组窗口消息:WM_MOVE , WM_SIZE , WM_PAINT

当窗口移动的时候产生WM_MOVE 消息,窗口的大小改变的时候产生WM_SIZE消息,而当窗口工作区中的内容需要重画的时候就会产生WM_PAINT消息。

⑤焦点消息WM_SETFOCUS,WM_KILLFOCUS

当一个窗口从非活动状态变为具有输入焦点的活动状态的时候,它就会收到

WM_SETFOCUS消息,而当窗口失去输入焦点的时候它就会收到WM_KILLFOCUS消息。

⑥定时器消息:WM_TIMER

当我们为一个窗口设置了定时器资源之后,系统就会按规定的时间间隔向窗口发送WM_TIMER消息,在这个消息中就可以处理一些需要定期处理的事情。最后要指出的一点是,在WINDOWS环境下,消息的来源是多方面的,最常见的是用户的操作产生消息,系统在必要的时候也会向程序发送系统消息,其他在运行中的程序也可以向程序发送消息。此外,在程序的内部,也可以根据需要在适当的时候主动产生消息,比如主动产生WM_PAINT消息以实现需要的重画功能。

例如,创建一个定时器。点击查看,建立类向导

图2 创建定时器建立类向导示例(1)

在class name下点击ctestview,然后再messages 选择 WM TIMER。然后选择Add Function.

图3 创建定时器建立类向导示例(2)

自己命名一下确定就建立成功。

⑦消除鼠标移动过程中的绘图痕迹

void CShanView::OnDrawArraw()

{m_DrawMode=1;}

void CShanView::OnUpdateDrawArraw(CCmdUI* pCmdUI)

{pCmdUI->SetCheck(m_DrawMode==1);}

void CShanView::OnDrawCircle()

{m_DrawMode=4;}

void CShanView::OnUpdateDrawCircle(CCmdUI* pCmdUI)

{pCmdUI->SetCheck( m_DrawMode==4);}

void CShanView::OnDrawLine()

{m_DrawMode=2;}

void CShanView::OnUpdateDrawLine(CCmdUI* pCmdUI)

{pCmdUI->SetCheck( m_DrawMode==2);}

void CShanView::OnDrawRect()

{ m_DrawMode=3;}

void CShanView::OnUpdateDrawRect(CCmdUI* pCmdUI)

{pCmdUI->SetCheck(m_DrawMode==3);}

//void CShanView::OnDropFiles(HDROP hDropInfo)

//{// TODO: Add your message handler code here and/or call default // CView::OnDropFiles(hDropInfo);//}

void CShanView::OnLButtonDown(UINT nFlags, CPoint point)

{ CClientDC dc(this);

dc.SetMapMode(MM_LOENGLISH);

dc.DPtoLP(&point);

m_originp = point; m_oldp = point;

CView::OnLButtonDown(nFlags, point); }

void CShanView::OnMouseMove(UINT nFlags, CPoint point)

{

CClientDC dc(this);

dc.SetMapMode(MM_LOENGLISH);

dc.DPtoLP(&point);

if(m_DrawMode != 0 )

{

CPen *oldPen, pen(PS_DASH,1,RGB(0,0,0));

oldPen = dc.SelectObject(&pen);

dc.SetROP2(R2_NOTXORPEN);

if(nFlags==MK_LBUTTON && m_DrawMode==2)

{dc.MoveTo(m_originp); dc.LineTo(m_oldp);

dc.MoveTo(m_originp); dc.LineTo(point);}

if(nFlags==MK_LBUTTON && m_DrawMode==3)

{dc.Rectangle(m_originp.x, m_originp.y, m_oldp.x, m_oldp.y);

dc.Rectangle(m_originp.x, m_originp.y, point.x, point.y);}

if(nFlags==MK_LBUTTON && m_DrawMode==4)

{dc.Ellipse(m_originp.x, m_originp.y, m_oldp.x, m_oldp.y);

dc.Ellipse(m_originp.x, m_originp.y, point.x, point.y);}

m_oldp=point;

dc.SelectObject(oldPen);

}

CView::OnMouseMove(nFlags, point);

}

void CShanView::OnLButtonUp(UINT nFlags, CPoint point)

{ if(m_DrawMode != 0)

{

CShanDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

CClientDC dc(this);

dc.SetMapMode(MM_LOENGLISH);

dc.DPtoLP(&point);

CPen pen(PS_SOLID, m_penWidth, m_penColor);

CPen *oldPen = dc.SelectObject(&pen);

CBrush brush(m_brushColor);

CBrush *oldBrush = dc.SelectObject(&brush);

if(m_DrawMode == 2)

{//dc.MoveTo(m_originp); dc.LineTo(point);

MLine *p = new MLine(m_originp, point);

pDoc->m_List.Add(p);

p->m_brushColor = m_brushColor;

p->m_penColor = m_penColor;

p->m_penWidth = m_penWidth;

p->Draw(&dc);}

if(m_DrawMode == 3)

{//dc.Rectangle(m_originp.x, m_originp.y, point.x, point.y);

MRect *p = new MRect(m_originp, point);

pDoc->m_List.Add(p);

p->m_brushColor = m_brushColor;

p->m_penColor = m_penColor;

p->m_penWidth = m_penWidth;

p->Draw(&dc);}

if(m_DrawMode == 4)

{// dc.Ellipse(m_originp.x, m_originp.y, point.x, point.y);

MCircle *p = new MCircle(m_originp, point);

pDoc->m_List.Add(p);

p->m_brushColor = m_brushColor;

p->m_penColor = m_penColor;

p->m_penWidth = m_penWidth;

p->Draw(&dc);}

dc.SelectObject(oldPen);

dc.SelectObject(oldBrush);}

CView::OnLButtonUp(nFlags, point);}

void CShanView::OnProPencolor()

{CColorDialog dlg;

if(dlg.DoModal() == IDOK)

m_penColor = dlg.GetColor();}

void CShanView::OnProBrushcolor()

{CColorDialog dlg;

if(dlg.DoModal() == IDOK)

m_brushColor = dlg.GetColor();}

void CShanView::OnProPenwidth()

{Cfgh dlg;

dlg.DoModal();

if(dlg.DoModal() == IDOK)

m_penWidth = dlg.m_Width;

}

void CShanView::OnMaaaaaaa()

}

Cpp

//shanDoc.cpp:implementation of the CShanDoc class//

#include "stdafx.h"

#include "shan.h"

#include "shanDoc.h"

#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif

///////////////////////////////////////////////////////////////////// // CShanDoc

(5)图形结构的设计

图形是矢量图。就是说绘制出来的图形数据是以坐标形式存储,而不是以位图形式存储。对矢量图进行任意倍数的放大缩小,图形不会失真,线粗不变。

所谓线粗不变,是说比如原图线粗是1,无论放大多少倍之后,线粗都是1,仅仅是图像大小变化。

基本功能中只要求单色的线图。就是说只需使用一种颜色作为图形的边线就可以了。图形内部是透明的。不需增加选色功能。

并且图形的线粗可以只是1,不必增加线粗的改变功能。.带颜色的图形。(增加选色功能).线粗不同的图形。(修改线粗的功能)图形的填充色和边线颜色可以不同,由用户选择等等。

例如:画图板的实现

View窗口

// shanView.cpp : implementation of the CShanView class

#include "stdafx.h"

#include "shan.h"

//#include "PenWidthDlg.h"

#include "fgh.h"

#include "shanDoc.h"

#include "shanView.h"

#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif

IMPLEMENT_DYNCREATE(CShanView, CView)

BEGIN_MESSAGE_MAP(CShanView, CView)

//{{AFX_MSG_MAP(CShanView)

ON_COMMAND(IDM_DRAW_ARRAW, OnDrawArraw)

ON_UPDATE_COMMAND_UI(IDM_DRAW_ARRAW, OnUpdateDrawArraw)

ON_COMMAND(IDM_DRAW_CIRCLE, OnDrawCircle)

ON_UPDATE_COMMAND_UI(IDM_DRAW_CIRCLE, OnUpdateDrawCircle)

ON_COMMAND(IDM_DRAW_LINE, OnDrawLine)

ON_UPDATE_COMMAND_UI(IDM_DRAW_LINE, OnUpdateDrawLine)

ON_COMMAND(IDM_DRAW_RECT, OnDrawRect)

ON_UPDATE_COMMAND_UI(IDM_DRAW_RECT, OnUpdateDrawRect)

ON_WM_DROPFILES()

ON_WM_LBUTTONDOWN()

ON_WM_MOUSEMOVE()

ON_WM_LBUTTONUP()

ON_COMMAND(IDM_PRO_PENCOLOR, OnProPencolor)

ON_COMMAND(IDM_PRO_BRUSHCOLOR, OnProBrushcolor)

ON_COMMAND(IDM_PRO_PENWIDTH, OnProPenwidth)

ON_COMMAND(IDMAAAAAAA, OnMaaaaaaa)

//}}AFX_MSG_MAP

// Standard printing commands

ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)

ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)

ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview) END_MESSAGE_MAP()

///////////////////////////////////////////////////////////////////// // CShanView construction/destruction

BOOL CShanView::OnPreparePrinting(CPrintInfo* pInfo)

{// default preparation

return DoPreparePrinting(pInfo);}

void CShanView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) {// TODO: add extra initialization before printing}

void CShanView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) {// TODO: add cleanup after printing}

///////////////////////////////////////////////////////////////////// // CShanView diagnostics

#ifdef _DEBUG

void CShanView::AssertValid() const

{CView::AssertValid();}

void CShanView::Dump(CDumpContext& dc) const

{CView::Dump(dc);}

CShanDoc* CShanView::GetDocument() // non-debug version is inline {ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CShanDoc)));

return (CShanDoc*)m_pDocument;}

#endif //_DEBUG

///////////////////////////////////////////////////////////////////// // CShanView message handlers

IMPLEMENT_DYNCREATE(CShanDoc, CDocument)

IMPLEMENT_SERIAL(MShape,CObject,1)

IMPLEMENT_SERIAL(MLine,MShape,1)

IMPLEMENT_SERIAL(MRect,MShape,1)

IMPLEMENT_SERIAL(MCircle,MShape,1)

BEGIN_MESSAGE_MAP(CShanDoc, CDocument)

//{{AFX_MSG_MAP(CShanDoc)

// NOTE - the ClassWizard will add and remove mapping macros here.

// DO NOT EDIT what you see in these blocks of generated code!}}// AFX_MSG_MAP

END_MESSAGE_MAP()

///////////////////////////////////////////////////////////////////// // CShanDoc construction/destruction

CShanDoc::CShanDoc()

{// TODO: add one-time construction code here}

CShanDoc::~CShanDoc()

{for(int i = 0; i < m_List.GetSize(); i++)

{MShape *shape = (MShape*)m_List[i];

delete shape;}

m_List.RemoveAll();}

BOOL CShanDoc::OnNewDocument()

{

if (!CDocument::OnNewDocument())

return FALSE;

for(int i = 0; i < m_List.GetSize(); i++)

{MShape *shape = (MShape*)m_List[i];

delete shape;}

m_List.RemoveAll();

// (SDI documents will reuse this document)

return TRUE;

}

///////////////////////////////////////////////////////////////////// // CShanDoc serialization

void CShanDoc::Serialize(CArchive& ar)

{

if (ar.IsStoring())

{ m_List.Serialize(ar);}

else

{m_List.Serialize(ar);}

}

///////////////////////////////////////////////////////////////////// // CShanDoc diagnostics

#ifdef _DEBUG

void CShanDoc::AssertValid() const

{CDocument::AssertValid();}

void CShanDoc::Dump(CDumpContext& dc) const

{CDocument::Dump(dc);}

#endif //_DEBUG

///////////////////////////////////////////////////////////////////// // CShanDoc commands

图4 画图板的实现示例

(6)对话框的实现

①定义一个对话框资源。

在WORKSPACE窗口当中RESOURCE一页,在DIALOG小图标上面单击鼠标右键,弹出菜单,选择INSERT命令,

图5 对话框的实现(1)

接下来在弹出的资源类型对话框中选择DIALOG,表示添加一个对话框资源。单击NEW 按钮。

接下来我们就开始布置这个对话框。对话框上面已经有了两个按钮:OK和CANCEL。

图6 对话框的实现(2)

②对话框中控件与成员变量之间如何进行数据交换

DoDataExchange函数就是对话框类和对话框资源进行DDX数据交换的函数。在对话框初始化的时候或者在程序中调用UpdateData()函数的时候,这个函数将会被调用。DDX_TEXT这个函数可以处理多种类型的数据成员变量与控件资源之间的数据交换。这中间包括int,uint,long,DWORD,CString,float,double等。PDX这个参数是一个指向一个CDataExchange对象的指针通过它我们可以设置进行数据交换的方法。比方说:数据交换的方向。这段代码就可以通过PDX的这个标志志判断数据交换的方向是从变量到控件

还是从控件到变量,然后进行不同的处理。进行数据交换之后,程序当中就可以通过成员变量来使用用户输入的数据了。

(7)存盘的实现

从磁盘存储器上存取数据的工作往往是通过文件操作或者数据库操作来完成的。VC是面向对象的开发平台,在使用MFC编写的程序中,定义和生成了各种各样的对象,通过它们之间的协同工作完成程序的功能。所以在MFC中,程序的存取工作的核心内容就是如何实现这些对象的持续化。一个可以实现持续化的对象知道如何保存和载入它们自己的数据。例如:在程序使用MFC文档/视图结构的时候,如果为文档对象提供正确的持续化功能,它将在您需要的时候自动地保存和恢复自己的数据,并且保持用户最新的修改结果。MFC使用一个类型为CArchive的归档对象充当磁盘文件与程序中的对象的中介。归档对象总是与一个CFile对象相关联,从中获得一些进行序列化所需要的信息,比如说文件名,以及存取标志等。对象的持续化的主要工作就是将自己的成员变量或者当前状态保存起来。我们可以使用经过重载的流入和流出操作符直接向归档对象中保存或者取出变量成员的值,而将这些数据保存到磁盘文件中的工作由CArchive对象指示CFile对象来完成。当用户在打开或保存拥有文档对象数据的文件或者使用文档对象的Open 、Save、Save As菜单命令时,MFC便会自动调用Serialize函数。

实现序列化,需要五个步骤:

1、从Cobject 类或其派生类派生用户类;

2、在类声明中使用DECLARE_SERIAL宏;

3、重载Serialize 函数;

4、定义不用变量的构造函数;

5、在类实现文件中使用宏IMPLEMENT_SERIAL。

图7 存盘的实现示例

扩展名的实现方法:

编辑StringTable,该串由7个部分构成,每个部分之间用\n隔开:

(第1部分)CDocTemplate::windowTitle 窗口的标题栏上的文字

(第4部分)CDocTemplate::filterName 文件对话框中过滤器的名称

(第5部分)CDocTemplate::filterExt 过滤后剩下的文件类型(扩展名)

四实训总结与心得体会

通过本次实训课程,让我了解到要设计一个大型程序,查找资料是至关重要的,自己也通过老师的指导对Windows编程的设计原理,要求等都有了较为深刻的体会!这对以后自己参加工作,做这方面的设计等都有很大的帮助!增强了自己的动手能力,以及对C语言有了更深的理解!由于本身忽略之前对于专业基础知识的学习,所以这次很多应该掌握的基础知识没有很好的随心所用,不能够很透彻的将老师所讲授的内容融会贯通,后来逐步意识到自己的不足,认真利用课余时间查阅了大一大二所学的相关课程,

又有了老师的悉心指导和同学之间的交流,就可以把实训内容涉及到的程序掌握,熟悉,

最终顺利应用,按照老师的要求完成了所有的流程!学习最好的途径边便是将理论与实践相结合,尤其对于我们通信工程这门发展日益迅速,始终走在科技前沿的行业更是必不可少的态度,最后再次衷心的向指导我们李老师认真的说声:谢谢!

五参考文献

1朱娜敏,魏宗寿.《精通Windows程序设计:基于Visual C++实现》.北京人民邮电出版社: 2009

2钱能.《C++程序设计》.清华大学出版社: 2007

3谭浩强.《C++程序设计》.清华大学出版社:2007

几何画板实验报告

一.实验内容:画出一个正方形 二.实验目的:学会使用变换中的旋转按钮 三.实验步骤: ①画出一条线段; ②选中线段左端点双击,标记中心; ③选中线段和另一端点,选择变换中的旋转按钮,并设置旋转角度为90°,然后在依次做出另外两条边。 四.实验结果 实验二 一实验内容:构造三角形的中线 二实验目的:学会构造线段中点

三实验步骤: ①单击线段工具,构造出一个三角形ABC; ②选中线段AB,执行构造-中点命令,构造出AB中点D ③单击线段工具,连接CD. 四实验结果 实验三 一实验内容:构造三角形的外心 二实验目的:学会构造线段的中垂线 三实验步骤: ①单击线段工具,构造出一个三角形ABC; ②选中线段AB,执行构造-中点命令,构造出AB中点D,同时选中AB和D,执行构造-垂线

③在AC上重复②,两垂线交点即为外心 四实验结果 一实验内容:绘制三角形的内心 二实验目的:学会构造已知角的平分线 三实验步骤: ①画出任意三点A,B,C,选中A,B.C三点,执行构造-线段,构造出三角形ABC; ②依次选中B,A,C,执行构造-角平分线,构造出BAC ∠的角平分线i; ③按照②的步骤做出ABC ∠的角平分线j; ④选中i,j,执行构造-中点命令,构造出三角形内心D; ⑤选中i,j,执行显示-隐藏平分线,隐藏平分线。 四实验结果:

实验五 一实验内容:绘制函数x =的函数图像 y3 二实验目的:绘图菜单的使用方法 三实验步骤: ①执行绘图-定义坐标系命令,新建坐标系,并将原点坐标的标签设为O; ②执行数据-新建函数命令,新建函数x =; y3 ③选中函数,执行绘图-绘制函数命令,画出x =的函数图像. y3 四实验结果

课程设计实验报告

竭诚为您提供优质文档/双击可除 课程设计实验报告 篇一:课程设计(综合实验)报告格式 课程设计报告 (20XX--20XX年度第一学期) 名称:题目:院系:班级:学号:学生姓名:指导教师:设计周数: 成绩:日期:《软件设计与实践》课程设计计算机系软件设计与实践教学组 20XX年1月14 日 《软件设计与实践》课程设计 任务书 一、目的与要求 1.了解网络爬虫的架构和工作原理,实现网络爬虫的基本框架;2.开发平台采用JDK1.60eclipse集成开发环境。 二、主要内容 1.了解网络爬虫的构架,熟悉网页抓取的整个流程。

2.学习宽度优先和深度优先算法,实现宽度crawler应用程序的编写、调试和运行。 3.学习主题爬行及内容分析技术。 4.实现网络爬虫的基本框架。 三、进度计划 四、设计成果要求 1.要求按时按量完成所规定的实验内容; 2.界面设计要求友好、灵活、易操作、通用性强、具有实用性; 3.基本掌握所采用的开发平台。五、考核方式 平时成绩+验收+实验报告。 学生姓名:于兴隆指导教师:王蓝婧20XX年1月2日 一、课程设计的目的与要求1.目的: 1.1掌握crawler的工作原理及实现方法;1.2了解爬虫架构; 1.3熟悉网页抓取的整个流程及操作步骤; 1.4掌握宽度优先,深度优先算法,并实现宽度crawler 应用程序的编写、调试和运行;1.5掌握主题爬行及内容分析技术;1.6实现一个最基础的主题爬虫的过程;1.7理解pageRank算法,并编程验证;二、设计正文 网络爬虫研究与应用 [摘要]:本文通过对网络爬虫研究的逐步展开,讨论了爬虫的相关概念与技术,并通过实验设计了简单的基于宽度

几何画板十个实例教学教程

几何画板实例教程:(1)模拟时钟 1,制作表盘 打开图表----定义坐标系,以原点为圆心构造圆O,右击圆周选选择粗线,颜色任意。在圆周上取点B,选取点O、B打开菜单变换---缩放选择固定比为4:5得到点B′ 构造线段BB′右击选择粗线,选择点O 打开变换标记中心,选择线段BB′(不要断点)打开菜单变换---旋转六十度,同理旋转十一次得到 。

在圆周任意取点C,选取O和C打开菜单变换---缩放,固定比选择为9:10 得到C′构造线段CC′,选取点C和线段CC′变换旋转6°,C旋转得到点D,然后选取点C打开菜单变换---迭代,影像选择点D,迭代次数操作键盘加号得到58次:

设y轴与圆的交点为E以点0为缩放中心将点E分别缩放90%,60℅,30%,得到点F、G、H隐藏网格和坐标轴,分别构造线段OF,OG,OH并设置为虚线、细线、粗线得到图:到此为止表盘完成了。 2:制作按钮操作时钟 打开菜单图标—新建参数标签改为秒,值的精确度选择为百分之一 打开菜单度量---计算,使用函数trunc分别计算一下结果:秒针旋转的角度、分针的旋转角度、时针的旋转角度。

选取参数“秒=1”打开编辑---操作类按钮—动画 范围设置为0到86400(一天一夜二十四小时共86400秒),标签改为“启动时钟”。 再次选择参数秒同上面一样打开动画按钮,不同的是把范围改为0到0.001,(此范围保证各指针的旋转的角度为0°),标签改为“归零”

选取打开菜单变换---标记角度,然后选取秒针(即图中的虚线)做变换—旋转变换,同理再分别选取分针和时针的旋转角度

做分针和时针的旋转变换。 此时点击启动时钟和归零就可以得到时钟的转动的效果了。(没有用的线可以隐藏了) 3.制作合并文本 用文本工具分别作时、分、秒三个独立的文本 再分别打开度量---计算下面三个值: 此结果是小时的取整; 此结果是秒的显示数字; 此结果为分的显示数字 分别右键单击三个结果选择属性—值的精确度选择单位。 依次选择下面的文本和值打开菜单编辑—合并文本

java画板课程设计报告

画板 一、需求分析 平时生活中,我们会需要处理一些基本的图像,也有可能需要花一些简单的图像,平时所使用的图形处理工具有PhotoShop、Windows 画图工具等,其中PhotoShop 是一款非常强大的图形处理工具,Windows 画图工具则是一款较为简单的画图工具,功能较为简单,用Windows画图工具,是一种比较简单与具有代表性的画图工具,虽然功能不够强大,但具有大多图片处理程序所必需的基本功能:铅笔画图、各种数学函数图形、填色、取色、橡皮擦等等。这次试验中我做的就是一个仿照windows画板的程序。 功能:1.利用graphics 类来向界面上画上相应内容 2.能够画出直线,矩形,多边形,椭圆形,圆矩形等 3.能够实现橡皮,刷子,喷枪等工具。 4.能够实验颜色的设置 5.能够保存图片和打开图片(当保存名一致时需提示) 6.界面尽量合理,可以仿照windows画板界面。 二、概要设计

流程图 画板软件类图 1.工具接口Tool: 从图中可以看到,工具接口Tool 定义了鼠标动作的四个方法,分别是拖动mouseDrapped()、移动mouseMoved()、松开mouseReleased()、按下

mousePressed()、点击mouseClicked()五个动作,并用String 类型的常量属性来定义工具的类型。这个接口只有一个实现类AbstractTool,而每个工具类 都是去扩展AbstractTool 类,在图中表现为Tool1、Tool2…….ToolN。 2.Tool的实现类AbstractTool AbstractTool 是Tool 的实现类,也是一个抽像类,所以并不能被创建,只能被继承。此类实现Tool 中定义的所有方法,并扩展了其它方法,让其子类继承或者重写。该类中为其他的工具类提供了大部分的实现,那么它的子类就可以不必再做重复的实现,只关心与本类相关的逻辑, 3.AbstractTool的子类 AbstractTool 一共有ArrowTool(箭头)、PencilTool(铅笔)、BrushTool(刷子)、EraserTool(橡皮擦)、LineTool (直线)、RectTool (矩形)、PolygonTool (多边形)、RoundTool (椭圆形)、RoundRectTool(圆矩形)、AtomizerTool (喷墨)、ColorPickedTool(颜色选择)11 个子类, 4. 界面类ImageFrame 这个画图工具的界面的主要放在这个类中实现 5. 业务逻辑类ImageService 除鼠标的画图功能外(画图功能由Tool 的实现类完成),初始化画板、图片的新建打开与保存、各种面板的显示与隐藏、颜色的编辑、整个界面的刷新、菜单等业务逻辑都放在这个类中实现, 对象,它并没有保存一些状态属性。 6 .文件选择类ImageFileChooser ImageFileChooser 类继承了JFleChooser 类,JFleChooser 是Java 提供的一个简单的文件选择机制,我们这里扩展这个类,是为了增加我们自己的文件过滤器。 三、运行环境、开发语言 Window xp 和elipse Java语言

实验二、应用轨迹与跟踪功能绘制图形(几何画板)

实验二、应用轨迹与跟踪功能绘制图形 一、实验目的: 认识、分清主动点和被动点,学会应用轨迹与追踪功能绘制图形 二、实验内容 1、作出双曲线、抛物线的轨迹 2、设ABCD为矩形,P是AB上的一动点,过P作PE⊥AC于E,PF⊥BD于F, (1)作出EF的中点轨迹。 (2)作出线段EF运动的轨迹。 3、三角形ABC顶点A在一定圆上运动,另外两个顶点固定,作出三角形ABC外心的轨迹。并讨论分出各种情形。 4、作出与已知定圆、定直线都相切的圆的圆心的轨迹。 三、实验步骤 1、(1)做一条射线,取端点A和射线上一点B构成线段作为定长2a 做一条直线,上面取两点F1 、F2为焦点。|F1 F2| >|AB| 再在射线上取点C 构造线段AC、BC 以F1为圆心,AC为半径做圆,F2为圆心,BC为半径做圆。 两圆相交的两点分别记为F、G。 选中点C、F构造轨迹,选中点C、G构造轨迹。则得到双曲线的一支。同理作图得双曲线另一支。 (2)做一条直线,取点上两点A、B 构造线段AB,并以A为圆心,AB为半径做圆,交直线于点C

选中点A和直线构造垂线I 在此垂线上取一点E。 选中点E和垂线I,构造垂线m。 选中点E、B构造线段。并选择它作中点F。 选中F和线段构造垂线n。 m与n交于一点G。 选中点E、G构造轨迹。则得到抛物线。 2、(1)制作矩形ABCD,取P上一点。连接AC、BD。 选中P和AC构造垂线,与AC的交点为E。 选中P和BD构造垂线,与BD的交点为F。 选中E、F构造线段。选择线段EF构造中点。 选中P、及EF的中点构造轨迹。 (2)选中点P及线段EF构造轨迹。 3、在平面上作一个圆。取圆上一点O。构造三角形BCD 分别取三条边的中点作垂线。三条垂线交于一点即是外心E。 选中点A和外心E,构造轨迹。 讨论:当三角形为锐角三角形时,轨迹在三角形内或与三角形最长边相交;当三角形为直角三角形,该轨迹的一个端点为三角形斜边中点,其他点均在三角形外,并平行于竖直的直角边;当三角形为钝角时,轨迹完全在三角形外,或与三角形最长边相交。 结论:外心运动轨迹在定点CD边所做的中垂线上。 4、构造定圆O和定直线k。

程序设计课程设计实验报告

《程序设计》课程设计姓名: 学号: 班级:软件工程14班 指导教师: 成绩:

1.消除类游戏 【问题描述】 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。当有多处可以被消除时,这些地方的棋子将同时被消除。 【基本要求】 现在给你一个n行m列的棋盘(1≤n,m≤30),棋盘中的每一个方格上有一个棋子,请给出经过一次消除后的棋盘。 请注意:一个棋子可能在某一行和某一列同时被消除。 输入数据格式: 输入的第一行包含两个整数n,m,用空格分隔,分别表示棋盘的行数和列数。接下来n行,每行m 个整数,用空格分隔,分别表示每一个方格中的棋子的颜色。颜色使用1至9编号。 输出数据格式: 输出n行,每行m个整数,相邻的整数之间使用一个空格分隔,表示经过一次消除后的棋盘。如果一个方格中的棋子被消除,则对应的方格输出0,否则输出棋子的颜色编号。 【测试数据】 为方便调试程序,可将输入数据先写入一个文本文件,然后从文件读取数据处理,这样可避免每次运行程序时都要从键盘输入数据。 测试数据一 输出说明: 棋盘中第4列的1和第4行的2可以被消除,其他的方格中的棋子均保留。 测试数据二 输出说明: 棋盘中所有的1以及最后一行的3可以被同时消除,其他的方格中的棋子均保留。 【功能实现】 #include #include<> usingnamespacestd;

{ intm,n,i,j; inttemp; cin>>n>>m; temp=m; m=n; n=temp; int*map=newint[m*n]; int*mark=newint[m*n]; int*tmap=map; int*tmark=mark; intdif=0; ount=0; } p rintf("请输入要输入数的个数\n"); s canf("%d",&n);/*输入要输入数的个数*/ f or(i=0;idata1[j+1].number)

几何画板视频教程全集(完整)(完整资料).doc

此文档下载后即可编辑 几何画板视频教程全集(完整) 一、绘制几何图形和几何体[本章实例下载] 实例1 利用画点工具任意画三点 实例2 绘制线段 实例3 绘制过同一点的三条直线 实例4 绘制相同端点的三条射线 实例5 绘制三个同心圆 实例6 绘制共点圆 实例7 绘制圆在第一象限内的部分 实例8 绘制三角形的中线 实例9 绘制三角形的三条角平分线 实例10 绘制三角形的三条高 实例11 绘制相邻两边可以随意改变的平行四边形实例12 绘制菱形 实例13 绘制梯形的中位线 实例14 绘制等腰梯形 实例15 绘制正三角形 实例16 绘制正五边形 实例17 绘制关于某条直线对称的两个全等的三角形实例18 绘制关于某点对称的两个三角形 实例19 绘制相似三角形 实例20 绘制五角星 实例21 绘制正方体 实例22 绘制相邻三条棱可改变的三棱柱 实例23 绘制三棱台 实例24 绘制圆柱 实例25 绘制圆锥 实例26 绘制圆台

二、制作度量型课件[本章实例下载] 实例1 验证三角形的中位线定理 实例2 验证圆幂定理 实例3 验证三角形内角和 实例4 验证圆周角与圆心角的关系实例5 验证同底等高三角形面积相等实例6 验证三角形的面积公式 实例7 验证勾股定理 实例8 验证两点间的距离公式 实例9 验证正弦定理 实例10 验证两平行线间的斜率关系实例11 验证余弦定理 实例12 绘制分段函数

三、制作图像型课件[本章实例下载] 实例1 二次函数的图像 实例2 指数函数的图像 实例3 对数函数的图像 实例4 函数y=sinx的图像 实例5 绝对值函数的图像 实例6 可变系数的二次函数的图像 实例7 可变系数的三角函数的图像 实例8 定义在区间[a,b]上的函数的图像实例9 椭圆的参数方程 实例10 星形线 实例11 圆锥曲线的统一方程 实例12 心脏线

几何画板心得体会

学习几何画板心得体会 以前曾经学习用过几何画板制作简单的课件,但由于时间关系,一直没能进行系统的学习,今年参加国陪才想起这款比较实用的数学软件,拿过来系统学习了一下,现将体会总结如下: 《几何画板》是全国中小学计算机教育研究中心推荐的适合中学数学教学使用的计算机辅助教学软件。运用《几何画板》能帮助学生以具体的实验形式来形成抽象的数学知识,减轻学生学习负担。《几何画板》有着强大的实验功能,通过数学实验,生动、直观.准确地反映了教学内容的重点、难点,寓教于乐,为帮助教师讲授,学生理解和自我学习起到了很好的作用,不仅培养了学生学习数学兴趣,而且提高了课堂教学效率。 《几何画板》的主要功能: 1.几何作图功能 《几何画板》中有画几何图形的铅笔、直尺和圆规,利用它能准确地绘制各种几何图形,并且保持几何元素点、线、圆之间的几何关系。 2.动态演示功能 几何画板》提供了一个十分理想的“做数学”的环境,完全可以利用它来进行数学实验。当我们拿到一道几何证明题时,你可以在几何画板画出图形,用测量的方法去验证一下。 3.度量和函数计算功能

在《几何画板》中可以测量许多几何元素或图形的数值参数,如长度、角度、距离、面积、坐标等。 由于我水平有限和时间上的关系,在本学期的学习中,利用几何画板还只能制作一些简单的数学课件,但我通过感官直接获得了数学概念及数学结论。通过这种学习数学的新途径,我开阔了视野,这样获取的数学知识必将是牢靠的。《几何画板》和数学教学的结合,必将很大程度地改变当前数学教学的现状。随着计算机日益走入人们的生活,计算机辅助教学将在数学教育领域,引起内容、方法、模式等一系列方面深刻的变革,大部分算术、代数的纸和笔的数学运算将为电子技术所替代。 《几何画板》有待于继续探索,它是数学学习的有力助手,只要把创造力融学习中,《几何画板》定会淋漓尽致地展现它的风采!

几何画板实验报告(函数y=Asin(ωx+φ)图象)

实验报告 实验项目:设计制作课堂教学型的课件 班级:姓名: 学号:实验时间:2013 年月日 一、实验目的:通过计算机辅助教学的理论与实践相结合,查阅资料,设计制作中学数学某一节课(自选内容)的课堂教学型课件,在实验过程中掌握课堂教学型课件设计方法与制作技巧。 二、实验设备:多媒体计算机、几何画板等 三、教学设计方案

四、课件的创作思路 按照课本要求,考虑到函数y=Asin(ωx+φ)的图象相对难掌握,特选取几何画板作为课件的制作软件。课件设计由浅入境,通过对旧知识点的回顾复习,再慢慢计入新知识点的学习,以问题为基本主导线,注重学生自主动手,自主学习能力,通过讨论,探讨问题渐渐深入课程学习,渐渐把握参数φ、ω、A对函数y=Asin(ωx+φ)的图象的影响。所以课件在设计中看重问题,情景的设计,以及如何让学生更容易,更直观地了解,掌握参数φ,ω,A对函数y=Asin(ωx+φ)的图象的变换规律。讲授新知识点后及时进行例题讲解,让学生查漏补缺,真正把知识学懂,学通,学透,本课件按照人教版要求,符合普遍学生的学习接受能力,通过提出问题观察图片,吸引学生的注意力,以带动学生思考问题。在传递新内容上,通过图文解说,形象表达学习内容,层次分明,能让学生容易理解、学习和掌握知识。学习完新知识后,进行一段小结,巩固学生记忆。最后布置几道与这节课内容相关的习题,是为了巩固本节课内容。使学生通过本节课,能基本掌握参数φ,ω,A对函数y=Asin(ωx+φ)的图象的变换规律。 五、思考题

分析课件所使用的媒体在课堂教学实践中的作用。 本课件主要应用了几何画板软件,应用几何画板的“形象、直观”的动态效果,能很好的演示课本上的内容和几何图片,容易让学生理解掌握新概念。本节课的一些思考及练习,能很好的培养学生的发散思维,达到举一反三的目的。几何画板的重要作用就是能准确地表达几何图像。本课件适用大部分地区高中学校的课堂教学。

最全的几何画板实例教程

上篇用几何画板做数理实验 图1-0.1 我们主要认识一下工具箱和状态栏,其它的功能在今后的学习过程中将学会使用。 案例一四人分饼 有一块厚度均匀的三角形薄饼,现在要把它平 均分给四个人,应该如何分? 图1-1.1 思路:这个问题在数学上就是如何把一个三角形分成面积相等的四部分。 方案一:画三角形的三条中位线,分三角形所成的四部 分面积相等,(其实四个三角形全等)。如图1-1.2。 图1-1.2

方案二:四等分三角形的任意一边,由等底等高的三角形面积相等,可以得出四部分面积相等,如图1-1.3。 图1-1.3 用几何画板验证: 第一步:打开几何画板程序,这时出现一个新绘图文件。 说明:如果几何画板程序已经打开,只要由菜单“文件”→“新绘图”,也可以新建一个绘图文件。 第二步:(1)在工具箱中选取“画线段”工具; (2)在工作区中按住鼠标左键拖动,画出一条线段。如图 1-1.4。 注意:在几何画板中,点用一个空心的圈表示。 图1-1.4 第三步:(1)选取“文本”工具;(2)在画好的点上单击左键,可以标出两点的标签,如图1-1.5: 注意:如果再点一次,又可以隐藏标签,如果想改标签为其它字母,可以这样做: 用“文本”工具双击显示的标签,在弹出的对话框中进行修改,(本例中我们不做修改)。如图 1-1.6 图1-1.6 在后面的操作中,请观察图形,根据需要标出点或线的标签,不再一一说明 B 图1-1.5 第四步:(1)再次选取“画线段”工具,移动鼠标与点A 重合,按左键拖动画出线段AC ;(2)画线段BC ,标出标签C ,如图1-1.7。 注意:在熟悉后,可以先画好首尾相接的三条线段后再标上标签更方便。 B 图1-1.7 第五步:(1) 用“选择”工具单击线段AB ,这时线段上出现两个正方形的黑块,表示线段处于被选取状态;(2) 由菜单“作图”→“中点”,画出线段AB 的中点,标上标签。得如图1-1.8。 注意:如果被选取的是点,点的外面会有一个粗黑圆圈。在几何画板中,选取线段是不包括它的两个端点的,以后的问题都是这样,如果不小心多选了某个对象,可以 B C D 图1-1.8

学习几何画板的心得体会

学习几何画板的心得体会 计算机在数学教学中有着它的独特作用,在辅助学生认知的功能要胜过以往的任何技术手段。在帮助学生系统地复习、运用知识方面也有着比传统教学更先进的模式,特别它的表述的方式很灵活,可以以文字、图形、动画、电影、图表等多种方式出现。再加入良好的教学软件辅助更显示出计算机辅助教学的强大优势。所以,当代教师应该掌握计算机辅助教学,并达到对一两种软件的熟练使用。 《几何画板》作为优秀的教学软件之一,是一个通用于数学,物理,天文的教学平台。其丰富的功能使用户可以随心所欲的编写所需的教学课件。该软件提供了充分的技术手段帮助用户实现其教学思想。用户只要熟悉它的简单使用技巧就可以自行设计和编写应用范例,无需学习任何编程语言。所做的课件所体现的并不是设计者的计算机软件应用水平,而是他具有的数学教学思想和实际教学水平。 《几何画板》不仅能够帮助教师扩展在传统教学中的能力,而且还为新的教学方法提供了可能。在新的教学方法中,强调学生的主体参与,学生课堂的主体,通过学生的参与来帮助学生更好地学习。但是现在普通的课堂,还不能完全体现学生的主体性,在《几何画板》和计算机网络的支持下,教师可以很容易地为每一位学生的比较和抽象创造一种活动的空间和条件,让学生能在活动中进行反身抽象,获得,理解和掌握抽象概念。只有这样学生获得的才是真正的数学经验,而不是数学结论。从这个意义上说,几何画板不仅仅是教师教学的工具,更应该成为学生的有利的认知工具。 在本文所提到的《几何画板》的课件制作中,充分利用了几何画板的动态原理。第一个课件,主要是利用了标记向量、缩放、平移、动画等方法,动态的展示了平面截圆锥得圆锥曲线的过程,使学生能更好的通过动态的演示达到理解圆锥曲线定义的目的。第二个课件,主要解决的是圆锥曲线的画法,利用圆锥曲线的性质来构造圆锥曲线的图象。主要利用了《几何画板》中的计算以及新开发的对轨迹的多种处理的功能,非常简便的制作出了较为理想的演示课件。通过对本课件的制作过程,我深深的体会到,利用《几何画板》只要通过精心的设计、简单的制作,就可以研发出能够解决传统教学中比较难以解决的诸多问题的优秀教学课件。 当然任何一种软件都不可避免存在一定的局限性,《几何画板》也不例外。它目前只适用于能够用几何模型来描述的内容——例如:几何问题,部分物理问题,天文问题等。这是因为《几何画板》课件要遵循一定的几何关系。这也告诉我们利用《几何画板》制作课件,就要具备一定的数学知识。 总之,《几何画板》为我们创造了一个数学实验室,提供了一个理想的“做数学”的环境。使学生从传统的“听”数学转变为“做”数学,也就是以研究者的方式参与包括发现,探索在内的获得知识的全过程。具有动态直观,数形结合,色彩鲜明,变化无穷的特点,能极大的增强学生的学习兴趣,是一个很有发展的教学平台。作为一名数学教师应该学会它,并能够利用这个平台自主研发适合自己教学的课件。

使用“平移”“旋转”与“轨迹”功能绘制复杂几何图形

几何画板实验报告:使用“平移”“旋转”与“轨迹”功能绘制复 杂几何图形 一、实验目的 掌握“平移”“旋转”与“轨迹”功能及其应用,能熟练将前两者结合绘制复杂图形。 二、实验内容 题目1、绘制正五边形并设置控制按钮使其绕中心旋转180度。 步骤:1、先绘制正五边形。 (1)、任意绘制一条线段,选择旋转72度,连续旋转5次(图1) (2)、连接端点,构成正五边形并得出中点O(图2) 图1 图2 2、【构造】一个圆E,【构造】圆上的半段弧GF,并【构造】弧上的一点D(图3) 图3 图4 3、设定角度DEF为标记角度,选中正五边形,点击【变换】,【旋转】,选择标记角度并以中心O为旋转中心。(图4) 4、选中点G,E选择【编辑】,【操作类按钮】,【移动】命令,得到名为“从D→G移动”的按钮,同理得名为“从D→F移动”的按钮.图5为旋转180度的图像和两个按钮。

图5 题目2、作出圆柱及过其棱上一点且与底面平行的截面。并设置截面的平行移动。 步骤:1、作出一个同心圆A,过A作水平线,在大圆上任取一点E作水平线的垂线EF,连接AE与小圆交于点G,过点G作EF的垂线,交于点H,以E为主动点,H为被动对象构造轨迹,一次选中点E和点H【构造】【轨迹】,即圆柱的底面。(图1) 图1 图2 2、将其余图形隐藏,只留下椭圆。过椭圆中点A作水平线交于G,过A点作AG的垂线AF,并标记AF向量;将G绕A点旋转180度到G’点,在椭圆上任取一点H,将H沿AF向量的方向平移到H’点,再以H为主动点,H’为被动对象构造轨迹,得到圆柱的上底面也是一个椭圆;同理将G与G’也平移上去,再连接棱,即得到圆柱;( 图2) 3、在棱G’C上任取一点N,标记G’N向量,把H按照J’N向量的方向平移到H’’点,同样以H为主动点,H’’为被动对象构造轨迹,得到截面;(图3)

java课程设计实验报告

一实验目的 加深学生对课堂讲授内容的理解,从计算机语言的基本概念、程序设计的基本方法、语法规则等方面加深理解,打好程序设计、开发软件的良好基础。在上机实验中,提高学生对Java语言各部分内容的综合使用能力,逐步掌握Java语言程序设计的规律与技巧。在对Java 程序的调试过程中,提高学生分析程序中出现的错误和排除这些错误的能力。通过上机实践,加深学生对计算机软件运行环境,以及对操作系统与计算机语言支持系统相互关系的了解。 二、实验要求 (1)问题描述准确、规范; (2)程序结构合理,调试数据准确、有代表性; (3)界面布局整齐,人机交互方便; (4)输出结果正确; (5)正确撰写实验报告。 三、设计内容 1、计算器 计算器要有GUI界面,用户可以输入所需计算的数值,可以进行加、减、乘、除四种最基本的运算和混合运算,可以求一个数值的平方及倒数,可以进行阶乘运算,要能运算小数,并且不会产生精度损失,在必要情况下,可以进行四舍五入的运算。允许正负数间的运算。要求使用Applet实现该计算器,当用浏览器运行程序时,点击网页中的按钮,则计算器弹出,浮在网页上,再次点击按钮时,计算器消失。 2、文本编辑器 可以设置文本的字体、大小、颜色等基本参数,可以读取计算机中TXT文件,可以生成一个新的TXT文件。其他功能参照windows的文本编辑器。

四.实验步骤 (1)上机实验之前,为课程设计的内容作好充分准备。对每次上机需要完成的任务进行认真的分析,画出程序流程图,手工写出符合任务要求的程序清单,准备出调试程序使用的数据,以便提高上机实验的效率。 (2)按照实验目的和实验内容进行上机操作。录入程序,编译调试,反复修改,直到使程序正常运行,得出正确的输出结果为止。 (3)根据实验结果,写出实验报告。 五. 源代码及运行结果 1.计算器源代码 import .*; import .*; import .*; public class jisuanqi extends WindowAdapter { , "=", "+","n!" ,"关闭" }; static double a, sum=1; static String s, str ;rame(); } public void frame() { etBackground; txt = new TextField(""); (false);ddActionListener(new buttonlistener());ddActionListener(new close()); (this); (new BorderLayout());.计算器运行界面(1)计算器主界面

最新教师多媒体课件制作培训心得体会4篇

教师多媒体课件制作培训心得体会4篇 教师多媒体课件制作培训心得体会1 20xx年8月5日至9日,我有幸在世纪学校参加了幼儿教师课件制作培训班。在这短短的五天时间里令我受益匪浅、感触颇多。 一是培训组织到位:本期幼儿教师课件制作培训班应到40人,实到40人,全体学员按时报到,无一人请假、迟到。在世纪学校培训的这几天,采用封闭式管理,教育局领导和学员一样,吃住在世纪学校,领导以身作则,每一位学员自觉遵守培训学习纪律和作息时间,以积极的态度、扎实的作风投入到培训学习之中,使培训学习更加顺利、圆满。 二是学习积极性高:暑期干部教师培训教育局投入了大量的人力和财力,世纪学校也为学习提供了便利和很好的服务,加之我们大多数幼儿教师平时参加学习培训的机会少,全体学员倍加珍惜这次学习机会,因此学习积极性都非常高。很多学员没有到上课时间,就早早来到教室,下课了,却还是觉得意犹未尽。还有很多老师在微机室里一坐就是半天,连休息地时间也不出去一下。 三是培训效果好:本次培训学习我们在王庆华、李益庆、王瑞波三位教师地辅导下,采用讲练结合地学习方式对office办公软件、flash动画制作、网页制作等知识进行了认真地学习。本次教师培训学习的内容质量高,形式灵活实用,对于我们今后的教学有很大的指导和帮助作用,同时借助全市的幼儿教师汇聚

之时把平时教学中遇到的困惑交流一下,相互取长补短,对提高个人的业务水平十分有益。 总之,通过这次培训,不仅学到很多计算机方面的知识,更重要的是增进了和其他人员之间的交流,大家坐在一起畅所欲言,互相讨论,交流,把自己不理解,不明白的地方提出来,让老师来帮助解决,这样使得相互之间都得到了学习,巩固知识的机会,提高了学习的效率。当然,学习计算机不是一两天就能完成的事,它就像一个永远游不到边迹的大海,“师傅领进门,修行在个人”只有在平时不断的学习中慢慢积累知识,才能使之更加灵活的运用于我们的工作中,这就需要有一个好的学习心态和比较科学的学习方法,继续认真学习掌握好计算机的功能,为今后的实际工作打下良好的基础。 教师多媒体课件制作培训心得体会2 多媒体课件制作培训心得体会首先,我非常感谢上级领导给了我这次难得也是很宝贵的学习机会!从四月份到六月份我很荣幸的参加了教师多媒体课件制作班的培训学习。在这几周的,我遵守作息时间,认真听老师授课,按时完成作业,并做了大量笔记。学习的过程是一个艰苦的过程,也是一个快乐的过程。在这次培训的过程中,我感觉到从未有过的充实与满足,快乐与幸福。在此再次感谢领导给了自己这样一个充电的机会。所以在这次学习过程中,我非常努力,收获颇丰。

几何画板实验报告要点

实验一数学教学软件基本操作 一、实验目的: 二、实验内容: 1、作出三角形的垂心。 2、作出三角形的外接圆与内切圆。 外接圆 内切圆 3、验证:三角形三边的中点、三条高的垂足、垂心到三顶点的中点共圆。

4、作出两圆的内外公切线。 三、实验步骤 1、作出三角形的垂心。 步骤: ○1构造△ABC; ○2选中点A和线段BC,构造垂线; ○3同理,构造线段AB、BC上的垂线; ○4交点D即为垂心。 2、作出三角形的外接圆与内切圆。 外接圆步骤:

○1构造△ABC; ○2选中线段AB,构造中点E; ○3选中线段AB和点E,构造垂线; ○4同理构造线段AC、BC上的中垂线,交点为K; ○5选中点K、A,构造圆。 内切圆步骤: ○1构造△ABC; ○2选中线段AB、AC,构造角平分线; ○3选中AB、BC,构造角平分线,交点为D; ○4选中A、D,构造圆。 3、验证:三角形三边的中点、三条高的垂足、垂心到三顶点的中点共圆。 步骤: ○1构造△ABC; ○2选中线段AB、BC、AC分别构造中点D、E、F; ○3选中线段BC和点A构造垂线,垂足为H,同理得到垂足L、K,三条 垂线的交点为M; ○4选中点A和M构造线段,再选中线段AM构造中点O,同理得到点N、P; ○5选中点E、P、O构造过三点的弧,选中点O、D、E构造过三点的弧; 4、作出两圆的内外公切线。 外公切线步骤: ○1构造两圆C、D,圆心分别为C、D(注:圆C 的半径大于圆 D 的半径); ○2选中点C、D,构造直线CD; ○3在圆D 上任意取一点F,连接构造线段DF; ○4选中点C、线段DF,构造平行线交圆 C 于点G、P ○5选中点G、F,再构造直线GF 交直线CD 于点H; ○6选中点D、H,构造线段DH,再构造线段DH 的中点M; ○7依次选中M、D(H),接着“构造”—“以圆心和圆周上的点作圆”—“生成一个圆M 交圆 D 于点O 和N ; ○8分别构造出直线OH 和直线NH,即为所求的外公切线。 内公切线步骤: ○1构造线段FP 交直线CD 于点Q; ○2选中点C、Q,构造线段,再构造中点R; ○3依次选中点R、C(Q),构造圆交圆C 于点S、T; ○4分别构造出直线QT 和直线QS,即为所求的内公切线。 四、实验的结论及实验中存在的问题。

课程设计实训总结范文

三一文库(https://www.360docs.net/doc/327955561.html,)/工作总结 课程设计实训总结范文 这次数据库课程设计做的还是很成功的,功能全部基本都实现了。在做的过程中出现过几次小问题,搞了很长时间才做通的。做完这次课设之后,回顾起来,数据库课设其实挺简单的。只不过以为我们以往的不深入的探究,只看表面一堆堆的代码就感觉很难很难,实际上代码不要我们写,照着模板做,一通百通,就ok了,正是因为我们的这种畏惧的敬而远之的心态导致我们数据库课程始终都是初学状态,没有一点长进,我想经过这次系统的做了这个企业进销存数据库,部分的数据库结构、功能、使用等方面与以前相比有了长足的进步,虽然知道的依然很少,但有进步都是可喜的。

在本次课程设计的软件开发的过程中,我全面实践一个面向数据库的应用系统的开发过程,学习了很多有关的知识。这样的项目对我学过的数据库课程是一个综合性很高的实践。一些以前没有学得很杂实的课程的内容,由于需要在实践中运用,刚开始我也感到很头痛。但回过头再去看教科书,经过一段时间的钻研,对与这些知识点的相关的背景,概念和解决方案理解得更透彻了,学习起来也越来越有兴趣,越来越轻松。差不多熟悉了数据库设计的每一个过程。 另外我还充分体会了从事软件开发工作需要特别严谨认真 的态度和作风,一点都马虎不得。每一个细微的细节都必须十分的注意,如果不认真思考决策,就会出现或大或小的错误,如果早期的错误隐藏下来,对后面的工作影响就会很大,甚至有时要推倒很多前面做的工作重来。有时候,我自己觉得我写的程序非常的正确,但是就是编译通不过,在查找错误的过程中,面临着否认自己的过程,非常的痛苦,只有不断地向老师提问,有时提问的问题特幼稚,可就是不懂,很是郁闷。 在反反复复的学习及询问之下,我的辛勤努力有了回报,终于做出了一个简单的软件,虽然这个软件的功能非常的简单,而

的几何画板实例教程

上篇用几何画板做数理实验 图1-0、1 我们主要认识一下工具箱与状态栏,其它的功能在今后的学习过程中将学会使用。 案例一四人分饼 有一块厚度均匀的三角形薄饼,现在要把它平 均分给四个人,应该如何分? 图1-1、1 思路:这个问题在数学上就就是如何把一个三角形分成面积相等的四部分。 方案一:画三角形的三条中位线,分三角形所成的四部分 面积相等,(其实四个三角形全等)。如图1-1、2。 图1-1、2

方案二:四等分三角形的任意一边,由等底等高的三角形面积相等,可以得出四部分面积相等,如图1-1、3。 图 1-1、3 用几何画板验证: 第一步:打开几何画板程序,这时出现一个新绘图文件。 说明:如果几何画板程序已经打开,只要由菜单“文件”→“新绘图”,也可以新建一个绘图文件。第二步:(1)在工具箱中选取“画线段”工具; (2)在工作区中按住鼠标左键拖动,画出一条线段。如图 1-1、4。 注意:在几何画板中,点用一个空心的圈表示。 图1-1、4 第三步:(1)选取“文本”工具;(2)在画好的点上单击左键, 可以标出两点的标签,如图1-1、5: 注意:如果再点一次,又可以隐藏标签,如果想改标签为其它字母,可以这样做: 用“文本”工具双击显示的标签,在弹出的对话框中进行修改,(本例中我们不做修改)。如图1-1、6 图1-1、6 在后面的操作中,请观察图形,根据需要标出点或线的标签,不再一一说明 B 图1-1、5 第四步:(1)再次选取“画线段”工具,移动鼠标与点A重 合,按左键拖动画出线段AC;(2)画线段BC,标出标签C,如 图1-1、7。 注意:在熟悉后,可以先画好首尾相接的三条线段后再标 上标签更方便。 B 图1-1、7 第五步:(1) 用“选择”工具单击线段AB,这时线段上出现 两个正方形的黑块,表示线段处于被选取状态;(2) 由菜单 “作图”→“中点”,画出线段AB的中点,标上标签。得 如图1-1、8。 注意:如果被选取的就是点,点的外面会有一个粗黑圆 圈。在几何画板中,选取线段就是不包括它的两个端点 的,以后的问题都就是这样,如果不小心多选了某个对象,可以按Shi f t键后用左键再次单击该对象取消选取。 B D 图1-1、8

几何画板论文

几何画板为初中数学探究性学习增光添彩 淄博市淄川区磁村中心学校李杰 [摘要]:初中数学新课程标准课程性质明确指出,数学课程能使学生掌握必备的基础知识和基本技能,培养学生的抽象思维和推理能力,培养学生的创新意识和实践能力,促进学生在情感、态度与价值观等方面的发展。而抽象思维能力的培养也是以直观思维为基础的,几何画板正是把抽象的问题具体化,方便了学生的理解和运用。信息技术背景下的探究性学习能使学生更加注重对数学本质的理解;能使学生更加注重对数学基础知识和基本思想方法的掌握;能使学生进一步提高能力,增强创新意识,提高对数学的学习兴趣。 [关键词]:探究性学习几何画板 《数学课程标准》指出:信息技术的发展对数学教育的价值、目标、内容以及教学方式产生了很大的影响。数学课程的设计与实施应根据实际情况合理的运用现代信息技术,要注意信息技术与课程内容的整合,注重实效。要充分考虑信息技术对数学学习内容和方式的影响,开发并向学生提供丰富的学习资源,把现代教育技术作为学生学习数学和解决问题的强有力工具,致力于改变学生的学习方式,使学生乐意并有更多的精力投入到现实的、探索性的数学活动中去。 我所在的学校是一所具有典型农村特色的乡镇中学,这些学生有着传统的教学观念“黑板粉笔”,思维习惯单一,学习方法刻板,在教学过程中教师很多时候只是“满堂灌”、“一刀切”的做法,因为本来每个学生的基础不同,所以致使很多学生的学习不是从自己的现有的基础出发,结果导致有些学生“吃不饱”,有些学生“吃不了”,有些学生根本不知从何“入口”。自从实行了新课改之后学生的学习习惯有了明显转变,课堂上以学生的小组合作、自主探究为主,教师指导为辅的方式,课堂上教师讲得少了,学生做得多了,这就对教师提出了更高的要求,教师需要用有限的时

c课程设计实验报告

c课程设计实验报 告

中南大学 本科生课程设计(实践)任务书、设计报告 (C++程序设计) 题目时钟控件 学生姓名 指导教师 学院交通运输工程学院 专业班级 学生学号 计算机基础教学实验中心 9月7日 《C++程序设计基础》课程设计任务书

对象:粉冶、信息、能源、交通工程实验2101学生时间: .6 2周(18~19周) 指导教师:王小玲 1.课程设计的任务、性质与目的 本课程设计是在学完《C++程序设计基础》课程后,进行的一项综合程序设计。在设计当中学生综合“面向对象程序设计与结构化程序设计”的思想方法和知识点,编制一个小型的应用程序系统。经过此设计进一步提高学生的动手能力。并能使学生清楚的知道开发一个管理应用程序的思想、方法和流程。 2.课程设计的配套教材及参考书 ●《C++程序设计》,铁道出版社,主编杨长兴刘卫国。 ●《C++程序设计实践教程》,铁道出版社,主编刘卫国杨长兴。 ●《Visual C++ 课程设计案例精编》,中国水力电力出版社,严华峰等编著。 3.课程设计的内容及要求 (1)自己任选一个题目进行开发(如画笔、游戏程序、练习打字软件等),要求利用MFC 工具操作实现。 (2)也可选一个应用程序管理系统课题(如:通讯录管理系统;产品入库查询系统;学生成绩管理;图书管理 等);

设计所需数据库及数据库中的数据表,建立表之间的关系。 设计所选课题的系统主封面(系统开发题目、作者、指导教师、日期)。 设计进入系统的各级口令(如系统管理员口令,用户级口令)。 设计系统的主菜单。要求具备下列基本功能: ●数据的浏览和查询 ●数据的统计 ●数据的各种报表 ●打印输出 ●帮助系统 多种形式的窗体设计(至少有查询窗体、输入窗体) 注意:开发的应用程序工作量应保证在2周时间完成,工作量不能太少或太多。能够2人合作,但必须将各自的分工明确。 4.写出设计论文 论文基本内容及撰写顺序要求: ●内容摘要 ●系统开发设计思想 ●系统功能及系统设计介绍 ●系统开发的体会

几何画板课件制作实例教程

几何画板课件制作实例教程_小学数学篇 几何画板课件制作实例教程 第一章小学数学 1. 1数与代数 实例1 整数加法口算出题器 实例2 5以内数的分成 实例3 分数意义的动态演示 实例4 求最大公约数和最小公倍数 实例5 直线上的追及问题 1.2 空间与图形 实例6 三角形分类演示 实例7 三角形三边的关系 实例8 三角形内角和的动态演示 实例9 三角形面积公式的推导 实例10 长方形周长的动态演示 实例11 长方体的初步认识 实例12 长方体的体积 1.3 统计与概率 实例13 数据的收集与整理 实例14 折线统计图 “几何画板”软件以其动态探究数学问题的功能,为数学教育活动施行“动手实践、自主探索、合作交流”的学习方式提供了可能性。经笔者们的尝试,她除了

可在小学数学中“空间与图形”这个学习领域中大展手脚,在“数与代数”、“统计与概率”这两个学习领域中,同样也能折射出其独特的魅力光芒。 小学生的数学学习心理的特点决定其数学学习活动需以直观的形象作为探索数学问题的支撑,以操作、实验作为主要途径之一。因此,本章实例课件的制作以几何画板善于表现数学思想的特色积极渗透各种数学思想,注重以课件所蕴含的思想推行“致力于改变学生的学习方式”教学策略,同时也努力实现学生个体在自主操作与学习课件中充分进行“观察、实验、猜测、验证、推理与交流”等数学活动,促使学生在课件的引导下亲身体验“做数学”,实现数学的“再创造”。 1. 1数与代数 培养学生的数感与符号感是“数与代数”学习内容的一个很重要的目标,而采用几何画板能较轻易地实现“数形结合”。以“数形结合”的方式可帮助小学生体会数与运算的意义以及其所含的数学思想。因此,本节实例课件的设计体现了促进学生经历从实际问题到抽象出数与运算的全过程的观念,同时也充分展露了几何画板善于以直观的图形表现抽象的数学思想的特点。 实例1 整数加法口算出题器 【课件效果】 新课程标准规定:小学一年级学生要求熟练掌握20以内整数的口算加减法。编制“口算出题器”类课件,以往可能要在可编程类软件的平台上进行,现在却可以利用几何画板的参数【动画】功能,较轻易地实现。 如图1-1所示,单击按钮,出示随机加法算式,单击按钮,显示当前算式的结果。本实例适用于整数加法意义的教学、20以内的加法口算测试等,显示了信息技术与学科整合的优势。 整数加法口算出题器 4+8= 图1.1 图1-1 课件效果图 【构造分析】 1.技术要点 υ几何画板软件参数【动画】的运用 υ【带参数的迭代】的运用 2.思想分析

相关文档
最新文档