/*
* 程序的版权和版本声明部分
* Copyright (c)2013, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: 三角形类.cpp
* 作者: 赵晓晨
* 完成日期: 2013 年3 月29日
* 版本号: v1.0
* 输入描述:无
* 问题描述:声明默认构造函数,求三角形周长和面积的类。
* 程序输出:三角形的周长和面积
*/
//1.使用带参构造函数,即Triangle(double x,double y,double z),三边长在调用时由实参直接给出;
#include<iostream>
#include<Cmath>
using namespace std;
class Triangle
{
public:
Triangle(double x,double y,double z); //声明带参数的构造函数
double perimeter(void); //计算三角形周长
double area(void); //计算并返回三角形的面积
void showMessage();
private:
double a,b,c; //三边为私有成员数据
};
Triangle::Triangle(double x,double y,double z)//三边在调用时由实参直接给出
{
a=x;
b=y;
c=z;
}
double Triangle::perimeter()
{
return (a+b+c);
}
double Triangle::area()
{
int q=(a+b+c)/2;
return sqrt(q*(q-a)*(q-b)*(q-c));
}
void Triangle::showMessage()
{
cout<<"三角形的三条边长分别是:"<<a<<'\t'<<b<<'\t'<<c<<endl;
cout<<"该三角形的周长是:"<<perimeter()<<'\t'<<"面积是:"<<area()<<endl<<endl;
}
int main(void)
{
Triangle Tri1; //定义三角心类的一个实例,要求执行一个默认构造函数,三边初值均为1
Tri1.showMessage();
Triangle Tri2(7,8,9); //定义三角形类的实例
Tri2.showMessage();
return 0;
}
//2.设计默认构造函数,既不指定参数时,默认各边长为1;
#include<iostream>
#include<Cmath>
using namespace std;
class Triangle
{
public:
Triangle()//定义构造成员函数,函数名与类名成员相同
{
a=1; //定义构造函数对对象中的数据成员赋值
b=1;
c=1;
}
Triangle(double x,double y,double z): a(x),b(y),c(z){} //声明默认构造函数
double perimeter(void);
double area(void);
void showMessage();
private:
double a,b,c;
};
double Triangle::perimeter()
{
return (a+b+c);
}
double Triangle::area()
{
double q=(a+b+c)/2;
return sqrt(q*(q-a)*(q-b)*(q-c));
}
void Triangle::showMessage()
{
cout<<"三角形的三条边长分别是:"<<a<<'\t'<<b<<'\t'<<c<<endl;
cout<<"该三角形的周长是:"<<perimeter()<<'\t'<<"面积是:"<<area()<<endl<<endl;
}
int main(void)
{
Triangle Tri1; //定义三角心类的一个实例,要求执行一个默认构造函数,三边初值均为1
Tri1.showMessage();
Triangle Tri2(7,8,9); //定义三角形类的实例
Tri2.showMessage();
return 0;
}
//3.使用有默认参数的构造函数,不给定实参时,默认边长为1;
#include<iostream>
#include<Cmath>
using namespace std;
class Triangle
{
public:
Triangle(double x=1,double y=1,double z=1);
double perimeter(void);
double area(void);
void showMessage();
private:
double a,b,c;
};
Triangle::Triangle(double x,double y,double z)//三边在调用时由实参直接给出{ a=x;b=y;c=z;}
double Triangle::perimeter()
{
return (a+b+c);
}
double Triangle::area()
{
double q=(a+b+c)/2;
return sqrt(q*(q-a)*(q-b)*(q-c));
}
void Triangle::showMessage()
{
cout<<"三角形的三条边长分别是:"<<a<<'\t'<<b<<'\t'<<c<<endl;
cout<<"该三角形的周长是:"<<perimeter()<<'\t'<<"面积是:"<<area()<<endl<<endl;
}
int main(void)
{
Triangle Tri1; //定义三角心类的一个实例,要求执行一个默认构造函数,三边初值均为1
Tri1.showMessage();
Triangle Tri2(7,8,9); //定义三角形类的实例
Tri2.showMessage();
return 0;
}
//4.在构造参数中使用参数初始化表对数据成员初始化
#include<iostream>
#include<Cmath>
using namespace std;
class Triangle
{
public:
Triangle(double x,double y,double z): a(x),b(y),c(z){} //参数初始化表
double perimeter(void); //计算三角形周长
double area(void); //计算并返回三角形的面积
void showMessage();
private:
double a,b,c; //三边为私有成员数据
};
double Triangle::perimeter()
{
return (a+b+c);
}
double Triangle::area()
{
int q=(a+b+c)/2;
return sqrt(q*(q-a)*(q-b)*(q-c));
}
void Triangle::showMessage()
{
cout<<"三角形的三条边长分别是:"<<a<<'\t'<<b<<'\t'<<c<<endl;
cout<<"该三角形的周长是:"<<perimeter()<<'\t'<<"面积是:"<<area()<<endl<<endl;
}
int main(void)
{
Triangle Tri1; //定义三角心类的一个实例,要求执行一个默认构造函数,三边初值均为1
Tri1.showMessage();
Triangle Tri2(7,8,9); //定义三角形类的实例
Tri2.showMessage();
return 0;
}
结果:
体会:
晕了。。。。。。。。求质量吧,真心想把这门课程学好,加油吧菜鸟晨晨。