首页 > 其他分享 >每天打卡一小时 第二十二天

每天打卡一小时 第二十二天

时间:2023-05-08 23:14:48浏览次数:33  
标签:第二十二 函数 每天 double 公有 public Cone 打卡 Circle

【CPP0029】以圆类Circle及立体图形类Solid为基础设计圆锥类Cone 分数 10 作者 C++多态编程 单位 石家庄铁道大学

以点类Point及平面图形类Plane为基类公有派生圆类Circle,再以圆类Circle及立体图形类Solid为基类公有派生圆锥类Cone,main(void)函数完成对圆锥类Cone的测试。

第一部曲 自然语言

构造

利用基类函数进行赋值,特有的数据 自己赋值

拷贝构造

传入对象 特有的数据 自己赋值

析构

直接输出

公有函数

显示

注意格式 利用公有函数输出

设置函数

什么等于什么

返回函数

return

 计算函数

计算

第三部曲 代码

class Circle:public Point,public Plane
{

    private:
    double radius;
    public:
    Circle(double a=0,double b=0,double r=0)
    {
    setX(a);
    setY(b);
    radius=r;
    cout<<"Circle Constructor run"<<endl;
    }
    
    Circle (const Circle &p):Point(p)
    {
    radius=p.radius;
    cout<<"Circle CopyConstructor run"<<endl;
    }
    
    ~Circle()
    {
    cout<<"Circle Destructor run"<<endl;
    }
    
    void setR(double r);
    double getR()const;
    double area()const;
    double length()const;
    void show()const;
};
static const double PI=3.14159;
void Circle:: setR(double r)
{
    radius=r;
}
double Circle:: getR()const
{
    return radius;
}
double Circle:: area()const
{
    return PI*radius*radius;
}
double Circle:: length()const
{
    return PI*2*radius;
}
void Circle:: show()const
{
    cout<<"Circle(Point(X="<<getX()<<",Y="<<getY()<<")"<<",Radius="<<radius<<")";
}
class Cone:public Circle,public Solid
{
    private:
    double height;
    public:
    Cone(double x=0,double y=0,double r=0,double h=0):Circle(x,y,r)
    {
    height=h;
    cout<<"Cone Constructor run"<<endl;
    }
    Cone(const Cone &p):Circle(p)
    {
    height=p.height;
    cout<<"Cone CopyConstructor run"<<endl;
    }
    ~Cone()
    {
    cout<<"Cone Destructor run"<<endl;
    }
    void setH(double h);
    double getH()const;
    double s_Area()const;
    double volume()const;
    void show()const;
};
void Cone::setH(double h)
{
    height=h;
}
double Cone::getH()const
{
    return height;
}
double Cone::volume()const
{
    return PI*getR()*getR()*height/3;
}
double Cone::s_Area()const
{
    return PI*getR()*getR()+PI*sqrt(height*height+getR()*getR())*getR();
}
void Cone::show()const
{
    cout<<"Cone(Circle(Point(X="<<getX()<<",Y="<<getY()<<"),Radius="<<getR()<<"),Height="<<height<<")";
}

  第四部曲 总结

在类的编写中 逐渐得心应手 已经不像之前一样要写很长时间了 

标签:第二十二,函数,每天,double,公有,public,Cone,打卡,Circle
From: https://www.cnblogs.com/youxiandechilun/p/17383448.html

相关文章

  • 5.8打卡
     二、设计思路 三、代码实现#include<bits/stdc++.h>usingnamespacestd;intmain(){inti;doublemoney=0.0;for(i=0;i<5;i++)money=(money+1000.0)/(1+0.0063*12);printf("Ó¦´æÈëµÄÇ®ÊýΪ£º%0.2f\n",money);} ......
  • 5月8日打卡
    例4-8题目描述:使用联合体保存成绩信息,并且输出代码部分:#include<string>#include<iostream>usingnamespacestd;classExamInfo{private:stringname;enum{GRADE,PASS,PERCENTAGE}mode;union{chargrade;......
  • 打卡1
    问题描述:编写一个计算机个人所得税的程序,要求输入收入金额后,能够输出个人所得税,征收如下:起始点为3500元,征收3%1500~4500元,征收10%4500~9000元,征收20%9000~35000元,征收25%35000~55000元,征收30%55000~80000元,征收35%超出80000元,征收45%流程图:  伪代码:start[6]={0,150......
  • 编程打卡: C++ 语言程序设计
    编程打卡:C++语言程序设计#include<iostream>#include<array>usingnamespacestd;intmain(){intn;cin>>n;array<double,100000>scores;for(inti=0;i<n;i++){cin>>scores[i];}......
  • 第十四天打卡
    一、问题描述一个口袋中放有12个球,已知其中3个是红色,3个是白色,6个是黑色,先从中任取8个,问共有多少种可能的颜色搭配?二、设计思路1.设m,n分别记录取出红的和白的,用8-m-n表示黑的;2.利用二重循环依次求出满足条件的m,n;3.在设计if条件满足8-m-n<=6,然后输出结果。三、程序流......
  • 2023.5.8编程一小时打卡
    一、问题描述:初始化int类型数组date1[]={1,3,5,7,9,11,13,15,17,19,2,4,6,8,10,12,14,16,18,20},应用本章的直接插入排序模板进行排序,对此函数模板稍作修改,加入输出语句,在每一个待排序元素后显示整个数组,观察排序过程中数据的变化,加深对插入排序算法的理解。二、解题思路:首先,定......
  • 每日打卡一小时(第二十二天)
    一.问题描述以点类Point及平面图形类Plane为基类公有派生圆类Circle,再以圆类Circle及立体图形类Solid为基类公有派生球类Sphere,main(void)函数完成对球类Sphere的测试。Point类结构说明:Point类的数据成员包括:①私有数据成员:X坐标x(double型),Y坐标y(double型)。Point类成员函......
  • 第17天打卡
    问题:算法设计直接暴力循环源代码:#include<stdio.h>include<math> intmain(){doublen=0.0;inti;for(i=0;i<=64;i++){n+=n+pow(2,i-1);}pritnf("%lf",n);return0;} ......
  • c++打卡第二十天
    一、问题描述 二、设计思路  最终的里程数为一个对称数,这个数是大于95859的,我们先判断这个五位数的各位数,将结果存储到数组中,继续判断第一位和第五位,第二位和第四位是否相等,如果相等的话,将这个数与95859相减,同时除以时间就得到速度。最终得到新的对称数和速度。三、流程......
  • 带分数(递归)//每日打卡 1
     #include<cstring>#include<cstdio>#include<iostream>#include<algorithm>usingnamespacestd;constintN=30;intsum,m;intnum[N];boolused[N];intcnt;intcalc(intl,intr)//分成三段每一段的值a,b,c分别算出{intres=0;for(int......