C++零基础入门------------封装案例

设计立方体类

请根据类类型数据的设计规范,完成以下程序设计:

定义一个Box(盒子)类,在该类定义中定义包括以下数据成员和成员函数:

私有数据成员:length(长),width(宽)和height(高);

公有数据成员:volume(体积):

构造函数Box:构造函数Box用于初始化盒子的长,宽和高;

保护成员函数ComVol:函数ComVol用于计算盒子的体积;

公有成员函数SetBox:函数SetBox用于重置盒子的长、宽、高;

公有成员函数Show:函数Show用于输出盒子长、宽、高和体积:

在主函数中建立一个Box对象0bj,并对其长、宽、高等数据成员进行初始化,输出盒子0bj的长、宽、高和体积。

重新设置对象0bj的长、竞、高,并再次输出盒子0bj的长、宽、高和体积。

#include <iostream>
using namespace std;

class Box
{
	private:
		double length;
		double width;
		double height;
	public:
		double volume;
		
		Box(double l,double w,double h)
		{
			length=l;
			width=w;
			height=h;
		}
		
		void SetBox(double l,double w,double h)
		{
			length=l;
			width=w;
			height=h;
		}
		
		
		void Show()
		{
			cout<<"长为:"<<length<<" 宽为:"<<width<<
			      " 高为:"<<height<<" 体积为:"<<ComVol()<<endl;
		}
		
	protected:
		double ComVol()
		{
			return length*width*height;
		}
		
		
};

int main()
{
	Box Obj(1,2,3);
	Obj.Show();
	Obj.SetBox(3,4,5);
	Obj.Show();
	
	return 0;
}

 点和圆的关系

设计一个圆形类(Circle),和一个点类(Point),并计算点和圆的关系

#include <iostream>
using namespace std;

//点和圆位置关系案例

//点类
class point {
	public:
		void setx(int X) {
			x=X;
		}

		int getx() {
			return x;
		}

		void sety(int Y) {
			y=Y;
		}

		int gety() {
			return y;
		}

	private:
		int x;
		int y;
};

//圆类
class circle {
	public:
		void setr(int R) {
			r=R;
		}

		int getr() {
			return r;
		}

		void setcenter(point Center) {
			center=Center;
		}

		point getcenter() {
			return center;
		}

	private:
		int r;
		//在类中可以让另一个类作为本类中的成员 
		point center;
};

//判断点和圆的关系
void isincircle(circle &c,point &p) { //&引用符号
	//计算两点之间距离 平方
	int distance=
	    (c.getcenter().getx()-p.getx())*(c.getcenter().getx()-p.getx())+
	    (c.getcenter().gety()-p.gety())*(c.getcenter().gety()-p.gety());
	int rdistance=c.getr()* c.getr();
	if (distance == rdistance) {
		cout << "点在圆上";
	} else if (rdistance > distance) cout << "点在圆内";
	else cout << "点在圆外";
}

int main() {
	point p;
	circle c;
	c.setr(20);//半径长度
	point senter;
	senter.setx(0);//圆的坐标
	senter.sety(0);
	c.setcenter(senter);
	p.setx(10);//点的坐标
	p.sety(10);
	isincircle(c,p);
	return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值