/*
*Copyright (c)2016,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:main.cpp
*作 者:刘默涵
*完成日期:2016年3月31日
*版 本 号:v1.0
运行结果:
*Copyright (c)2016,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:main.cpp
*作 者:刘默涵
*完成日期:2016年3月31日
*版 本 号:v1.0
*
下面设计一个三角形类,请给出各成员函数的定义
程序:
<pre name="code" class="cpp">#include<iostream>
#include<cstdlib>
#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<<"三角形的周长为:"<< tri1.perimeter()<<'\t'<<"面积为:"<< tri1.area()<<endl;
return 0;
}
void Triangle::setABC(double x, double y, double z)
{
cin>>x>>y>>z;
if(x+y>z&&x+z>y&&y+z>x)
{
a=x;
b=y;
c=z;
}
else
{
cout<<"不能构成三角形"<<endl;
exit(0); //直接退出程序的执行
}
}
double Triangle::perimeter(void)
{
return a+b+c;
}
double Triangle::area(void)
{
double p=(a+b+c)/2;
return sqrt(p*(p-a)*(p-b)*(p-c));
}
/* *Copyright (c)2016,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:main.cpp *作 者:徐聪 *完成日期:2016年3月29日 *版 本 号:v1.0
运行结果
*
使用复制构造函数,能用一个已有的三角形对象,复制出新的三角形对象:
- #include<iostream>
- #include<Cmath>
- using namespace std;
- class Triangle
- {
- public:
- Triangle(double x=1, double y=1, double z=1);
- Triangle(const Triangle &t);
- double perimeter();//计算三角形的周长
- double area();//计算并返回三角形的面积
- void showMessage();
- private:
- double a,b,c; //三边为私有成员数据
- };
- Triangle::Triangle(double x, double y, double z)
- {
- a=x;
- b=y;
- c=z;
- }
- Triangle::Triangle(const Triangle &t)
- {
- a=t.a;
- b=t.b;
- c=t.c;
- }
- double Triangle::perimeter()
- {
- return (a + b + c);
- }
- double Triangle::area()
- {
- double s = (a + b + c) / 2;
- return sqrt(s * (s - a) * (s - b) * (s - c));
- }
- void Triangle::showMessage()
- {
- cout<<"三角形的三边长分别为:"<<a<<' '<<b<<' '<<c<<endl;
- cout<<"该三角形的周长为"<<perimeter()<<",面积为"<<area()<<endl<<endl;
- }
- int main()
- {
- Triangle Tri1(3,4,5); //定义边长为1 1 1的三角形类实例
- Tri1.showMessage();
- Triangle Tri2(Tri1); //调用复制构造函数
- Tri2.showMessage();
- return 0;
- }
#include<iostream>
#include<Cmath>
using namespace std;
class Triangle
{
public:
Triangle(double x=1, double y=1, double z=1);
Triangle(const Triangle &t);
double perimeter();//计算三角形的周长
double area();//计算并返回三角形的面积
void showMessage();
private:
double a,b,c; //三边为私有成员数据
};
Triangle::Triangle(double x, double y, double z)
{
a=x;
b=y;
c=z;
}
Triangle::Triangle(const Triangle &t)
{
a=t.a;
b=t.b;
c=t.c;
}
double Triangle::perimeter()
{
return (a + b + c);
}
double Triangle::area()
{
double s = (a + b + c) / 2;
return sqrt(s * (s - a) * (s - b) * (s - c));
}
void Triangle::showMessage()
{
cout<<"三角形的三边长分别为:"<<a<<' '<<b<<' '<<c<<endl;
cout<<"该三角形的周长为"<<perimeter()<<",面积为"<<area()<<endl<<endl;
}
int main()
{
Triangle Tri1(3,4,5); //定义边长为1 1 1的三角形类实例
Tri1.showMessage();
Triangle Tri2(Tri1); //调用复制构造函数
Tri2.showMessage();
return 0;
}
运行结果
<span style="font-family: 'microsoft yahei'; background-color: rgb(255, 255, 255);"><img src="https://img-blog.csdn.net/20160329202338650?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /><img src="https://img-blog.csdn.net/20160329202357901?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /></span>