- 练习案例1
- 练习案例2
- 参考文献
练习案例1:设计立方体类
设计立方体类(Cube)
求出立方体的面积和体积
分别用全局函数和成员函数判断两个立方体是否相等。
#includeusing 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 << "表面积为:" <
多文件方式:
//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 << "表面积为:" < //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
练习案例2:点和圆的关系
设计一个圆形类(Circle),和一个点类(Point),计算点和圆的关系。
//设计一个圆形类(Circle),和一个点类(Point),计算点和圆的关系。 #includeusing 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 #includeusing 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 #includeusing 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; } https://www.bilibili.com/video/BV1et411b73Z?p=104&t=41.2



