练习案例1:设计立方体类
设计立方体类(Cube)
求出立方体的面积和体积
分别用全局函数和成员函数判断两个立方体是否相等。

#include
using namespace std;
class cube {
public:
//设置长,宽,高求表面积
void set_L(int L)
{
m_L = L;
}
void set_W(int W)
{
m_W = W;
}
void set_H( int H)
{
m_H = H;
}
int get_L()
{
return m_L;
}
int get_W()
{
return m_W;
}
int get_H()
{
return m_H;
}
int get_s()
{
return 2 * m_L * m_W + 2 * m_L * m_H + 2 * m_W * m_H;
}
int get_v()
{
return m_L * m_W * m_H;
}
//成员函数判断两个立方体是否相等
void m_Is(cube &c)
{
if (m_L == c.get_L() &&
m_W == c.get_W() &&
m_H == c.get_H()) {
cout << "两立方体相等" << endl;
}
else {
cout << "两立方体不相等" << endl;
}
}
private:
int m_L;//长
int m_W;//宽
int m_H;//高
};
//全局函数判断两个立方体是否相等
void Is(cube& cube1, cube& cube2)
{
if (cube1.get_L() == cube2.get_L()&&
cube1.get_W() == cube2.get_W()&&
cube1.get_H() == cube2.get_H()) {
cout << "两立方体相等" << endl;
}
else {
cout << "两立方体不相等" << endl;
}
}
int main()
{
cube cu1;
cu1.set_L(10);
cu1.set_W(10);
cu1.set_H(10);
cu1.get_L();
cu1.get_W();
cu1.get_H();
cout << "表面积为:" <<cu1.get_s() << endl;
cout << "体积为:" << cu1.get_v() << endl;
cube cu2;
cu2.set_L(10);
cu2.set_W(20);
cu2.set_H(30);
cu2.get_L();
cu2.get_W();
cu2.get_H();
cout << "表面积为:" << cu2.get_s() << endl;
cout << "体积为:" << cu2.get_v() << endl;
Is(cu1, cu2);
cu2.m_Is(cu1);
return 0;
}

多文件方式:

//list.cpp
#include
#include "cube.h"//包含头文件
using namespace std;
void Is(cube& cube1, cube& cube2)
{
if (cube1.get_L() == cube2.get_L()&&
cube1.get_W() == cube2.get_W()&&
cube1.get_H() == cube2.get_H()) {
cout << "两立方体相等" << endl;
}
else {
cout << "两立方体不相等" << endl;
}
}
int main()
{
cube cu1;
cu1.set_L(10);
cu1.set_W(10);
cu1.set_H(10);
cu1.get_L();
cu1.get_W();
cu1.get_H();
cout << "表面积为:" <<cu1.get_s() << endl;
cout << "体积为:" << cu1.get_v() << endl;
cube cu2;
cu2.set_L(10);
cu2.set_W(20);
cu2.set_H(30);
cu2.get_L();
cu2.get_W();
cu2.get_H();
cout << "表面积为:" << cu2.get_s() << endl;
cout << "体积为:" << cu2.get_v() << endl;
Is(cu1, cu2);
return 0;
}
//cube.h
#pragma once//
#include //
using namespace std;//包含头文件
class cube {
public:
//设置长,宽,高求表面积
void set_L(int L);
//类内只进行函数声明
void set_W(int W);
void set_H(int H);
int get_L();
int get_W();
int get_H();
int get_s();
int get_v();
void m_Is(cube& c);
private:
int m_L;//长
int m_W;//宽
int m_H;//高
};
//cube.cpp
#include "cube.h"//包含函数声明
//设置长,宽,高求表面积
void cube::set_L(int L)//添加类的解析符cube::
{
m_L = L;
}
void cube::set_W(int W)
{
m_W = W;
}
void cube::set_H(int H)
{
m_H = H;
}
int cube::get_L()
{
return m_L;
}
int cube::get_W()
{
return m_W;
}
int cube::get_H()
{
return m_H;
}
int cube::get_s()
{
return 2 * m_L * m_W + 2 * m_L * m_H + 2 * m_W * m_H;
}
int cube::get_v()
{
return m_L * m_W * m_H;
}
void cube::m_Is(cube& c)
{
if (m_L == c.get_L() &&
m_W == c.get_W() &&
m_H == c.get_H()) {
cout << "两立方体相等" << endl;
}
else {
cout << "两立方体不相等" << endl;
}
}
练习案例2:点和圆的关系
设计一个圆形类(Circle),和一个点类(Point),计算点和圆的关系。

//设计一个圆形类(Circle),和一个点类(Point),计算点和圆的关系。
#include
using namespace std;
class Point {
public:
void set_x(int x)
{
m_X = x;
}
int get_x()
{
return m_X;
}
void set_y(int y)
{
m_Y = y;
}
int get_y()
{
return m_Y;
}
private:
int m_X;
int m_Y;
};
class Circle {
public:
void set(int r)
{
m_R = r;
}
int get()
{
return m_R;
}
void set_o(Point center)
{
m_O = center;
}
Point get_o()
{
return m_O;
}
private:
int m_R;
Point m_O;
};
void Is(Circle& c, Point& p)
{
//计算两点之间距离平方
int C = (c.get_o().get_x() - p.get_x()) * (c.get_o().get_x() - p.get_x())
+ (c.get_o().get_y() - p.get_y()) * (c.get_o().get_y() - p.get_y());
//计算半径平方
int R = c.get() * c.get();
//判断距离
if (C < R) {
cout << "点在圆内" << endl;
}
else if (C == R) {
cout << "点在圆上" << endl;
}
else {
cout << "点在圆外" << endl;
}
}
int main()
{
Circle c;//设置半径
c.set(10);
Point o;//设置圆心
o.set_x(10);
o.set_y(0);
c.set_o(o);
Point p;//设置外点
p.set_x(10);
p.set_y(10);
Is(c, p);//判断
return 0;
}

多文件方法:
新建文件

//Circle.h
#pragma once
#include
using namespace std;
class Point;
class Circle {
public:
void set(int r);
int get();
void set_o(Point center);
Point get_o();
private:
int m_R;
Point m_O;
};
//Circle.cpp
#include "Circle.h"
#include "Point.h"
void Circle::set(int r)
{
m_R = r;
}
int Circle::get()
{
return m_R;
}
void Circle::set_o(Point center)
{
m_O = center;
}
Point Circle::get_o()
{
return m_O;
}
//Point.h
#pragma once
#include
using namespace std;
class Point {
public:
void set_x(int x);
int get_x();
void set_y(int y);
int get_y();
private:
int m_X;
int m_Y;
};
//Point.cpp
#include "Point.h"
void Point::set_x(int x)
{
m_X = x;
}
int Point::get_x()
{
return m_X;
}
void Point::set_y(int y)
{
m_Y = y;
}
int Point::get_y()
{
return m_Y;
}
//c.cpp
//设计一个圆形类(Circle),和一个点类(Point),计算点和圆的关系。
#include
#include "Point.h"
#include "Circle.h"
using namespace std;
void Is(Circle& c, Point& p)
{
//计算两点之间距离平方
int C = (c.get_o().get_x() - p.get_x()) * (c.get_o().get_x() - p.get_x())
+ (c.get_o().get_y() - p.get_y()) * (c.get_o().get_y() - p.get_y());
//计算半径平方
int R = c.get() * c.get();
//判断距离
if (C < R) {
cout << "点在圆内" << endl;
}
else if (C == R) {
cout << "点在圆上" << endl;
}
else {
cout << "点在圆外" << endl;
}
}
int main()
{
Circle c;//设置半径
c.set(10);
Point o;//设置圆心
o.set_x(10);
o.set_y(0);
c.set_o(o);
Point p;//设置外点
p.set_x(10);
p.set_y(10);
Is(c, p);
return 0;
}