简单计算器c++课程设计_第1页
简单计算器c++课程设计_第2页
简单计算器c++课程设计_第3页
简单计算器c++课程设计_第4页
简单计算器c++课程设计_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、48简单计算器1 基本功能描述简单计算器包括双目运算符和单目运算符。双目运算符包含基本的四则运算及乘幂功能,单目运算符包含正余弦、阶乘、对数、开方、倒数等运算。可对输入任意操作数包含小数和整数及正数和负数进行以上的所有运算并能连续运算。出现错误会给出提示,同时包含清除、退格、退出功能以及有与所有按钮相对应的菜单项。2 设计思路 如图1,是输入数据子函数的流程图。打开计算器程序,输入数据,判断此次输入之前是否有数字输入,如果有,则在之前输入的数字字符后加上现有的数字字符;如果没有,则直接使编辑框显示所输入的数字字符。判断是否继续键入数字,如果是,则继续进行前面的判断,如果否,则用UpdateDa

2、ta(FALSE)刷新显示。 如图2,是整个计算器的流程图。对于输入的算式,判断运算符是双目运算符还是单目运算符。如果是双目运算符,则把操作数存入数组az+2中,把运算符存入bz+1中;如果是单目运算符,则把字符串转化为可计算的数字,再进行计算。下面判断运算符是否合法,如果合法,则将结果存入a0,不合法,则弹出对话框,提示错误。结束程序。图1 输入数据子函数流程图继续键入数字?pass3=1表示已有数字输入在之前输入的数字字符后面加上现在的数字字符。Eg:m_str+=”9”。直接使编辑框显示所输入的数字字符。Eg:m_str=”9”。输入一个数字之前是否有数字输入? pass3=1?开始NY

3、YN用UpdateData(FALSE)刷新显示开始输入单目运算符双目运算符Y将字符串转换为可计算的数字是否每一个操作数都存入a数组?N把操作数存入az+2,把运算符存入bz+1。进行运算N运算是否合法?Y弹出对话框提示错误将结果存入a0结束图2 简单计算器总流程图3 软件设计3.1设计步骤 打开Microsoft Visual C+6.0,在文件中点击新建,在弹出框内选择MFC AppWizardexe工程,输入工程名及其存储路径,点击确定,如图3所示。图3 新建MFC AppWizardexe工程 将弹出MFC AppWizard-step1对话框,选择基本对话框,点击完成,如图4所示。图

4、4 基本对话框这样,MFC AppWizard就建立了一个基于对话窗口的程序框架,如图5所示。图5 新建的对话框3.2界面设计1、 创建控件在图5所示的Resoure View选项卡中打开Dialog资源组,双击IDD_LUXIAOYING_DIALOG,在右边的窗口中显示出待编辑的对话框。开始摆放控件,包括编辑框和按钮的创建。按钮的创建以“0”为例进行介绍,其他按钮的创建可参照此进行操作。 1)在图5中控件的“编辑框”按钮上单击鼠标左键,在对话框编辑窗口上合适的位置按下鼠标左键并拖动鼠标画一个大小合适的编辑框。在编辑框上单击鼠标右键,在弹出的快捷菜单中选择属性选项,此时弹出Edit属性对话框

5、,如图6所示,在该对话框中输入ID属性。图6 Edit属性对话框 2)在图5中控件的“Button”按钮上单击鼠标左键,在对话框上的合适的位置按下鼠标左键并拖动鼠标画出一个大小合适的下压式按钮。在按钮上单击鼠标右键,在弹出的快捷菜单中选择属性选项,此时弹出Push Button属性对话框,如图7所示,在该对话框中输入ID值和标题属性。图7 Push Button属性 按照上面的操作过程编辑其他按钮和编辑框等对象的属性。 表1 各按钮和编辑框等对象的属性对象ID标题或说明编辑框IDC_RESULT_EDIT显示按钮IDC_0_BUTTON10按钮IDC_1_BUTTON21按钮IDC_2_BUT

6、TON32按钮IDC_3_BUTTON43按钮IDC_4_BUTTON54按钮IDC_5_BUTTON65按钮IDC_6_BUTTON76 续表1对象ID标题或说明按钮IDC_7_BUTTON87按钮IDC_8_BUTTON98按钮IDC_9_BUTTON109按钮IDC_OR_BUTTON11+/-按钮IDC_DIAN_BUTTON12.按钮IDC_JIA_BUTTON13+按钮IDC_JIAN_BUTTON14-按钮IDC_CHENG_BUTTON15*按钮IDC_CHU_BUTTON16/按钮IDC_CLEAR_BUTTON17Clear按钮IDC_SQRT_BUTTON18sqrt按钮

7、IDC_DAOSHU_BUTTON191/x按钮IDC_DENGYU_BUTTON20=按钮IDC_LN_BUTTON21ln按钮IDC_MI_BUTTON2210x按钮IDC_COS_BUTTON23cos按钮IDC_SIN_BUTTON24sin按钮IDC_TUIWEI_BUTTONBackspace按钮IDC_LOG_BUTTON26log 续表1对象ID标题或说明按钮IDC_TAN_BUTTON27tan按钮IDC_JIECHENG_BUTTON28n!完成后界面如图8所示图8 计算机界面2 连接变量和代码1) 给编辑框连接变量。在编辑框上单击鼠标右键,在弹出的菜单中选择建立类向导菜单

8、项,弹出MFC ClassWizard对话框,选择Member Variables选项卡,如图9所示。2) 在Control IDs列表框中选择IDC_RESULT_EDIT,单击Add Variables按钮,在弹出的对话框中连接变量m_str。变量类型设定为CString型。如图10所示。 图9 MFC ClassWizard对话框中的Member Variables选项卡图10 m_str属性设置2) 给“0”按钮连接代码。在“0”按钮上单击鼠标右键,选择建立类向导菜单项,在弹出的对话框中选择Messages Maps选项卡,然后在Object IDs列表框中选择IDC_0_BUTTON

9、1,在Messages列表框中选择BN_CLICKED项,即选择单击按钮事件,如图11所示。图11 “0”按钮连接代码对话框3 菜单的设计选择插入/资源命令,将显示插入资源对话框,如图12所示。选择Menu,单击新建即可。图12 插入资源对话框 Resoure View选项卡中打开Menu资源组,双击IDR_MENU1,然后给菜单添加相应的标题,并把每个菜单对应的ID值与相应的按钮的一致。如图13所示。图13 菜单属性对话框在对话框的任何一个空白域单击鼠标右键,然后在弹出的快捷菜单中选择属性命令,弹出对话属性对话框,如图14所示。在对话框中的菜单组合框中选择IDR_MENU1。图14 对话属性

10、对话框最终得到的界面如图15所示。图15 计算器完整界面3.3 关键功能的实现1) 操作数、小数点以及双目运算符的输入 编辑框所关联的变量为m_str,程序开始时为零。每按下一个数字键按钮、双目运算符按钮或小数点按钮,就把它累加到m_str里并刷新显示。BOOL型变量pass1判断之前是否有操作符输入,有,则pass为1;无,则为0。BOOL型变量pass2判断是否有小数点,有,则为0;无,则为1;BOOL型变量pass3判断之前是否有数字输入,有,则为0;无,则为1。2) 单目运算符功能的实现 由于所输入的操作数类型为String类,所以需要将其转化为数字才能进行运算。首先,将比率rate赋

11、值为10,将每一位输入的字符与0字符做差,得到他们ASCII值的差,在遇到小数点之前,将这些差值通过循环求和以及乘以rate值得到字符串所表达的数值的整数部分,然后,当遇到小数点时,将rate赋值为0.1,再通过类似的计算方法得到字符串所表达的数值的小数部分,最后,将所得数值的整数部分和小数部分合在一起赋值给变量a,再通过单目运算符作用于a上即可实现相应功能。3) 双目运算符功能的实现 由于所输入的操作数类型为String类,所以要通过与单目运算符中类似的方法将其转换为数值,再进行相关运算。对于双目运算符功能中操作数和操作符的区分,可以将它们分别存储在数组a中和数组b中加以区分,再进行计算。4

12、) 退格键功能的实现 如果m_str中有字符串,则每次按下退位键都将去掉最右边一个字符剩下的字符串重新赋值给m_str,从而实现退位功能。如果,m_str中本来就没有字符串,则将字符0赋值给m_str。5) 正负号功能的实现 由于所输入的操作数类型为String类,所以要通过与单目运算符中类似的方法将其转换为数值,再进行相关运算。对于正负号功能,只要在原来数值的前面加一个负号,即可实现相应功能。4结论与心得体会 经过多次调试,设计的计算器可以实现本次要求的所有功能。 此次VC+课程设计,在同学的帮助下,顺利完成,收获也很大。本学期我们开设了面向对象程序设计与VC+实践这门课,其中MFC部分皆是

13、需要实践的,所以,此次课程设计是很及时、很有必要的。这样,不仅能加深我们对MFC程序设计的掌握,而且,还能让我们真正做到学以致用。课程设计刚开始的时候,觉着比较轻松,毕竟上课时做过简单计算器,觉着这次的题目也不会太难。后来,通过老师的讲解,发现这次课程设计与平时做的计算器有很多不同,不仅需要考虑运算的优先级,还需要实现连续运算,而且还有单目运算与双目运算的不同等一系列新的问题。但是,真正开始做的时候,通过查找资料和与同学的交流,渐渐有了头绪。在完成过程中,仍然避免不了会遇到一些问题,这时,不仅需要思考,还需要查阅相关资料来解决。当然,做课程设计,基本知识是必备的。只有具有了一定的基础知识,才能

14、在课程设计过程中高质高效完成。同时,也不能请示任何一道题,每一道题都有它自己的难点。这次课程设计让我学到了很多,不仅巩固了先前学的MFC程序设计知识,而且也培养了我的实践能力,将理论知识与实践联系起来,更令我的创造性思维得到了拓展。希望以后类似这样的课程设计、这样的实践机会能多一些。5思考题1、程序中如何实现小数的显示与运算?答:编辑框所关联的变量为Cstring类的m_str,当输入小数点时,直接将字符.加在之前已输入字符后面即可。运算时,通过BOOL型变量pass2判断是否有小数点,有,则为0;无,则为1。当有小数点时,在把已输入的字符串转化为相应数值时,乘以的比率rate为0.1,且每乘

15、一次,都使rate值变为原来rate值的十分之一,之后由于头文件中加了“math.h”,故,再通过进行相关数学运算即可得到结果。2、 描述等号对应的消息处理函数中需要处理的问题及相应的实现代码?答:等号对应的消息处理函数中需要实现双目运算符的功能和连续运算,同时还要解决运算优先级的问题,另外还需要有相应的错误提示。实现代码:void CLuxiaoyingDlg:OnDengyuButton20() / TODO: Add your control notification handler code hereint i, j, z, s, x=0, y=1, t, m=1;char b10;d

16、ouble rate=10.0, itemp=0.0,a20, l;for(i=0;i<20;i+)ai=100000000.0;for(i=0;i<10;i+)bi=' '/以下为双目运算;z=0;for(i=0;i<m_str.GetLength();i+)/GetLength获得当前字节文件的逻辑/长度if(isdigit(m_str.GetAt(i)/isdigit 若参数c为阿拉伯数字,则/返回TRUE,否则返回NULL(0)。 /m_str.GetAt(i)取出字符串 中的第i个字符 /(编号从 0起)if(rate=10.0) itemp=ite

17、mp*rate+(m_str.GetAt(i)-'0');if(i=m_str.GetLength()-1)az=itemp;elseitemp=itemp+rate*(m_str.GetAt(i)-'0');rate=rate/10;if(i=m_str.GetLength()-1)az=itemp;else if(m_str.GetAt(i)='.')rate=0.1;else if(m_str.GetAt(i)='+')az=itemp;itemp=0;z+;bz='+'z+;rate=10.0;else i

18、f(m_str.GetAt(i)='-')az=itemp;itemp=0;z+;bz='-'z+;rate=10.0;else if(m_str.GetAt(i)='*')az=itemp;itemp=0;z+;bz='*'z+;rate=10.0;else if(m_str.GetAt(i)='/')az=itemp;itemp=0;z+;bz='/'z+;rate=10.0;s=z;for(j=0;j<=s;j+)/除法转换成乘法if(bj='/')if(aj+1=0)

19、MessageBox("0不能作为除数!");elseaj+1=1/aj+1;bj='*'for(j=0;j<=s;j+)/乘法,有乘号时执行乘法计算,同时注意优先级if(bj='*')if(j-t=2)at-m=at-m*aj+1;/实现连乘m=m+2;else aj-1=aj-1*aj+1;/乘法的实现aj+1=100000000.0;bj=' 't=j;for(j=0;j<=s;j+)/数值和运算符的传递if(aj!=100000000.0)ax=aj;x+=2;if(bj!=' ')by=b

20、j;y+=2;for(j=0;j<=y-2;j+)/加减法if(bj='+')a0=a0+aj+1;else if(bj='-')a0=a0-aj+1;if(abs(a0)>100000000)MessageBox("您输入的数值过大!");elsem_str.Format("%1f",a0);pass1=0;UpdateData(0);6附录6.1调试报告运行时,backspace按键功能不能实现,点击后无任何反应。经过检查,程序和关联的相关变量等都没错误,可是该键没有响应。在与同学讨论后,重新添加改按钮,功

21、能正常实现。6.2测试结果1、 输入“2”,“+”,“6”,“-”,“3”,“*”,“9”,“=”,并在菜单中同样输入这组操作,均得到结果如图16。图16 结果图12、 输入“0”,“ln”,得到结果如图17。图17 结果图23、 输入“30”,“sin”,得到结果如图18。图18 结果图36.3关键源代码1、0到9的输入void CLuxiaoyingDlg:On0Button1() / TODO: Add your control notification handler code hereUpdateData(TRUE);if(pass1=1&&pass3=0)m_str

22、+="0"if(pass1=1&&pass3=1)/在编辑框1的字符串后加上字符0m_str="0"pass3=0;UpdateData(FALSE);void CLuxiaoyingDlg:On1Button2() / TODO: Add your control notification handler code here UpdateData(TRUE);if(pass1=1&&pass3=0)m_str+="1"if(pass1=1&&pass3=1)/在编辑框1的字符串后加上字

23、符1m_str="1"pass3=0;UpdateData(FALSE);void CLuxiaoyingDlg:On2Button3() / TODO: Add your control notification handler code hereUpdateData(TRUE);if(pass1=1&&pass3=0)m_str+="2"if(pass1=1&&pass3=1)/在编辑框1的字符串后加上字符2m_str="2"pass3=0;UpdateData(FALSE);void CLuxia

24、oyingDlg:On3Button4() / TODO: Add your control notification handler code hereUpdateData(TRUE);if(pass1=1&&pass3=0)m_str+="3"if(pass1=1&&pass3=1)/在编辑框1的字符串后加上字符3m_str="3"pass3=0;UpdateData(FALSE);void CLuxiaoyingDlg:On4Button5() / TODO: Add your control notificatio

25、n handler code hereUpdateData(TRUE);if(pass1=1&&pass3=0)m_str+="4"if(pass1=1&&pass3=1)/在编辑框1的字符串后加上字符4m_str="4"pass3=0;UpdateData(FALSE);void CLuxiaoyingDlg:On5Button6() / TODO: Add your control notification handler code hereUpdateData(TRUE);if(pass1=1&&pa

26、ss3=0)m_str+="5"if(pass1=1&&pass3=1)/在编辑框1的字符串后加上字符5m_str="5"pass3=0;UpdateData(FALSE);void CLuxiaoyingDlg:On6Button7() / TODO: Add your control notification handler code hereUpdateData(TRUE);if(pass1=1&&pass3=0)m_str+="6"if(pass1=1&&pass3=1)/在编辑

27、框1的字符串后加上字符6m_str="6"pass3=0;UpdateData(FALSE);void CLuxiaoyingDlg:On7Button8() / TODO: Add your control notification handler code hereUpdateData(TRUE);if(pass1=1&&pass3=0)m_str+="7"if(pass1=1&&pass3=1)/在编辑框1的字符串后加上字符7m_str="7"pass3=0;UpdateData(FALSE);v

28、oid CLuxiaoyingDlg:On8Button9() / TODO: Add your control notification handler code hereUpdateData(TRUE);if(pass1=1&&pass3=0)m_str+="8"if(pass1=1&&pass3=1)/在编辑框1的字符串后加上字符8m_str="8"pass3=0;UpdateData(FALSE);void CLuxiaoyingDlg:On9Button10() / TODO: Add your control

29、notification handler code hereUpdateData(TRUE);if(pass1=1&&pass3=0)m_str+="9"if(pass1=1&&pass3=1)/在编辑框1的字符串后加上字符9m_str="9"pass3=0;UpdateData(FALSE);2、 加减乘除和小数点的输入void CLuxiaoyingDlg:OnJiaButton13() / TODO: Add your control notification handler code hereUpdateData(

30、TRUE);m_str = m_str + "+"/加号pass1=1;UpdateData(FALSE);void CLuxiaoyingDlg:OnJianButton14() / TODO: Add your control notification handler code hereUpdateData(TRUE);m_str = m_str + "-"/减号pass1=1;UpdateData(FALSE);void CLuxiaoyingDlg:OnChengButton15() / TODO: Add your control notifi

31、cation handler code hereUpdateData(TRUE);m_str = m_str + "*" /乘号pass1=1;UpdateData(FALSE);void CLuxiaoyingDlg:OnChuButton16() / TODO: Add your control notification handler code hereUpdateData(TRUE);m_str = m_str + "/"/除号pass1=1;UpdateData(FALSE);void CLuxiaoyingDlg:OnDianButton12

32、() / TODO: Add your control notification handler code hereUpdateData(1);if(pass1=1&&pass2=1)m_str+="."pass2=0;UpdateData(0);3、 清除功能的实现void CLuxiaoyingDlg:OnClearButton17() / TODO: Add your control notification handler code hereUpdateData(1);m_str="0"pass1=1;/ 之前是否有操作符输入,有

33、,则为1,无,则为0pass2=1;/是否有小数点,有,则为0,无,则为1pass3=1;/ 之前是否有数字输入,有,则为0,无,则为1UpdateData(0);4、 cos功能的实现void CLuxiaoyingDlg:OnCosButton23() / TODO: Add your control notification handler code heredouble a,itemp=0,rate=10.0;int i;UpdateData(TRUE);for(i=0;i<m_str.GetLength();i+)if(isdigit(m_str.GetAt(i)if(rate

34、=10.0) itemp=itemp*rate+(m_str.GetAt(i)-'0');if(i=m_str.GetLength()-1)a=itemp;elseitemp=itemp+rate*(m_str.GetAt(i)-'0');rate=rate/10;if(i=m_str.GetLength()-1)a=itemp;else if(m_str.GetAt(i)='.')rate=0.1;a=cos(a*3.1415926/180);m_str.Format("%1f",a);pass1=0;UpdateData(

35、FALSE);5、 倒数功能的实现void CLuxiaoyingDlg:OnDaoshuButton19() / TODO: Add your control notification handler code heredouble a,itemp=0,rate=10.0;int i;UpdateData(TRUE);for(i=0;i<m_str.GetLength();i+)if(isdigit(m_str.GetAt(i)if(rate=10.0) itemp=itemp*rate+(m_str.GetAt(i)-'0');if(i=m_str.GetLength

36、()-1)a=itemp;elseitemp=itemp+rate*(m_str.GetAt(i)-'0');rate=rate/10;if(i=m_str.GetLength()-1)a=itemp;else if(m_str.GetAt(i)='.')rate=0.1;if(a=0)MessageBox("0没有倒数!");elsea=1/a;m_str.Format("%1f",a);pass1=0;UpdateData(FALSE);6、 等于号功能的实现void CLuxiaoyingDlg:OnDengyuBu

37、tton20() / TODO: Add your control notification handler code hereint i, j, z, s, x=0, y=1, t, m=1;char b10;double rate=10.0, itemp=0.0,a20, l;for(i=0;i<20;i+)ai=100000000.0;for(i=0;i<10;i+)bi=' '/以下为双目运算;z=0;for(i=0;i<m_str.GetLength();i+)/GetLength 获得当前字节文件的逻辑长度if(isdigit(m_str.GetA

38、t(i)/isdigit 若参数c为阿拉伯数字,则返回TRUE,否则返回NULL(0)。 /m_str.GetAt(i)取出字符串 中的第i个字符(编号从 0起)if(rate=10.0) itemp=itemp*rate+(m_str.GetAt(i)-'0');if(i=m_str.GetLength()-1)az=itemp;elseitemp=itemp+rate*(m_str.GetAt(i)-'0');rate=rate/10;if(i=m_str.GetLength()-1)az=itemp;else if(m_str.GetAt(i)='

39、.')rate=0.1;else if(m_str.GetAt(i)='+')az=itemp;itemp=0;z+;bz='+'z+;rate=10.0;else if(m_str.GetAt(i)='-')az=itemp;itemp=0;z+;bz='-'z+;rate=10.0;else if(m_str.GetAt(i)='*')az=itemp;itemp=0;z+;bz='*'z+;rate=10.0;else if(m_str.GetAt(i)='/')az=

40、itemp;itemp=0;z+;bz='/'z+;rate=10.0;s=z;for(j=0;j<=s;j+)/除法转换成乘法if(bj='/')if(aj+1=0) MessageBox("0不能作为除数!");elseaj+1=1/aj+1;bj='*'for(j=0;j<=s;j+)/乘法,有乘号时执行乘法计算,同时注意优先级if(bj='*')if(j-t=2)at-m=at-m*aj+1;/实现连乘m=m+2;else aj-1=aj-1*aj+1;/乘法的实现aj+1=10000000

41、0.0;bj=' 't=j;for(j=0;j<=s;j+)/数值和运算符的传递if(aj!=100000000.0)ax=aj;x+=2;if(bj!=' ')by=bj;y+=2;for(j=0;j<=y-2;j+)/加减法if(bj='+')a0=a0+aj+1;else if(bj='-')a0=a0-aj+1;if(abs(a0)>100000000)MessageBox("您输入的数值过大!");elsem_str.Format("%1f",a0);pass1=

42、0;UpdateData(0);7、 阶乘的计算void CLuxiaoyingDlg:OnJiechengButton28() / TODO: Add your control notification handler code heredouble a,itemp=0,rate=10.0;int i,k;UpdateData(TRUE);for(i=0;i<m_str.GetLength();i+)if(isdigit(m_str.GetAt(i)if(rate=10.0) itemp=itemp*rate+(m_str.GetAt(i)-'0');if(i=m_st

43、r.GetLength()-1)a=itemp;elseitemp=itemp+rate*(m_str.GetAt(i)-'0');rate=rate/10;if(i=m_str.GetLength()-1)a=itemp;else if(m_str.GetAt(i)='.')rate=0.1;if(a=0)a=1;elsek=1;for(i=1;i<=a;i+)k*=i;a=k;m_str.Format("%1f",a);pass1=0;UpdateData(FALSE);8、 ln功能的实现void CLuxiaoyingDlg:O

44、nLnButton21() / TODO: Add your control notification handler code heredouble a,itemp=0,rate=10.0;int i;UpdateData(TRUE);for(i=0;i<m_str.GetLength();i+)if(isdigit(m_str.GetAt(i)if(rate=10.0) itemp=itemp*rate+(m_str.GetAt(i)-'0');if(i=m_str.GetLength()-1)a=itemp;elseitemp=itemp+rate*(m_str.G

45、etAt(i)-'0');rate=rate/10;if(i=m_str.GetLength()-1)a=itemp;else if(m_str.GetAt(i)='.')rate=0.1;if(a=0)MessageBox("0不能取对数!");elsea=log(a);m_str.Format("%1f",a);pass1=0;UpdateData(FALSE);9、 log功能的实现void CLuxiaoyingDlg:OnLogButton26() / TODO: Add your control notific

46、ation handler code heredouble a,itemp=0,rate=10.0;int i;UpdateData(TRUE);for(i=0;i<m_str.GetLength();i+)if(isdigit(m_str.GetAt(i)if(rate=10.0) itemp=itemp*rate+(m_str.GetAt(i)-'0');if(i=m_str.GetLength()-1)a=itemp;elseitemp=itemp+rate*(m_str.GetAt(i)-'0');rate=rate/10;if(i=m_str.G

47、etLength()-1)a=itemp;else if(m_str.GetAt(i)='.')rate=0.1;if(a=0)MessageBox("0不能取对数!");elsea=log10(a);m_str.Format("%1f",a);pass1=0;UpdateData(FALSE);10、 幂功能的实现void CLuxiaoyingDlg:OnMiButton22() / TODO: Add your control notification handler code heredouble a,k,itemp=0,rate

48、=10.0;int i;UpdateData(TRUE);for(i=0;i<m_str.GetLength();i+)if(isdigit(m_str.GetAt(i)if(rate=10.0) itemp=itemp*rate+(m_str.GetAt(i)-'0');if(i=m_str.GetLength()-1)a=itemp;elseitemp=itemp+rate*(m_str.GetAt(i)-'0');rate=rate/10;if(i=m_str.GetLength()-1)a=itemp;else if(m_str.GetAt(i)=

49、'.')rate=0.1;k=1;for(i=0;i<a;i+)k*=10; a=k;m_str.Format("%1f",a);pass1=0;UpdateData(FALSE);11、 正负功能的实现void CLuxiaoyingDlg:OnOrButton11() / TODO: Add your control notification handler code heredouble itemp=0,rate=10.0,a;int i;UpdateData(TRUE);for(i=0;i<m_str.GetLength();i+)if(isdigit(m_str.GetAt(i)if(rate=10.0) itemp=itemp*rate+(m_str.GetAt(i)-'0');if(i=m_str.GetLength()-1)a=itemp;elseitemp=itemp+rate*(m_st

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论