一、问题及代码
/*
*文件名:0.cpp
*作者:张前咨
*完成日期:2017年4月24日
*版本号:5.11
*对任务及其完成方法的描述部分:
*输入描述:无
*问题描述:
【项目2:三角形类】
*程序输出:
*问题分析:略
*算法设计:略
*/
#include<iostream>
#include<cmath>
using namespace std;
class Trangle
{
public:
~Trangle(){ };
Trangle(double x=1,double y=1,double z=1)
{
a=x;
b=y;
c=z;
}
Trangle(const Trangle &p)
{
a=p.a;
b=p.b;
c=p.c;
}
void showMessage();
void setABC(double , double , double );//置三边的值,注意要能成三角形,不是可以提示后直接用exit(0)退出,要加头文件cstdlib
void setA(double m)
{
a=m;
}
void setB(double n)
{
b=n;
}
void setC(double p)
{
c=p;
}
double getA()
{
return a;
}
double getB()
{
return b;
}
double getC()
{
return c;
}
bool isTrangle();
double perimeter();//计算三角形的周长
double area();//计算并返回三角形的面积
private:
double a,b,c; //三边为私有成员数据
};
int main()
{
Trangle tri1; //定义三角形类的一个实例(对象)
tri1.setABC(4,5,6); //为三边置初值
cout<<"三角形的周长为:"<< tri1.perimeter()<<'\t'<<"面积为:"<< tri1.area()<<endl;
cout<<"这三条边"<<(tri1.isTrangle()?"能":"不能")<<"构成三角形"<<endl;
cout<<"Tri三角形的三条边分别为:";
Trangle Tri(7,8,9); //定义三角形类的一个实例(对象)
Tri.showMessage();//定义一个能显示三角形信息的成员函数
cout<<"下面测试默认参数的构造函数:"<<endl;
Trangle Tri2(1.5);//定义边长为1.5 1 1的三角形类实例
Tri2.showMessage();
Trangle Tri3(1.5,1.5);//定义边长为1.5 1.5 1的三角形类实例
Tri3.showMessage();
Trangle Tri4
(7,8,9); //定义边长为7 8 9的三角形类实例
Tri4.showMessage();
cout<<"下面测试拷贝构造函数:"<<endl;
Trangle Tri5(Tri4);
Tri5.showMessage();
return 0;
}
void Trangle::setABC(double x,double y,double z)
{
a=x;
b=y;
c=z;
}
double Trangle::perimeter()
{
return a+b+c;
}
double Trangle::area()
{
int p=perimeter()/2;
return sqrt(p*(p-a)*(p-b)*(p-c));//海伦秦九韶公式
}
bool Trangle::isTrangle()
{
if((a+b>c)&&(a+c>b)&&(b+c>a))
return true;
else
return false;
}
void Trangle::showMessage()
{
cout<<a<<' '<<b<<' '<<c<<endl;
}
二、运行结果