C++Note 封装 案例 (立方体相等)(点和圆)

案例1

复制代码
 1 #include <iostream>
 2 using namespace std;
 3 
 4 //设计立方体类(Cube)
 5 //求出立方体的面积和体积
 6 //分别用全局函数和成员函数判断两个立方体是否相等
 7 class Cube
 8 {
 9 private:
10     //属性
11     int m_L;//立方体的长度
12     int m_W;//立方体的宽度
13     int m_H;//立方体的高度
14 public:
15     void setL(int l)//设置长
16     {
17         m_L = l;
18     }
19     int getL()//获取长
20     {
21         return m_L;
22     }
23     void setW(int w)//设置宽
24     {
25         m_W = w;
26     }
27     int getW()//获取宽
28     {
29         return m_W;
30     }
31     void setH(int h)//设置高
32     {
33         m_H = h;
34     }
35     int getH()//获取高
36     {
37         return m_H;
38     }
39     int getArea()//获取面积
40     {
41         return  2 * (m_H * m_L + m_H * m_W + m_W * m_L);
42     }
43     int getVolume()//获取体积
44     {
45         return m_L * m_W * m_H;
46     }
47     //利用成员函数判断两个立方体是否相等
48     bool isSameByCLass(Cube &c)
49     {
50         if (m_H == c.getH() && m_L == c.getL() && m_W == c.getW())
51             return true;
52         else
53             return false;
54     }
55 };
56 //利用全局函数判断
57 bool isSame(Cube &c1, Cube &c2)
58 {
59     if (c1.getH() == c2.getH() && c1.getL() == c2.getL() && c1.getW() == c2.getW())
60         return true;
61     else
62         return false;
63 }
64 
65 int main() 
66 {
67     Cube c1,c2;
68     c1.setL(10);
69     c1.setW(10);
70     c1.setH(10);
71     c2.setL(10);
72     c2.setW(10);
73     c2.setH(10);
74     cout << "c1的面积:" << c1.getArea() << endl;
75     cout << "c1的体积:" << c1.getVolume() << endl;
76     //全局函数判断
77     bool ret = isSame(c1, c2);
78     if (ret)
79         cout << "全局函数判断c1和c2是相等的" << endl;
80     else
81         cout << "全局函数判断c1和c2是不相等的" << endl;
82     //成员函数判断
83     bool ret1 = c1.isSameByCLass(c2);
84     if (ret1)
85         cout << "成员函数判断c1和c2是相等的" << endl;
86     else
87         cout << "成员函数判断c1和c2是不相等的" << endl;
88     system("pause");
89     return 0;
90 }
复制代码

案例2:

复制代码
 1 #include <iostream>
 2 using namespace std;
 3 
 4 //设计一个圆类 Circle  和一个点类 Point 计算点和圆的关系
 5 //1.点在圆外  2.点在圆上  3.点在圆内
 6 class Point//点类
 7 {
 8 private:
 9     int p_X;//点坐标x
10     int p_Y;//点坐标y
11 public:
12     void setX(int x)//写入点x
13     {
14         p_X = x;
15     }
16     int getX()//读取点x
17     {
18         return p_X;
19     }
20     void setY(int y)//写入点y
21     {
22         p_Y = y;
23     }
24     int getY()//读取点y
25     {
26         return p_Y;
27     }
28 };
29 class Circle//圆类
30 {
31 private:
32     Point p_Center;//圆心
33     //在类中可以让另一个类 做为本类中的成员
34     int c_R;//圆的半径
35 public:
36     void setRadius(int radius)//写入半径x
37     {
38         c_R = radius;
39     }
40     int getRadius()//读取半径y
41     {
42         return c_R;
43     }
44     void setCenter(Point center)//写入圆心
45     {
46         p_Center = center;
47     }
48     Point getCenter()//读取圆心
49     {
50         return p_Center;
51     }
52 };
53 
54 void Relation(Point &p,Circle &c)
55 {
56     int distance = pow((c.getCenter().getX() - p.getX()), 2) + pow((c.getCenter().getY() - p.getY()), 2);
57     //点到圆心距离的平方
58     int rDistance = pow(c.getRadius(), 2);//圆半径的平方
59     if (distance > rDistance)
60         cout << "点在圆外" << endl;
61     else if (distance == rDistance)
62         cout << "点在圆上" << endl;
63     else
64         cout << "点在圆内" << endl;
65 }
66 int main() 
67 {
68     Point cp;
69     Circle c;
70     cp.setX(0);//圆心x
71     cp.setY(0);//圆心y
72     c.setRadius(3);//半径
73     c.setCenter(cp);//写入圆心 x y
74     Point p;//独立点
75     p.setX(3);//独立点x
76     p.setY(0);//独立点y
77     Relation(p, c);//独立点p和圆c
78     system("pause");
79     return 0;
80 }
复制代码

 

posted on   廿陆  阅读(6)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示