用模态对话框实现加减乘除
2014-06-24 15:38
99 查看
本案例,采用VC6.0中的MFC模态对话框编写,该对话框可以实现加减乘除。
步骤如下:
一)创建一个模态对话框,具体请参考/article/2618131.html
二)在对话框“四则运算”上,加上四个Button,依次命名为Add、sub、mul、div,例如,加法Add()的设置如下:
三)编写对应的响应函数Add()、Sub()、Mul()、Div(),代码如下:
注意,double转为String时,使用atof(); String转为double时,使用gcvt(),引用的头文件为#include<stdlib.h>
double atof( const char *string );
char *gcvt(double value, int ndigit, char *buf);
value——被转换的值。
ndigit——存储的有效数字位数。 buf——结果的存储位置。
说明: gcvt函数把一个浮点值转换成一个字符串(包括一个小数点和可能的 符号字节)并存储该字符串在buffer中。该buffer应足够大以便容纳转换 的值加上结尾的空格字符,它是自动添加的。如果一个缓冲区的尺寸为 digits的尺寸+1,该函数覆盖该缓冲区的末尾。这是因为转换的字符串包 括一个小数点以及可能包含符号和指数信息。不提供上溢出。gcvt试图 以十进制格式产生digits数字,如果不可能,它以指数格式产生digits数字, 在转换时可能截除尾部的0。
完整代码地址:http://download.csdn.net/detail/sanqima/7546847
步骤如下:
一)创建一个模态对话框,具体请参考/article/2618131.html
二)在对话框“四则运算”上,加上四个Button,依次命名为Add、sub、mul、div,例如,加法Add()的设置如下:
三)编写对应的响应函数Add()、Sub()、Mul()、Div(),代码如下:
void CTestDlg::OnAdd() { // TODO: Add your control notification handler code here double num1,num2,num3; char ch1[10],ch2[10],ch3[10]; GetDlgItem(IDC_EDIT1)->GetWindowText(ch1,10); GetDlgItem(IDC_EDIT2)->GetWindowText(ch2,10); num1=atof(ch1); num2=atof(ch2); num3=num1+num2; gcvt(num3,10,ch3); GetDlgItem(IDC_EDIT3)->SetWindowText(ch3); } void CTestDlg::OnSub() { // TODO: Add your control notification handler code here double num1,num2,num3; char ch1[10],ch2[10],ch3[10]; GetDlgItem(IDC_EDIT1)->GetWindowText(ch1,10); GetDlgItem(IDC_EDIT2)->GetWindowText(ch2,10); num1=atof(ch1); num2=atof(ch2); num3=num1-num2; gcvt(num3,10,ch3); GetDlgItem(IDC_EDIT3)->SetWindowText(ch3); } void CTestDlg::OnMul() { // TODO: Add your control notification handler code here double num1,num2,num3; char ch1[10],ch2[10],ch3[10]; GetDlgItem(IDC_EDIT1)->GetWindowText(ch1,10); GetDlgItem(IDC_EDIT2)->GetWindowText(ch2,10); num1=atof(ch1); num2=atof(ch2); num3=num1*num2; gcvt(num3,10,ch3); GetDlgItem(IDC_EDIT3)->SetWindowText(ch3); } void CTestDlg::OnDiv() { // TODO: Add your control notification handler code here double num1,num2,num3; char ch1[10],ch2[10],ch3[10]; GetDlgItem(IDC_EDIT1)->GetWindowText(ch1,10); GetDlgItem(IDC_EDIT2)->GetWindowText(ch2,10); num1=atof(ch1); num2=atof(ch2); if (num2==0) { MessageBox("除数不能为0,请从新输入!"); }else{ num3=num1/num2; gcvt(num3,10,ch3); GetDlgItem(IDC_EDIT3)->SetWindowText(ch3); } }
注意,double转为String时,使用atof(); String转为double时,使用gcvt(),引用的头文件为#include<stdlib.h>
double atof( const char *string );
char *gcvt(double value, int ndigit, char *buf);
value——被转换的值。
ndigit——存储的有效数字位数。 buf——结果的存储位置。
说明: gcvt函数把一个浮点值转换成一个字符串(包括一个小数点和可能的 符号字节)并存储该字符串在buffer中。该buffer应足够大以便容纳转换 的值加上结尾的空格字符,它是自动添加的。如果一个缓冲区的尺寸为 digits的尺寸+1,该函数覆盖该缓冲区的末尾。这是因为转换的字符串包 括一个小数点以及可能包含符号和指数信息。不提供上溢出。gcvt试图 以十进制格式产生digits数字,如果不可能,它以指数格式产生digits数字, 在转换时可能截除尾部的0。
完整代码地址:http://download.csdn.net/detail/sanqima/7546847
相关文章推荐
- 用模态对话框实现加减乘除
- JAVA实现精确的加减乘除(转载)
- 不使用+,-,*./的整数加减乘除的实现
- [转]Android 中利用反射技术实现加减乘除
- 第八周实验任务三--实现分数类中的运算符重载并可以完成分数的加减乘除、求反、比较的运算
- Java实现简单计算器的加减乘除功能
- 第八周任务三实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、求反、比较(6种关系)的运算。
- Android 中利用反射技术实现加减乘除
- 位运算实现整数加减乘除
- 用位运算实现四则运算之加减乘除(用位运算求一个数的1/3)
- 用简易Ajax框架实现"加减乘除"运算【原创】
- 利用算术(加减乘除)的方法实现从1到9计算等于100
- 实现复数的加减乘除四则运算的C#类(已测成功)
- 利用算术(加减乘除)的方法实现从1到9计算等于100
- 多项式加减乘除法算法实现
- 用简易Ajax框架实现"加减乘除"运算【原创】
- JAVA实现精确的加减乘除
- Java实现加减乘除(命令行)
- 位运算实现加减乘除、求补、比较、正负判断
- 《C++第八周实验报告3-1》---实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、求反、比较(6种关系)的运算