【基于VS2010的MFC编程】多功能计算器 | 您所在的位置:网站首页 › 怎么对计算器编程 › 【基于VS2010的MFC编程】多功能计算器 |
平台/工具:VS2010 目的:利用VS2010平台创建一个MFC工程,实现多功能计算器的程序编写和界面设计 项目分析:首先是根据功能进行界面设计:需要一个供编辑和显示的编辑框 、多种运算符按钮(“+”“-”“×”“÷”“平方”“开方”“指数”“log”)、0~9数字按钮、“=”和“.”按钮、辅助功能按钮(“关于软件”“清零”“后退”);其次是添加一些类和功能代码” 方法步骤: Step 1: MFC工程创建部分 建立一个不使用Unicode库的MFC工程,工程命名为“多功能计算器”。 Step 3:代码添加部分 设计好主对话框后,开始双击按钮进入主程序中相应的位置,添加消息处理程序。 (1)首先在××Dlg.h(主程序头文件,××是你建立的工程名,如工程名为“多功能计算器”,则主程序头文件为“多功能计算器Dlg.h”)中主对话框类中的公有成员(public:)中添加代码,如下图所示,红框内为手动添加的代码: B、“后退”按钮的代码: void C多功能计算器Dlg::OnBnClickedBackButton() //“后退”按钮 { // TODO: 在此添加控件通知处理程序代码 //---------添加的代码------ UpdateData(TRUE); if (!m_str.IsEmpty()) { m_str = m_str.Left(m_str.GetLength()-1); //移除最右边一个字符 } UpdateData(FALSE); //-------------------------- }C、“清零”按钮的代码: void C多功能计算器Dlg::OnBnClickedClearButton() //“清零”按钮 { // TODO: 在此添加控件通知处理程序代码 //------------添加的代码------------ UpdateData(TRUE); m_str = ""; //将对话框设为空,即达到清零的效果 UpdateData(FALSE); //----------------------------------- }D、四则运算符(“+”“-”“×”“÷”)按钮的代码: void C多功能计算器Dlg::OnBnClickedAdd() //“+”按钮 { // TODO: 在此添加控件通知处理程序代码 //----添加的代码------------ SaveValue1(); //执行SaveValue1()函数,保存第一个数值并在按下操作符按钮后、第二个数值输出之前使编辑框空白 m_iSign = 0; //“+”的标志,用于Calculator()函数中case的跳转判断 //---------------------------- } void C多功能计算器Dlg::OnBnClickedDec() //“-”按钮 { // TODO: 在此添加控件通知处理程序代码 //----添加的代码------------ SaveValue1(); m_iSign = 1; //“-”的标志,用于Calculator()函数中case的跳转判断 //---------------------------- } void C多功能计算器Dlg::OnBnClickedMultiply() //“×”按钮 { // TODO: 在此添加控件通知处理程序代码 //----添加的代码------------ SaveValue1(); m_iSign = 2; //“×”的标志,用于Calculator()函数中case的跳转判断 //---------------------------- } void C多功能计算器Dlg::OnBnClickedDivide() //“÷”按钮 { // TODO: 在此添加控件通知处理程序代码 //----添加的代码------------ SaveValue1(); m_iSign = 3; //“÷”的标志,用于Calculator()函数中case的跳转判断 //---------------------------- }E、“平方”“开方”“指数”“log”按钮的代码: void C多功能计算器Dlg::OnBnClickedSquare() //“平方”按钮 { // TODO: 在此添加控件通知处理程序代码 //----------添加的代码---------------- UpdateData(TRUE); m_fNumber1 = atof(m_str); //由于只有一个操作数,因此不需要等到“=”按下时才在编辑框显示结果,因此不用添加到Calculator()函数中 double f = m_fNumber1 * m_fNumber1; //如果浮点数其实是个整数 if(f - int(f) |
CopyRight 2018-2019 实验室设备网 版权所有 |