首页 > 编程语言 >pta程序设计类实验辅助教学平台-练习题

pta程序设计类实验辅助教学平台-练习题

时间:2023-04-16 21:11:24浏览次数:38  
标签:练习题 area double pta class Shapes Shape 程序设计 public

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

 1 #include <iostream>
 2 #define PI 3.1415926
 3 using namespace std;
 4 class Shape
 5 {
 6     public:
 7     virtual double area()=0;
 8 };
 9 class Circle:public Shape
10 {
11     private:
12     double r;
13     public:
14     Circle(double x):r(x){}
15     double area()
16     {
17     return PI*r*r;
18     }
19 };
20 class Square:public Shape
21 {
22     private:
23     double x;
24     public:
25     Square(double a):x(a){}
26     double area()
27     {
28     return x*x;
29     }
30 };
31 class Rectangle:public Shape
32 {
33     private:
34     double x;
35     double y;
36     public:
37     Rectangle(double a,double b):x(a),y(b){}
38     double area()
39     {
40     return x*y;
41     }
42 };
43 class Trapezoid:public Shape
44 {
45     private:
46     double x;
47     double y;
48     double z;
49     public:
50     Trapezoid(double a,double b,double c):x(a),y(b),z(c){}
51     double area()
52     {
53     return (x+y)*z/2;
54     }
55 };
56 class Triangle:public Shape
57 {
58     private:
59     double x;
60     double y;
61     public:
62     Triangle(double a,double b):x(a),y(b){}
63     double area()
64     {
65     return x*y/2;
66     }
67 };
68 int main()
69 {
70     Shape* Shapes[5];
71     double a,b,c,d,e,f,g,h,i;
72     cin>>a>>b>>c>>d>>e>>f>>g>>h>>i;
73     Shapes[0]=new Circle(a);
74     Shapes[1]=new Square(b);
75     Shapes[2]=new Rectangle(c,d);
76     Shapes[3]=new Trapezoid(e,f,g);
77     Shapes[4]=new Triangle(h,i);
78     double sum;
79     sum=Shapes[0]->area()+Shapes[1]->area()+Shapes[2]->area()+Shapes[3]->area()+Shapes[4]->area();
80     cout<<"total of all areas = "<<sum<<endl;
81 }

 

标签:练习题,area,double,pta,class,Shapes,Shape,程序设计,public
From: https://www.cnblogs.com/Lyh3012648079/p/17324090.html

相关文章

  • 电子科技大学第二十一届ACM程序设计竞赛 决赛游记
    Preface第一次线下组队打ACM比赛,算是次很难忘的经验吧昨天晚上和队友才第一次在食堂见面,然后简单交流了下今天的策略方针等其实大部分时间还是在扯皮,没想到刚好三个key厨组成了一队,早知道队名就叫HellBurnsGreen了然后关于赛前,今天早上还算起的挺早,然后不知道干什么就去学校的......
  • iptables详解
    iptables概述iptables是Linux斜体自带的防火墙,支持数据包过滤、数据包转发、地址转换、基于MAC地址的过滤、基于状态的过滤、包速率限制等安全功能。iptables可以用于构建Linux主机防火墙,也可以用于搭建网络防火墙。iptables结构一、iptables的表tables与链chainsiptables有......
  • 鼎利杯练习题
    第一题moves=input()x,y=0,0formoveinmoves:ifmove=="L":x-=1elifmove=="R":x+=1elifmove=="U":y+=1elifmove=="D":y-=1ifx==0andy==......
  • Web实验二 服务器端简单程序设计
    实验项目名称:实验二  服务器端简单程序设计 一、实验目的通过一个小型网站的开发,掌握JSP基础知识,加深对session,request,response,cookie等对象的理解,掌握其使用方法,进一步深入掌握HTML、CSS和JavaScript等知识。二、实验内容和基本要求1)编写index.jsp文件,展示某一类物品或......
  • 【转】iptables命令详解和举例(完整版)
    1、防火墙概述          防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种。无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘。而我们的任务就是需要去定义到底防火墙如何工作,这就是防火墙的策略,规则,以达到让它对......
  • c++primer15面向对象程序设计
    除了“构造函数”和“析构函数”,父类的所有成员函数,以及数据成员,都会被子类继承!:补充赋值运算符继承问题(链接) 成员函数如果没被声明为虚函数,其解析过程发生在编译时而非运行时。       派生类引用或者指针向基类引用或者指针自动类型转换:参考能够在一个赋值......
  • iptables备份和恢复配置
    [root@hostname~]#iptables-save>/usr/myipt.rule #备份规则至/usr/myipt.rule[root@hostname~]#iptables-F #删除规则[root@hostname~]#iptables-nvL[root@hostname~]#iptables-restore</usr/myipt.rule#恢复规则[root@hostname~]#iptables-nvL......
  • Linux操作系统ARM指令集与汇编语言程序设计
    一、实验目的1.了解并掌握ARM汇编指令集2.应用ARM指令集编写一个程序操控开发板上的LED灯二、实验要求应用ARM汇编指令集编写程序,实现正常状态下开发板上的LED灯不亮,按下一个按键之后开发板上的LED灯进入流水灯模式。三、实验原理四个LED灯的电路如下图所示:四个按键电路图......
  • 面向对象程序设计
    OOP【面向对象程序设计】(OOP)与【面向过程程序设计】在思维方式上存在着很大的差别。【面向过程程序设计】中,算法是第一位的,数据结构是第二位的,这就明确地表述了程序员的工作方式。首先要确定如何操作数据,然后再决定如何组织数据,以便于数据操作。而【面向对象程序设计】却调换了这......
  • 广州大学第十七届ACM大学生程序设计竞赛 L. 因子模仿 - hard version 线段树维护矩阵
    传送门大致思路:  观察发现,茉美香胜利会叠加对手所有状态,茉美香失败会被对手叠加所有状态。我们可以用矩阵[a1,a2,b1,b2]表示两个人的状态(其中a1,a2表示茉美香,b1,b2表示对手)茉美香赢了之后的状态是[a1+b1,a2+b2,b1,b2],茉美香输了之后的状态是[a1,b1,a1+b1,......