您的位置:首页 > 其它

第五周项目一----通过增加构造函数使对象在定义时初始化(4种方法统编)

2013-03-29 10:58 387 查看
/*
* 程序的版权和版本声明部分
* 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;
}


结果:



体会:

晕了。。。。。。。。求质量吧,真心想把这门课程学好,加油吧菜鸟晨晨。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐