文档库 最新最全的文档下载
当前位置:文档库 › VC++实验七 MFC 定时器编程实验

VC++实验七 MFC 定时器编程实验

VC++实验七 MFC 定时器编程实验
VC++实验七 MFC 定时器编程实验

实验七MFC 定时器编程实验

一、预备知识

1、定时器消息

定时器时间到时,向窗口发送WM_TIMER 消息,应用程序窗口通过处理该消息来对定时器事件进行处理,该消息的参数说明如下:

WM_TIMER

wTimerID = wParam; // 定时器标识符

tmprc = (TIMERPROC *) lParam; // 定时器回调函数的地址

其中,定时器回调函数在使用SetTimer 启动定时器时指定,如果没有指定定时器回调函数则可直接通过消息映射处理WM_TIMER 消息。

2、启动定时器

使用SetTimer 函数创建一个定时器,并制定超时时间,然后启动定时器。该函数说明如下:

UINT SetTimer(

UINT nIDEvent, // 定时器标识符

UINT nElapse, // 定时时间,单位是毫秒

void (CALLBACK EXPORT* lpfnTimer) // 定时器回调函数地址

(HWND, UINT, UINT, DWORD)

);

示例代码:

SetTimer(1,200,NULL);

3、销毁定时器

定时器在不使用时要使用KillTimer 函数进行销毁,该函数说明如下:

BOOL KillTimer(

int nIDEvent // 定时器标识符

);

示例代码:

KillTimer(1);

二、实验目的

(1) 掌握Visual Studio 开发环境调试程序的方法;

(2) 熟练使用类向导进行消息映射;

(3) 掌握MFC 编程模式中定时器的使用方法。

三、实验内容

设计一个窗口,在窗口中间位置绘制一个红色粗实线的矩形,并用交替使用三

种不同样式的画刷填充矩形的内部,每次刷新的时间间隔为1.0 秒。

单击鼠标左键启动定时器,单击鼠标右键停止定时器。

四、编程实验部分程序及运行结果

(1) 列出定时器操作相关的程序清单

1、WM_PAINT消息的处理

//OnPaint()函数实现用自定义画笔绘制一个矩形

//并调用相应的画刷填充图形内部

void CDemoDlg::OnPaint()

{

CPaintDC dc(this);

CPen Pen, *pOldPen;

CBrush Brush;

Pen.CreatePen(PS_SOLID, 6, RGB(255, 0, 0));

//m_nStyle用于选择不同的画刷填充图形内部

switch (m_nStyle)

{

case 0:

Brush.CreateSolidBrush(RGB(0,0,255));

break;

case 1:

Brush.CreateHatchBrush(HS_DIAGCROSS, RGB(0, 255, 255));

break;

case 2:

Brush.CreateSolidBrush(RGB(0, 255, 0));

break;

default:

break;

}

pOldPen = dc.SelectObject(&Pen);

dc.SelectObject(&Brush);

dc.Rectangle(100, 50, 450, 260);

dc.SelectObject(pOldPen);

}

2、WM_LBUTTONDOWN消息的处理

//当按下鼠标左键时启动定时器

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

{

// TODO: 在此添加消息处理程序代码和/或调用默认值

SetTimer(1, 1000, NULL);

CDialog::OnLButtonDown(nFlags, point);

}

3、WM_RBUTTONDOWN消息的处理

//当按下鼠标右键是取消定时器

void CDemoDlg::OnRButtonDown(UINT nFlags, CPoint point)

{

// TODO: 在此添加消息处理程序代码和/或调用默认值

KillTimer(1);

CDialog::OnRButtonDown(nFlags, point);

}

4、WM_Timer消息的处理

//当按下鼠标右键是取消定时器

void CDemoDlg::OnRButtonDown(UINT nFlags, CPoint point) {

// TODO: 在此添加消息处理程序代码和/或调用默认值

KillTimer(1);

CDialog::OnRButtonDown(nFlags, point);

}

//定时器消息处理函数

void CDemoDlg::OnTimer(UINT_PTR nIDEvent)

{

// TODO: 在此添加消息处理程序代码和/或调用默认值

//判断m_nStyle的值,实现用不同颜色的画刷填充图形

if (m_nStyle < 2)

{

m_nStyle++;

}

else

{

m_nStyle = 0;

}

//刷新图形

InvalidateRect(NULL);

CDialog::OnTimer(nIDEvent);

}

5、实验结果

五、实验总结

(1) 总结定时器消息编程的步骤,以及程序设计过程中需要注意的问题定时器消息WM_TIMER消息:

消息号:WM_TIMER

字参数:wParam ==》定时器标识

长字参数:(TIMERPROC *) lParam==》定时器回调函数地址

CWnd::SetTimer()功能:设置定时器

UINT SetTimer(

UINT nIDEvent, // 定时器标识符

UINT nElapse,

void (CALLBACK EXPORT* lpfnTimer)

(HWND, UINT, UINT, DWORD)

);

CWnd ::KillTimer()功能:销毁定时器

BOOL KillTimer(

int nIDEvent // 定时器标识符

);

消息映射:

1、消息映射宏

ON_MESSAGE(WM_TIMER,OnTimer)

2、消息处理函数声明

LRESULT OnTimer(WPARAM wParam,

LPARAM lParam) ;

3、消息处理函数实现

LRESULT CDrawWnd::OnTimer(

WPARAM wParam, LPARAM lParam)

{

return 0;

}

(2) 总结实验的心得体会,实验中遇到的困难以及解决的方法等

通过本次实验编程,我学习掌握了从类向导中直接添加消息映射的步骤和方法,了解到通过类向导可以直接在项目中直接添加消息映射,添加处理函数,添加命令,添加成员变量等,使用类向导为我们的编程带来了许许多多的方便,省去了手动添加消息映射,添加成员函数的麻烦。通过本次实验,我重点学习和掌握了MFC 定时器编程,学习到定时器的消息号,及其字参数和长字参数所代表的含义,掌握了设置定时器SetTimer()和销毁定时器KillTimer()的两个定时器有关的函数,掌握两个函数的使用方法。通过此次的编程实验也让我巩固了以前学过的知识,使我能够更加清楚消息处理的过程及消息的处理,是我对MFC应用程序编程有了更加深刻的认识。

VC++实验报告书

一、设计方案及功能描述 图像平滑往往使图像中的边界、轮廓变的模糊,为了减少这类不利效果的影响,这就需要利用图像鋭化技术,使图像的边缘变的清晰。图像銳化处理的目的是为了使图像的边缘、轮廓线以及图像的细节变的清晰,经过平滑的图像变得模糊的根本原因是因为图像受到了平均或积分运算,因此可以对其进行逆运算(如微分运算)就可以使图像变的清晰。 对图像f(x,y),在点(x,y)处的梯是一个矢量 G=[f(x,y)]=[?f ?x ,?f ?y ] 梯度的方向在函数f(x,y)最大变化率的方向上,梯度的幅度G M[ f(x,y)]可由下式给出: G M[ f(x,y)]=(?f ?x )2+(?f ?y )2 由上式可知,梯度的数值是f(x,y)在其最大变化率的方向上的单位距离所增加的量。 对数字图像,微分?f ?x 和?f ?y 可用差分近似。差分运算近似后的梯度表达式为 G M[ f(x,y)]=f x,y?f(x+1,y)2+f x,y?f(x,y+1)2 对于图像f(x,y),上式的计算量很大,因此在实际计算中常用绝对值代替平方和平方根运算,梯度模值近似为 运用双方向一次微分运算,算出梯度后用梯度值替代该点的灰度值。在图像的最后一行或最后一列无法计算像素梯度时,一般用前一行或前一列的梯度值近似代替。 为了在不破坏图像背景的前提下更好地增强边缘,也可以对上述直接用梯度值代替灰度值的方法进行改进,即利用门限判断梯度锐化方法。具体公式如下: G M[ f(x,y)]= G M f x,y+100, G M[ f(x,y)]≥T f x,y,其他 对于图像而言,物体与物体之间,背景和背景之间的梯度变化一般很小,灰度变化较大的地方一般集中在图像的边缘上,也就是物体和背景交界的地方,当设定一个合适的阈值T,G M[ f(x,y)]大于等于T就认为该像素点处于图像的边缘,对梯度值加上100,以使边缘变亮,而对于G M[ f(x,y)]小于T就认为像素点是同类像素点。这样就增加了物体的边界,又同时保留了图像的背景的原来的状态。

VC++实验报告1

实验一、HelloWorld在VC上的实现 姓名:郭殷蓉学号:E10700102 班级:10数媒1班 1.1实验目的 ●掌握Windows程序基本的运行原理。 ●学会编写简单的Windows程序。 1.2实验平台 ●Windows XP professional操作系统。 ●VC6.0集成开发环境。 1.3实验内容 ●用Windows API(SDK)实现图形化HellowWorld程序。 ●用MFC类库实现图形化HellowWorld程序。 1.4实验原理 ●Windows操作介绍 Windows是一种基于图形界面的多任务操作系统。对于普通用户来说,Windows图形化界面友好、操作简单,用户不需要花费长时间学习如何使用计算机和新程序,因为所有的Windows应用程序都具相近的外观和感觉;对于程序员来说,标准化的图形用户界面来自于Windows构造菜单和对话框的内置程序,这些工作由Windows处理,与应用程序无关,使程序员可以编写出易于用户操作的程序。 ●Windows编程模型 Windows程序采用如下图所示的事件驱动编程模型,应用程序通过处理操作系统发送出来的消息来响应事件。消息处理是所有Windows应用程序的的核心。Windows程序的进入点是WinMain函数,但大多时候操作是在成为窗口过程的函数中进行的。窗口过程函数处理发送给窗口的消息。WinMain创建该窗口并进入消息循环,即获取消息或将其调度给窗口过程。消息被检索之前处于消息队列中等待。 Windows定义了成百上千个不同的消息类型。大多数消息的开始字符为“WM”并带有下划线; 操作系统是通过消息机制(Message)来实现将事件传递给应用程序的。操作系统将每个事件都包装成一个称为消息的结构体MSG来传递给应用程序(详见MSDN)。 操作系统把它所能够完成的功能以函数的形式提供给应用程序使用,应用程序对这些函数的调用就叫做系统调用,这些函数的集合就是Windows操作系统提供给应 用程序编程的接口(Application Programming Interface),简称Windows API(C函数)。

如何写vc实验报告

如何写vc实验报告 篇一:VC++实验报告(2) VC++实验报告 班号:0904101 学号:090410123 姓名:仲维祎 实验一VC++开发环境的熟悉和C++基础知识实验 一、实验目的 1. 掌握C++语言的特点。 2. 掌握C++的各种数据类型及基本运算。 3. 掌握C++各种控制结构及使用技巧。 4. 掌握C++的函数、数组、指针的相关概念和使用方法。 5. 灵活运用C++相关基础知识进行综合程序设计。 6. 回顾面向过程程序设计方法。

7. 熟悉Visual C++的开发环境 8.掌握用应用程序向导创建一个控制台应用项目的方法。 9.掌握源代码文件的新建、打开、保存和关闭等基本操作。 10.掌握Visual C++项目的编译、连接和执行。 11.掌握代码简单语法错误修正和调试的一般过程。 二、实验知识点概念 注意C++中同C的不同之处,包括数据类型,输入输出等相关的差异。 三、实验题目 1. 采用插入排序法,输入10个整数按升序排序后输出。要求编写一个通用的插入排序函数,它带有三个参数,第一个参数是含有n个元素的数组,这n个元素已按升序排序;第二个参数给出当前数组中元素个数;第三个参数是要插入的整数。该函数的功能是将一个整数插入到数组中,然后进行排序。另外还需要一个用于输出数组元素的函数,要求每一行输出5个元素。 2. 有5个学生,每个学生的数据结构包括学号、姓名、年龄、C++成绩,数学成绩和英语成绩、总平均分,从键盘输入5个学生的学号、姓名、3门课的成绩,计算3门课的总平均分,最后将5个学生的数据输出。要求各个功能用函数实现。

3. 对程序加入断点简单调试。 四、程序思路 五、程序源代码 1:代码如下 #include using namespace std; void (char iArray,int nCount,int nNumber) { int i=nCount-1,j=0; char *iArray2; iArray2=iArray; *(iArray2+nCount)=nNumber;//多分配一个空间给传入数据for(i;i=0;i--) { if(nCount==1) *iArray=nNumber; if (*(iArray2+i)*(iArray+i+1))

VC实现贪吃蛇的实验报告

题目:利用VC++实现贪吃蛇小游戏

一、题目:利用VC++实现贪吃蛇小游戏 利用VC++实现的贪吃蛇小游戏更加注重可视化。一条蛇在封闭的围墙内,在围墙内会随机出现一个食物,通过键盘上的W S A D四个键控制它向上,下,左,右四个方向移动。当蛇头撞到食物时表示将食物吃掉,这时蛇身增长一节,得分加一。接着随机生成食物,等待被蛇吃掉。如果在移动过程中撞到墙壁或者自己的身体,则游戏结束。游戏过程中,可以在菜单中选择暂停或者结束游戏,对游戏进行暂停或者退出。

二、编程要点(或基本思路、算法分析与说明): 本次游戏设计包含两大模块,一个模块是贪吃蛇游戏本身算法的设计,完成了贪吃蛇的食物产生,获取食物,蛇的移动等功能。另一个模块是利用MFC完成贪吃蛇的可视化显示,产生了一个对话框,在对话框可以控制游戏及游戏的显示。 1.贪吃蛇游戏算法设计包括: <1>果实出现的设计思路: (1)采用随机数生成果实出现坐标 (2)判断当前生成的果实是否在贪吃蛇身体范围内。 (3)如果在,重新生成直到不在为止。如果不在,则把坐标位置返回给调用对象。 <2>贪吃蛇更新的算法设计 (1)接收玩家按下的方向键消息,并保存到方向变量中。 (2)定义一个时间定时器,用来控制蛇运动的速度。 (3)当每次时间间隔到达时,则根据方向变量来更新贪吃蛇curr(即贪吃蛇身体)向量。 (4)判断curr向量的第一个元素中的坐标数据是否碰到边界或者蛇身,如果有,则游戏结束。否则,进行下一步。 (5)判断curr向量的第一个元素中的坐标数据是否与当前果实重合,如果有,表示贪吃蛇已经吃到果实。这时就向贪吃蛇curr向量添加一个元素,并重新生成一个果实。 (6)吃到食物后,得分会同步增加。 2.利用MFC完成贪吃蛇的可视化显示: 首先初始对话框,完成游戏的整体框架的显示。然后游戏玩家在菜单栏里选择开始,暂停,结束等,控制游戏状态。游戏开始后,玩家通过键盘上的消息控制蛇的运动。在函数DrawSnake(CDC *pDC,Snake snake),和DrawFood(CDC *pDC,SnakeFood f)完成对蛇和食物的重绘,从而显示出蛇的运动和对食物的获取。在OnPaint()函数中完成得分和游戏操作提示的显示。 本次游戏设计的主要功能函数如下: OnGameStart()(游戏开始函数), OnGamePauseStart()(游戏暂停函

VC++实验报告(1,2,3)

VC++实验报告 班号:________ 学号:________ 姓名:________

实验1 VC++开发环境的熟悉和Windows编程基础 一、实验目的 1.熟悉Visual C++的开发环境 2. 掌握用应用程序向导创建一个控制台应用项目的方法。 3. 掌握源代码文件的新建、打开、保存和关闭等基本操作。 4.掌握用应用程序向导创建一个Windows应用项目的方法 5. 掌握Visual C++项目的编译、连接和执行 6. 掌握代码简单语法错误修正和调试的一般过程 7.掌握Windows程序运行基本原理。 8. 掌握使用SDK(Windows API)方式编写Windows应用程序方法。 9. 掌握用应用程序向导创建一个Windows应用项目的方法。 二、实验知识点概念 Visual C++是Microsoft公司推出的目前使用极为广泛的基于Windows平台的可视化编程环境。由于其功能强大、灵活性好、完全可扩展以及具有强有力的Internet支持,在各种C++语言开发工具中脱颖而出,成为目前较为流行的C++语言集成开发环境。 Windows程序设计不同于DOS下的程序设计,它是一种事件驱动的程序设计模式,主要是基于消息的。Windows SDK编程主要采用C++/C语言和Windows API进行Windows 应用程序设计。 三、实验题目 1. 控制台应用程序编写 术语:“控制台应用程序”是一个在仿DOS窗口(控制台窗口)中运行的基于字符的程序,控制台窗口将成为其标准输入和输出装置。由于这种模式的应用程序比Windows程序简单,我们先选择利用Visual C++来建立这样一个应用,这样使得我们可以将精力先投入到学习使用C++编程语言,而不需要把过多的精力投入到学习复杂的Windows编程中去。 创建一个控制台应用,输入以下代码: #include class Vehicle { public: Vehicle(float speed,int total) { speed = speed; total = total; cout<<”constructor is called!” <

VC实验报告

黑龙江大学 实验报告 黑龙江大学教务处

实验名称:菜单、工具栏和状态栏的使用 实验目的 1 熟悉VC++编程环境 2 熟悉VC++框架程序 3 掌握基本程序调试技术 实验类型 // 设计型 实验环境 // 编程环境:Visual C++ .net // 运行环境:Windows XP等 实验要求 1.掌握菜单栏的使用,包括命令函数和命令更新函数的使用。 2.掌握快捷菜单的使用 3.掌握工具栏和状态栏的使用 4.在框架菜单栏上添加菜单项,并在其下拉菜单中定义下级子菜单。子菜单包括性别(男、女)、课目(数学、语文、英语)和成绩(优、良、中、及格和不及格)。 5.单击显示菜单项,可将上述菜单选项内容显示出来。 实验步骤 int Grade1; //成绩等级的变量 bool Math; //数学项的变量 bool English; //英语项的变量 bool Chinese; //语文项的变量 TCHAR sex[5]; //性别项的变量 CString str; 1、设计

先定义属性,性别,姓名,成绩单选,学科多选,显示进行图标设置和关联,右键事件菜单注释,进行新的菜单,关联并编辑。 2、编码 void CMy20156660yzn3View::OnContextMenu(CWnd* /* pWnd */, CPoint point) { //#ifndef SHARED_HANDLERS //theApp.GetContextMenuManager()->ShowPopupMenu(IDR_POPUP_EDIT, point.x, point.y, this, TRUE); //#endif CMenu menu; menu.LoadMenu(IDR_MENU1); menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this); } void CMy20156660yzn3View::OnContextMenu(CWnd* /* pWnd */, CPoint point) { //#ifndef SHARED_HANDLERS //theApp.GetContextMenuManager()->ShowPopupMenu(IDR_POPUP_EDIT, point.x, point.y, this, TRUE); //#endif CMenu menu; menu.LoadMenu(IDR_MENU1); menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this); } 右键事件菜单 void CMy20156660yzn3View::OnShow() { // TODO: 在此添加命令处理程序代码 str = _T(""); str = str + name; str = str + _T(",性别为"); str = str + sex; str = str + _T(","); if (Math == true) str = str + _T("数学"); if (Chinese == true) str = str + _T("语文"); if (English == true) str = str + _T("英语");

HP-VC-FlexFabric实验报告

HP VC FlexFabric应用于VMware vSphere 4.1环境的基本配置实验 说明:本实验仅是VC FlexFabric用于VMware的功能测试,包括FCoE和Boot From SAN,不包含复杂网络配置。关于VC FlexFabric配置请参考其cookbook,链接如下: Hardware:BLc7000 一个(2OA +4PS +10FAN) BL460c G7一个(1P+6G+300G HDD) HP VC FlexFabric 10Gb/24-port Module一个 Brocade 8/12 SAN SW for HP BLc 一个 Cisco 3020 for HP BLc 一个 HP EVA4400 一个 OS:VMware vSphere 4.1 Firmware:OA—3.21 VCM—3.15 ILO 3—1.15 Topology:

1.关于HP VC FlexFabric模块: 要使用CAN网卡和配置VC FlexFabric需要先了解下面3个图的意思:

2.实验过程: 注意-----在进行实验之前需要将先后将OA、VC FlexFabric的firmware升级: OA要升级为3.0以上;VC FlexFabric必须为3.15,否则不具备配置FcoE的功能。 首先检查VC FlexFabric的firmware版本: VCM对浏览器的版本有一定要求,如果版本不符合要求有可能无法进行配置:

接下来看一下在OA里面BL460 G7的有关情况: 下图是未对VC FlexFabric配置前,刀片的上面有一个叹号 注意未配置VC FlexFabric前,网卡的信息:

VC++程序设计课内实验报告

实验报告 课程名称 VC++程序设计 专业班级电子0942 姓名 学号 电气与信息学院 和谐勤奋求是创新 实验教学考核和成绩评定办法 1.课内实验考核成绩,严格按照该课程教学大纲中明确规定的比重执行。实验成绩不合格者,不能参加课程考试,待补做合格后方能参加考试。 2.单独设立的实验课考核按百分制评分,考核内容应包括基本理论、实验原理和实验。3.实验考核内容包括:1)实验预习;2)实验过程(包括实验操作、实验记录和实验态度、表现);3)实验报告;权重分别为、、;原则上根据上述三个方面进行综合评定。学生未取得1)和2)项成绩时,第3)项成绩无效。 4.实验指导教师应严格按照考核内容分项给出评定成绩,并及时批改实验报告,给出综合成绩,反馈实验中出现的问题。实验成绩在教师手册中有记载。 实验报告主要内容 一.实验目的 二.实验仪器及设备 三.实验原理 四.实验步骤 五.实验记录及原始记录 六.数据处理及结论 七.实验体会(可选项) 注:1. 为了节省纸张,保护环境,便于保管实验报告,统一采用A4纸,实验报告建议双面打印(正文采用宋体五号字)或手写,右侧装订。 2. 实验类别指验证、演示、综合、设计、创新(研究)、操作六种类型实验。 3. 验证性实验:是指为了使学生巩固课程基本理论知识而开设的强调演示和证明,注重实验结果(事 实、概念或理论)的实验。 4. 综合性实验:是指实验内容涉及本课程的综合知识或本课程相关的课程知识的实验。 5. 设计性实验:是指给定实验目的、要求和实验条件,由学生自行设计实验方案并加以实现的实验。

一、实验目的 1.进一步加深对类和对象的理解。 2.掌握类的构造函数和析构函数的概念、意义和使用方法。 3.掌握重载构造函数的含义和使用。 4.编写一个较为复杂的类和对象的应用程序。 二、实验内容 1.设计一个程序,定义一个矩形类,包括数据成员和函数成员。要求有构造函数、析构函数,还有一个成员函数area( )用来计算并显示矩形的面积,并编写main函数进行测试。程序:# include<> # include<> class Rect { public: Rect(int l, int w); ~Rect(); int Area(); private: int nLength; int nWidth; }; Rect::Rect(int l, int w) {cout<<"executing constructor..."<

vc++实验报告

计算机与信息技术学院 综合性、设计性实验报告实验项目:熟悉重载函数的二异性错误

(熟悉重载函数的二异性错误) 一、实验目的: 1、熟悉重载函数的二异性错误。 2、熟悉基类成员调用的二义性错误。 3、进一步加深对二义性的理解。 4、在此基础上,进一步掌握重载函数和基类成员调用函数的综合应用。 二、实验仪器或设备:微型计算机。 三、总体设计 实验内容:总结重载函数的二义性错误和基类成员调用的二义性错误,并找到正确的解决方法。 四、实验步骤: 实验分三个阶段完成: 1、准备具有而异性错误的重载函数。 2、将这些程序进行编译,显示错误。 3、找到正确的解决方法。 在函数重载带有默认参数时要避免二义性 程序一: 编译结果: 分析: 1,当函数带有默认参数时,在声明的时候如果带了默认参数的值,那么在定义时就不应该再带,否则就会出现“redefinition of default parameter 3”这样的错误提醒。 2,由于使用函数的重载,在函数的调用时很方便,在这个程序中,两种形式的

sum函数都称为sum的“重载函数”。但是,由于在这个程序中,函数的重载带有默认参数,重载函数的参数个数和参数类型都相同,在调用sum(2,3)时,编译器无法准确的确定应该调用哪一个函数,因此会出现错误提示“error c2668’sum’:ambiguous call to overloaded function”。因此,当重载函数带有默认值的时候,注意应避免二义性。 程序二: 编译结果: 分析: 这个程序较上一个程序而言,解决了第一个问题,即在声明和定义的时候重复输入默认参数的值。 程序三: 运行结果:

VC,,实验报告

实验报告 班级:网络z091 学号:094552 姓名:李丹 一、 1. 2. 二、 1. 2. 三、 1. 实验目的掌握数据库的基本知识、odbc程序设计掌握列表框和组合框控件实验 内容在vc++6.0中编写程序数据库应用程序基本设计和购物表设计编程序数据库 cstring m_chax; ⑴初始化: { m_list.insertcolumn(0,num); m_list.insertcolumn(1,sex); m_list.insertcolumn(2,age); m_list.insertcolumn(3,wage); m_list.setcolumnwidth(0,100); m_list.setcolumnwidth(1,100); m_list.setcolumnwidth(2,100); m_list.setcolumnwidth(3,100); m_set.open(afx_db_use_default_type,sql);//打开记录集 int i=0; while(!m_set.iseof()) { m_list.insertitem(i,m_set.m_num); m_list.setitemtext(i,1,m_set.m_sex); cstring str; str.format(%d,m_set.m_age); m_list.setitemtext(i,2,str); m_list.setitemtext(i,3,m_set.m_wage); m_set.movenext(); i++; } m_set.close(); } ⑵“添加”调出新对话框(idd_dialog1) 及成员变量(cstring m_num; int m_sex; cstring m_wage; int m_age;) { if(dlg.domodal()==idok) {

VC++实验报告

安康学院电子与信息工程系实验报告 一、实验目的: 掌握Visual Studio集成环境使用的基本方法。 二、实验内容 实验代码: // ConsoleApplication1.cpp : 定义控制台应用程序的入口点。 // #include"stdafx.h" #include using namespace std; int main() { int temp; int a[10] = { 9,2,24,35,1,99,67,23,0,33 }; for (int i = 0;i <10;i++) { for (int j = i + 1;j < 10;j++) { if (a[i]>a[j]) { temp = a[i]; a[i] = a[j]; a[j] = temp; } } cout << a[i] << endl; } system("pause"); return 0; } 实验结果截图: 2.创建一个“基于对话框”的MFC应用程序,创建另一个“基于单文档”的MFC应用程序,比较这两种程序对应项目资源的相同和不同之处。

(1)选择主菜单上的“文件”—“新建”—“项目”菜单项,打开“新建项目”对话框在项目类型框中选择Visual C++,在最右边选择MFC应用程序,点击下一步。 图2-1新建MFC应用程序 (2)在MFC 应用程序向导中选择“基于对话框”点击下一步默认选项直到完成。 图2-2 MFC应用程序向导

图2-3 MFCApplication1解决方案资源管理器 图2-4 MFC框架程序MFCApplication1的运行结果 (3)选择主菜单上的“文件”—“新建”—“项目”菜单项,打开“新建项目”对话框在项目类型框中选择Visual C++,在最右边选择MFC应用程序,点击下一步。在MFC 应用程序向导中选择“基于单文档”点击下一步默认选项直到完成。

水果中维生素C含量测定实验报告

水果中维生素C含量测定 (一)维生素C有关概念介绍 ①基本定义 ②功效 ③营养价值 ④适宜人群与正常需求 ⑤VC与癌症 (二)研究活动原理与准备 ①实验原理 ②试剂和原料 ③实验步骤 (三)研究活动过程与总结 ①西瓜的取样及其VC含量测定 ②柑橘的取样及其VC含量测定 ③葡萄的取样及其VC含量测定 ④香蕉的取样及其VC含量测定 ⑤草莓的取样及其VC含量测定 ⑥分析实验误差与心得体会 一.维生素C有关概念介绍

1.基本定义 维生素C(Vitamin C ,Ascorbic Acid)又叫L-抗坏血酸,是一种水溶性维生素。食物中的维生素C被人体小肠上段吸收。一旦吸收,就分布到体内所有的水溶性结构中,正常成人体内的维生素C代谢活性池中约有1500mg维生素C,最高储存峰值为3000mg维生素C。正常情况下,维生素C 绝大部分在体内经代谢分解成草酸或与硫酸结合生成抗坏血酸-2-硫酸由尿排出;另一部分可直接由尿排出体外。 2.功效 1、胶原蛋白的合成:胶原蛋白的合成需要维生素C参加,所以VC缺乏,胶原蛋白不能正常合成,导致细胞连接障碍。人体由细胞组成,细胞靠细胞间质把它们联系起来,细胞间质的关键成分是胶原蛋白。胶原蛋白占身体蛋白质的1/3,生成结缔组织,构成身体骨架。如骨骼、血管、韧带等,决定了皮肤的弹性,保护大脑,并且有助于人体创伤的愈合。 2、治疗坏血病:血管壁的强度和VC有很大关系。微血管是所有血管中最细小的,管壁可能只有一个细胞的厚度,其强度、弹性是由负责连接细胞具有胶泥作用的胶原蛋白所决定。当体内VC不足,微血管容易破裂,血液流到邻近组织。这种情况在皮肤表面发生,则产生淤血、紫癍;在体内发生则引起疼痛和关节涨痛。严重情况在胃、肠道、鼻、肾脏及骨膜下面均可有出血现象,乃至死亡。 3、预防牙龈萎缩、出血:健康的牙床紧紧包住每一颗牙齿。牙龈是软组织,当缺乏蛋白质、钙、VC时易产生牙龈萎缩、出血。维生素C 略带酸性,作为微量营养素被摄入体内,经体内溶解、消化,其酸碱性对人体的影响是微乎其微的,所以不必过份在意它的酸碱性。维生素C有助巩固细胞组织,有助于胶原蛋白的合成,能强健骨骼及牙齿,还可预防牙龈出血,长期服用对牙齿、牙龈无害而且有益。 4、预防动脉硬化:可促进胆固醇的排泄,防止胆固醇在动脉内壁沉积,甚至可以使沉积的粥样斑块溶解。 5、抗氧化剂:可以保护其它抗氧化剂,如维生素A、维生素E、不饱和脂

VC++程序设计实验报告模版

VC++程序设计实验报告模版- 图文 西安科技大学 《VC++程序设计》 实验报告 题目科学计算器院、系(部) 计算机科学与技术学院专业及班级计科1202班学号1208030223 姓名黄朝平日期2014年4月13日 1 题目要求 通过做科学计算器课程设计熟悉VC++2008的操作环境,了解并会使用基于MFC 有关控件,熟悉静态编辑框、单选按钮和Button的使用。从而完成科学计算器的功能 2 功能需求 首先可以生成一个机遇MFC的对话框,可完成基本的加、减、乘、除运算,还可以求对数,求平方,求立方,以及求n次方,并且还可以开平方,开立方,开n次方等功能。 3 总体设计 3.1 系统模块 3.2 系统业务处理流程 给出系统业务处理流程图。

数字模块以及小数点单选钮控件模块其它功能键模块4 详细设计 根据功能模块,详细论述设计过程,给出主要实现代码。 首先打开VC++8.0,建立一个基于MFC的对话框工程,命名为SienceCalculator。为对话框增加按钮,并修改ID。ID标识标题处理函数ID_NUMBER1 1 OnNumberKey ID_NUMBER2 2 OnNumberKey ID_NUMBER3 3 OnNumberKey ID_NUMBER4 4 OnNumberKey ID_NUMBER5 5 OnNumberKey ID_NUMBER6 6 OnNumberKey ID_NUMBER7 7 OnNumberKey ID_NUMBER8 8 OnNumberKey ID_NUMBER9 9 OnNumberKey ID_NUMBER0 0 OnNumberKey ID_NUMBER_Point . OnNumberKey IDC_NUMBER_Inv Inv OnOperationKey IDC_NUMBER_Ln ln OnOperationKey 1 IDC_NUMBER_LBrack IDC_NUMBER_RBrack IDC_NUMBER_Int IDC_NUMBER_Sinh IDC_NUMBER_Sin IDC_NUMBER_Square IDC_NUMBER_Factorial IDC_NUMBER_Dms IDC_NUMBER_Cosh IDC_NUMBER_Cos IDC_NUMBER_Power IDC_NUMBER_OPower IDC_NUMBER_PI IDC_NUMBER_Tanh IDC_NUMBER_Tan IDC_NUMBER_Cubic IDC_NUMBER_OCubic IDC_NUMBER_OpenClose IDC_NUMBER_Exp IDC_NUMBER_Mod IDC_NUMBER_Log IDC_NUMBER_10Power IDC_NUMBER_MC IDC_NUMBER_MR IDC_NUMBER_MS IDC_NUMBER_MAdd IDC_NUMBER_MSub IDC_NUMBER_BackSpace IDC_NUMBER_ClearEnter IDC_NUMBER_Clear IDC_NUMBER_PlusMinus IDC_NUMBER_Sqrt IDC_NUMBER_Divide IDC_NUMBER_Multiply IDC_NUMBER_Add IDC_NUMBER_Subtract IDC_NUMBER_Percent IDC_NUMBER_Derivative IDC_NUMBER_Equal IDC_Degree IDC_Radian IDC_Gradient ( ) Int sinh Sin x2 n! dms cosh cos x y√x π tanh tan x 3 3√x F-E Exp mod log 10 MC MR MS M+ M- ← CE C ± √ / * + - % 1/X = 度弧度梯度OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey

vc实验报告

实验四MFC图形绘制编程实验 一、实验目的 (1)熟悉Visual Studio开发环境; (2)掌握MFC消息映射的操作步骤; (3)掌握MFC图形输出的方法; (4)理解设备环境、画笔、画刷的概念,掌握常用的绘图函数。 二、实验内容 请编写程序,要求如下: (1)定义一支黄色画笔,绘制一条线段; (2)定义一支紫色画笔,绘制一条多段线; (3)定义一支红色画笔,绘制一个正方形,并用适当的画刷填充图形内部;(4)定义一支绿色画笔,绘制一个圆,并用适当的画刷填充图形内部; (5)定义一支蓝色画笔,绘制一个正六边形,并用适当的画刷填充图形内部。 三、实验程序清单 头文件程序: #includ e "afxwin.h" class CDemoWnd:public CFrameWnd { public: CDemoWnd(); ~CDemoWnd(); public: LRESULT OnPaint(WPARAM wParam,LPARAM lParam); DECLARE_MESSAGE_MAP() }; class CDemoApp:public CWinApp { public: BOOL InitInstance(); }; CDemoApp ThisApp; 源文件程序: #includ e "Demo.h" CDemoWnd::CDemoWnd() { } CDemoWnd::~CDemoWnd() { }

BEGIN_MESSAGE_MAP(CDemoWnd,CFrameWnd) ON_MESSAGE(WM_PAINT,OnPaint) END_MESSAGE_MAP() LRESULT CDemoWnd::OnPaint(WPARAM wParam,LPARAM lParam) { CPaintDC dc(this); CPen Pen; Pen.CreatePen(PS_SOLID,10,RGB(255,255,0));//yell ow dc.SelectObject(&Pen); dc.MoveTo(50,50);//线 dc.LineTo(100,100); CPen Pen2; Pen2.CreatePen(PS_SOLID,4,RGB(255,0,255)); dc.SelectObject(&Pen2); CPoint point[3]; point[0] = CPoint(100,100); point[1] = CPoint(200,100); point[2] = CPoint(200,300); dc.Polyline(point,3);//多段线 CPen Pen3; Pen3.CreatePen(PS_SOLID,4,RGB(255,0,0)); dc.SelectObject(&Pen3); dc.SelectStockObject(GRAY_BRUSH); dc.Rectangle(400,400,600,600); CPen Pen4; Pen4.CreatePen(PS_SOLID,4,RGB(0,255,0)); dc.SelectObject(&Pen4); dc.SelectStockObject(GRAY_BRUSH); dc.Ellipse(800,400,1000,600); CPen Pen5; Pen5.CreatePen(PS_SOLID,4,RGB(0,0,255)); dc.SelectObject(&Pen5); dc.SelectStockObject(GRAY_BRUSH);

vc图书馆管理系统实验报告

长安大学 VC++图书馆管理系统设计课程名称:Visual C++教程 题目:图书馆管理系统 专业班级:自动化4班 姓名:褚惠芬,姜毅佳 学号:

1绪论 需求背景 随着科学技术的不断提高,计算机科学日渐成熟,作为计算机应用的一部分,使用计算机对图书信息进行管理,具有手工管理所无法比拟的优点。图书管理系统的开发是一个老生常谈的问题,以其作为数据库开发的示例不仅是因为它的开放性,而且还因为它是一个开放的系统,比较成熟。 用计算机制作的图书信息管理系统还可以通过功能强大的Internet网及时的向读者发布图书的最新动态,因此,开发这样一套管理软件成为很有必要的事情。而今,这类相关的管理系统已广泛的应用在各行各业,成为各行业提高相关管理效率的重要手段。图书信息管理系统也在日益广泛地应用于各图书馆的管理中,大大提高了图书管理的相关管理效率,其在图书管理中所起的作用是显而易见的。 1.1.1开发目标 本次课题为图书信息管理系统,其主要包含图书基本信息和图书借阅系统,能进行图书信息的录入、读者登记、查询等功能。该软件为学校图书信息管理系统软件,是鉴于目前学校图书数剧增,图书信息呈爆炸性增长的前提下,图书馆对图书信息管理的自动化与准确化的要求日益强烈的背景下构思出来的,该软件设计完成后可用于所有中小型图书馆的图书信息的管理。 1.1.2开发意义 目前社会上信息管理系统发展飞快,各个企事业单位都引入了信息管理软件来管理自己日益增长的各种信息,图书管理系统也是有了很大的发展,商业化的图书信息管理软件也不少,但本系统完全独立开发,力求使系统功能简洁明了,但功能齐全且易于操作。

基于VC++ 6.0的串口通信实验报告

网络与通信实验报告 题目:串口通行实验班级:0309103 学号:030910338 姓名:田静 指导老师:付大丰 日期:2012-10-21

一、实验要求 把两台计算机的串口通过串口线连在一起,通过串口实现两台计算机通讯。可以利用高级语言、C语言编程实现,要求程序界面友好,有发送和接收功能,其接收和发送内容可在屏幕上显示。 二、实验原理 串口通讯把数据的字节分解成单个的二进制比特流依次传输,其结构简单, 连接线少,应用非常广泛。实现串口通信的方法很多。如:利用标准通信函数实现串口通信、利用API实现串口通信和利用ActiveX控件实现。 本文主要采用ActiveX控件Microsoft CommunicationsControl(MSComm)编程,Windows平台先进的ActiveX技术使得对串口编程不再需要处理烦琐的细节。利用已有的AxtiveX控件,只需要编写少量的代码,就可以轻松高效地完成任务。 以下对ActiveX控件属性进行简单介绍,在ClassWizard中为新创建的通信控件定义成员对象(CMSComm m_comm),通过该对象便可以对串口属性进行设置,MSComm控件共有27个属性,这里只介绍其中几个常用属性: CommPort:设置并回通讯端口号,缺省为COMl。 Settings:以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。 PortOpen:设置并返回通讯端口的状态,也可以打开和关闭端口。 Input:从接收缓冲区返回和删除字符。 Output:向发送缓冲区写一个字符串。 InputLen:设置每次Input读入的字符个数,缺省值为0,表明读取接收缓冲区中的全部内容。 InBufferCount:返回接收缓冲区中已接收到的字符数,将其置0可以清除接收缓冲区。 InputMode:定义Input属性获取数据的方式(为0:文本方式;为1:二进制方式)。 RThreshold和SThreshold:表示在OnComm事件发生之前,接收缓冲区或发送缓冲区中可以接收的字符数。 三、实验步骤 1、建立应用工程 启动VC++6.0,创建一个基于对话框的MFC应用程序项目,选择Project菜单下Add to Project子菜单中的Components and Controls选项,在弹出的对话框中双击Registered ActiveX Controls项,则所有注册过的ActiveX控件出现在列表框中。选择Microsoft Communications Con—trol version 6.0,单击insert 按钮即可将通信控件插入该工程。添加该控件到对话框中,设置控件ID号为IDC _MSCOMM. 2、添加界面控件 将对话框中的按钮“取消”删除,将“确定”按钮改为“退出”。在对话框中添加适当的界面控件。本实验中需添加的标注用的静态控件、用于选择串口和设置波特率的组合框分别设置控件ID号为IDC_COMBO_SELECT和IDC _COMBO_BTL SET、添加控制开始发送/接收按钮控件并设置控件ID号为IDC_BUTTON_START,添加用于输入发送数据和输出接收数据的编辑框并设置控件ID号为IDC_EDIT_SEND

相关文档