从shape类派生出一个正n边形

1.设计一个“图形”类shape,基类部分的共同特征(如宽等)和方法(如初始化、求面积等)。以此为基础,派生出矩形rectangle、圆形circle。二者都有计算面积的函数以及计算周长的函数。并编写相应主函数进行测试。 下面是一种可行的类的设计方式: class Shape: def __init__(self, width): self.width = width def get_area(self): pass class Rectangle(Shape): def __init__(self, width, height):... 阅读详情

编译器:C++ (g++)

在一个正n边形(Regular Polygon)中,所有边的边长都相等,且所有角的度数相同(即这个多边形是等边、等角的)。请从下列的抽象类shape类扩展出一个正n边形类RegularPolygon,这个类将正n边形的边数n和边长s作为私有成员,类中包含初始化边数n和边长s的构造函数。
 

#include  <iostream>
#include  <cmath>  
using  namespace  std;

class  shape  {//  形状类
public:
  double  getArea()    //  求面积
  {return  -1;}
  double  getPerimeter()  //  求周长
  {return  -1;}
};
/*  请在这里填写答案  */
//Your  code  will  be  embed-ed  here.
int  main()
{
        int  n;  
        double  s;
        
        cin>>n>>s;
        RegularPolygon  p(n,s);
        cout<<p.getArea()<<endl;

        cout<<p.getPerimeter()<<endl;

        return  0;
}


Ans:

class RegularPolygon:public shape{
    private:
        int n;
        double s;
    public:
        RegularPolygon(int nn, double ss):n(nn), s(ss)
        {
        }
        double getArea(){
            return n*s*s/(tan((3.1415926/n))*4);
        }
        double getPerimeter(){
            return n * s;
        }
};

一道简单的C++笔试题,关于抽象shape类求图形周长的问题~ 题目如下下列shape类是一个表示形状的抽象类,length()为求图形周长的函数,total()则是一个通用的用以求不同形状的图形周长总和的函数。请从shape类派生三角形类(striangle),矩形类(rectangle),并给出具体的求周长函数。给出shape,total的定义如下所示。class shape{public:virtual float length()=0};float t... 阅读详情

相关推荐

C++面向对象编程核心:类与对象、继承与派生的深度解析与实践

面向对象编程(OOP)是现代软件工程的核心范式,它通过封装、继承和多态三大特性构建模块化、可复用的代码结构。其原理在于将数据与操作数据的方法捆绑为对象,并通过类定义对象的蓝图。在C++中,OOP的技术价值尤为突出,它直接映射到内存布局,支持高效的系统级编程,同时通过虚函数表实现运行时多态,为大型软件系统提供灵活扩展能力。应用场景广泛,从GUI框架、游戏引擎到操作系统组件都依赖健壮的类层次设计。本文聚焦C++面向对象编程中最核心的类与对象、继承与派生机制,深入探讨封装的真谛、内存管理、虚函数实现及常见设计陷阱

weixin_30861459的博客 406

6-2 从shape类派生出一个正n边形 (10 分)

在一个正n边形(Regular Polygon)中,所有边的边长都相等,且所有角的度数相同(即这个多边形是等边、等角的)。 请从下列的抽象类shape类扩展出一个正n边形类RegularPolygon,这个类将正n边形的边数n和边长s作为私有成员,类中包含初始化边数n和边长s的构造函数。 class shape {// 形状类 public: double getArea() // 求面积 {return -1;} double getPerimeter() // 求周长 {return -1;}

weixin_45886685的博客 2953

正多变形 类

(几何:正多边形)一个正n边形有n条相同长度的边,所有角度也相同(即等边又等角的多边形)。设计一个名为RegularPolygon的类,类包含: 一个int型私有域n,表示正多边形的边数。 一个double型私有域side,存储边的长度。 一个double型私有域x,存储正多边形中心在x-轴方向的坐标。 一个double型私有域y,存储正多边形中心在y-轴方向的坐标。 无参构造函数,创建一个对象,n、side、x和y分别为3、1、0和0。 构造函数,使用给定的边数和边长,创建一个对象,中心位于(0, 0)。 构造函数,使用给定的边数、边长和中心坐标,创建一个对象。 所有数据域的const访问器函数和修改器函数。 const函数getPerimeter(),返回正多边形的周长。 const函数getArea(),返回正多边形的面积。 要求实现类。编写一个测试程序,创建3个RegularPolygon对象,分别使用无参构造函数、RegularPolygon(6, 4)和RegularPolygon(10, 4, 5.6, 7.8)。对每个对象,打印输出其周长和面积。 可以运行

java语言程序设计与数据结构9_9

java语言程序设计与数据结构第9章第9题

Christopherwa的博客 1365

简单易懂的AXI_Lite 总线详解

简单易懂的AXI_Lite 总线详解 1、前言 AXI_LITE协议主要应用于Xilinx的ZYNQ芯片构架下的ARM和FPGA之间的数据读写,更偏向于单个寄存器的读写。 2、AXI总线与ZYNQ的关系 AXI(Advanced eXtensible Interface)本是由ARM公司提出的一种总线协议,Xilinx从6系列的FPGA开始对AXI总线提供支持,此时AXI已经发展到了AXI4这个版本,所以当你用到Xilinx的软件的时候看到的都是“AIX4”的IP,如Vivado打包一个AXI IP的时候,

m0_46642108的博客 8495

PX4实战指南:通过遥控器通道直连实现舵机PWM控制

本文详细介绍了如何通过PX4飞控实现遥控器通道直连控制舵机PWM输出的完整流程。从硬件准备、遥控器配对到PX4参数配置和硬件连接,提供了实战技巧和常见问题解决方案,帮助无人机爱好者快速掌握舵机控制技术。重点讲解了AUX Passthrough模式设置和PWM参数调整等关键步骤。

weixin_29195217的博客 154

C++ pta编程题

6-2 类的声明和成员函数的实现–this指针 (10 分) 本题要求声明和实现一个Car类,包括实现其成员函数。 要求如下: 类和函数接口定义: 声明一个Car类; 三个public成员函数: (1) disp_welcomemsg(),无返回类型; (2) get_wheels(),返回一个Car类的数据成员m_nWheels的值; (3) set_wheels(int),用指定的形参初始化数据成员m_nWheels的值; 一个私有数据成员m_nWheels,整数类型,代表汽车的车轮数量。 其中,成员

xihuankangkang的博客 3503

Jasper Report使用JSON数据源创建报表

最近在做一个项目小功能,表单结案要生成PDF报表。 起初,想用HTML模板(art-template模板引擎)编写,利用浏览器的打印功能保存成pdf文件下载。但是HTML编写好的模板,页码、页眉、页脚设置有坑,表单内容中的表格较多,表格不能设置跨页,导致跨页的表格内容与页眉重叠,没能解决这个问题。 于是,转战研究Jasper report生成报表,用更加专业的报表生成工具来做。刚开始,也是跌跌撞撞,遇到了很多问题,因为觉得没有退路了,必须要用这个搞出来,所以就硬着头皮去找各种资料。 主要使用的json

xiaogege2012的专栏 3319

Java面向对象:RegularPolygon类

描述 【描述】 定义一个RegularPolygon类,表示正n边形。一个正n边形中,所有边的长度都相同,且所有角的度数都相同。RegularPolygon类包括: 一个名为n的int类型私有数据域,表示多边形边数,默认值为3。 一个名为side的double类型私有数据域,表示多边形边长,默认值为1。 一个名为x的double类型私有数据域,表示多边形中点的x坐标,默认值为0。 一个名为y的double类型私有数据域,表示多边形中点的y坐标,默认值为0。 无参构造方法。 指定边数和边长,中心在(0,0)的

m0_46695871的博客 2872

OpenVPN 新增 windows 客户端

虚拟私人网络(Virtual Private Network,简称VPN)是一种网络技术,它允许用户通过公共网络(如互联网)建立一个安全的连接通道。本文介绍如何添加 windows 客户端。

利昂的技术存档 3769

DolphinScheduler+DataX实战:5分钟搞定MySQL到Hive数据同步(附完整JSON配置)

本文详细介绍了如何利用DolphinScheduler与DataX构建企业级数据同步流水线,实现MySQL到Hive的高效数据同步。文章提供了从环境部署、核心组件配置到完整JSON配置的实战指南,并深入探讨了性能调优、增量同步策略以及生产环境下的监控与错误处理,帮助读者快速搭建稳定可靠的数据同步方案。

5b6n7m8的博客 253

【C++】6-6 从shape类派生出一个正n边形分数 10

类名:RegularPolygon。

zRenox的博客 541

NX二次开发常用函数——从一个坐标系到另一个坐标系的转换(UF_MTX4_csys_to_csys )相同体坐标转化

本文介绍了在项目开发中实现坐标转换的方法,重点解析了两个关键函数UF_MTX4_csys_to_csys和UF_MTX4_vec3_multiply的使用。通过4个变换矩阵(transform1-4)实现工作坐标系与绝对坐标系之间的相互转换,并以圆柱体为例详细说明了坐标转换的具体实现过程,包括原点、X/Y轴方向的转换处理。相比之前采用的if-else判断方法,这种矩阵转换方式在代码复杂度和运行效率上都更具优势。

weixin_47753171的博客 600

6-8 从shape类派生出一个正n边形分数 10

在一个正n边形(Regular Polygon)中,所有边的边长都相等,且所有角的度数相同(即这个多边形是等边、等角的)。请从下列的抽象类shape类扩展出一个正n边形类RegularPolygon,这个类将正n边形的边数n和边长s作为私有成员,类中包含初始化边数n和边长s的构造函数。 class shape {// 形状类 public: double getArea() // 求面积 {return -1;} double getPerimeter() // 求周长 {return -1;

bujianzingguang的博客 1158

19、多项式基算术:原理与运算详解

本文深入探讨了有限域 $GF(2^m)$ 中的多项式基算术,详细介绍了加法、减法、乘法和平方运算的原理与实现方法。重点分析了多项式基表示形式、模约简技术以及乘法优化策略,如高基数乘法、并行与顺序乘法器设计,并提到了Karatsuba-Ofman算法在减少乘法次数方面的优势。此外,文章还讨论了多项式基算术在密码学、编码理论等领域的应用前景,并展望了未来在高效算法设计与硬件加速方面的研究方向。

yellow的专栏 150

基于STM32设计的智能家居系统(采用ESP8266+OneNet云平台)

一、环境介绍 单片机采用:STM32F103C8T6 上网方式:采用ESP8266,也可以使用其他设备代替,只要支持TCP协议即可。比如:GSM模块、有线网卡等。 云平台: 采用中国移动OneNet. 也可以采用腾讯、阿里云、华为云、百度天工物接入、机智云等等。 前面文章有讲解。 协议: 采用MQTT协议 开发软件:keil5 完整项目源码下载:https://download.youkuaiyun.com/download/xiaolong1126626497/19766925 二、包含的硬件与实...

1万+

定义抽象基类Shape由他派生出n个派生类,用一个printArea分别输出派生类的面积,派生类的数据定义对象时给定

实验1 写一个程序,定义抽象基类Shape,由他派生出三个派生类:Circle(圆形)、Rectangle(矩形)、Triangle(三角形),用一个函数printArea分别输出以上三者的面积,三个图形的数据在定义对象时给定 代码1 #include<iostream> #include<cmath> using namespace std; #define n 3 //使用宏定义或者const都行 //const int n=3; class Shape{ public:

qq_54388490的博客 2191

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

C++ //习题 12.5 写一个程序,定义抽象基类Shape,由它派生出5个派生类:Circle、Square、Rectangle、Tarpezoid、Triangle。用虚函数分别计算几种图形面积

C++程序设计(第三版) 谭浩强 习题12.5 个人设计 习题 12.5 写一个程序,定义抽象基类Shape,由它派生出5个派生类:Circle、Square、Rectangle、Tarpezoid、Triangle。用虚函数分别计算几种图形面积,并求它们的和。要求用基类指针数组,使它的每一个元素指向一个派生类对象。 代码块: #include &lt;iostream&gt; #include ...

Made in Code 2万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

java设计一个形状shape_设计一个shape接口

还有的时候你想要 derived classes 继承一个函数的 interface(接口)和 ...也就是说,Shape::error 的声明告诉 derived classes 的设计者:“你应该支持一......? 【算法描述】抽象类和具体类的接口和实现。 46 【例9-7】类名:Shape 数据成员: 类名:Point 数据成员:坐标x,y 成员函数: 成员函数: Area(虚函数) Pr...

weixin_35680189的博客 2432

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

C++入门必做题 答案 05

小提示:部分题目的图形有偏移现象;解决办法为,将题目拷贝到记事本,字体设置为‘Fixedsys’。(编译环境:windowsXP_sp3 + Visual_C++_2008,保证编译成功,正常运行。)   5. 输入一个十进数,将其转换成 N 进制数(0代码如下:#includeusing namespace::std;int temp_zs[10], temp_xs[4]

蜗牛部落 538

写一个程序,定义抽象基类Shape,由它派生出5个派生类:Circle(圆形)Square(正方形)Rectangle(矩形)Trapezoid(梯形)Triangle(三角形)。用指针指向来表示面积

#include<iostream> #include<cmath> using namespace std; double const pai=3.1415926; const int N=5; class Shape { public: Shape(){}; virtual double PrintArea() const =0; protected: }; class Triangle:public Shape { publi...

qq_52735613的博客 4495

Open CASCADE学习|Geom2d_Curve类

类定义了一个二维曲线的抽象接口。它封装了曲线的基本属性和操作,例如参数化、连续性、闭合性、周期性以及点和导数的计算。该类是许多具体曲线类(如等)的基类,这些派生类继承并实现了的接口。

T20151470的博客 1647

7-28作业直接刷一下

1.建立一个形状类Shape作为基类,派生出圆类Circle和矩形类Rectangle,求出面积并获取相关信息。具体要求如下: (1)形状类Shape (a)保护数据成员 double x, y:对于不同的形状,x和y表示不同的含义,如对于圆,x和y均表示圆的半径,而对于矩形,x表示矩形的长,y表示矩形的宽。访问权限定义为保护类型是为了能被继承下去,以便派生类能直接访问x和y。 (b)公有成员函数...

阿汤哥的部落格 205

OJ Problem A: 图形计数与求面积

Problem A: 图形计数与求面积 Description: 定义三个类:Shape、Circle和Square,其中Shape为抽象类,包括: 用于记录Shape类及其子类对象(即图形)个数的静态数据成员。 构造函数与析构函数。 获得图形个数的静态成员函数 static int getNumOfShapes(),以及 求图形面积的纯虚函数getArea()。 类Circle是Shape类的子类,包括: 用于记录Circle类对象(即圆)个数的静态数据成员。 表示半径的double类型数据成员。 构造

is_kkk的博客 508

自学设计模式(简单工厂模式、工厂模式、抽象工厂模式)

关于简单工厂模式、工厂模式、抽象工厂模式的编程实践!

rygy_的博客 948
上一篇: *文具盒*
下一篇: .万有引力
Klein_21
博客等级 码龄4年 237粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值