例题:
1.设计一个程序,根据输入的三边求三角形面积。
2.要求设置异常处理机制,对不符合三角形条件提示错误信息,不做计算;
对输入非正数的边提示错误,并重新输入。
代码如下:
class S
{
public:
double s;
S(double x, double y, double z)
{
a = x;
b = y;
c = z;
}
void TryS();
private:
double a, b, c;
};
void S::TryS()
{
try
{
if (a + b < c || a + c < b || b + c < a)
{
throw(a);
}
else
{
double p = (a + b + c) / 2;
s = sqrt(p*(p - a)*(p - b)*(p - c));
cout << "该三角形的面积为" << s << endl;
}
}
catch (double s)
{
cout << "输入的值不能构成三角形" << endl;
}
}
int main()
{
S s1(4.3, 2.2, 3.6);
s1.TryS();
S s2(1.0, 1.0, 3.0);
s2.TryS();
return 0;
}