简易计算器课程设计报告

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

《C++程序设计》(MFC)课程设计报告

设计题目:简易计算器

班级:

姓名:

学号:

指导教师:

时间:2010年6月30日

目录

1.设计目标……………………………………………………………

2.设计内容……………………………………………………………

3.设计思想……………………………………………………………

4.设计说明……………………………………………………………

5.设计步骤……………………………………………………………

6.主要成员函数关系图………………………………………………

7.程序主要代码………………………………………………………

8. 难点分析……………………………………………………………

9. 总结…………………………………………………………………

简易计算器(MFC)

1.设计目标

了解Windows应用程序的结构与DOS程序的不同,掌握应用MFC类库编写Windows应用程序的基本模式。

2.设计内容

以简易计算器为例,通过对简单应用软件计算器的设计,编制、调试,实现简单的加,减,乘,除等运算,以学习应用MFC库类编写对话框的原理,加深对C++类的学习及应用。

3. 设计思想

基于MFC库类对对话框界面的设计,通过创建类成员函数成员变量,编辑控件创建消息映射,调用消息函数完成数据的输入输出,实现计算功能。生成简单的应用软件。

4.设计说明

(1)包含的功能有:加、减、乘、除运算,开方、平方等功能。

(2)计算器上数字0—9为一个控件数组,加、减、乘、除为一个控件数组,其余为单一的控件。

(3)输入的原始数据、运算中间数据和结果都显示在窗口顶部的同一个标签中。

(4)计算功能基本上是用系统内部函数。

(5)程序可以能自动判断输入数据的正确性,保证不出现多于一个小数点、以0开头等不正常现象。

(6)“CE”按钮可以清除所有已输入的数据从头计算

5. 设计步骤

(1)选择FileNewlProject命令,选择MFC AppWizard(exe)创建Project名为Caa,按确定。在弹出界面选择创建对话框,单击Finish按钮

(2)在生成的设计界面中加入控件,得到计算器应用界面。如图:

(3)为控件编辑框编辑ID,如图:

(4)进入ClassWizard界面选择Message Maps为控件插入消息映射,插入消息函数,实现控件命令功能。如图:

(5) 进入ClassWizard界面Message Varibles为编辑框添加成员变量m_result 用以显示结果。如图:

(6)在CaaDlg.h中加入在主要成员函数和成员变量的申明在CaaDlg.cpp 中加入主要成员函数实现过程和成员变量的初始化(代码片段将于后面介绍)。

6. 主要成员函数关系图

7.程序主要代码

//在头文件中手动添加成员函数与变量声明

// caaDlg.h : header file

//定义两个euum型结构

enum Operator { OpNone, OpAdd, OpSubtract, OpMultiply, OpDivide }; enum CalcError { ErrNone, ErrDivideByZero };

float m_operand; //存储当前输入的操作数float m_accum; //存储当前的计算处理结束BOOL m_bCoff; //标识当前输入是否是小数float m_coff; //小数输入时的系数Operator m_operator; //enum型变量用以标识当前运算符CalcError m_errorState; //enum型变量用以标识当前运算状态BOOL m_bOperandAvail; //标识当前输入是否是新输入数字void UpdateDisplay(); //处理显示void Calculate(); //处理计算void OnOperandInput(int a); //处理数字输入

//在执行文件中添加成员函数实现部分与变量初始

// caaDlg.cpp : implementation file

//以下是对声明变量进行初始

CCaaDlg::CCaaDlg(CWnd* pParent /*=NULL*/)

: CDialog(CCaaDlg::IDD, pParent)

{

//{{AFX_DATA_INIT(CCaaDlg)

m_result = _T(""); //默认为m_result变量初始//}}AFX_DATA_INIT

// Note that LoadIcon does not require a subsequent DestroyIcon in Win32

m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

m_coff=0.1; //为变量进行初始m_bCoff=0; //为变量进行初始

m_errorState = ErrNone; //为变量进行初始m_bOperandAvail=FALSE; //为变量进行初始m_operator=OpNone; //为变量进行初始}

//以下是消息处理函数,用以响应消息映射

void CCaaDlg::On0() //处理“ 0”按钮{

// TODO: Add your control notification handler code here

OnOperandInput(0);

}

void CCaaDlg::On1() //处理“ 1”按钮{

// TODO: Add your control notification handler code here

OnOperandInput(1);

}

void CCaaDlg::On2() //处理“ 2”按钮{

// TODO: Add your control notification handler code here

OnOperandInput(2);

}

void CCaaDlg::On3() //处理“ 3”按钮{

// TODO: Add your control notification handler code here

OnOperandInput(3);

}

void CCaaDlg::On4() //处理“ 4”按钮{

// TODO: Add your control notification handler code here

OnOperandInput(4);

}

void CCaaDlg::On5() //处理“ 5”按钮{

// TODO: Add your control notification handler code here

OnOperandInput(5);

}

void CCaaDlg::On6() //处理“ 6”按钮{

// TODO: Add your control notification handler code here

OnOperandInput(6);

}

void CCaaDlg::On7() //处理“ 7”按钮{

// TODO: Add your control notification handler code here

OnOperandInput(7);

相关文档
最新文档