文档详情

C面向对象程序设计简单计算器的设计.doc

发布:2018-10-10约6.3千字共7页下载文档
文本预览下载声明
PAGE \* MERGEFORMAT 8 面向对象程序设计 简单计算器的设计 一、问题描述 简单计算器的基本功能如下: 四则运算,例如加减乘除等; 除了整数的运算也可实现小数的各类运算; 判断非法操作,例如判定1/0为非法操作; 其他特性; 这个简易计算器只实现以上所述功能,即实现简单计算。 二、设计思路 计算器起始运行在归零状态,此时只接受数字输入,当按下一个数字按钮时,计算器只显示用户输入第一个操作数,用户在该状态下可以继续输入数字。 1.当第一个数字输入完成后,可以接受第二个操作数。 2.在数字输入结束进行运算后,按下=按钮可以根据前面按下的操作符计算结果显示,表示计算完成。 3.在上述计算过程中都可以接受双击等号回到清零状态。 三、功能函数设计: 1.数字按钮 这个是通过最基本的OnButton()将0~9十个数字按钮的单击消息处理函数用类向导全部关联到此,适文本框应该只是显示当前单击的数字; 2.小数点按钮函数OnDecimal 这个函数主要是实现小数点在计算器的相关功能 3.列表在算法的函数OnSelchangeOperatorList() 这一类按钮包括“+”“-”“*”“/”,它们的单击消息在同一个处理函数中进行处理,以同样的方法把这四个按钮的单击操作关联到此函数中,使四则运算法则在列表中通过选择去实现。 4.“=”符号函数OnEnquall() 实现计算器中等号的功能,双击时也可使编辑框的数字归零。 四、编码实现: int calculator_type_i; double count=10,value=0; double Input_data_int=0,Input_data_dec=0; double Inputdata1=0,Inputdata2=0; char datatostr_buffer[10]; bool decimal=FALSE; 以上代码是添加的全局变量,为正确获取键盘输入供所有按钮函数使用。 // TODO: Add extra initialization here m_OperatorBox.AddString(-); m_OperatorBox.AddString(*); m_OperatorBox.AddString(/); m_OperatorBox.AddString(+); 以上代码是初始化列表框,并使其在程序运行时具有“加”“减”“乘”“除”可选择功能。 void CMyCalculatorDlg::On1Button() { if(decimal) { Input_data_dec=Input_data_dec+1/count; count=10*count; } else Input_data_int=10*Input_data_int+1; value=Input_data_int+Input_data_dec; _gcvt(value,10,datatostr_buffer); m_ShowResultEdit=(LPCTSTR)datatostr_buffer; // TODO: Add your control notification handler code here UpdateData(false); } void CMyCalculatorDlg::On2Button() { if(decimal) { Input_data_dec=Input_data_dec+2/count; count=10*count; } else Input_data_int=10*Input_data_int+2; value=Input_data_int+Input_data_dec; _gcvt(value,10,datatostr_buffer); m_ShowResultEdit=(LPCTSTR)datatostr_buffer; // TODO: Add your control notification handler code here UpdateData(false); } void CMyCalculatorDlg::On3Button() {if(decimal) { Input_data_dec=Input_data_dec+3/count; count=10*count; } else Input_data_int=10*Input_data_int+3; value=Input_data_int+Input_data_dec; _gcvt(value,10,datatostr_buffer); m_
显示全部
相似文档