1、三、设计步骤(一)界面设计:首先打开VC+6.0 建立一个MFC的基本对话框,添加所需的按钮的编辑框如下图:(二)添加变量:点击菜单栏的:查看-建立类向导-添加成员变量:给编辑框添加一个CString类型的变量m_result。(三)为按钮添加事件:为按钮和编辑框改了名字和ID后点击每一个按钮,为每一个按钮添加一个对应的事件,即:为每一个按钮添加算法代码。(四)个性化程序:即修改程序一些细节的地方,如程序的图标,程序的界面颜色、图案等等。(五)调试并运行程序:将写好的程序调试好了后运行。四、程序的主要函数及其释义: void CCalculatorDlg:OnButton1() /按下数字键1
2、时出现的事件 / TODO: Add your control notification handler code here if(fff = 1) /当fff = 0时,此时刚算完上次的数据,再按数字键时自动清空上次的数据 m_result = _T(); /对字符串处理需要_T()函数实现 fff = 0; m_result += _T(1 UpdateData(FALSE); /将数据送到编辑窗口void CCalculatorDlg:OnButton2() /按下数字键2时出现的事件,同上 if(fff = 1)2OnButton3() / 33OnButton4() / 4 4OnB
3、utton5() / 55OnButton6() / 66OnButton7() / 77OnButton8() / 88OnButton9() / 99OnButton10() / 00OnButton11() /按下.后出现的事件.OnBUTTONpi() / 按下PI后出现的事件 fff = 0; m_result = _T(3.14159265358979OnBUTTONjia() / 按下+键,后发生的事件 n = 1; data = strtod(m_result,NULL); / 将之前输入的字符串转化为double型的数并保存起来 /清空输入屏OnBUTTONjian() /
4、减,同理 n = 2;OnBUTTONchen() / 乘 n = 3;OnBUTTONchu() / 除 n = 4;OnBUTTONcifang() / 次方 n = 5;OnBUTTONDel() / 退格 m_result = m_result.Left(m_result.GetLength() - 1); UpdateData(FALSE);OnBUTTONdengyu() / 等于,按下=键后发生的事件 if(n=1) /加 data += strtod(m_result,NULL); /将先前保存的数据与后输入的数据相加 m_result.Format(_T(%lf), data
5、); /将数据转化为CString型并显示在屏上 /刷新显示数据 if(n=2) /减 同上类似 data -= strtod(m_result,NULL);),data); if(n=3) /乘 data *= strtod(m_result,NULL); if(n=4) /除 if(strtod(m_result,NULL) = 0) / 如果判断出被除数为0,就在输出框中输出以下文字。 GetDlgItem(IDC_EDIT1)-SetWindowText(error!除数不能为0! else data /= strtod(m_result,NULL); m_result.Format(
6、_T( UpdateData(FALSE); if(n=5) /当判断运算符为次方时,根据幂底数的正负性有不同的情况 if(data 0) data = exp(strtod(m_result,NULL)*log(data); else if(data = 0) data = 0; if(int)strtod(m_result,NULL) - strtod(m_result,NULL) != 0) /如计算(-2)3.2时,即指数有小数,输入以下文字。 GetDlgItem(IDC_EDIT1)-SetWindowText(“该计算结果无意义!”); else / 如计算(-2)3时,即指数没
7、小数 double i = strtod(m_result,NULL), data1 = data; for(; i 1; i-) data *= data1; m_result.Format(_T( UpdateData(FALSE); fff = 1;OnButtonAc() /AC,即按清除键。OnBUTTONsin() /sin data = sin(strtod(m_result,NULL); m_result.Format(_T(OnBUTTONcos() /cos data = cos(strtod(m_result,NULL);OnBUTTONtan() /tan data =
8、 tan(strtod(m_result,NULL);OnBUTTONsqrt() /sqrt,即取平方根if(strtod(m_result,NULL) 根号下不能负数哦 else data = sqrt(strtod(m_result,NULL); fff = 1;OnBUTTONjiecheng() /阶乘 double i =data-1; for(;i 0; data *= i;OnBUTTONlog() /lg data = log10(strtod(m_result,NULL);OnBUTTONln() /ln data = log(strtod(m_result,NULL);O
9、nBUTTONzhengfu() /正负取反 data = -strtod(m_result,NULL);OnBUTTONdaoshu() /1/x data = 1/(strtod(m_result,NULL);OnBUTTONguanyu() /关于本软件,即点击关于本软件按钮 GetDlgItem(IDC_EDIT1)-本软件由吴云制作,新手一个,不足之处还请谅解.O(_)O五、程序运行展示:这是我自己画得程序图标,没有copy哦,虽然很丑。这是我们程序打开的界面,是不是很简洁?很符合简易计算器这个称号吧。这是当我们输入除数为零时显示的画面,既有英文又有中文,中西结合哦。这是我们的程序当输入一个负数取根号时,就会出现这一句温馨的提醒。这是点击程序的关于本软件时,出现响应事件,本来想加上作者电话和QQ的,当时,几番思量后,还是算了。六、感悟和心得:经过本次简易计算器的制作,巩固了C语言学到的知识,学到了MFC可视化界面基本的编程方法,对C+面向对象的编程思想有了更深刻的理解,增加了编写程序的能力。对类的类的封装和设计也有了一种新的认识,丰富了自己的知识,增添了自己对专业的兴趣和热爱之情。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1