首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

新手的有关问题多多!try与catch如何用

2012-03-06 
新手的问题多多!!!try与catch怎么用?#includeiostream#includemath.hclassQuadratic//二次方程类{priv

新手的问题多多!!!try与catch怎么用?
#include   <iostream>
#include   <math.h>

class   Quadratic                                                   //二次方程类
{
private:
float   itsA;
float   itsB;
float   itsC;
public:
        float   GetA()   const   {   return   itsA;   }
void   SetA(   float   a   )   {   itsA=a;   }
       
float   GetB()   const   {   return   itsB;   }
void   SetB(   float   b   )   {   itsA=b;   }

float   GetC()   const   {   return   itsC;   }
void   SetC(   float   c   )   {   itsA=c;   }
//=============================================
float   Disc();                                   //Dist代表b*b-4*a*c

float   Realpart();                                       //代表实部

float   Imagepart();                                     //代表虚部

float   Froot();                                             //有2根时的一个根

float   Sroot();                                             //有2根时的另个根
       
bool   Judge();                                               //itsA> =0?
};

#include   "Quadratic.h "
using   namespace   std;

float   Quadratic::Disc()
{
return   (itsB*itsB-4*itsA*itsC);
}
//====================================
float   Quadratic::Realpart()
{
return   (-itsB/(2*itsA));
}
//====================================
float   Quadratic::Imagepart()
{
return   sqrt(-Disc())/(2*itsA);
}
//=====================================
float   Quadratic::Froot()
{
return   -itsB+sqrt(Disc())/(2*itsA);
}
//=====================================
float   Quadratic::Sroot()
{
        return   -itsB-sqrt(Disc())/(2*itsA);
}

//=====================================
bool   Quadratic::Judge()
{
  return   fabs(itsA)==0;
}

//**************************************
int   main()
{
Quadratic   Qq;
float   disc;
disc=Qq.Disc();

float   a;
float   b;
float   c;

cout   < <   "a   is:   "   < <   endl;
cin   > > a;
        cout   < <   endl;

cout   < <   "b   is:   "   < <   endl;
cin   > >   b;
        cout   < <   endl;



cout   < <   "c   is:   "   < <   endl;
cin   > >   c;
cout   < <   endl;




      try
      {
      if(Qq.Judge())
 
      cout   < <   "is   not   a   Quadratic\n ";
      else
      {
      if(disc==0)
      //if(disc <=1e-6)
      cout   < <   "has   tow   equal   roots:%8.4f\n "   < <   Qq.Realpart()   < <   endl;
      else   if(disc> 0)
      {
      cout   < <   "x1=   "   < <   Qq.Froot()   < <   endl;
      cout   < <   "x2=   "   < <   Qq.Sroot()   < <   endl;
      }
              else
      {
      cout   < <   "has   complex   roots:   \n ";
      cout   < <   "%8.4f+%8.4fi\n "   < <   Qq.Realpart()   < <   Qq.Imagepart()   < <   endl;
      cout   < <   "%8.4f-%8.4fi\n "   < <   Qq.Realpart()   < <   Qq.Imagepart()   < <   endl;
              }
             
      }     throw   Qq.Judge();
      }
      catch(Qq.Judge())
{   cout   < <   "Unable   to   process   your   inPut!!!!\n ";   }

      return   0;
      }


--------------------Configuration:   Quadratic   -   Win32   Debug--------------------
Compiling...
Quadratic.cpp
F:\学习\程序\2次方程\Quadratic.cpp(85)   :   error   C2061:   syntax   error   :   identifier   'Qq '
F:\学习\程序\2次方程\Quadratic.cpp(85)   :   error   C2310:   catch   handlers   must   specify   one   type
F:\学习\程序\2次方程\Quadratic.cpp(88)   :   error   C2317:   'try '   block   starting   on   line   '62 '   has   no   catch   handlers
Error   executing   cl.exe.

Quadratic.exe   -   3   error(s),   0   warning(s)
将try与catch去除后运行出异常,是不是return多多了???



[解决办法]
新手?那就别用try...catch了,异常安全的代码不是那么好写的。

热点排行
Bad Request.