C++第五次作业

来源:互联网 发布:mac美国官网怎么下单 编辑:程序博客网 时间:2024/06/08 08:15
一、问题及代码 :/** 文件名称: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