首页 > 其他分享 >2023/5/25

2023/5/25

时间:2023-05-25 22:23:36浏览次数:32  
标签:25 area float class Shape b1 2023 public

7-1 用虚函数分别计算各种图形的面积 分数 20 作者 沙金 单位 石家庄铁道大学

定义抽象基类Shape,由它派生出五个派生类:Circle(圆形)、Square(正方形)、Rectangle( 长方形)、Trapezoid (梯形)和Triangle (三角形),用虚函数分别计算各种图形的面积,并求出它们的和。要求用基类指针数组。使它的每一个元素指向一个派生类的对象。PI=3.1415926

输入格式:

请在这里写输入格式。例如:输入在一行中给出9个大于0的数,用空格分隔,分别代表圆的半径,正方形的边长,矩形的宽和高,梯形的上底、下底和高,三角形的底和高。

输出格式:

请在这里描述输出格式。例如:输出所有图形的面积和,小数点后保留3位有效数字。

输入样例:

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

12.6 3.5 4.5 8.4 2.0 4.5 3.2 4.5 8.4
 

输出样例:

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

total of all areas = 578.109
#include<iostream>
using namespace std;
#define PI 3.1415926
class Shape{
    public: 
    virtual float area()=0;
    Shape(){}
};

class Circle:public Shape
{
public:
Circle(float r1)
{
r=r1;
}
float area()
{
//float s;
s=PI*r*r;
return s;
}
private:
float r,s;
};

class Square:public Shape
{
public:
Square(float b1)
{
b=b1;
}
float area()
{
//float s;
s=b*b;
return s;
}
private:
float b,s;
};

class Rectangle:public Shape
{
public:
Rectangle(float a2,float b1)
{
w=a2;
h=b1;
}
float area()
{
//float s;
s=w*h;
return s;
}
private:
float w;
float h;
float s;

};

class Trapezoid:public Shape
{
public:
Trapezoid(float a1,float b1,float c1)
   {
a=a1;
b=b1;
c=c1;
   }
   
   
float area()
   {
float s;
s=(a+b)*c/2.0;
return s;
   }

private:
float a,b,c;

};

class Triangle:public Shape
{
public:
Triangle(float a1,float b1)
{
a=a1;
b=b1;
}
float area()
{
//loat s;
s=a*b/2.0;
return s;
}
private:
float a,b,s;
};

int main()
{
    float a[9];
    for(int i=0;i<9;i++)
        cin>>a[i];
    Shape*b[5];
    b[0]=new Circle(a[0]);
    b[1]=new Square(a[1]);
    b[2]=new Rectangle(a[2],a[3]);
    b[3]=new Trapezoid(a[4],a[5],a[6]);
    b[4]=new Triangle(a[7],a[8]);
    float sum;
    sum=b[0]->area()+b[1]->area()+b[2]->area()+b[3]->area()+b[4]->area();
    cout<<"total of all areas = "<<sum;
}

 

标签:25,area,float,class,Shape,b1,2023,public
From: https://www.cnblogs.com/wangxinyuan1108/p/17433143.html

相关文章

  • Leetcode2585. 获得分数的方法数
    题解多重背包的模板f[i][j]表示前i种题目得分为j的方案数f[i][j]+=f[i-1][j-kw]再将空间优化为1维classSolution{publicintwaysToReachTarget(inttarget,int[][]types){intn=types.length,MOD=(int)1e9+7,INF=0x3f3f3f3f;int[......
  • 叮咚买菜业绩大幅低于预期,2023年前景堪忧
    叮咚买菜2023年第一季度业绩低于预期叮咚买菜(DDL)于5月12日公布了2023年第一季度财报。财报显示,叮咚买菜的收入同比下降了-8%,从2022年第一季度的54.44亿元人民币下滑到了2023年第一季度的49.98亿元人民币。根据S&PCapitalIQ的数据,叮咚买菜2023年第一季度的收入比卖方分析师预期......
  • 刘铭诚:5.25美元/黄金价格操作建议#期货原油今日走势交易策略
    黄金行情走势分析——周三黄金价格走势在美盘交易时间段从4小时上轨1985跌至下轨1956,跌幅近29个点,昨日完美把握交投区间,黄金空单获利满满!回归盘面上来看,今日白盘价格处于小时线区间震荡,目前的区间压缩至1968-1953,上下破位都可以顺势看行情延续。技术面黄金日线布林带下......
  • 2023-05-25:给定一个正整数 x,我们将会写出一个形如 x (op1) x (op2) x (op3) x ... 的
    2023-05-25:给定一个正整数x,我们将会写出一个形如x(op1)x(op2)x(op3)x...的表达式其中每个运算符op1,op2,…可以是加、减、乘、除之一例如,对于x=3,我们可以写出表达式3*3/3+3-3,该式的值为3在写这样的表达式时,我们需要遵守下面的惯例:除运算符(/)返回有理数任何地......
  • 2023.5.10周三每日总结
     异步处理Android应用程序中,获取网络数据需要使用异步任务的方式,以避免界面卡顿、假死等。在AS中,我们可以使用异步任务或Handler来避免程序挂起。深入了解异步处理,可以更好的掌握跨线程间的数据处理。......
  • 2023.5.15周一每日总结
    这周老师为我们讲解了人机交互设计像我们说明了合理的设计的重要性通过带我们分析茶壶的组成,和茶壶茶嘴等拼接在一起的方式的不同,像我们说明一个合理的ui的重要性错误示例: 我们说软件工程终究是和人打交道的行业,我们需要满足用户的要求 而要做到这一点,我们需要有很强的......
  • 5.25
    今天写了工程数学的实验,部分代码如下clc;clear allformat shorts=input('请输入函数表达式:f = ','s');f=inline(s);a = input('请输入区间左端点a的值:');b = input('请输入区间右端点b的值:');eps= input('请输入运算精度:');    %%“|b-a|<=eps”k=0;x1=......
  • 2023.4.26周三每日总结
    Activity的生命周期Activity生命周期是一个非常重要的概念,理解Activity的生命周期对于开发Android应用程序至关重要。在AS中,Activity有始有终,可以选择对应状态的回调函数,根据状态完成一些逻辑操作。学习Activity的生命周期,可以更好的掌握应用程序的启动、销毁、状态保存等操作......
  • 2023-05-25:给定一个正整数 x,我们将会写出一个形如 x (op1) x (op2) x (op3) x ... 的
    2023-05-25:给定一个正整数x,我们将会写出一个形如x(op1)x(op2)x(op3)x...的表达式其中每个运算符op1,op2,…可以是加、减、乘、除之一例如,对于x=3,我们可以写出表达式3*3/3+3-3,该式的值为3在写这样的表达式时,我们需要遵守下面的惯例:除运算符(/)返回有理数......
  • 2023.5.1周一每日总结
    虽然今天是劳动节,但我依旧进行了Android的学习今天所学习的内容是intentIntentIntent是在不同Activity、应用程序之间传递信息的途径。在AS中,我们可以使用Intent来启动另一个Activity或应用程序,也可以传递数据到其他程序。学习Intent,可以更好地掌握跨应用程序间的通信。在An......