<pre name="code" class="cpp">/*
*Copyright(c) 2016,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:my.cpp
*作 者:张瀚文
*完成日期:2016年4月6日
*版 本 号:v1.0
*
*问题描述:1.设计一个三角形类,请给出各成员函数定义
2.在上面程序的基础上,重新定义Triangle类,其中逻辑特别简单的set和get成员年函数,要处理为内联成员函数,直接在类内定义
3.设计三角形带泪的鱼构造函数,即Triangle(double x,double y,double z),三边长在调用时由实参直接给出,是对象在定义时
能够进行初始化。
4.使用有默认参数的构造函数,不给定实参时,默认边长为1:注意只需要一个构造函数即可
*输入描述:
*程序输出:三角形周长和面积
*/
#include <iostream>
#include<cmath>
using namespace std;
class Triangle
{
public:
void setABC(double x,double y,double z);
double perimeter();
double area();
private:
double a,b,c;
};
int main()
{
Triangle tri1;
tri1.setABC(4,5,6);
cout<<"the circumference is:"<<tri1.perimeter()<<'\t'<<"the suface is:"<<tri1.area()<<endl;
return 0;
}
void Triangle::setABC(double x,double y,double z)
{
a=x;
b=y;
c=z;
}
double Triangle::perimeter()
{
return a+b+c;
}
double Triangle::area()
{
double z;
z=0.5*(a+b+c);
return sqrt(z*(z-a)*(z-b)*(z-c));
}
————————————————————————————————————————————————————————————————————————————
2.
<pre name="code" class="cpp">#include <iostream>
#include<cmath>
using namespace std;
class Triangle
{
public:
Triangle(double x=1,double y=1,double z=1)
{a=x;b=y;c=z;}
double area();
double perimeter();
bool isTriangle()
{
if(a+b>c&&b+c>a&&a+c>b)
return true;
else return false;
}
double getA()
{
return a;
}
double getB()
{
return b ;
}
double getC()
{
return c;
}
void showmessage();
private:
double a,b,c;
};
double Triangle::perimeter()
{
return a+b+c;
}
double Triangle::area()
{
double z;
z=((a*a+b*b-c*c)/(2*a*b));
return 0.5*a*b*sqrt((1-z*z));
}
void Triangle::showmessage()
{
if(isTriangle())
{
cout<<"the side eage of triangle is :"<<getA()<<','<<getB()<<','<<getC()<<endl;
cout<<"the circumference of triangle is:"<<perimeter()<<'\t'<<"the surface is:"<<area()<<endl;
}
else
cout<<"can't make a triangle"<<endl;
}
int main()
{
Triangle Tri1(7,8,9);
Tri1.showmessage();
return 0;
}
————————————————————————————————————————————————————————————————————
3.<pre name="code" class="cpp">#include <iostream>
#include<cmath>
using namespace std;
class Triangle
{
public:
Triangle(double x=1,double y=1,double z=1)
{a=x;b=y;c=z;}
double area();
double perimeter();
bool isTriangle()
{
if(a+b>c&&b+c>a&&a+c>b)
return true;
else return false;
}
double getA()
{
return a;
}
double getB()
{
return b ;
}
double getC()
{
return c;
}
void showmessage();
private:
double a,b,c;
};
double Triangle::perimeter()
{
return a+b+c;
}
double Triangle::area()
{
double z;
z=((a*a+b*b-c*c)/(2*a*b));
return 0.5*a*b*sqrt((1-z*z));
}
void Triangle::showmessage()
{
if(isTriangle())
{
cout<<"the side eage of triangle is :"<<getA()<<','<<getB()<<','<<getC()<<endl;
cout<<"the circumference of triangle is:"<<perimeter()<<'\t'<<"the surface is:"<<area()<<endl;
}
else
cout<<"can't make a triangle"<<endl;
}
int main()
{
Triangle Tri1;
Tri1.showmessage();
Triangle Tri2(1.5);
Tri2.showmessage();
Triangle Tri3(1.5,1.5);
Tri3.showmessage();
Triangle Tri4(7,8,9);
Tri4.showmessage();
return 0;
}
————————————————————————————————————————————————————————————————
4.<pre name="code" class="cpp">#include <iostream>
#include<cmath>
using namespace std;
class Triangle
{
public:
Triangle(double x=1,double y=1,double z=1)
{a=x;b=y;c=z;}
Triangle (Triangle &p);
double area();
double perimeter();
bool isTriangle()
{
if(a+b>c&&b+c>a&&a+c>b)
return true;
else return false;
}
double getA()
{
return a;
}
double getB()
{
return b ;
}
double getC()
{
return c;
}
void showmessage();
private:
double a,b,c;
};
Triangle::Triangle (Triangle &p)
{
a=p.a;
b=p.b;
c=p.c;
}
double Triangle::perimeter()
{
return a+b+c;
}
double Triangle::area()
{
double z;
z=((a*a+b*b-c*c)/(2*a*b));
return 0.5*a*b*sqrt((1-z*z));
}
void Triangle::showmessage()
{
if(isTriangle())
{
cout<<"the side eage of triangle is :"<<getA()<<','<<getB()<<','<<getC()<<endl;
cout<<"the circumference of triangle is:"<<perimeter()<<'\t'<<"the surface is:"<<area()<<endl;
}
else
cout<<"can't make a triangle"<<endl;
}
int main()
{
Triangle Tri1(3,4,5);
Tri1.showmessage();
Triangle Tri2(Tri1);
Tri2.showmessage();
return 0;
}