首页 > 其他分享 >打卡 打印点、圆、圆柱信息

打卡 打印点、圆、圆柱信息

时间:2023-04-26 23:55:36浏览次数:53  
标签:圆柱 函数 point GetArea double 打印 print 打卡 circle

定义平面二维点类CPoint,有数据成员x坐标,y坐标,函数成员(构造函数、虚函数求面积GetArea, 虚函数求体积函数GetVolume、输出点信息函数print。
由CPoint类派生出圆类Cirle类(新增数据成员半径radius),函数成员(构造函数、求面积GetArea,虚函数求体积函数GetVolume、输出圆面积信息函数print。
再由Ccirle类派生出圆柱体Ccylinder类(新增数据成员高度height),函数成员(构造函数、求表面积GetArea ,求体积函数GetVolume、输出圆柱体体积信息函数print。在主函数测试这个这三个类。
打印数据保留小数点后2位

输入格式:

点的:x坐标
点的:y坐标
圆半径
圆柱高

输出格式:

点信息
圆面积
圆柱体积

输入样例:

在这里给出一组输入。例如:

1
2
3
4
 

输出样例:

在这里给出相应的输出。例如:

CPoint:1,2
CirleArea:28.26
CcylinderVolume:113.04

思路:继承与虚函数的应用

代码实现:

#include<iostream>
using namespace std;
class point{
private:
double x,y;
public:
void print();
point(double x1,double y1);
};
point::point(double x1,double y1){x=x1;y=y1;}
void point::print(){
cout<<"CPoint:"<<x<<","<<y<<endl;
}
class circle:public point{
private:
double r;
public:
circle(int x,int y,double r1);
virtual double GetArea();
virtual double Get_r();
virtual void print();
};
circle::circle(int x,int y,double r1):point(x,y){r=r1;}
double circle::GetArea(){
return 3.14*r*r;
}
double circle::Get_r(){return r;}
void circle::print(){
cout<<"CirleArea:"<<GetArea()<<endl;
}
class Ccylinde:public circle{
private:
int height;
public:
Ccylinde(double,double,double,double);
virtual double GetArea();
double Get_v();
virtual void print();
};
Ccylinde::Ccylinde(double x,double y,double r,double h):circle(x,y,r){
height=h;
}
double Ccylinde::GetArea(){
return 3.14*Get_r()*Get_r();
}
double Ccylinde::Get_v(){
return GetArea()*height;
}
void Ccylinde::print(){
cout<<"CcylinderVolume:"<<Get_v()<<endl;
}
int main(){
double x,y,r,h;
cin>>x>>y>>r>>h;
point p(x,y);
p.print();
circle c(x,y,r);
c.print();
Ccylinde cc(x,y,r,h);
cc.print();
return 0;
}

 

标签:圆柱,函数,point,GetArea,double,打印,print,打卡,circle
From: https://www.cnblogs.com/qmz-znv2/p/17357758.html

相关文章

  • 每天打卡一小时 第十七天 编译四部曲
    第一部曲自然语言路线图分块,能走通的节点合并为一块,记块的总数为num1。然后去掉一个节点后,再次分块,记块的总数为num2。如果num2-1(去掉了单独的一个节点)与num1相等或num2(去掉该节点之后,该节点所在的块仍互通)等于num1,则不影响连通性。第二部曲流程图第三部曲代码#include<io......
  • 每日打卡第二周 3
    1.10数值转换#include<bits/stdc++.h>usingnamespacestd;intsource,object,length;//储存原数,村拿出目标数值,存储字符串长度longdecimal_num;//存储十进制chartemp[1000];//存转换后的数值intflag=1;//是否退出的标志/*将字符转换为数字*/intchar_to_num(charch){if(ch......
  • 4.26打卡
     #include<bits/stdc++.h>usingnamespacestd;classnumber{intfz,fm;friendnumberoperator+(number&n1,number&n2);public:number(inta=0,intb=1){fz=a;fm=b;}friendintgcd(inta,intb......
  • C++每日打卡
    一个捐款人类Donator及一个相关函数getMaxName(),Donator类中包含捐款人的姓名及其捐款额。输出一批捐款人来到前后的捐款总金额,以及本批次捐款人中捐款最高者的姓名。 #include<iostream>usingnamespacestd;classDonator{private:stringname;float......
  • 2023.4.26编程一小时打卡
    一、问题描述:有一元二次方程ax2+bx+c=0,其一般解为x1,2=(-b±b2-4ac)/2a,但若a=0或b2-4ac<0时,用此公式出错。编程序,从键盘输入a,b,c的值,求x1和x2。如果a=0或b2-4ac<0,输出出错信息。二、解题思路:首先,将定义a,b,c为浮点数,然后输入a,b,c,去判断二次项系数的大小是否符合,再去判断b*2......
  • 打卡2
    #include<iostream>usingnamespacestd;intmain(){inta,i,b,c;for(a=1;a<5;a++){for(b=1;b<5;b++){for(c=1;c<5;c++){if(a!=b&&a!=c&&b!=c){cout<<"a:"<<a<<"b:"<<b<<"c:"&l......
  • 每日打卡一维数组和二维数组传参的几种方式
    //一组数组传参//#include<stdio.h> //voidInputArray(intn[],inta);//voidOutputArray(intn[],inta);//intmain()//{// intm[3];// InputArray(m,3);// OutputArray(m,3);// return0;//}//voidInputArray(intm[],intn)//{// for(inti=0;i<n;i++)......
  • 建民打卡日记4.26
    一、问题描述猜数字一群人坐在一起,每人猜一个100以内的数,谁的数字最接近大家平均数的一半就赢。本题就要求你找出其中的赢家。二、流程设计定义people结构体,包含姓名和报数;录入的同时计算总数;计算平均数/2,输出其整数部分;遍历寻找绝对值最小的人,输出名字。三、代码实现......
  • 打卡11
    三色球问题#include<stdio.h>intmain(){ intm,n,number=0; printf("红球白球黑球\n"); printf("......................\n"); for(m=0;m<=3;m++){ for(n=0;n<=3;n++){ if((8-m-n)<=6){ printf("%2d:......
  • c++打卡练习(17)
    爱因斯坦数学题:一条长台阶,若每步2阶台阶,则最后剩1阶,若每步3阶台阶,则最后剩2阶,若每步5阶台阶,则最后剩4阶,若每步6阶台阶,则最后剩5阶,若每步7阶台阶,则最后剩6阶,问在1到N的范围内有多少个这样的阶梯数,他们分别是多少?流程图:伪代码:源代码:#include<iostream>usingnamespacestd;int......