面向对象编程技术(作业题二)
来源:互联网 发布:昆山ug编程培训学费 编辑:程序博客网 时间:2024/05/22 05:32
#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;
}
- 面向对象编程技术(作业题二)
- 面向对象编程技术(作业题一)
- 面向对象编程技术(作业题三)
- 面向对象编程技术(作业题四)
- 面向对象编程技术
- 编程作业题之二-临时抱佛脚
- Java面向对象编程(二)
- Javascript面向对象编程二
- 面向对象编程--之二
- PHP面向对象编程(二)
- 面向对象编程(二)
- 面向对象技术之UML[二]
- javascript面向对象技术基础(二)
- javascript面向对象技术基础(二)
- javascript面向对象技术基础(二)
- UML笔记二:面向对象技术
- javascript面向对象技术基础(二)
- Java 基础知识(二)之面向对象技术
- 16位有符号整型数据的输出~~~~
- eclipse安装及汉化全过程
- 一些技术文章的收藏链接
- 中关村2小时游^_^
- Windows 程序设计(第5版)不完全勘误表(添加中……)
- 面向对象编程技术(作业题二)
- Vim的行号、语法显示等设置,即.vimrc文件的配置
- 努力的方向
- 第一笔首付款
- 对于技术术语专业化的思考
- JavaOne:JSF的进化——AJAX已经来了
- 关于LCD的烧屏问题
- Article2 - Observer Pattern
- 成年人必看的五个故事