/*
* Copyright (c) 2013, 烟台大学计算机学院
* All rights reserved.
* 作 者: 沈远宏
* 完成日期:2013 年 03月 18日
* 版 本 号:v1.0
* 问题描述:设计一个三角形类,将其中逻辑特别简单的set和get成员函数,要处理为内置成员函数,直接在类内定义。
* 输出: 三角形的三边长及其面积与周长
*/#include<iostream>
#include<Cmath>
using namespace std;
class Triangle
{
public:
double perimeter();//计算三角形的周长返回三角形的周长用于下一步面积的计算
double area(double);//计算并返回三角形的面积
bool isTriangle();
void setA(double x)
{
a=x;
}
void setB(double y)
{
b=y;
}
void setC(double z)
{
c=z;
}//置三边的值,注意要能成三角形
double getA()
{
return a;
}
double getB()
{
return b;
}
double getC()
{
return c;
}//取三边的值
private:
double a,b,c; //三边为私有成员数据
};
int main()
{
Triangle tri1; //定义三角形类的一个实例(对象)
double x,y,z,t;
cout<<"请输入三角形的三边:";
cin>>x>>y>>z;
tri1.setA(x);
tri1.setB(y);
tri1.setC(z); //为三边置初值
if(tri1.isTriangle())
{
cout<<"三条边为:"<<tri1.getA()<<','<<tri1.getB()<<','<<tri1.getC()<<endl;
t=tri1.perimeter();
cout<<"三角形的周长为:"<< t<<'\t'<<"面积为:"<< tri1.area(t)<<endl;
}
else
cout<<"不能构成三角形"<<endl;
return 0;
}
double Triangle::perimeter()
{
double Triangle_perimeter;
Triangle_perimeter=Triangle::a+Triangle::b+Triangle::c;
return Triangle_perimeter;
}
double Triangle::area(double t)
{
double Triangle_area;
t=t/2.0;
Triangle_area=sqrt(t*(t-Triangle::a)*(t-Triangle::b)*(t-Triangle::c));
return Triangle_area;
}
bool Triangle::isTriangle()
{
bool t=false;
if(Triangle::c>Triangle::b)//判断是否能成三角形
{
if((Triangle::a+Triangle::b)>Triangle::c&&(Triangle::c-Triangle::b)<Triangle::a)
{
t=true;
}
else
{
cout<<"error!\n";
}
}
else
{
if((Triangle::a+Triangle::b)>Triangle::c&&(Triangle::b-Triangle::c)<Triangle::a)
{
t=true;
}
else
{
cout<<"error!\n";
}
}
return t;
}
运行结果:
心得体会:
这次整了个直角三角形验证下海理论公式吧~~~