【OOP】实验6 基于MFC实现两个整数求和windows程序
作者:3sbase | 发布时间:2016/3/19

本教程是根据vc6实现的,大家结合上课的演示进行实现。除了求和,也可以扩展到学生信息管理等。

  
对于VC的初学者,如果刚开始能编写一些简单的小程序,往往能使我们信心倍增。这里就给大家编写两个数相加的小程序,希望能对大家有所启发。

1C++中的实现方法

学过C++的朋友都知道,两个数相加,大致遵循以下过程:

(1)定义三个变量,分别表示被加数、加数、和。如int a,b,c;

(2)让用户输入两个数,分别赋值给ab。如cin>>a>>b;

(3)然后,书写求和的表达式。如c=a+b;

(4)将和输出到屏幕上。如cout<<c<<endl;

基于VC中控制台的项目类型

1)创建项目(2)创建C++源文件,输入以下代码,编译运行即可。

#include<iostream>

using namespace std;

void main()

{

    int a,b,c;

    cin>>a>>b;

    c=a+b;

    cout<<c<<endl;

}

那么,现在要创建Windows程序,原理也是一样的。主要的区别:

1)以上程序中的输入不是window界面,windows界面下的输入通常借助编辑框控件。

2)输出亦可借助编辑框控件。

2VC中的实现方法

VC是可视化的开发环境,创建Windows界面,非常简单。大致遵循以下步骤:

1)启动vc

2[文件]-[新建],弹出[新建对话框]。在该对话框中,我们选择[工程]标签(默认的情况下就是这个标签)。在该标签页下,选择工程类型为[MFC AppWizard[exe]]。在右侧的[工程][位置]处,分别输入工程的名字及工程存放的位置。这些设置完成后,点击[确定]按钮。

(3)进入应用向导第一步,在这里选择程序的类型为:[基于对话框]

(4)向导后边的设置,我们全部采用默认的,所以直接点击[完成]。弹出所建工程的信息对话框。[确定]即可。

(5)默认的情况下,你就会在vc的开发环境中看到一个对话框,上边有3个控件,两个按钮,一个静态文本框(Static Text)

注:如果看不到对话框或者关闭了,在左侧的[资源视图]标签中,点击[Dialog],下边有一个对话框就是应用向导为我们生成的,双击它就可以打开了。

(6)我们添加所需的控件,主要用到Static Text控件、Edit Box控件及按钮控件。添加后,设置各个控件的属性(在控件上点击右键,点击属性,即可弹出设置的对话框)。

最终界面如下:

 

 

基于VC编写两个数相加的Windows小程序[2]

 

(7)[+]按钮上双击,弹出如下对话框,点击[确定]

基于VC编写两个数相加的Windows小程序[2]

(8)系统就会自动为你在对话框类中添加一个成员函数,如

void CAddTestDlg::OnButton1() {}

该函数就是当用户点击按钮时要执行的程序。我们希望,当用户点击后,得到和。

要得到和,就要有求和表达式。求和表达式就需要两个变量,这两个变量怎样得到,就是我们要考虑的问题。定义两个变量并不难,可是要和编辑控件关联起来才行呀。VC中有个向导,叫Class向导。它可以帮我们完成这项工作。

(9)点击[查看]菜单,第一个子菜单,就会弹出类向导对话框。在其中点击[Member Variable]标签。如下:

基于VC编写两个数相加的Windows小程序[2]

在其中,我们可以看到,对话框上的一些控件,如IDC_EDIT1等,这些就是控件的ID号。现在我们添加3个变量,类型为int,并且和3个编辑控件关联起来。

选择某一控件的id,如IDC_EDIT1,点击[Add Variable]按钮,弹出如下对话框。在其中进行设置,如下。点击[OK]按钮。就添加了一个变量m_A。该变量为对话框类的数据成员,并且和IDC_EDIT1相关联。

 

基于VC编写两个数相加的Windows小程序[2]

按照这样的方法,为IDC_EDIT2 IDC_EDIT3分别关联变量m_B m_C。最后如下。点击[确定]

基于VC编写两个数相加的Windows小程序[2]

 

(10)变量定义完成了,我们就可以书写求和表达式了~m_C=m_A+m_B;可是在哪里写呢?很明显,当用户点击[+]按钮的时候,执行求和。当然在我们刚才添加的那个函数中写了,找到它(在对话框类中),在其中键入代码,如下:

void CAddTestDlg::OnButton1()

{

    m_C=m_A+m_B;  

}

(11)编译链接执行。我们输入被加数和加数,然后点击[+]按钮,可是在和编辑框中没有任何反应。怎么回事呢?

原因就在虽然我们已经将变量和控件进行了关联,但是有时候需要将控件中的值赋于变量,而有时候还需将变量的值放在控件中。对于这两种情况,可以借助UpdateData函数来完成。该函数有一个bool型参数,当参数为true时,表示要从控件中得到值,放入变量。当为false时,相反,将变量的值放入控件。理解了这一点,我们的代码就变为:

void CAddTestDlg::OnButton1()

{

    UpdateData(true);

    m_C=m_A+m_B;  

    UpdateData(false);

}

现在再执行程序,你会发现可以了,是不是很高兴呢?