c ++ - example of object-oriented classes - find the circumference area, determines the volume equal - file operations and general operation

Object-Oriented Programming example: find the circumference and area

#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;
}

The above multi-file format that (modular? ( ^ ▽ ^ ))

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;
}

Example: Analyzing equal cube

#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;
}

Example: seeking the point is within the circle

#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;
}

File form above code

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;
}

Guess you like

Origin www.cnblogs.com/ygjzs/p/12074433.html
Recommended