C++作业 武汉科技大学机械学院研究生

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

姓名:

班级:

学号:

完成日期:2014.02

武汉科技大学机械自动化学院

任务一开发一个计算器程序

一软件功能

开发一个计算器软件,要求是基于对话框的应用程序,至少具有加、减、乘、除四个基本功能。在此基础上扩展平方、开方、三角函数等功能。对话框是最重要的用户界面元素之一,是与用户交互的重要手段,可用于捕捉用户的输入信息或数据。通过计算器软件开发,主要培养学生熟悉使用C++编写基于对话框的应用程序,同时学会将所学知识运用于计算器界面的实际案例中,增进对C++认识和运用。

二软件设计

设计基于对话框的计算器软件,该计算器软件可以实现加、减、乘、除、平方、开方、正弦、余弦、正切、对数函数的功能。基本操作流程如下:

(1) 用MFC AppWizard 创建一个基于对话框的应用程序。

(2) 再根据“计算器”的要求设计对话框的相关属性。

(3) 添加和布局所需类型的控件,如组框、按钮、编辑框、静态文本等,并对各种控件进行属性设置(如ID号等)和布局安排。

(4) 在创建基本对话框时,一个基于对话框资源模板的对话框类CCalculatorDlg 就创建好了。

(5) 添加对话框映射函数和代码,添加成员变量m_first,m_second,m_result, m_operator

(6) 编译,运行计算器软件程序,实现各种功能。

三软件实现过程

1. 用MFC AppWizard 创建一个基于对话框的应用程序,如图1.1 所示

图 1.1 基于对话框的应用程序

2. 添加对话框,并布局对话框上的控件,设置各个控件的属性,如图1.2所示

图1.2 基于对话框的计算器界面

(1)设置“迷你计算器”的属性,如图1.3所示

图1.3 “迷你计算器”的属性

(2)设置输入的两个数的ID号分别为IDC_first,IDC_second, 结果输出数的ID 号为IDC_result, 如图1.4所示

图1.4 第一个输入数的属性

(3) 运算符号加、减、乘、除、平方、开方、正弦、余弦、正切、对数函数、等号的ID号分别为IDC_add,IDC_minus,IDC_mul,IDC_divide,IDC_square,IDC_sqrt,IDC_sin,IDC_cos,IDC_tan,IDC_lg,IDC_equal。学生个人信息的ID号为IDC_information。“加”的属性如图1.5所示.

图1.5 “加”的属性

(4) 添加成员变量m_first,m_second,m_result, m_operator。变量的类型分别为double,double,double,int。

3. 添加消息映射函数,写主要代码

(1) 分别为各个运算符号添加映射函数,并写出相应代码

void CCalculatorDlg::Onadd()

{

m_operator=1;

}

void CCalculatorDlg::Onminus()

{

m_operator=2;

}

void CCalculatorDlg::Onmul()

{

m_operator=3;

}

void CCalculatorDlg::Ondivide()

{

m_operator=4;

}

void CCalculatorDlg::Onsquare()

{

m_operator=5;

}

void CCalculatorDlg::Onsin()

m_operator=6;

}

void CCalculatorDlg::Oncos()

{

m_operator=7;

}

void CCalculatorDlg::Ontan()

{

m_operator=8;

}

void CCalculatorDlg::Onsqrt()

{

m_operator=9;

}

void CCalculatorDlg::Onlg()

{

m_operator=10;

}

void CCalculatorDlg::Onequal()

{

UpdateData(TRUE);

switch (m_operator)

{

case 1 : m_result=m_first+m_second ;break;

case 2 : m_result=m_first-m_second ;break;

case 3 : m_result=m_first*m_second ;break;

case 4 :

{

if(m_second==0)

MessageBox("请输入不等于0的数!","提醒",0); else

m_result=m_first/m_second ;break;

}

case 5 : m_result= m_first*m_first;break;

case 6 : m_result=sin(m_first*3.14159/180);break; case 7 : m_result=cos(m_first*3.14159/180);break; case 8 : m_result=tan(m_first*3.14159/180);break; case 9 :

{

if(m_first<0)

MessageBox("请输入不小于0的数!","提醒",0); else

相关文档
最新文档