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

/*
* 程序的版权和版本声明部分
* 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;
}


结果:

体会:

晕了。。。。。。。。求质量吧,真心想把这门课程学好,加油吧菜鸟晨晨。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值