C++第五次作业

来源:互联网 发布:easymule mac 编辑:程序博客网 时间:2024/06/03 13:22
三角形类

一、问题及代码

[cpp] view plain copy 
  
在CODE上查看代码片派生到我的代码片
  1. /*
  2. * 文件名称:zuoye5-1.cpp
  3. * 作    者:戴光彤
  4. * 完成日期:2017 年 4月 24日
  5. * 版 本 号:v1.0
  6. * 对任务及求解方法的描述部分:
  7. * 输入描述:无
  8. * 问题描述

    (1)面设计一个三角形类,请给出各成员函数的定义

  9. [cpp] view plain copy print?
    1. class Triangle 
    2. public
    3.     void setABC(double x,double y, double z);//置三边的值,注意要能成三角形,不是可以提示后直接用exit(0)退出,要加头文件cstdlib 
    4.     double perimeter();//计算三角形的周长 
    5.     double area();//计算并返回三角形的面积 
    6. private
    7.     double a,b,c; //三边为私有成员数据 
    8. }; 
    9. int main() 
    10.     Triangle tri1;  //定义三角形类的一个实例(对象) 
    11.     tri1.setABC(4,5,6); //为三边置初值 
    12.     cout<<"三角形的周长为:"<< tri1.perimeter()<<'\t'<<"面积为:"<< tri1.area()<<endl; 
    13.     return 0; 
    14. //请在下面定义Triangle类中的各个成员函数 
    (2)在上面程序的基础上,重新定义Triangle类,其中逻辑特别简单的set和get成员函数,要处理为内联成员函数,直接在类内定义。

    [cpp] view plain copy print?
    1. int main()   
    2. {   
    3.     Triangle tri1;  //定义三角形类的一个实例(对象)  
    4.     double x,y,z;   
    5.     cout<<"请输入三角形的三边:";   
    6.     cin>>x>>y>>z;   
    7.     tri1.setA(x);   
    8.     tri1.setB(y);   
    9.     tri1.setC(z);   //为三边置初值   
    10.     if(tri1.isTriangle())  //isTriangle()返回值为布尔型,用于判断给出的三边是否能构成一个三角形 
    11.     {   
    12.         cout<<"三条边为:"<<tri1.getA()<<','<<tri1.getB()<<','<<tri1.getC()<<endl;   
    13.         cout<<"三角形的周长为:"<< tri1.perimeter()<<'\t'<<"面积为:"<< tri1.area()<<endl;   
    14.     }   
    15.     else   
    16.         cout<<"不能构成三角形"<<endl;   
    17.     return 0;   
    18. }   

    (3)设计三角形类带参数的构造函数,即Triangle(double x, double y, double z),三边长在调用时由实参直接给出,使对象在定义时能够进行初始化。需要的测试函数是:

    [cpp] view plain copy print?
    1. int main() 
    2.     Triangle Tri(7,8,9);    //定义三角形类的一个实例(对象) 
    3.     Tri.showMessage(); //定义一个能显示三角形信息的成员函数 
    4.     return 0; 
    (4)使用有默认参数的构造函数,不给定实参时,默认边长为1;注意——只需要一个构造函数即可。需要的测试函数是:

    [cpp] view plain copy print?
    1. int main() 
    2.     Triangle Tri1;   //定义边长为1 1 1的三角形类实例 
    3.     Tri1.showMessage(); 
    4.     Triangle Tri2(1.5);//定义边长为1.5 1 1的三角形类实例 
    5.     Tri2.showMessage(); 
    6.     Triangle Tri3(1.5,1.5);//定义边长为1.5 1.5 1的三角形类实例 
    7.     Tri3.showMessage(); 
    8.     Triangle Tri4(7,8,9); //定义边长为7 8 9的三角形类实例 
    9.     Tri4.showMessage(); 
    10.     return 0; 
    (5)使用复制构造函数,能用一个已有的三角形对象,复制出新的三角形对象:

    [cpp] view plain copy print?
    1. int main() 
    2.     Triangle Tri1(3,4,5);   //定义边长为3 4 5的三角形类实例 
    3.     Tri1.showMessage(); 
    4.     Triangle Tri2(Tri1); //调用复制构造函数 
    5.     Tri2.showMessage(); 
    6.     return 0; 

    x);   
    int he(int p[],int m);    
       


    int main( )        
    {   
        int a[10]={1,2,1,4,1,6,1,8,1,10};   
        int b[10],c[10],sum1,sum2,i,j=0,k=0;   
        for(i=0;i<10;i++)   
        {   
            if(jishu(a[i]))   
            b[j]=a[i],j++;   
               
            else   
            c[k]=a[i],k++;   
        }   
        sum1=he(b,j);   
        sum2=he(c,k);   
        cout<<"奇数阶乘和为:"<<sum1<<endl<<"偶数阶乘和为:"<<sum2<<endl;   
    }     
       
    bool jishu(int x)  
    {   
        for(int i=0;i<10;i++)   
        {   
            if(x%2==0) return false;   
        }   
        return true;   
    }   
       
    int he(int p[],int m)   
    {   
        int i,j,sum=0;   
        for(i=0;i<m;i++)   
        {   
            int n=1;   
            for(j=1;j<=p[i];j++)    
            {   
                n=n*j;   
            }   
            sum=sum+n;   
        }   
        return sum;   
    }   
  10. *算法设计:

二、运行结果:






0 0