MFC口算训练程序

        本文介绍一个简单的口算训练程序,并借助该程序介绍Visual Studio 2019 MFC程序的基本操作。该程序在点击【下一道】按钮时随机生成一道一百以内的加减法算术题,用户输入计算结果后,点击【对答案】可检验计算结果是否正确。

一、安装MFC组件

        Visual Studio通常并不会自动包含MFC组件,需要手动安装。首先打开Visual Studio Installer。

         点击修改。

         选择【使用C++的桌面开发】,在右侧的安装详细信息中勾选【适用于v142生成工具的C++ATL】和【适用于v142生成工具的C++MFC】,最后点击修改,等待安装完成即可。

二、创建MFC项目

         使用Visual Studio创建新项目,选择【MFC应用】,点击【下一步】。

         填写项目名称,选择存储位置,点击【创建】。

         应用程序类型选择【基于对话框】,点击【完成】。

          项目创建成功。已经默认创建了一个窗口,一个静态文本框,两个按钮。

 三、设计用户界面

       目前窗口标题栏还是空的,在主窗体单击右键,在右键菜单中选择【属性】,在右侧的属性菜单中的【描述文字】属性中输入标题名。

         删除默认创建的文本框和按钮,选中相应组件按下delete或者右键删除即可。然后从右侧的工具箱中将【Edit Control】控件拖拽到窗口中的适当位置,该控件可用于文本的输入和输出。

         第一个【Edit Control】控件件用于显示随机算术题的第一个操作数,不允许用户更改。在该控件的【只读】属性修改为【True】,可根据需要自由修改ID。

         为了使用代码控制【Edit Control】显示的内容,需要绑定一个变量。具体做法是,右键单击对应控件,选择添加变量。在弹出的窗口中,更改【类别】为【值】,在【名称】填写变量名,更改变量类型为【int】。最后点击【完成】。

         类似地,再添加多个【Edit Control】控件,并添加对应变量操作符sym、第二个操作数op2、结果result、正确答案answer、答案判定isRight。其中操作符sym和答案判定isRight的变量类型设置为CString,结果result由用户输入,【只读】属性设置为False。

        添加【Static Text】控件,显示等号“=”,【描述文字】属性中填入“=”即可。

        最后添加两个【Button】控件,修改【描述文字】和【ID】,完成用户界面设置。

        添加的变量会在OralCalculationDlg.h、OralCalculationDlg.cpp中声明为成员变量。如果需要更改或删除已经设置好的变量名,需要手动在代码文件中一一处理。

四、代码

        为了让两个按钮发挥作用,需要编写相应代码。双击按钮就会自动跳转到代码编写界面。

        代码如下。其中UpdateData()函数用于更新所有【Edit Control】和变量。参数为True时,【Edit Control】赋值给变量;参数为False时,变量赋值给【Edit Control】。

void COralCalculationDlg::OnBnClickedButtonNew()
{
	srand(time(NULL));
	op1 = rand() % 100;
	op2 = rand() % 100;
	if (rand() % 2 == 0)
		sym = "+";
	else
		sym = "-";
	isRight = L"";
	answer = 0;
	UpdateData(false);
}


void COralCalculationDlg::OnBnClickedButtonCheck()
{
	UpdateData(true);
	if (sym == "+")
		answer = op1 + op2;
	else
		answer = op1 - op2;

	if (answer == result)
		isRight = L"正确";
	else
		isRight = L"错误";
	UpdateData(false);
}

         最终成果已经在文章开头给出,大功告成!

相关文章

学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习...
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面...
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生...
Can’t connect to local MySQL server through socket \'/v...
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 ...
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服...