资源描述
开发一个简单科学计算器
(基于对话框模式的应用程序)
一. 开发目标及软件功能
开发一个科学计算器程序,要求采用基于对话框模式的应用程序,至少具有加、减、乘、除四个基本功能,并在此基础上扩展平方、开方、三角函数等功能。
(1)仔细阅读操作过程,学习如何根据编译信息,定位语法错误。
(2)将警告与错误一律看作是错误。
(3)学习并模仿书上的程序书写风格。
二。 编程步骤
1. 启动Visual C++6.0,选择File|new 菜单项,弹出New 对话框。单击Projects 选项卡,项目类型选择MFC AppWizard(exe),在Project name中填入工程名,在Location中填用户子目录路径(设置用户程序子目录的目的是,将所有编程时产生的中间文件和最终执行程序文件全部放在自己的目录中,以便管理)。
2.在程序向导的第1步选择建立一个基于对话框(Dialog based)的应用程序,点击“Finish”结束向导。
3。 在对话框上添加各类控件,设计对话框的界面如图所示。在对话框中右键点击,弹出属性设置对话框(Dialog Properties),标题(caption)中填入“迷你计算器”;其余各控件的参数设置如下表所示。
控件类型
ID号
Caption
其它
Button
IDC_ADD
+
Button
IDC_SUB
-
Button
IDC_MUL
×
Button
IDC_DIV
/
Button
IDC_SIN
sin
Button
IDC_COS
cos
Button
IDC_SQU
x^2
Button
IDC_REC
1/x
Button
IDC_EQUAL
=
Edit Box
IDC_FIRST
Edit Box
IDC_SECOND
Edit Box
IDC_RESULT
4。 为对话框中的控件添加相应的成员变量:点击菜单“View →ClassWizard" ,点击“Member Variables"标签项,为对话框中的三个编辑框控件添加对应的成员变量如图所示。
添加成员变量的步骤为:选中“IDC_FIRST”,点击“Add Viarable”,在弹出的对话框中,指定成员变量名为“m_first",分类为“Value”,变量类型为“double",点击“OK”确定。其余依此类推.
5。 为运算符按钮添加相应的消息映射函数:点击菜单“View →ClassWizard”,选中“Message Maps”标签,目标ID号中选择“IDC_ADD”,在“Messages"中选择“BN_CLICKED”,双击,弹出“添加成员函数”对话框,默认函数名为“OnAdd",点击“OK"。同理,为其它各运算对应的ID号添加成员函数。
6。在加法计算按钮的消息影射函数OnAdd和得到计算结果的消息影射函数OnEqual中分别输入下列代码:
void CCalculatorDlg::OnAdd()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE); //得到用户输入的数据
m_result=m_first+m_second;
}
void CCalculatorDlg::OnEqual()
{
// TODO: Add your control notification handler code here
UpdateData(FALSE); //将计算结果在编辑框中显示出来
}
其中UpdateData( )是MFC的窗口函数,用来刷新数据.当括号内的变量为TRUE时,用窗体上控件中的内容来更新和控件相关联的成员变量值;当括号内的变量为FALSE时,正好相反,将控件的关联成员变量的值传给控件并在控件中显示出来。
同理,在其它运算按钮的消息影射函数中添加相应的计算代码如下:
void CCalculatorDlg::OnCos()
{
UpdateData(TRUE); //得到用户输入的数据
m_result=cos(3.1415926*m_first/180);
}
void CCalculatorDlg::OnDiv()
{
UpdateData(TRUE); //得到用户输入的数据
m_result=m_first/m_second;
}
void CCalculatorDlg::OnMul()
{
UpdateData(TRUE); //得到用户输入的数据
m_result=m_first*m_second;
}
void CCalculatorDlg::OnRec()
{
UpdateData(TRUE); //得到用户输入的数据
m_result=1/m_first;
}
void CCalculatorDlg::OnSin()
{
UpdateData(TRUE); //得到用户输入的数据
m_result=sin(3。1415926*m_first/180);
}
void CCalculatorDlg::OnSqu()
{
UpdateData(TRUE); //得到用户输入的数据
m_result=pow(m_first,2);
}
void CCalculatorDlg::OnSub()
{
UpdateData(TRUE); //得到用户输入的数据
m_result=m_first-m_second;
}
7. 在CalculatorDlg.cpp前面加上用于科学计算的头文件:
#include ”stdafx。h"
#include ”Calculator。h”
#include "CalculatorDlg。h”
#include ”math。h" // 科学计算的头文件
8. 编译连接运行。
(1)编译
Visual C++ 6。0中选择Build|Rebuild All选项,Visual C++ 6.0将在output窗口中显示编译结果。
如果没有错误,则在窗口下面显示0 error(s), 0 warning(s)。
如果有错误,则output窗口中会告诉你Warnings警告有几个,errors错误有几个。
通过移动output窗口的垂直滚动条,在output窗口的中会列出警告和编译错误、原因和具体行号位置。
初学者从一开始就要学会如何定位错误。在output窗口有一个亮条,指出Warning或errors的信息,它用英文显示,可以查程序中的错误信息表.
按回车键或双击鼠标左键,即光标转向编辑窗口,编辑窗口同时出现一个蓝色箭头,这时要注意光标位置,仔细查看程序中的语法。相当多的情况是,程序中只有很少的几个语法错误,但是编译时,却告诉你查到了很多错误.原因是,由于这一个小错误,比如变量定义错,使得编译没有接受该变量定义,继续编译下去,凡涉及这一变量引用的,都被编译认为是变量未定义错。所以,初学者一定要了解这一点,或许某个出错行其实没有语法错误。而是由其他错误所引起.真正的语法错误,一般总是只有很少的几个,不要被编译错误的数量所吓倒.
编译若不产生错误,系统将生成.obj文件,细心的读者,查阅自己子目录时会看到.
(2)连接
在连接之前,请先行存盘.因为个别错误会导致死机。如这时机器重新启动,程序会丢失.
Visual C++ 6。0环境下,选择Build|Build All.连接产生的错误信息形式与编译时相仿,但查错可能更间接一些。连接若不产生错误,系统将生成执行文件.exe.
(3)运行
Visual C++ 6。0中的运行方式:直接选择Build|execute或按“Crtl+F5",就可在IDE下运行程序.打开写有运行结果的用户窗口,观察运行情况,按任意键,可返回到编辑窗口.
大多数情况用这种方式,它又是调试程序的主选方式。
三。 运行界面
四。 思考
1。 参考Windows操作系统自带的计算器,增加其它计算功能,使这个计算器的功能更完整.
2. 增加一个版权信息的按钮,点击后显示开发者的班级、姓名和学号。
展开阅读全文