《VC++程序设计》 实验报告 题 目 科学计算器 院、系(部) 计算机科学与技术学院 专业及班级 学 号 姓 名 日 期 2 0 1 2 年 1 1 月 1 1 日 1 1 题目要求 仿照Windows 系统自带计算器做的一个小型科学计算器。 2 功能需求 整个系统具有的功能:响应各个数字键,实现加、减、乘、除、x^y、lnx、x!、sinx、cosx、tanx、二进制、二进制转换八进制、清空、求倒数等基本功能; 3 总体设计 3.1 系统模块 计算器 加、减、乘、除 法 次方 阶乘 开平方 倒数 正弦、余弦、正切 自然对数 二进制、二进制转换八进制 退格 取负数 更换背景颜色、按ENTER键消失等功能 清屏 2 3.2 系统业务处理流程 整体流程图 择相应的操作键,计算后 用UpdateData(FALSE) 刷新显示 开始 键入一个数据 结束 再键入一个数据 显示结果 3 具体的流程图 开始 输入数据子函数 编辑框关联的变量保存 输入数据子函数 双目运算符 单目运算符 进行运算 运算是否合法 把结果再就进行保存 编辑框会显示error 选择用清零键 是否用保存的结果继续进行运算 是否开始新一轮的计算 结束 Y N Y N N Y 4 4 详细设计 1)在对话框类的头文件“CalculatorDlg.h”头部添加: #include "math.h“ 2)在对话框类的定义中添加下列函数声明: afx_msg void OnNumberKey(UINT nID); //处理数字键单击事件的消息响应函数 afx_msg void OnOperationKey(UINT nID); //处理操作键单击事件的消息响应函数 3)在对话框的可执行文件的消息映射中添加如下代码: ON_COMMAND_RANGE(IDC_NUMBER1,IDC_NUMBER10,OnNumberKey) ON_COMMAND_RANGE(IDC_NUMBER_PlusMinus, IDC_NUMBER_Equal ,OnOperationKey) 4 ) 在对话框的可 执 行 文件中 添 加OnNumberKey(UINT nID) 和OnOperationKey(UINT nID)的实现代码 5)在对话框类中定义如下变量: double number1,number2; //number1 和 number1 用于存储将要进行运算的数字 int NumberState,OperationState; //NumberState 用于标示是将数值赋给 number1 或是 number1 //OperationState 用于表示计算器所要执行的操作 6)为 IDC_EDIT_PUTOUT 添加映射变量 m_Cnumber 7)在对话框的构造函数中初始化变量 m_number = 0.0; NumberState=1; 8)为对话框添加计算函数 void cal(),用于计算 void CCalculatorDlg::cal() //计算函数...