实验教学VC60上机操作指南.docx

上传人:b****1 文档编号:14481910 上传时间:2023-06-23 格式:DOCX 页数:65 大小:1.34MB
下载 相关 举报
实验教学VC60上机操作指南.docx_第1页
第1页 / 共65页
实验教学VC60上机操作指南.docx_第2页
第2页 / 共65页
实验教学VC60上机操作指南.docx_第3页
第3页 / 共65页
实验教学VC60上机操作指南.docx_第4页
第4页 / 共65页
实验教学VC60上机操作指南.docx_第5页
第5页 / 共65页
实验教学VC60上机操作指南.docx_第6页
第6页 / 共65页
实验教学VC60上机操作指南.docx_第7页
第7页 / 共65页
实验教学VC60上机操作指南.docx_第8页
第8页 / 共65页
实验教学VC60上机操作指南.docx_第9页
第9页 / 共65页
实验教学VC60上机操作指南.docx_第10页
第10页 / 共65页
实验教学VC60上机操作指南.docx_第11页
第11页 / 共65页
实验教学VC60上机操作指南.docx_第12页
第12页 / 共65页
实验教学VC60上机操作指南.docx_第13页
第13页 / 共65页
实验教学VC60上机操作指南.docx_第14页
第14页 / 共65页
实验教学VC60上机操作指南.docx_第15页
第15页 / 共65页
实验教学VC60上机操作指南.docx_第16页
第16页 / 共65页
实验教学VC60上机操作指南.docx_第17页
第17页 / 共65页
实验教学VC60上机操作指南.docx_第18页
第18页 / 共65页
实验教学VC60上机操作指南.docx_第19页
第19页 / 共65页
实验教学VC60上机操作指南.docx_第20页
第20页 / 共65页
亲,该文档总共65页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

实验教学VC60上机操作指南.docx

《实验教学VC60上机操作指南.docx》由会员分享,可在线阅读,更多相关《实验教学VC60上机操作指南.docx(65页珍藏版)》请在冰点文库上搜索。

实验教学VC60上机操作指南.docx

实验教学VC60上机操作指南

VC++6.0上机操作指南

 

目录

1.VisualC++控制台应用程序上机实现步骤

2.MFC对话框应用程序实现举例

3.MFC单文档应用程序实现举例

1.VisualC++控制台应用程序(Win32ConsoleApplicationProject)

上机实现步骤

一.单文件程序的实现

本教材中的程序在VisualC++环境下都是以Win32ConsoleApplication项目实现,而且都是单文件程序,即只含有一个源程序(.cpp)文件的C++程序。

一个单文件程序在VisualC++IDE中的实现主要步骤是:

(1)建立新项目

(2)建立新文件(3)输入源代码(4)编译、连接,生成可执行程序文件。

以上步骤均可在VisualC++的Wizard指导下通过对话框交互输入完成。

1.建立新项目:

每个C++程序的实现都要建立一个项目。

所谓项目是一个文件生成过程的管理单位,项目名称就是最后实现的可执行文件的名称,一个项目就是与生成这个可执行程序文件相关的所有源文件和中间文件的集合,存放在以项目名称命名的文件夹中。

图1MicrosoftVisualC++6.0系统初始界面

执行菜单命令File>New,打开New对话框:

图2打开New对话框

在New对话框的Project选项卡中选择Win32ConsoleApplication选项,然后输入项目存放位置项目名称后确定。

图3输入项目位置和名称

在Win32ConsoleApplication-Step1of1对话框中选择Anemptyproject,完成后返回。

系统弹出新建项目信息报告对话框。

图4Win32ConsoleApplication-Step1of1对话框

图5新建项目信息报告

2.建立新文件:

再一次执行菜单命令File>New,打开New对话框,在File选项卡中选择C++SourseFile选项,然后输入源程序文件名。

完成后系统打开源程序(.cpp)文件编辑窗口。

图6在New对话框输入源程序文件名

3.输入源代码:

此时即可在源程序(.cpp)文件编辑窗口输入源程序代码。

图7源程序(.cpp)文件编辑窗口

 

4.生成和运行可执行程序文件:

11从源程序文件生成可执行文件,需要经历编译,连接两步,在VC++6.0编程环境中可以有以下几种操作方式:

(1)打开Build(编译)菜单,先执行Compile命令,接着再执行Build命令。

(2)打开Build(编译)菜单,执行RebuildeAll命令。

(3)打开Build(编译)菜单,直接发出Execute执行命令,一次性完成编译、连接和启动程序执行的任务。

(4)直接单击“!

”(BuildExecute)命令按钮,一次性完成编译、连接和启动程序执行的任务。

图8Build(编译)菜单

图9程序运行结果

打开工程文件夹可以找到该工程的所有工作文件。

打开工程文件夹中的Debug子文件夹,可以找到生成的可执行(.exe)文件。

二.多文件程序的实现

一个较大型C++程序,有时需要包含多个源程序文件。

一种常见的情况是将类的定义放在头(.h)文件中,将类的实现或对类的访问放在源(.cpp)文件中。

多文件程序的实现与单文件程序的实现方式需要经历同样的步骤,不同的是,在编译之前需要利用新建文件对话框逐一将所有需要的文件追加到项目中。

1.建立新项目:

2.建立新文件:

(1)加入和编辑头文件:

在New对话框,在File选项卡中选择C/C++HeaderFile选项,然后输入头文件名。

完成后系统将打开源程序(.h)文件编辑窗口。

(2)加入和编辑源程序文件

打开New对话框,在File选项卡中选择C++SourseFile选项,然后输入源程序文件名。

完成后系统打开源程序(.cpp)文件编辑窗口。

注意:

在源程序文件中应该用文件包含命令将头文件包含进来。

如下例源程序文件s719.cpp的第一行:

#include"h719.h"

3.生成和运行可执行程序文件:

步骤同单文件程序的生成和执行。

#

2.MFC对话框应用程序实现举例

本指导书给出3个MFC对话框应用程序的实现实例,例1为求三科平均成绩的简单程序,例2为实现一个具有四则运算功能的简单计算器,例3为一个彩票机程序(提供手动摇号和自动摇号两个彩票机程序版本)。

通过这些程序可以达到以下目的:

掌握AppWizard的使用方法。

掌握Workshop中各种视图的使用和在不同视图之间切换的方法。

学会利用控件工具箱中的控件定制对话框界面。

学会控件变量及其他类成员变量的设置。

学会消息映射的概念和操作方法。

学会查看和编辑代码。

学习编译、运行和调试对话框应用程序。

例1.实现一个求三科平均成绩的MFC对话框应用程序。

假设运行时的界面如下:

实现步骤:

1.在VisualC++6.0工作开发环境中,New对话框中选择MFCAppWizard[exe]项目,输入项目名称并指定存放位置。

2.在MFCWizardStep1选择Dialog(基本对话)程序类型,在MFCWizardStep2中输入对话框标题“求平均成绩”。

AppWizard对话结束后打开对话框编辑窗口如下:

3.定制界面:

添加控件、设置属性

删除对话框模板中原有的“确定”按钮和内容为“TODO:

在这里设置对话控制。

”的StaticText控件。

在控件工具箱中取一个GroupBox控件,调整适当大小,鼠标右键单击该控件边框,在弹出的下拉菜单中打开属性对话框。

将GroupBox控件标题由“Static”改为“求平均分”。

在GroupBox中添加4个StaticText控件,按同样方法修改它们的标题属性为“成绩1”、“成绩2”、“成绩3”和“平均分”。

在GroupBox中添加4个EditBox控件,打开属性对话框的ExtendedStyles选项卡中将它们设置为文本右对齐(RightAligendText)方式。

其中第4个EditBox控件的Styles属性设置为Read-only。

在GroupBox中添加一个按钮Button1,打开属性对话框将按钮的标题属性改为“计算平均分”。

鼠标右键单击“取消”按钮边框,在弹出的下拉菜单中打开属性对话框。

将按钮标题改为“退出”。

设计完成的界面如图,其中控件属性列表如下:

控件

ID号

标题

属性

GroupBox

IDC_STATIC

求平均分

StaticText

IDC_STATIC

成绩1

StaticText

IDC_STATIC

成绩2

StaticText

IDC_STATIC

成绩3

StaticText

IDC_STATIC

平均分

EditBox

IDC_EDIT1

Aligntext:

Right

EditBox

IDC_EDIT2

Aligntext:

Right

EditBox

IDC_EDIT3

Aligntext:

Right

EditBox

IDC_EDIT4

Aligntext:

Right;Read-only

Button

IDC_BUTTON1

计算平均分

Button

IDCANCEL

退出

4.添加成员变量

单击View(查看)>ClassWizard(建立类向导)菜单进入ClassWizard,打开MemberVariables选项卡:

为4个EditBox控件设置对应的变量:

同样的方法为其它3个EditBox控件设置变量:

控件ID

变量名

变量类型

数值范围

IDC_EDIT1

m_S1

int

0~100

IDC_EDIT2

m_S2

int

0~100

IDC_EDIT3

m_S3

int

0~100

IDC_EDIT4

m_Sav

CString

5.添加消息映射(两条消息)

进入ClassWizard,打开MessagesMaps选项卡,在ObjectIds中选择CAverageDlg,在Messages中鼠标单击WM_INIDIALOG,在Memberfunctions中出现生成的消息映射成员函数OnInitDialog提示:

在ObjectIds中选择IDC_BUTTON1,在Messages中鼠标单击BN_CLIKED,在弹出对话框中单击OK按钮:

在Memberfunctions中出现第二个生成的消息映射成员函数OnButton1。

6.添加代码

在ClassWizard中双击OnInitDialog函数,打开代码编辑器中的OnInitDialog()函数代码,找到其中的//TODO:

Addextrainitializationhere,加入下面的黑体字给出的3行代码:

BOOLCDlgDlg:

:

OnInitDialog()

{

CDialog:

:

OnInitDialog();

…;

//TODO:

Addextrainitializationhere

m_Sav="0.00";

m_S1=m_S2=m_S3;

UpdateData(FALSE);

returnTRUE;//returnTRUEunlessyousetthefocustoacontrol

}

在ClassWizard中双击OnButton1()函数,打开代码编辑器中的OnButton1()函数代码,找到其中的//TODO:

Addextrainitializationhere,加入下面的黑体字给出的4行代码:

voidCDlgDlg:

:

OnButton1()

{

//TODO:

Addextrainitializationhere

UpdateData();

doubleave=(double)(m_S1+m_S2+m_S3)/3.0;

m_Sav.Format("%6.2f",ave);

UpdateData(FALSE);

}

7.编译运行程序:

注释:

UpdateData()函数的作用是允许更新控件变量,

UpdateData(FALSE)禁止更新控件变量的值。

例2.设计MFC对话框应用程序,实现一个具有四则运算功能的简单计算器。

 

1.新建项目:

2.定制界面:

(1)修改MFCAppWizard自动创建的对话框项目模板。

删除模板上自动创建的三个控件。

(2)加入“简单计算器”、“请输入数据:

”、“结果”三个静态文本框和相应的3个编辑框。

(3)加入一个GroupBox,标题修改为“请选择运算符:

”,并在其中放入4个RadioButton将标题分别改为“+”、“-”、“*”、“/”。

(4)继续用鼠标从工具箱中向对话框添加和3个按钮控件,更改按钮的标题为“计算”、“清除”、“关闭”。

3.添加变量

本例中用到以下4个CSimpleCalcDlg类的成员变量:

变量类型

名称

float

m_N1

float

m_N2

float

m_Result

char

Operator

用ClassWizard为编辑框添加变量:

m_N1,m_N2,m_Result

变量charOperator的添加方法:

在WorkSpace中进入ClassView视图,鼠标右键单击CSimpleCalcDlg,在菜单中选择“AddMemberVariable…”

然后在弹出的对话框的输入变量类型和名称:

4.添加消息映射

用ClassWizard为按钮控件添加消息映射:

继续用ClassWizard为RadioButton控件添加消息映射:

5.加入单击按钮时的事件响应代码

在实现文件(cpp文件)中加入单击按钮时的事件响应代码。

(双击一个按钮可直接进入函数编辑)

//选择运算符

voidCSimpleCalcDlg:

:

OnRadio1()

{Operator='+';}

voidCSimpleCalcDlg:

:

OnRadio2()

{Operator='-';}

voidCSimpleCalcDlg:

:

OnRadio3()

{Operator='*';}

voidCSimpleCalcDlg:

:

OnRadio4()

{Operator='/';}

//计算

voidCSimpleCalcDlg:

:

OnButton1()

{

UpdateData();

switch(Operator)

{

case'+':

m_Result=m_N1+m_N2;

break;

case'-':

m_Result=m_N1-m_N2;

break;

case'*':

m_Result=m_N1*m_N2;

break;

case'/':

if(m_N2==0)

MessageBox("除数不能为零!

");

else

{

m_Result=m_N1/m_N2;

break;

}

default:

m_Result=m_N1+m_N2;

}

UpdateData(FALSE);

}

//清除

voidCSimpleCalcDlg:

:

OnButton2()

{

UpdateData();

m_N1=0;

m_N2=0;

m_Result=0;

UpdateData(FALSE);

}

//关闭

voidCSimpleCalcDlg:

:

OnButton3()

{CDialog:

:

OnOK();}

6.编译运行程序

例3.彩票机程序:

本例给出手动摇号和自动摇号两个彩票机程序版本。

1.彩票机界面:

定制含有7个EditBox、1个Progress(进度条)和3侦探按钮控件的对话框界面如下:

2.设置变量:

(1)设置进度条变量:

(2)设置7个编辑框变量:

(3)添加类成员变量m_x:

3.消息映射:

在ClassWizard中产生OnInitDialog、OnButton1、OnButton2、OnOK四个消息映射函数:

4.添加代码:

//初始化

BOOLCLotusDlg:

:

OnInitDialog()

{

CDialog:

:

OnInitDialog();

……

//TODO:

Addextrainitializationhere

m_x=0;

m_pProg.SetRange(0,70);

srand((unsigned)time(NULL));

returnTRUE;//returnTRUEunlessyousetthefocustoacontrol

}

(一)手动摇号

//手动摇号,每按一次摇号按钮出一个号

voidCLotusDlg:

:

OnButton1()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

switch(m_x/10)

{

case0:

m_N1=rand()%36+1;

m_pProg.SetPos(m_x+=10);

break;

case1:

m_N2=rand()%36+1;

m_pProg.SetPos(m_x+=10);

break;

case2:

m_N3=rand()%36+1;

m_pProg.SetPos(m_x+=10);

break;

case3:

m_N4=rand()%36+1;

m_pProg.SetPos(m_x+=10);

break;

case4:

m_N5=rand()%36+1;

m_pProg.SetPos(m_x+=10);

break;

case5:

m_N6=rand()%36+1;

m_pProg.SetPos(m_x+=10);

break;

case6:

m_N7=rand()%36+1;

m_pProg.SetPos(m_x+=10);

break;

}

UpdateData(FALSE);

}

voidCLotusDlg:

:

OnButton2()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

m_x=0;

m_N1=0;

m_N2=0;

m_N3=0;

m_N4=0;

m_N5=0;

m_N6=0;

m_N7=0;

UpdateData(FALSE);

m_pProg.SetPos

(1);

}

voidCLotusDlg:

:

OnOK()

{

CDialog:

:

OnOK();

}

(二)自动摇号

将前面实现的手动摇号程序修改为自动定时摇号。

添加OnTimer消息映射函数:

//按摇号按钮启动摇号

voidCLotusDlg:

:

OnButton1()

{

SetTimer(1,2000,NULL);

}

voidCLotusDlg:

:

OnButton2()

{

m_x=0;

m_N1=0;

m_N2=0;

m_N3=0;

m_N4=0;

m_N5=0;

m_N6=0;

m_N7=0;

UpdateData(FALSE);

m_pProg.SetPos(0);

KillTimer

(1);

}

voidCLotusDlg:

:

OnTimer(UINTnIDEvent)

{

switch(m_x/10)

{

case0:

m_N1=rand()%36+1;

m_pProg.SetPos(m_x+=10);

break;

case1:

m_N2=rand()%36+1;

m_pProg.SetPos(m_x+=10);

break;

case2:

m_N3=rand()%36+1;

m_pProg.SetPos(m_x+=10);

break;

case3:

m_N4=rand()%36+1;

m_pProg.SetPos(m_x+=10);

break;

case4:

m_N5=rand()%36+1;

m_pProg.SetPos(m_x+=10);

break;

case5:

m_N6=rand()%36+1;

m_pProg.SetPos(m_x+=10);

break;

case6:

m_N7=rand()%36+1;

m_pProg.SetPos(m_x+=10);

break;

}

UpdateData(FALSE);

CDialog:

:

OnTimer(nIDEvent);

}

voidCLotusDlg:

:

OnOK()

{

KillTimer

(1);

CDialog:

:

OnOK();

}

5.注释:

(1)产生随机数的方法

函数unsignedintrand()产生随机数。

函数voidsrand(unsignedintseed)设定随机数产生器的种子,其中seed为随机数产生器的种子,本例中用系统时钟当前值作随机数种子:

srand((unsigned)time(NULL));函数的

表达式rand()%36+1产生1-36之间的随机数

(3)定时器的使用方法

定时器的使用涉及OnTimer、SetTimer、KillTimer三个函数。

SetTimer用于设定定时时间和启动定时器,其中第一个参数是定时编号,第二个参数是定时的毫秒数。

本例中将1号定时器定时时间设定为2秒:

SetTimer(1,2000,NULL);

定时器启动以后将持续工作,每到达一次定时时间即启动一次OnTimer消息函数的执行。

KillTimer的作用是停止指定定时器的工作。

3.

MFC单文档应用程序实现举例

创建单文档应用程序的一般步骤:

利用AppWizard创建单文档应用程序框架。

在文档类中声明保存文档数据所需要数据对象。

完成文档类的OnNewDocument函数,初始化新文档。

完成文档类的Serialize函数,保持和加载文档数据。

完成视类的OnInitialUpdate函数,初始化显示。

完成视类的OnDraw函数,显示当前文档内容。

在视类中加入可以使用户编辑文档数据所需的代码。

本实验指导通过以下4个实验循序渐进演示创建单文档应用程序的基本操作,在前一个例子中演练过的操作,在后面的中出现时不再重复描述。

例1一个简单的单文档应用程序——记事本程序

例2简单文本和图形输出

例3利用定时器输出滚动字幕

例4文档串行化编程

例1.

一个简单的单文档应用程序——记事本程序

1.只要在AppWizard的Step6将BaseClass设置为EditView,AppWizard就自动完成了一个记事本程序的设计:

2.运行程序,即可测试记事本的各种功能:

3.说明:

(1)打开Workshop中的Class视图,可以看到,一个简单的单文档应用程序向导自动建立五个类:

向导自动建立的类

相应源文件

其他源文件

相应头文件

其他头文件

CAboutDlg

StdAfx.cpp

StdAfx.h

CXxxApp

Xxx.cpp

Xxx.rc

Xxx.h

Resource.h

CXxxView

XxxView.cpp

XxxView.h

CXxxDoc

XxxDoc.cpp

XxxDoc.h

CMainFrame

MainFrame.cpp

MainFrame.h

(2)MFC的文档—视结构:

(3)每个类的主要函数:

voidCAboutDlg:

:

DoDataExchange(CDataExchange*pDX)

intCMainFrame:

:

OnCreate(LPCREATESTRUCTlpCreateStruct)//创建窗体的工具栏,状态栏等

BOOLCMainFrame:

:

PreCreateWindow(CREATESTRUCT&

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 电子电路

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2