`
txf2004
  • 浏览: 6853592 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

《C++第十三周实验报告3-1》---定义抽象基类Shape,由它派生出3个派生类

 
阅读更多
/*
【任务3】写一个程序,定义抽象基类Shape,由它派生出3个派生类,
Circle(圆形)、Rectangle(矩形)、Triangle(三角形)。
用如下的mian()函数,求出定义的几个几何体的面积和。
*/
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生 
* All rights reserved.
* 文件名称:  Shape.cpp                            
* 作    者:   计114-3 王兴锋     
* 完成日期:    2012  年   5    月    15    日
* 版 本 号:       V 1.0
*/
#include <iostream>

using namespace std;

#define PI 3.1415926

class Shape
{
public:
	virtual double area() {return 0.0;}	
};
class Circle : public Shape
{
private:
	double r;
public:
	Circle(double r){this->r = r;}
	double area() {return PI*r*r;}
};
class Rectangle : public Shape
{
private:
	double l, w;
public:
	Rectangle(double l, double w){this->l = l, this->w = w;}
	double area(){return l*w;}
};
class Triangle : public Shape
{
private:
	double l, h;
public:
	Triangle(double l, double h){this->l = l, this->h = h;}
	double area(){return l*h/2;}
};

int main()
{
	Circle c1(12.6),c2(4.9);    //建立Circle类对象c1,c2,参数为圆半径
	Rectangle r1(4.5,8.4),r2(5.0,2.5);       //建立Rectangle类对象r1,r2,参数为矩形长、宽
	Triangle t1(4.5,8.4),t2(3.4,2.8);    //建立Triangle类对象t1,t2,参数为三角形底边长与高
	Shape *pt[6]={&c1,&c2,&r1,&r2,&t1,&t2}; //定义基类指针数组pt,各元素指向一个派生类对象

	double areas=0.0;      //areas为总面积

	for(int i=0; i<6; i++)
	{
		areas=areas+pt[i]->area();
	}
	cout<<"totol of all areas="<<areas<<endl;   //输出总面积

	system("pause");
	return 0;
}
/*
totol of all areas=648.149
请按任意键继续. . .
*/

分享到:
评论

相关推荐

    c++ 形状类Shape(派生出圆类Circle和矩形类Rectangle)

    1.建立一个形状类Shape作为基类,派生出圆类Circle和矩形类Rectangle,求出面积并获取相关信息。 具体要求如下: (1)形状类Shape (a)保护数据成员 double x,y:对于不同的形状,x和y表示不同的含义,如对于圆,...

    纯虚函数和抽象类.doc

    1)声明抽象基类Shape,由它派生出3个派生类:Circle(圆形)、Rectangle(矩形)、Triangle(三角形),用一个函数printArea分别输出以上三者的面积,3个图形的数据在定义对象时给定。 (2)新建一个基类shape类是...

    北邮C++小学期作业-----形状1

    (2) 从Shape派生两个类矩形和圆形; (3) 从矩形派生正方形; (4) 分别实现派生类构造函数、析构函数和其他方法; (5) 创建派生类的对象,观察构造函数、析构函数调用次序; (6) 不同对象计算面积。 北邮...

    C++多态性实验报告

    (1)在《C++面向对象程序...(2)声明抽象基类Shape,由它派生出3个派生类:Circle(圆)、Rectangle(矩形)、Triangle(三角形),用一个函数printArea分别输出以上三者的面积,3个图形的数据在定义对象时个给定。

    c++程序编程

    c++程序设计定义抽象基类Shape,由它派生出5个派生类:Circle、Rectangle、Tripezoid、Triangle

    C++ 课程作业 继承与派生(Shape Circle Rectangle类的设计,继承与派生)

    编写一个Shape类并派生出Circle类和Rectangle类,观察运行机制。 shape类有以下成员 1)私有成员m_ID 2)公有getter和setter 3)计算面积函数getArea(),返回0; 4)构造与析构函数 Circle类从shape类继承,并派生...

    第五次上机题目及参考代码.docx

    然后,从Shape类派生出三角形类Triangle、矩形类Rectangle和圆类Circle,在基类中定义纯虚函数show()和area(),分别用于显示图形信息和求相应图形的面积,并在派生类中根据不同的图形实现相应的函数。要求实现运行时...

    面向对象实验3类的多态

    在理解虚函数实现动态绑定机制的基础上,理解虚函数生效的前提——通过指向派生类对象的基类指针或通过引用派生类对象的基类引用调用虚函数; 了解引入纯虚函数的必要性和抽象类的“接口”作用;从而全面理解面向...

    C++程序设计代码

    3.(选做)声明一个哺乳动物类Mammal,再由此派生出狗类Dog,定义一个Dog类的对象,观察基类与派生类的构造函数和析构函数的调用顺序。 4.完善实验四第2题的程序,具体要求如下: 任务1:从people(人员)类派生出...

    西北农林科技大学C++实验题及代码

    定义表示形状的抽象类及相应的派生类,并实现相关操作符重载。 (1)定义表示形状的抽象类Shape: 添加公有成员函数double Area(),用于计算形状面积;定义为纯虚函数; 添加公有成员函数void Show(),用于显示形状...

    纯虚函数与抽象类的概念

    系统的介绍C++里面的虚函数与抽象类概念,并举例概述

    c++小型图形处理系统

    定义一个抽象基类Shape,同它派生出5个类:圆、正方形、矩形、梯形、三角形。计算几种图形面积。

    C++实验3:多态性与虚函数

    实验目的: 了解多态性的概念 ...声明一个抽象类Shape,由它派生出3个类:Circle(圆),Rectangle(矩形)、Triangle(三角形),用函数分别输出以上三个图形的周长和面积。 要求: 1.实现运算符重载 2.实现动态联编

    C++-实验多态性实验报告.doc

    " "要"请编写一个抽象类Shape,在此基础上派生出类Rectangle和Circle, " "求"二者都有计算对象面积的函数GetArea()和计算周长函数GetPerim(" " ")。 " " "对类Point重载++(自增)、--(自减)运算符。 " "实...

    c++实验多态性实验报告.doc

    " "要"请编写一个抽象类Shape,在此基础上派生出类Rectangle和Circle, " "求"二者都有计算对象面积的函数GetArea()和计算周长函数GetPerim(" " ")。 " " "对类Point重载++(自增)、--(自减)运算符。 " "实...

    c++实验内容

    1. 设计一个图形类(Shape),由它派生出5个派生类:三角形类(Triangle)、正方形类(Square)、圆形类(Circle)、矩形类(Rectangle)、梯形类(triangle)类,利用虚函数计算图形面积,用一个函数printArea分别...

    类的派生实例——形状

    (1) 声明一个基类Shape(形状),其中包含一个方法来计算面积; (2) 从Shape派生两个类矩形和圆形; (3) 从矩形派生正方形; (4) 分别实现派生类构造函数、析构函数和其他方法; (5) 创建派生类的对象,...

    矩形面积 (用C++编写的)

    是一个用C++做的计算矩形面积的程序,...具体的要求是:定义一个抽象基类Shape用以计算几何形状的面积,并从此基类派生出长方形类和圆形类。编写适当函数,实现通过基类指针来调用派生类中的虚函数,计算不同形状的面积

    C++测试题练习题word版本

    下面是一个形状类Shape,编写类Shape的派生类:圆类Circle,三角形类Triangle和矩形类Rectangle,并重定义基类的成员函数使之返回正确的结果(show函数要输出对象的基本信息),然后编写程序测试它们. class Shape{ ...

    C++编程思想习题

    第13章 继承和组合 13.1组合语法 13.2继承语法 13.3构造函数的初始化表达式表 13.3.1成员对象初始化 13.3.2在初始化表达式表中的内置类型 13.4组合和继承的联合 13.4.1构造函数和析构函数的次序 13.4.2名字隐藏 ...

Global site tag (gtag.js) - Google Analytics