标题:自己编的求三角形面积并处理异常,请大家帮忙修改
只看楼主
niji
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-5-4
结帖率:100%
已结贴  问题点数:5 回复次数:2 
自己编的求三角形面积并处理异常,请大家帮忙修改
//求任意三角形面积
//要求输入三角形三边(实数),若三边能构成三角形,则计算面积,否则抛出异常,进行处理。
//p=1/2*(a+b+c)
//s=sqrt(p*(p-a)*(p-b)*(p-c))

#include<iostream>
#include<cmath>
using namespace std;

class triangle
{
public:
      triangle(double x,double y,double z);
      double getarea();
private:
      double a,b,c;
      double p,s;
};

triangle::triangle(double x,double y,double z)
{
      a=x;
      b=y;
      c=z;  
      if(a+b<=c||a+c<=b||b+c<=a)
      throw "不能构成三角形!";
}

double triangle::getarea()
{
      p=1/2*(a+b+c);
      s=sqrt(p*(p-a)*(p-b)*(p-c));
      return s;    //这部分好像也没错呀 自己检查不出
}

int main()
{
     double x,y,z;
     cout<<"请输入三角形三条边的长度:";
     cin>>x>>y>>z;
     triangle t(x,y,z);
     try
     {   
         cout<<"三角形面积为:"<<t.getarea(); //最后计算结果总是-0 不知道怎么回事
     }catch(char *str)
                  {
                  cout<<str<<"(两边之和必须大于第三条边)"<<endl;
                  }
     system("pause");
     return 0;
}
     
   
搜索更多相关主题的帖子: private triangle class include public 
2011-12-12 19:30
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:5 
p=1/2*(a+b+c);
下次干脆直接写成 p=0*(a+b+c);
2011-12-13 10:59
wj7072005
Rank: 2
等 级:论坛游民
帖 子:7
专家分:47
注 册:2011-12-16
得分:0 
恩,数据转换有点
2011-12-16 14:52



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-357616-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.804609 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved