电视遥控(静态+友元)

aa

#include <iostream>
#include <string>
using namespace std;

class Telv
{
private:
	int t_yl=50;
	int t_ms;
	int t_pdh=99;
	static int tv_num;//1--tv
	static int dvd_num;//2--dvd

public:
	Telv(){}
	Telv(int yl, int ms, int pdh):t_yl(yl), t_ms(ms), t_pdh(pdh){};
	friend void ykq(Telv &t1, int ms, int bhyl, int pdh);
	static void setTV_num(int n){tv_num += n;}
	static void setDVD_num(int n){dvd_num += n;}
	void set(int yl, int ms, int pdh)
	{
		t_yl = yl;
		t_ms = ms;
		t_pdh = pdh;
	}
	static int getTV_num() { return tv_num; }
	static int getDVD_num() { return dvd_num; }

	void print()
	{
		if (t_ms == 1)
		{
			cout << "TV模式";
		}
		else {
			cout << "DVD模式";
		}
			
		cout << "--频道" << t_pdh << "--音量" << t_yl << endl;
	}
};
int Telv::tv_num = 0;
int Telv::dvd_num = 0;




void ykq(Telv& t, int ms, int bhyl, int pdh)
{
	if (t.t_ms == 1 && ms == 2)
	{
		Telv::setTV_num(-1);
		Telv::setDVD_num(1);
	}
	if (t.t_ms == 2 && ms == 1)
	{
		Telv::setTV_num(1);
		Telv::setDVD_num(-1);
	}
	t.t_ms = ms;
	t.t_pdh = pdh;
	int l = 1;
	if (t.t_yl + bhyl >= 0 && t.t_yl + bhyl <= 100)
	{
		t.t_yl += bhyl;
		l = 0;
	}
	if (l && t.t_yl + bhyl < 0)
	{
		t.t_yl = 0;
		l = 0;
	}

	if (l && t.t_yl + bhyl > 100)
		t.t_yl = 100;
}


int main()
{
	int n, t, i, k, x, yl;
	cin >> n;
	Telv *telvs = new Telv[n];
	for (int j = 0; j < n; j++)
	{
		telvs[j].set(50, 1, 0);
	}
	Telv::setTV_num(n);
	cin >> t;
	while (t--)
	{
		cin >> i >> k >> x >> yl;
		ykq(telvs[i-1], k, yl, x);
		cout << "第" << i << "号电视机--";
		telvs[i - 1].print();
		
	}

	cout << "播放电视的电视机数量为" << Telv::getTV_num() << endl;
	cout << "播放DVD的电视机数量为" << Telv::getDVD_num() << endl;

	return 0;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值