24小时热门版块排行榜    

查看: 1426  |  回复: 4
本帖产生 1 个 博学EPI ,点击这里进行查看

babyrabbit2006

金虫 (小有名气)


[交流] C++编程

求解一元二次方程。
一元二次方程的定义为:
  ax2+bx+c=0
(1)如果b2 -4ac>0,方程有两个不同的实根,分别是:
     
(2)如果b2 -4ac< 0,方程没有实根,但有虚根;
(3)如果b2 -4ac= 0,方程有一个实根。
请你编写一个程序,使其能求出多个二次方程的根。该程序要询问用户是否想继续解下一个方程。用户输入1来继续,输入其它数字,则终止程序。程序要求用户输入a,b和c,然后根据前面的条件计算,并输出答案。
要求:使用类实现,
(1)        a,b,c为该类的私有成员变量;
(2)        求根的实现为该类的成员函数,形式为:
//函数返回值:实根的个数;
//参数:x- 用以返回实根值的数组;
long CalResult(float x[]);
(3)        该类还包含有参构造函数、析构函数。
  谢谢  请尽快

» 猜你喜欢

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

babyrabbit2006

金虫 (小有名气)


同上

两个根粘帖不上  就是一般一元二次方程的根的形式
2楼2010-12-17 21:39:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
★ ★ ★ ★ ★ ★ ★ ★ ★ ★
YUE-jf(金币+10):奖励 2010-12-21 14:02:16
#include
#include
using namespace std;
float x1,x2,disc,p,q;
int main()
{void greater_than_zero(float,float);
void equal_to_zero(float,float);
void smaller_than_zero(float,float);
float a,b,c;
cout<<"input a,b,c:";
cin>>a>>b>>c;
disc=b*b-4*a*c;
cout<<"root:"< if (disc>0)
  {
   greater_than_zero(a,b);
   cout<<"x1="<   }
else if (disc==0)
  {equal_to_zero(a,b);
   cout<<"x1="<   }
else
  {smaller_than_zero(a,b);
   cout<<"x1="<    cout<<"x2="<   }
return 0;
}

void greater_than_zero(float a,float b)   /* 定义一个函数,用来求disc>0时方程的根 */
{x1=(-b+sqrt(disc))/(2*a);
  x2=(-b-sqrt(disc))/(2*a);
}

void equal_to_zero(float a,float b)     /* 定义一个函数,用来求disc=0时方程的根 */
{
  x1=x2=(-b)/(2*a);
}

void smaller_than_zero(float a,float b)  /* 定义一个函数,用来求disc<0时方程的根 */
{
  p=-b/(2*a);
  q=sqrt(-disc)/(2*a);
}
3楼2010-12-17 21:51:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
你自己回去实验一下。
4楼2010-12-17 21:52:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fzr417

木虫 (正式写手)


babyrabbit2006(金币+50, 博学EPI+1):谢谢了啊 2010-12-20 20:36:07
// 二次根.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "math.h"
#include   
using   namespace   std;


class Cercigeng
{
public:
        Cercigeng(float aa, float bb, float cc);
        ~Cercigeng();
        //函数返回值:实根的个数;
        //参数:x- 用以返回实根值的数组;
        long CalResult(float x[]);

private:
        float a;
        float b;
        float c;
};

Cercigeng::Cercigeng(float aa, float bb, float cc)
{
        a=aa;
        b=bb;
        c=cc;
}
Cercigeng::~Cercigeng()
{

}
long Cercigeng::CalResult(float x[])
{
        float delta = 0;
        long geshu=0;
        delta = b*b-4.0*a*c;
        if (delta < 0)
        {
                geshu = 0;
        }
        else if(fabs(delta)<1e-10)
        {
                x[0] = (-b+sqrt(delta))/2.0/a;
                geshu = 1;
        }
        else
        {
                x[0] = (-b+sqrt(delta))/2.0/a;
                x[1] = (-b-sqrt(delta))/2.0/a;
                geshu = 2;
        }
        return geshu;
}

int main(int argc, char* argv[])
{
        cout<<"求解方程的根!\n"<<"请输入a,b,c";
        float a,b,c;
        cin>>a>>b>>c;
        Cercigeng fangcheng(a,b,c);
       
        float xx[1];
        long GeShu = fangcheng.CalResult(xx);
        if (GeShu = 0)
        {
                cout<<"无实根!\n";
        }
        else if(GeShu = 1)
        {
            cout<<"方程有一个实根为"<         }
        else
        {
                cout<<"方程有二个实根,分别为"<         }

        cout<<"如果继续,请输入1!否则输入其它数字\n";
        int jixu=0;
        cin>>jixu;
        for (;(jixu-1)!=0
        {
                cout<<"求解方程的根!\n"<<"请输入a,b,c";
                cin>>a>>b>>c;
                Cercigeng fangcheng(a,b,c);
                GeShu = fangcheng.CalResult(xx);

                if (GeShu = 0)
                {
                        cout<<"无实根!\n";
                }
                else if(GeShu = 1)
                {
                        cout<<"方程有一个实根为"<                 }
                else
                {
                        cout<<"方程有二个实根,分别为"<                 }
        }

        return 0;
}




试试吧,应该没有问题的,我写了一下,但是没有编译运行,好运!
5楼2010-12-18 18:11:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 babyrabbit2006 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[博后之家] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +4 h4CP7TrQR8Lg 2026-08-22 4/200 2026-08-23 20:46 by 0p9y1isJp2jM
[基金申请] 2026年的国家社科基金项目通讯评审的新规则与新动向、新挑战 +4 process2012 2026-08-23 5/250 2026-08-23 19:58 by jurkat.1640
[公派出国] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 2JOx3r2CYEgw 2026-08-22 4/200 2026-08-23 19:34 by lXgU0RvNTDC9
[公派出国] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 2JOx3r2CYEgw 2026-08-22 4/200 2026-08-23 19:22 by lXgU0RvNTDC9
[考博] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 2JOx3r2CYEgw 2026-08-22 5/250 2026-08-23 19:22 by lXgU0RvNTDC9
[找工作] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 h4CP7TrQR8Lg 2026-08-22 3/150 2026-08-23 16:30 by lXgU0RvNTDC9
[教师之家] 跳槽后在研项目怎么办? +5 简单化xn 2026-08-22 10/500 2026-08-23 12:38 by 简单化xn
[基金申请] 什么时候开奖? +9 CrisMessi 2026-08-18 10/500 2026-08-23 12:03 by 丶昵称占用
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 2JOx3r2CYEgw 2026-08-22 5/250 2026-08-23 07:41 by OEbVnUOu01ol
[论文投稿] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 2JOx3r2CYEgw 2026-08-22 4/200 2026-08-23 04:04 by OEbVnUOu01ol
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 QTy3jDtz1uLt 2026-08-21 11/550 2026-08-23 02:55 by OEbVnUOu01ol
[基金申请] 93BebMhtakh前后11位开头都是大写 +7 且听虎啸 2026-08-17 8/400 2026-08-22 21:55 by 医学老男孩
[基金申请] 今天基金会出结果吗?20260819 +16 kkkl_v 2026-08-19 17/850 2026-08-22 16:12 by 阿布Abu
[基金申请] 时间戳今天,20号变了 +5 archvillain 2026-08-20 5/250 2026-08-22 06:12 by hui_daxiao
[基金申请] 建议基金发布提前给出明确的时间点 +10 kulium 2026-08-21 13/650 2026-08-21 21:58 by alongwaytogo
[基金申请] 看来今天不会放榜了? +8 chengyan1220 2026-08-21 11/550 2026-08-21 17:52 by dcqxinyang
[论文投稿] 投稿咨询 +5 wwm09 2026-08-17 7/350 2026-08-21 10:11 by 期刊论文帮手
[基金申请] 重要消息,中午系统在维护 +11 yuleib84 2026-08-18 12/600 2026-08-20 11:09 by xskun
[基金申请] 朋友圈看到的 +6 wangzilk 2026-08-18 8/400 2026-08-19 10:55 by Haru815
[基金申请] 今天维护系统维护 祝所有人 高中 +8 gjjjzhong 2026-08-18 9/450 2026-08-18 13:01 by 家与远方
信息提示
请填处理意见