C++第五次作业

一、问题及代码 :
/*
* 文件名称:TEST.cpp
* 作    者:胡嘉威
* 完成日期:2017 年 4 月 25 日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:设计一个三角形类,给出各成员函数的定义                                            
* 输入描述:无
* 问题描述:设计一个三角形类,给出各成员函数的定义
* 程序输出:三角形的周长为:15
            三角形的面积为:6
* 问题分析:本质上还是函数的应用,只不过使用类的形式加以表达。
* 算法设计:在函数定义时用调用私有模块的a b c来完成计算。
*/ 
#include <iostream>
#include<cstdlib>
#include<cmath>
using namespace std;
class Triangle
{
public:
    void setABC(double x,double y,double z);    //置三边的值,注意要能成三角形,不是可以提示后直接用exit(0)退出,要加头文件cstdlib
    double perimeter();                          //计算三角形的周长
    double area();                              //计算并返回三角形的面积
private:
    double a,b,c;               //三边为私有成员数据
};
int main()
{
    Triangle tri1;                   //定义三角形类的一个实例(对象)
    tri1.setABC(4, 5, 6);//为三边置初值
    cout << "三角形的周长为:" << tri1.perimeter() << '\t' <<endl<< "三角形的面积为:" << tri1.area() << endl;
    return 0;
}
//请在下面定义Triangle类中的各个成员函数
void Triangle::setABC(double x,double y,double z)   //置三边的值,注意要能成三角形,不是可以提示后直接用exit(0)退出,要加头文件cstdlib
{
    a=x;
    b=y;
    c=z;
    if ((a+b<=c)||(a+c<=b)||(b+c<=a))
    {
        cout <<"输入不正确,所输入的三条边不能组成三角形,请重新输入" <<endl;
        exit(0);
    }
}

double Triangle::perimeter()            //计算三角形的周长
{
    int w;
    w=a+b+c;
    return w;
}

double Triangle::area()
{
    int S=0,k=0;
    k=(a+b+c)/2;
    S=sqrt(k*(k-a)*(k-b)*(k-c));
    return S;
}


二、运行结果 :

一、问题及代码 :
/*
* 文件名称:TEST.cpp
* 作    者:胡嘉威
* 完成日期:2017 年 4 月 25 日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:设计一个三角形类,给出各成员函数的定义;逻辑特别简单的set和get成员函数,要处理为内联成员函数,直接在类内定义。                            
* 输入描述:4 5 6
* 问题描述:设计一个三角形类,给出各成员函数的定义
* 程序输出:请输入三角形的三边:4 5 6
            三角形的三条边为:4,5,6
            三角形的周长为:15
            三角形的面积为:6
* 问题分析:本质上还是函数的应用,只不过使用类的形式加以表达。
* 算法设计:在函数定义时用调用私有模块的a b c来完成计算。
*/ 
#include <iostream>
#include<cmath>
using namespace std;
class Triangle
{
public:
    void setA(double x) //置一边的值
    {
        a=x;
    }
    void setB(double y) //置一边的值
    {
        b=y;
    }
    void setC(double z)      //置一边的值
    {
        c=z;
    }
    double getA()            //返回边长
    {
        return a;
    }
    double getB()           //返回边长
    {
        return b;
    }
    double getC()         //返回边长
    {
        return c;
    }
    double perimeter();                          //计算三角形的周长
    double area();
    bool  isTriangle();                         //计算并返回三角形的面积
private:
    double a,b,c;               //三边为私有成员数据
};
int main()
{
    Triangle tri1;             //定义三角形类的一个实例(对象)
    double x, y, z;
    cout << "请输入三角形的三边:";
    cin >> x >> y >> z;
    tri1.setA(x);
    tri1.setB(y);
    tri1.setC(z);              //为三边置初值
    if (tri1.isTriangle())            //isTriangle()返回值为布尔型,用于判断给出的三边是否能构成一个三角形
    {
        cout << "三角形的三条边为:" << tri1.getA() << ',' << tri1.getB() << ',' << tri1.getC() << endl;
        cout << "三角形的周长为:" << tri1.perimeter() << '\t' <<endl<< "三角形的面积为:" << tri1.area() << endl;
    }
    else
        cout << "不能构成三角形" << endl;
    return 0;
}

double Triangle::perimeter()            //计算三角形的周长
{
    int w;
    w=a+b+c;
    return w;
}

double Triangle::area()                   //计算并返回三角形的面积
{
    int S=0,k=0;
    k=(a+b+c)/2;
    S=sqrt(k*(k-a)*(k-b)*(k-c));
    return S;
}
bool  Triangle::isTriangle()              //判断给出的三边是否能构成一个三角形
{
    if ((a+b<=c)||(a+c<=b)||(b+c<=a))
    {
        return 0;
    }
    else
    {
        return 1;
    }
}

二、运行结果 :

一、问题及代码 :
/*
* 文件名称:TEST.cpp
* 作    者:胡嘉威
* 完成日期:2017 年 4 月 25 日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:设计一个三角形类,给出各成员函数的定义;设计三角形类带参数的构造函数,即Triangle(double x, double y, double z),三边长在调用时由实参直接给出,使对象在定义时能够进行初始化。                               
* 输入描述:无
* 问题描述:设计一个三角形类,给出各成员函数的定义;设计三角形类带参数的构造函数,即Triangle(double x, double y, double z),三边长在调用时由实参直接给出,使对象在定义时能够进行初始化。
* 程序输出:三角形的三条边为:7 8 9
            三角形的面积为:26.8328
            三角形的周长为:24
* 问题分析:本质上还是函数的应用,只不过使用类的形式加以表达。
* 算法设计:在函数定义时用调用私有模块的a b c来完成计算。
*/ 
#include <iostream>
#include<cmath>
using namespace std;
class Triangle
{
public:
    Triangle(double x,double y,double z)
    {
        a=x;
        b=y;
        c=z;
    }
    double showMessage();               //计算并返回三角形的面积
private:
    double a,b,c;               //三边为私有成员数据
};
int main()
{
    Triangle Tri(7, 8, 9);
    Tri.showMessage();

    return 0;
}
double Triangle::showMessage()                   //计算并返回三角形的面积及周长
{
    double S=0;
      int k=0,w=0;
    if ((a+b<=c)||(a+c<=b)||(b+c<=a))
    {
        cout << "不能构成三角形" << endl;
    }
    else
    {

        cout << "三角形的三条边为:" <<a<<" "<<b<<" "<<c<<endl;
        k=(a+b+c)/2;
        S=sqrt(k*(k-a)*(k-b)*(k-c));
        cout<<"三角形的面积为:"<<S<<endl;
        w=a+b+c;
        cout<<"三角形的周长为:"<<w<<endl;
    }
}

二、运行结果:

一、问题及代码 :
/*
* 文件名称:TEST.cpp
* 作    者:胡嘉威
* 完成日期:2017 年 4 月 25 日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:设计一个三角形类,给出各成员函数的定义;使用有默认参数的构造函数,不给定实参时,默认边长为1;注意——只需要一个构造函数即可。                                
* 输入描述:无
* 问题描述:设计一个三角形类,给出各成员函数的定义;使用有默认参数的构造函数,不给定实参时,默认边长为1;注意——只需要一个构造函数即可。
* 程序输出:三角形的三条边为:1 1 1
            三角形的面积为:0.433013
            三角形的周长为:3

            三角形的三条边为:1.5 1 1
            三角形的面积为:0.496078
            三角形的周长为:3.5

            三角形的三条边为:1.5 1.5 1
            三角形的面积为:0.707107
            三角形的周长为:4
            
            三角形的三条边为:7 8 9
            三角形的面积为:26.8328
            三角形的周长为:24
* 问题分析:本质上还是函数的应用,只不过使用类的形式加以表达。
* 算法设计:在函数定义时用调用私有模块的a b c来完成计算。
*/ 
#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 showMessage();               //计算并返回三角形的面积
private:
    double a,b,c;               //三边为私有成员数据
};
int main()
{
    Triangle Tri1;      //定义边长为1 1 1的三角形类实例
    Tri1.showMessage();
    cout<<endl;
    Triangle Tri2(1.5);   //定义边长为1.5 1 1的三角形类实例
    Tri2.showMessage();
     cout<<endl;
    Triangle Tri3(1.5, 1.5);   //定义边长为1.5 1.5 1的三角形类实例
    Tri3.showMessage();
     cout<<endl;
    Triangle Tri4(7, 8, 9);      //定义边长为7 8 9的三角形类实例
    Tri4.showMessage();
    return 0;
}
double Triangle::showMessage()                   //计算并返回三角形的面积及周长
{
    double S=0;
    double k=0;
    int w=0;
    if ((a+b<=c)||(a+c<=b)||(b+c<=a))
    {
        cout << "不能构成三角形" << endl;
    }
    else
    {
        cout << "三角形的三条边为:" <<a<<" "<<b<<" "<<c<<endl;
        k=(a+b+c)/2;
        S=sqrt(k*(k-a)*(k-b)*(k-c));
        cout<<"三角形的面积为:"<<S<<endl;
        w=a+b+c;
        cout<<"三角形的周长为:"<<w<<endl;
    }
}

二、运行结果 :

    

一、问题及代码 :
/*
* 文件名称:TEST.cpp
* 作    者:胡嘉威
* 完成日期:2017 年 4 月 25 日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:设计一个三角形类,给出各成员函数的定义;使用复制构造函数,能用一个已有的三角形对象,复制出新的三角形对象。                                           
* 输入描述:无
* 问题描述:设计一个三角形类,给出各成员函数的定义
* 程序输出:三角形的三条边为:3 4 5
            三角形的面积为:6
            三角形的周长为:12

            三角形的三条边为:3 4 5
            三角形的面积为:6
            三角形的周长为:12
* 问题分析:本质上还是函数的应用,只不过使用类的形式加以表达。
* 算法设计:在函数定义时用调用私有模块的a b c来完成计算。
*/ 
#include <iostream>
#include<cmath>
using namespace std;
class Triangle
{
public:
    Triangle(double x,double y,double z)
    {
        a=x;
        b=y;
        c=z;
    };
    double showMessage();               //计算并返回三角形的面积
private:
    double a,b,c;               //三边为私有成员数据
};

int main()
{
	Triangle Tri1(3, 4, 5);//定义边长为3 4 5的三角形类实例
	Tri1.showMessage();
	cout<<endl;
	Triangle Tri2(Tri1); //调用复制构造函数
	Tri2.showMessage();
	return 0;
}
double Triangle::showMessage()                   //计算并返回三角形的面积及周长
{
    double S=0;
    double k=0, w=0;
    if ((a+b<=c)||(a+c<=b)||(b+c<=a))
    {
        cout << "不能构成三角形" << endl;
    }
    else
    {

        cout << "三角形的三条边为:" <<a<<" "<<b<<" "<<c<<endl;
        k=(a+b+c)/2;
        S=sqrt(k*(k-a)*(k-b)*(k-c));
        cout<<"三角形的面积为:"<<S<<endl;
        w=a+b+c;
        cout<<"三角形的周长为:"<<w<<endl;
    }
}

二、运行结果 :

      

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值