PTA一道题,依旧没有在规定时间做出来。
同还是没有提交过。

#include <iostream>
using namespace std;
/*定义多边形类*/
class polygon {protected:int number;//边数,最多不超过100条边
private:int side_length[100];//边长数组
public:polygon();polygon(int a[100]);int perimeter();//计算多边形边长void display();//输出多边形边数和周长
};
/*无参的构造函数,方便main函数中直接定义对象*/
polygon::polygon() {}
/*带参数的构造函数,为类中的数组赋值*/
polygon::polygon(int a[100]) {int i = 1;number = 0;while (a[i - 1] != -1) {side_length[i - 1] = a[i - 1];i++;number++;}side_length[i] = -1;
}
/*计算周长*/
int polygon::perimeter() {int i = 1, sum = 0;while (i <= number) {sum += side_length[i - 1];i++;}return sum;
}
/*输出*/
void polygon::display() {cout << number << " " << this->perimeter() << endl;
}
/*矩形类*/
class rectangle : public polygon {protected:int height;int width;
public:rectangle(){};rectangle(int h, int w) :height(h), width(w) { number = 4; }int perimeter();//计算矩形边长void display();//输出多边形边数和周长
};
int rectangle::perimeter() {return height * width;
}
void rectangle::display() {cout << 4 << " " << this->perimeter() << endl;
}/*正多边形类*/
class equal_polygon :public rectangle {public:equal_polygon() {}equal_polygon(int n, int l) :rectangle(n, l) { number = n; };int perimeter();void display();
};
int equal_polygon::perimeter() {return number * width;
}
void equal_polygon::display() {cout << height << " " << this->perimeter()<< endl;
}
/*为main中定义的对象赋值,以下两个同*/
polygon set_polygon() {int a[100], i = 0;do{cin >> a[i];i++;if(i==100) break;} while (a[i - 1] != -1);polygon b(a);return b;
}rectangle set_rec() {int h, l;cin >> h >> l;rectangle a(h, l);return a;
}equal_polygon set_equ() {int n, l;cin >> n >> l;equal_polygon a(n, l);return a;
}
int main() {int n, i, k;int p_k, r_k, e_k;p_k = r_k = e_k = 0;cin >> n;polygon* p = new polygon[n];rectangle* r = new rectangle[n];equal_polygon* e = new equal_polygon[n];for (k = 0; k < n; k++)//有点啰嗦{cin >> i;//一下几行可以用switch代替。if (i == 0) {p[p_k] = set_polygon();p_k++;}else if (i == 1) {r[r_k] = set_rec();r_k++;}else if (i == 2) {e[e_k] = set_equ();e_k++;}else {cout << "Worry,again." << endl;k--;}}for (i = 0; i < p_k; i++){p[i].display();}for (i = 0; i < r_k; i++){r[i].display();}for (i = 0; i < e_k; i++){e[i].display();}delete[]p;delete[]e;delete[]r;return 0;
}

定义多边形类,继承产生矩形类和正多边形类相关推荐

  1. Java中字符串工具类继承org.apache.commons.lang3.StringUtils类代码

    场景 转换为字节数组:是否包含字符串:替换掉HTML标签方法:替换为手机识别的HTML,去掉样式及属性,保留回车: 缩略字符串(不区分中英文字符):转换为Double类型:转换为Float类型:转换为 ...

  2. java为什么不推荐使用stack_栈和队列的面试题Java实现,Stack类继承于Vector这两个类都不推荐使用...

    在 thinking in java中看到过说Stack类继承于Vector,而这两个类都不推荐使用了,但是在做一到OJ题时,我用LinkedList来模拟栈和直接用Stack,发现在进行入栈出栈操作 ...

  3. java三角形类 继承_java编程三角形(Triangle类)继承

    import java.util.Scanner; public class Test { public static void main(String[] args) { System.out.pr ...

  4. Java类继承(extends)题目练习,求周长,求面积

    Java 类的继承,形状类,矩形,圆形正方形 ps:利用接口和多态的实现方法–点击跳转 联系题目: 概述: 设计一个形状类Shape, 方法: 求周长 求面积 形状类的子类: Rect(矩形) Cir ...

  5. java 中普通类继承,抽象类继承,接口类继承,子类一定要重写父类中的方法吗

    一.简单总结,需要重写的有 普通类继承抽象类,重写所有抽象类方法:(不包括普通方法) 普通类继承接口,重写所有接口方法.(不包括default关键字修饰的方法) 详解见下: 普通类继承,并非一定要重写 ...

  6. Part7 继承与派生 7.4派生类的构造和析构

    1派生类的构造函数 默认情况下:基类的构造函数不被继承,派生类需要定义自己的构造函数. C++11 规定:可用using语句继承基类构造函数.但是只能初始化从基类继承的成员.这时派生类新增成员可以通过 ...

  7. 派生类从基类继承的过程

    派生类从基类继承的过程 派生类从基类继承的过程可以分为三个步骤:吸收基类成员.修改基类成员和添加新成员. 吸收基类成员就是代码复用的过程,修改基类成员和添加新成员实现的是对原有代码的扩展,而代码的复用 ...

  8. Ext学习笔记02 - 构造方法,类继承,类实例方法重写

    刚刚走了个大弯路,朋友们见笑,我这见识实在太少了,开始想找个有语法提示的IDE,就直接想到了Aptana,下载一个最新版本,然后就弹出来一大堆东西要更新,更新就更新吧,更新一半就报错,看他给的提示,说 ...

  9. Python类继承对象

    类声明从object继承有什么理由吗? 我刚刚找到了执行此操作的代码,但找不到很好的理由. class MyClass(object):# class code follows... #1楼 难学Py ...

  10. C++的类继承与类模板

    类继承是面向对象编程中很重要(也是很难)的内容,其能有效地提高代码复用水平,提高开发的效率. 目录 基本概念 公有继承 私有继承.保护继承 包含 多重继承 类模板 基本概念 继承的种类与特点 C++中 ...

最新文章

  1. LeetCode 454 4Sum II(哈希法)
  2. hibernate 向数据库里设置了默认值的字段添加数据为null时失效的问题
  3. 【百战GAN】自动增强图像对比度和颜色美感,GAN如何做?
  4. 今天突然想到一个问题:地球在转动吗,由东西向西跳与由西向东跳哪个更远...
  5. 动态规划6个题目总结比较
  6. python shell怎么打开测试,python脚本第一篇,运行时间测试
  7. web.py+xheditor+ ajaxfileupload+新浪sae图片上传
  8. 全栈性能测试修炼宝典jmeter实战电子版_JMeter实战(一) 体系结构
  9. js 动态生成button 并设置click事件
  10. 学习 Shell —— 括号、引号
  11. Linux系统下载镜像
  12. excel函数去重_excel去掉重复值的函数用法
  13. python alpha通道_Python PIL完全删除每个alpha通道
  14. burp 调试_如何开发一个Burp插件
  15. 网络安全篇 使用IPSec实现数据的机密性传输-29
  16. 量化新手初识Brinson绩效分解模型
  17. 来看看她赚了多少钱,随手拍了一个视频,19万播放量
  18. java 合并pdf报错,[Java教程]java合并PDF文件
  19. 《20年后,你靠什么生存(孙继滨)》讲座观后感 转
  20. JAVA中一些术语的中英文对照

热门文章

  1. 详解KubeEdge边缘网络项目EdgeMesh
  2. ASCII码一览表,ASCII码对照表
  3. 服务器视频文件外链,视频图床 视频外链网站 视频上传外链分享
  4. 怎么大量转换图片格式为tiff
  5. 4.3寸TFTLCD显示JPG图片
  6. 铁路订票系统12306网站的业务和技术优化概述
  7. 死记3dmax快捷键有用么?
  8. 通过网页端保存ins图片的方法(谷歌浏览器)
  9. 贴吧云签到php源码,Tieba-Cloud-Sign: 百度贴吧云签到,在服务器上配置好就无需进行任何操作便可以实现贴吧的全自动签到。配合插件使用还可实现云灌水、点赞、封禁、删帖、审查等功能...
  10. 关于php的广告语,解说词、广告词、欢迎词专题训练a href=http://ruiwen.com/friend/list.php(教师中心专稿)/a...