高手进来看下:MFC对话框程序实现一元二次方程求解(程序都有,只求修改)
三个输入编辑框ID分别为IDC_OUTPUT1、IDC_OUTPUT2、IDC_OUTPUT3运算ID:IDC_BUTTON1输出ID:IDC_OUTPUT然后给运算按钮...
三个输入编辑框ID分别为IDC_OUTPUT1、IDC_OUTPUT2、IDC_OUTPUT3
运算ID:IDC_BUTTON1
输出ID:IDC_OUTPUT
然后给运算按钮添加鼠标消息处理函数,并在其中输入代码
C语言的程序如何转化为MFC的呢?求大神指点
我写的C语言代码:
#include<stdio.h>
#include<math.h>
void main()
{
double a,b,c,x1,x2,p,real,image;
printf("请输入一元二次方程的系数a,b,c的值:\n");
scanf("%lf%lf%lf",&a,&b,&c);
if(a==0&&b==0)
printf("此方程无解!\n");
else
if(a==0&&b!=0)
printf("此方程只有一个解:%.3f\n",-c/b);
else
{
p=b*b-4*a*c;
real=-b/(2*a);
image=sqrt(fabs(p))/(2*a);
if(p<0)
{
printf("方程有虚数解:\n");
printf("x1=%.3f+%.3fi\n",real,image);
printf("x2=%.3f-%.3fi\n",real,image);
}
else
if(p>0)
{
x1=real+image;
x2=real-image;
printf("方程有两个实数解:");
printf("x1=%.3f,x2=%.3f\n",x1,x2);
}
else
printf("方程只有一个实数解:%.3f\n",real);
}
}
这是题目要求! 展开
运算ID:IDC_BUTTON1
输出ID:IDC_OUTPUT
然后给运算按钮添加鼠标消息处理函数,并在其中输入代码
C语言的程序如何转化为MFC的呢?求大神指点
我写的C语言代码:
#include<stdio.h>
#include<math.h>
void main()
{
double a,b,c,x1,x2,p,real,image;
printf("请输入一元二次方程的系数a,b,c的值:\n");
scanf("%lf%lf%lf",&a,&b,&c);
if(a==0&&b==0)
printf("此方程无解!\n");
else
if(a==0&&b!=0)
printf("此方程只有一个解:%.3f\n",-c/b);
else
{
p=b*b-4*a*c;
real=-b/(2*a);
image=sqrt(fabs(p))/(2*a);
if(p<0)
{
printf("方程有虚数解:\n");
printf("x1=%.3f+%.3fi\n",real,image);
printf("x2=%.3f-%.3fi\n",real,image);
}
else
if(p>0)
{
x1=real+image;
x2=real-image;
printf("方程有两个实数解:");
printf("x1=%.3f,x2=%.3f\n",x1,x2);
}
else
printf("方程只有一个实数解:%.3f\n",real);
}
}
这是题目要求! 展开
1个回答
展开全部
这个不难,1、打开VC++;2、选择菜单栏的新建3、选择建立基于对话框的程序,直接点完成;4、在出现的对话框里,把你上面的按钮或者文本编辑框放上去,你都用双精度的数也可以。在那五个文本编辑框上面右键鼠标,选择新建变量,然后把数值属性和符号输入上去,这样就形成了文本框与变量的联系。5、双击“运算”按钮,就到了输入程序的位置了,把你的代码贴进去。6、粘贴你的代码时候,注意一下c和c++的区别:首先在开头加一句:UpdateData(true);//把编辑框里的数值上传到变量;其次,double a,b,c,x1,x2,p,real,image;这一句去掉,前五个变量已经在对话框里面添加了,不要管把double p,real,image;这句话添加到头文件的public:下面,比如你的工程叫jisuan.cpp,头文件就叫:jisuan.h,然后就可以用了。点击运行,试试。
最后再多说一句,你用printf("此方程只有一个解:%.3f\n",-c/b);应该也行,但是看了你的界面,是想做进去,那就也给结果的文本编辑框加个变量,同样是右键,-》添加变量-》然后加个CString 类型的变量就行,随便起个名,result。加上这句代码:result.Format(xxxxxxxxxx);xxxxx是你fprint里面的东西,然后在后面加上一句UpdateData(false);其实建议你更简单一些可以用AfxMessageBox("xxxxxxxxx");
最后再多说一句,你用printf("此方程只有一个解:%.3f\n",-c/b);应该也行,但是看了你的界面,是想做进去,那就也给结果的文本编辑框加个变量,同样是右键,-》添加变量-》然后加个CString 类型的变量就行,随便起个名,result。加上这句代码:result.Format(xxxxxxxxxx);xxxxx是你fprint里面的东西,然后在后面加上一句UpdateData(false);其实建议你更简单一些可以用AfxMessageBox("xxxxxxxxx");
追问
1.不是让定义一个类吗?
2.我是直接创建的基于对话框的应用程序 ,在哪里新创建一个类呢?
3.有四个编辑框,1个按钮 ,将所有变量都加在一个编辑框?还是分开添加在每个编辑框呢?
4.输入的系数不一样 结果显示也不同(每种结果都显示出来怎么写,并列往下写还是?),这样吗?如下:
CString s;
s.Format("此方程只有一个解:%.3f\n",-c/b);
MessageBox(s);
追答
其实,mfc做出的程序就是基于类的;
第二,用CString就不用AfxMessagebox了。
第三,我也后来考虑了一下让定义一个类解决问题,莫非是说定义一个算方程的Class,然后调用他的成员函数,解题,这也没什么难的,不过就这么一个问题实在没必要定义一个类了,如果非要在联系吧。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询