5-8万年薪顶级嵌入式,京沪深就业地 浅谈并行编程中的任务分解模式
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

请大家帮个忙!

楼主yehanyu(愿生命化作那朵莲花)2004-05-14 12:34:33 在 C/C++ / C++ 语言 提问

我一个朋友有个作业题目需要用C++编写  
  我对C++不太了解,万万请大家帮忙做下,万分感谢!!  
   
  一、大作业题目(内容):  
          编写一个程序计算出球、圆柱和圆锥的表面积和体积。  
  二、大作业要求:      
  1.由于计算它们都需要用到圆的半径,有时还可能用到圆的面积,所以可把圆定义为一个类,它包含的数据成员为半径。  
  2.圆类的公用函数为给半径赋初值的构造函数,计算圆的面积函数,也可以包含计算体积的函数,让其返回0即可,表示圆的体积为0。  
  3.定义好圆类后,再把球类、圆柱类和圆锥类定义为圆的派生类。在圆柱和圆锥类中应分别新定义一个表示其高度的数据成员。在这些类中同样包含有新定义的构造函数、求表面积的函数和求体积的函数。  
  4.在完成上述要求后,再将圆类定义中的求表面积和体积的函数均定义为纯虚函数,重新编写该程序。  
  问题点数:100、回复次数:12Top

1 楼goodname(叶落知秋)回复于 2004-05-14 12:41:36 得分 2

唯有up!Top

2 楼acuter(acuter&)回复于 2004-05-14 12:42:47 得分 2

学习。Top

3 楼goodname(叶落知秋)回复于 2004-05-14 12:46:18 得分 2

题目把实现思路说得很明白了,应该不难实现了。  
  Top

4 楼hcj2002(流浪者·躬自厚而薄责于人 )回复于 2004-05-14 12:53:50 得分 2

upTop

5 楼yehanyu(愿生命化作那朵莲花)回复于 2004-05-14 13:57:11 得分 0

请大家帮忙啊,  
  这个应该不是很复杂啊  
  代码应该也要不了多少的  
  只是c++我实在不会  
  拜托了,我朋友他急要Top

6 楼sharkhuang(走吧走吧!人总会慢慢长大~)回复于 2004-05-14 14:07:06 得分 2

一看就是作业吧Top

7 楼yehanyu(愿生命化作那朵莲花)回复于 2004-05-14 14:21:20 得分 0

请大家帮忙啊  
  Top

8 楼wasoxi(我就是(没意思~~~))回复于 2004-05-14 14:37:28 得分 2

是作业就让他自己完成吧,如果你不想害他的话。Top

9 楼goodname(叶落知秋)回复于 2004-05-14 14:45:00 得分 63

请提供计算公式。  
  我做了一个简单的模型,你自己实现吧。  
  不足之处有  
  1.可以使用模版来实现  
  我此处数据类型都是假定用float,可以把这个类型模版化  
  2.程序中的成员函数可以定义成inline的,效率好些。  
   
   
   
  //#include   <iostream>  
  //using   namespace   std;  
   
  #define   PI   3.14f  
  //////////////////////////////////////////////////////////////  
  //圆类  
  class   circle{  
  public:  
  circle(float=0); //构造函数,默认半径为0  
  virtual   float   area()=0; //面积  
  virtual   float   cubage()=0; //体积  
  float   get(); //得到半径的值  
  private:  
  float   radius;  
  };  
  circle::circle(float   r):radius(r)  
  {  
  }  
  //float   circle::area()  
  //{  
  // return   PI   *   radius   *   radius;  
  //}  
  //float   circle::cubage()  
  //{  
  // return   0;  
  //}  
  float   circle::get()  
  {  
  return   radius;  
  }  
  //------------------------------------------------  
  //球类  
  class   ball:public   circle{  
  public:  
  ball(float=0,float=0); //构造函数,默认半径为0  
  float   area(); //面积  
  float   cubage(); //体积  
  private:  
  float   height;  
  };  
  ball::ball(float   r,float   h):circle(r),height(h)  
  {  
  }  
  float   ball::area()  
  {  
  return   height;   //!注意这里我不会计算表面积的公式了,自己要改写这个表达式!  
  }  
  float   ball::cubage()  
  {  
  return   height;   //!注意这里我不会计算体积积的公式了,自己要改写这个表达式!  
  }  
  //------------------------------------------------  
  //圆柱类  
  class   column:public   circle{  
  public:  
  column(float=0,float=0); //构造函数,默认半径为0  
  float   area(); //面积  
  float   cubage(); //体积  
  private:  
  float   height;  
  };  
  column::column(float   r,float   h):circle(r),height(h)  
  {  
  }  
  float   column::area()  
  {  
  return   height;   //!注意这里我不会计算表面积的公式了,自己要改写这个表达式!  
  }  
  float   column::cubage()  
  {  
  return   height;   //!注意这里我不会计算体积积的公式了,自己要改写这个表达式!  
  }  
   
  //------------------------------------------------  
  //圆锥类  
  class   taper:public   circle{  
  public:  
  taper(float=0,float=0); //构造函数,默认半径为0,高度为0  
  float   area(); //面积  
  float   cubage(); //体积  
  private:  
  float   height;  
  };  
  taper::taper(float   r,float   h):circle(r),height(h)  
  {  
  }  
  float   taper::area()  
  {  
  return   height;   //!注意这里我不会计算表面积的公式了,自己要改写这个表达式!  
  }  
  float   taper::cubage()  
  {  
  return   height;   //!注意这里我不会计算体积积的公式了,自己要改写这个表达式!  
  }  
   
  //------------------------------------------------  
   
  int   main()  
  {  
  //ball   b;  
  return   0;  
  }  
  Top

10 楼mycjing()回复于 2004-05-14 14:48:58 得分 10

#include   <iostream>  
  #include   <math>  
  using   namespace   std;  
  #define   PI=31.2415926f;  
  class   Circle  
  {  
  public:  
        float   r;  
        virtual   float   GetArea(){return   PI*r*r;}  
        virtual   float   GetGubage(){return   0;}  
              Circle(){r=0}  
  }  
  class   Sphere:public   Circle  
  {  
  public:  
        Sphere(){}  
        float   GetArea(){return   4*PI*r*r}  
        float   GetGubage(){return   PI*r*r*r/6;}  
  }  
   
       
   
  }  
   
   
   
   
   
   
   
   
   
  }Top

11 楼yehanyu(愿生命化作那朵莲花)回复于 2004-05-14 14:59:52 得分 0

谢谢   goodname(叶落知秋)  
  mycjing()   也谢谢了  
   
  我代表我朋友感谢你们  
   
  致敬:)Top

12 楼lj197912(从零开始)回复于 2004-05-14 15:15:52 得分 15

#include<iostream>  
  using   namespace   std;  
  const   float   PI=(float)3.14159;  
  class   Circle  
  {  
  public:  
  Circle(){}  
  ~Circle(){}  
           
          virtual   float   Volume()=0;  
          virtual   float   Sur()=0;  
  private:  
  float   radius;  
  };  
   
   
  class   Ball:public   Circle  
  {  
  public:  
          Ball(float   r){radius=r;}  
          ~Ball(){}  
          float   Sur();  
          float   Volume();  
  private:  
          float   radius;  
  };  
  float   Ball::Sur()  
  {   return   4*PI*radius*radius;}  
    float   Ball::Volume()  
    {return   4/3*PI*radius*radius*radius;}  
  class   Cylinder:public   Circle  
  {  
  public:  
          Cylinder(float   h,float   r   ){height=h;radius=r;}  
          ~Cylinder(){}  
          float   Sur();  
          float   Volume();  
  private:  
          float     height;  
          float   radius;  
  };  
  float   Cylinder::Sur()  
  {    
  return   4*PI*radius*height+2*PI*radius*radius;  
  }  
    float   Cylinder::Volume()  
    {  
    return   PI*radius*radius*height;  
    }  
    float   fun(Circle   *ptr)  
    {  
        return     ptr->Sur();  
    }  
      float   fun1(Circle   *ptr1)  
    {  
    return   ptr1->Volume();  
    }  
  int   main()  
  {  
          Circle   *p;  
         
          Ball   b(2);  
          Cylinder   d(2,2);  
          p=&b;  
          cout<<"ball:"<<fun(p)<<"     "  
                    <<fun1(p)<<endl;  
          p=&d;  
          cout<<"cylinder:"<<fun(p)<<"     "  
                    <<fun1(p)<<endl;  
   
  return   0;  
  }  
  Top

相关问题

  • 请帮个忙
  • 请帮个忙!!!
  • 请帮个忙
  • 请帮个忙
  • 请帮个忙?
  • 请进!帮个忙!
  • 请帮个忙吧
  • 请帮个小忙
  • 请帮帮忙
  • 请帮帮忙

关键词

  • c++
  • 函数
  • 作业
  • virtual
  • float
  • circle
  • radius
  • cubage
  • ball
  • 半径

得分解答快速导航

  • 帖主:yehanyu
  • goodname
  • acuter
  • goodname
  • hcj2002
  • sharkhuang
  • wasoxi
  • goodname
  • mycjing
  • lj197912

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
x 提问