面向对象编程技术(作业题二)

原创 2006年05月21日 12:25:00

#include <iostream>

#define _USE_MATH_DEFINES
#include <cmath>

using namespace std;

class CShape
{
public:
 virtual double Area() = 0;  // 求面积
 virtual double Perimeter() = 0; // 求周长
};

// 圆
class CCircle : public CShape
{
protected:
 double m_nRadius;  // 圆的半径

public:
 CCircle(double nRadius)
  : m_nRadius(nRadius)
 {
 }

 virtual ~CCircle()
 {
 }

 virtual double Area()
 {
  return M_PI * m_nRadius * m_nRadius;
 }

 virtual double Perimeter()
 {
  return 2 * M_PI * m_nRadius;
 }
};

// 圆内接正方形
class CSquareInCircle : public CShape
{
protected:
 double m_nRadius;  // 圆的半径

public:
 CSquareInCircle(double nRadius)
  : m_nRadius(nRadius)
 {
 }

 virtual ~CSquareInCircle()
 {
 }

 virtual double Area()
 {
  return (2 * m_nRadius * m_nRadius);
 }

 virtual double Perimeter()
 {
  return (4 * sqrt(2.0) * m_nRadius);
 }
};

// 圆外接正方形
class CSquareOutCircle : public CShape
{
protected:
 double m_nRadius;  // 圆的半径

public:
 CSquareOutCircle(double nRadius)
  : m_nRadius(nRadius)
 {
 }

 virtual ~CSquareOutCircle()
 {
 }

 virtual double Area()
 {
  return (2 * m_nRadius * 2 * m_nRadius);
 }

 virtual double Perimeter()
 {
  return (4 * 2 * m_nRadius);
 }
};

///////////////////////////////////////////////////////////////////////////////
int main(int argc, char* argv[])
{
 CShape* pShape = NULL;
 CCircle circle(3);
 CSquareInCircle square1(3);
 CSquareOutCircle square2(3);

 pShape = &circle;
 cout<<"圆的面积: "<<pShape->Area()<<endl;
 cout<<"圆的周长: "<<pShape->Perimeter()<<endl;

 pShape = &square1;
 cout<<"圆内接正方形的面积: "<<pShape->Area()<<endl;
 cout<<"圆内接正方形的周长: "<<pShape->Perimeter()<<endl;

 pShape = &square2;
 cout<<"圆外接正方形的面积: "<<pShape->Area()<<endl;
 cout<<"圆外接正方形的周长: "<<pShape->Perimeter()<<endl;

 return 0;
}

Python面向对象习题

Python面向对象的习题
  • bullpride
  • bullpride
  • 2016年07月25日 12:54
  • 2461

OOP(面向对象面试题)

OOP(面向对象) 1:说出一些常用的类,包,接口,请各举5个 常用的类:BufferedReader  BufferedWriter  FileReader  FileWirter  Strin...
  • nysyxxg
  • nysyxxg
  • 2013年04月08日 20:32
  • 3217

面向对象思想设计_计算器小程序(设计模式入门篇_01)

名称:简单计算器程序面向对象思想的由来:面向对象编程思想的由来是从面向过程演变而来,所以我们用一个简单的计算器程序用面向过程的方式去实现以下是面向过程方式实现计算器程序:public class Ma...
  • u011967006
  • u011967006
  • 2016年12月14日 16:35
  • 1380

Maxscript面向对象编程技术之封装与继承

Oop 抽象的开始 提高代码维护性,扩展性,高效性 1、封装 2、继承 3、多肽 一、从代码中解读封装和继承 Struct Cat ( Public --公开接口 -- 初始化Cat...
  • pengyancai
  • pengyancai
  • 2015年04月29日 01:46
  • 849

面向对象编程技术

在现实生活中,我们必须弄明白我们所面对的大量的事实以及观念。为此,我们需要从表面细节中抽象出其内在逻辑,发现事物的本质。抽象法可以帮助我们揭示事物的因果,结构和表现形式,区分主要和次要。面向对象编程提...
  • lihongjian944043440
  • lihongjian944043440
  • 2012年04月29日 21:18
  • 1106

面向对象编程技术(c#)

一 ,一些概念  (1)概念:面向对象是一种对现实世界理解和抽象的方法,一切事物皆对象,通过面向对象的方式,将现实世界的事物抽象成对象,现实世界中的关系抽象成类、继续,帮助人们实现对现实世界的抽象与...
  • qq_21380373
  • qq_21380373
  • 2014年09月28日 11:50
  • 228

VC++面向对象编程技术

  • 2009年03月04日 10:59
  • 3.92MB
  • 下载

Java 游戏项目完整源码(共四个项目,适合java初学者进一步学习和精通java,掌握面向对象编程技术)

  • 2018年01月04日 23:33
  • 3MB
  • 下载

LabVIEW面向对象编程技术.pdf

  • 2015年04月09日 05:51
  • 348KB
  • 下载

面向对象编程技术&amp;C++ 刘康

  • 2014年05月29日 14:10
  • 826KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:面向对象编程技术(作业题二)
举报原因:
原因补充:

(最多只允许输入30个字)