面向对象编程示例:求周长和面积

#define _CRT_SECURE_NO_WARNINGS
#include <iostream> using namespace std; //圆的周长
double getCircleGirth(double r)
{
return 2 * 3.14*r;
} //源的面积
double getCircleArea(double r)
{
return 3.14*r*r;
} //用面向对象实现 //圆类
class Circle
{
public:
void setR(double r)
{
m_r = r;
} double getR()
{
return m_r;
} double getGirth()
{
return 2 * 3.14 *m_r;
} double getArea()
{
return m_r*m_r*3.14;
} private:
double m_r; //圆的私有成员 半径
}; class Circle2
{
public: void setR(double r)
{
m_r = r;
} double getR()
{
return m_r;
} double getArea()
{
m_area = m_r*m_r*3.14;
return m_area;
} double getGirth()
{
m_girth = m_r * 2 * 3.14;
return m_girth;
} private:
double m_r;
double m_girth; //周长
double m_area;//面积
}; int main(void)
{
double r = 10; //圆的半径 double g = 0;
double a = 0; g = getCircleGirth(r);
a = getCircleArea(r);
cout << "圆的半径是" << r << endl;
cout << "圆的周长是" << g << endl;
cout << "圆的面积是" << a << endl; cout << "------" << endl; Circle c; c.setR(10); cout << "圆的半径是" << c.getR() << endl;
cout << "圆的周长是" << c.getGirth() << endl;
cout << "圆的面积是" << c.getArea() << endl; cout << "------------" << endl; Circle2 c2; c2.setR(10); cout << "圆的半径是" << c2.getR() << endl;
cout << "圆的周长是" << c2.getGirth() << endl;
cout << "圆的面积是" << c2.getArea() << endl; return 0;
}

上面那个多文件形式(模块化?())

main.cpp

#define _CRT_SECURE_NO_WARNINGS
#include <iostream> #include "Circle.h" using namespace std; int main(void)
{
Circle c;
c.setR(10); cout << "Ãæ»ý" << c.getArea() << endl; return 0;
}

Circle.h

#pragma once

#if 0
#ifndef __CIRCLE_H_
#define __CIRCLE_H_ #endif
#endif class Circle
{
public:
//ÉèÖð뾶£º
void setR(double r);
//µÃµ½°ë¾¶
double getR(); double getArea(); double getGirth(); private:
double m_r;
double m_area;
double m_girth;
};

Circle.cpp

#include "Circle.h"

void Circle::setR(double r)
{
m_r = r;
} double Circle::getR()
{
return m_r;
} double Circle::getArea()
{
m_area = m_r *m_r *3.14; return m_area;
} double Circle::getGirth()
{
m_girth = m_r * 2 * 3.14; return m_girth;
}

示例:判断立方体相等

#define _CRT_SECURE_NO_WARNINGS
#include <iostream> using namespace std; //立方体类
class Cube
{
public:
void setABC(int a, int b, int c)
{
m_a = a;
m_b = b;
m_c = c;
} int getArea()
{
return (m_a*m_b) * 2 + (m_a*m_c) * 2 + (m_b*m_c) * 2;
} int getVolume()
{
return (m_a*m_b*m_c);
} int getA()
{
return m_a;
} int getB()
{
return m_b;
} int getC()
{
return m_c;
} //同类之间无私处
bool judgeCube(Cube &another)
{
if (m_a == another.m_a &&
m_b == another.getB() &&
m_c == another.getC()) {
return true;
}
else {
return false;
}
}
private:
int m_a;
int m_b;
int m_c;
}; //全局函数
bool judgeCube(Cube &c1, Cube &c2)
{
if (c1.getA() == c2.getA() &&
c1.getB() == c2.getB() &&
c1.getC() == c2.getC()) {
return true;
}
else {
return false;
}
} int main(void)
{
Cube c1;
c1.setABC(10, 20, 30); Cube c2;
c2.setABC(10, 20, 30); cout << "c1 的体积是" << c1.getVolume() << endl;
cout << "c1 的面积是" << c1.getArea() << endl; if (judgeCube(c1, c2) == true) {
cout << "相等" << endl;
}
else {
cout << "不相等" << endl;
}
cout << " ------ " << endl; if (c1.judgeCube(c2) == true) {
cout << "相等" << endl;
}
else {
cout << "不相等" << endl;
} return 0;
}

示例:求点是否在圆内

#define _CRT_SECURE_NO_WARNINGS
#include <iostream> using namespace std; //点类
class Point
{
public:
void setXY(int x, int y)
{
m_x = x;
m_y = y;
} int getX()
{
return m_x;
} int getY()
{
return m_y;
}
private:
int m_x;
int m_y;
}; //圆类
class Circle
{
public:
void setXY(int x, int y)
{
x0 = x;
y0 = y;
} void setR(int r)
{
m_r = r;
} //提供一个判断点是否在圆内
//true 在内部
//false 在外部
bool judgePoint(Point &p)
{
int dd; dd = (p.getX() - x0)*(p.getX() - x0) + (p.getY() - y0)*(p.getY() - y0); if (dd > m_r*m_r) {
return false;
}
else {
return true;
}
} private:
int x0;
int y0;
int m_r;
}; int main(void)
{
Circle c;
c.setXY(2, 2);
c.setR(4); Point p;
p.setXY(8, 8); if (c.judgePoint(p) == true) {
cout << "圆的内部" << endl;
}
else {
cout << "圆的外部" << endl;
} return 0;
}

上面代码的文件形式

main.cpp

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include "Circle.h"
#include "Point.h" using namespace std; int main(void)
{
Circle c;
c.setR(4);
c.setXY(2, 2); Point p;
p.setXY(8, 8); if (c.judgePoint(p) == true) {
cout << "nei" << endl;
}
else {
cout << "wai" << endl;
} return 0;
}

Circle.h

#pragma once
#include "Point.h" class Circle
{
public:
void setXY(int x, int y); void setR(int r); //提供一个判断点是否在圆内
//true 在内部
//false 在外部
bool judgePoint(Point &p); private:
int x0;
int y0;
int m_r;
};

Circle.cpp

#include "Circle.h"

void Circle::setXY(int x, int y)
{
x0 = x;
y0 = y;
} void Circle::setR(int r)
{
m_r = r;
} //提供一个判断点是否在圆内
//true 在内部
//false 在外部
bool Circle::judgePoint(Point &p)
{
int dd; dd = (p.getX() - x0)*(p.getX() - x0) + (p.getY() - y0)*(p.getY() - y0); if (dd > m_r*m_r) {
return false;
}
else {
return true;
}
}

Point.h

#pragma once

class Point
{
public:
void setXY(int x, int y); int getX(); int getY();
private:
int m_x;
int m_y;
};

Point.cpp

#include "Point.h"

void Point::setXY(int x, int y)
{
m_x = x;
m_y = y;
} int Point::getX()
{
return m_x;
} int Point::getY()
{
return m_y;
}

c++-面向对象类的示例-求周长面积,判断体积相等-文件操作和一般操作的更多相关文章

  1. C# 定积分求周长&面积原理 代码实现

    前言: 前些日子,因为工作原因,接触到了求解曲线周长,真的是搞了很久,学生时代真的很简单,但是如今的我来说,忘记了....很多人跟我应该一样. 所以来巩固加强一下记忆.一开始的时候,求周长嘛,找公式呗 ...

  2. 25.按要求编写一个Java应用程序: (1)编写一个矩形类Rect,包含: 两个属性:矩形的宽width;矩形的高height。 两个构造方法: 1.一个带有两个参数的构造方法,用于将width和height属性初化; 2.一个不带参数的构造方法,将矩形初始化为宽和高都为10。 两个方法: 求矩形面积的方法area() 求矩形周长的方法perimeter() (2)通过继承Rect类编写一个具有

    package zhongqiuzuoye; //自己写的方法 public class Rect { public double width; public double height; Rect( ...

  3. 按要求编写一个Java应用程序: (1)编写一个矩形类Rect,包含: 两个属性:矩形的宽width;矩形的高height。 两个构造方法: 1.一个带有两个参数的构造方法,用于将width和height属性初化; 2.一个不带参数的构造方法,将矩形初始化为宽和高都为10。 两个方法: 求矩形面积的方法area() 求矩形周长的方法perimeter() (2)通过继承Rect类编写一个具有确定位

    package com.hanqi.test; public class Rect { ; ; public double getWidth() { return width; } public vo ...

  4. 编写一个Shape类,具有属性:周长和面积; 定义其子类三角形和矩形,分别具有求周长的方法。 定义主类E,在其main方法中创建三角形和矩形类的对象, 并赋给Shape类的对象a、b,使用对象a、b来测试其特性。

    package shape; public class Shape { //定义成员变量 private double zhouchang; private double mianji; public ...

  5. C#使用多态求方形面积周长和圆的面积周长

    class class1 { public static void Main(string[] args) { //使用多态求矩形面积与周长和圆的面积与周长 Shape cl = ); double ...

  6. java求三角形面积以及周长---封装

    /*时间: 2012-10-08作者: 烟大程序要求: 1.封装一类三角形对象Triangle,该类对象具有三条边的属性, 具有初始化三角形的功能.修改边长的功能.判断三条边能否构成三角形的功能. 求 ...

  7. (1)定义闭合图形抽象类ClosedFigure定义属性:1.形状;2.定义构造方法,给形状赋值;3.定义两个抽象方法:计算面积和计算周长;4.定义一个显示方法:显示图像形状,周长,面积;

    题目显示不全,完整题目描述: (1)定义闭合图形抽象类ClosedFigure定义属性:1.形状:2.定义构造方法,给形状赋值:3.定义两个抽象方法:计算面积和计算周长:4.定义一个显示方法:显示图像 ...

  8. java学习-初级入门-面向对象④-类与对象-类与对象的定义和使用2

    我们继续学习类与对象,上一篇我们定义了  坐标类(Point), 这次我们在Point的基础上,创建一个圆类(Circle). 案例:创建一个圆类 题目要求: 计算圆的周长和面积:求判断两个圆的位置关 ...

  9. Java面向对象~类和对象&方法,类方法

    面向对象 概念:     1.同一类事物的抽象描述,不是具体的    2.类和对象的关系:        类 是抽象的.        对象 是具体的.    3.对象的体征,称为"属性&q ...

随机推荐

  1. toString() 方法的参数

    除开null 和 undefined之外所有的数据类型都是拥有toString方法的. 通常情况下我们使用toString()方法的时候都是不用传递参数的,但是Number类型的toString方法是 ...

  2. Linux -- 进程间通信几种方式的总结

    管道 优点 管道文件不占磁盘空间,打开管道时在内存中分配空间: 管道读端会在读取完管道内数据后自动进入阻塞,直到写端再次写入数据: 缺点 管道是半双工的,数据只能从一个方向上流动: 管道大小 PIPE ...

  3. JS三座大山再学习(三、异步和单线程)

    本文已发布在西瓜君的个人博客,原文传送门 前言 写这一篇的时候,西瓜君查阅了很多资料和文章,但是相当多的文章写的都很简单,甚至互相之间有矛盾,这让我很困扰:同时也让我坚定了要写出一篇好的关于JS异步. ...

  4. python的匿名函数

    在Python,有两种函数,一种是def定义,一种是lambda函数. lambda函数是Python一种生成函数对象的表达式形式.匿名函数通常是创建了可以被调用的函数,它返回了函数,而并没有将这个函 ...

  5. 教你如何提高 PHP 代码的质量

    说实话,在代码质量方面,PHP 的压力非常大.通过阅读本系列文章,您将了解如何提高 PHP 代码的质量. 我们可以将此归咎于许多原因,但这肯定不仅仅是因为 PHP 生态系统缺乏适当的测试工具.在本文中 ...

  6. 简单实现TodoList

    Todolist实例 储备知识js的splice的用法 实例逻辑 1 在data里面做一个存一条条留言的列表,往里面添加或者删除留言内容. 2 做一个变量和input双向绑定,然后做一个点击事件把这个 ...

  7. Grok Debugger安装配置

    前言:由于使用ELK对日志进行集中管理,grok表达式无法验证是否正确,所以使用Grok Debugger进行调试,但是由于国外网站上不去(http://grokdebug.herokuapp.com ...

  8. 2019-2020-11 20199304 《Linux内核原理与分析》 第十二周作业

    ShellShock攻击实验 一.实验简介 2014年9月24日,Bash中发现了一个严重漏洞shellshock,该漏洞可用于许多系统,并且既可以远程也可以在本地触发 二.预备知识 1.shells ...

  9. 华为云Volcano:让企业AI算力像火山一样爆发

    欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动",获取华 ...

  10. 接口访问报错:The valid characters are defined in RFC 7230 and RFC 3986

    写了个接口,在测试访问的时候,需要传json串,但是后台报错了 The valid characters are defined in RFC 7230 and RFC 3986 当前使用的tomca ...