码迷,mamicode.com
首页 > 其他好文 > 详细

雨刷作业——四个类实现

时间:2015-11-17 19:07:34      阅读:341      评论:0      收藏:0      [点我收藏+]

标签:

控制杆类头文件

class Lever{
protected:
	int position;
public:
	Lever();
	~Lever();
	Lever(int);
	int getPosition();
	void upPosition();
	void downPosition();
};

控制杆类源文件

#include "Lever.h"
#include <iostream.h>

Lever::Lever()
{}

Lever::Lever(int p)
{
	this->position = p;
}

Lever::~Lever()
{}

int Lever::getPosition()
{
	return this->position;
}

void Lever::upPosition()
{
	if(position >= 4)
	{
		cout<<"Overflow,you can‘t up the lever!"<<endl;
	}
	else
		this->position++;
	return ;
}

void Lever::downPosition()
{
	if(position <= 1)
	{
		cout<<"Overflow,you can‘t down the lever!"<<endl;
	}
	else
		this->position--;
	return ;
}

刻度盘类头文件

class Dial{
protected:
	int position;
public:
	Dial();
	~Dial();
	Dial(int);
	int getPosition();
	void upPosition();
	void downPosition();
};

刻度盘类源文件

#include "Dial.h"
#include <iostream.h>

Dial::Dial()
{}

Dial::Dial(int p)
{
	this->position = p;
}

Dial::~Dial()
{}

int Dial::getPosition()
{
	return this->position;
}

void Dial::upPosition()
{
	if(position >= 3)
	{
		cout<<"Overflow,you can‘t up the Dial!"<<endl;
	}
	else
		this->position++;

	return ;
}

void Dial::downPosition()
{
	if(position <= 1)
	{
		cout<<"Overflow,you can‘t down the Dial!"<<endl;
	}
	else
		this->position--;
	return ;
}

雨刷类头文件

class Wiper{
protected:
	int speed;
public:
	Wiper();
	~Wiper();
	Wiper(int);
	void setWiperSpeed(int s);
	int getWiperSpeed();
};

雨刷类源文件

#include "Wiper.h"

Wiper::Wiper()
{}

Wiper::~Wiper()
{}

Wiper::Wiper(int s)
{
	this->speed = s;
}

void Wiper::setWiperSpeed(int s)
{
	this->speed = s;
}

int Wiper::getWiperSpeed()
{
	return this->speed;
}

代理类头文件

#include "Lever.h"
#include "Dial.h"
#include "Wiper.h"

class Agent{
protected:
	Wiper objw;
	Lever objl;
	Dial objd;
public:
	Agent();
	~Agent();
	void upLeverPosition();
	void downLeverPosition();
	void upDialPosition();
	void downDialPosition();
	void judgeWiperSpeed();
	void show();
};

代理类源文件

#include "Agent.h"
#include <iostream.h>

Agent::Agent():objl(1),objd(1)
{
}

Agent::~Agent()
{}

void Agent::upLeverPosition()
{
	this->objl.upPosition();
}

void Agent::downLeverPosition()
{
	this->objl.downPosition();
}

void Agent::upDialPosition()
{
	this->objd.upPosition();
}

void Agent::downDialPosition()
{
	this->objd.downPosition();
}

void Agent::judgeWiperSpeed()
{
	int leverPosition = this->objl.getPosition();
	int dialPosition = this->objd.getPosition();
	int wiperSpeed = 0;
	
	switch(leverPosition)
	{
	case 1:
		wiperSpeed = 0;break;
	case 2:
		switch(dialPosition)
		{
		case 1:
			wiperSpeed = 4; break;
		case 2:
			wiperSpeed = 6;break;
		case 3:
			wiperSpeed = 12;break;
		}
		break;
	case 3:
		wiperSpeed = 30;break;
	case 4:
		wiperSpeed = 60;break;
	}

	this->objw.setWiperSpeed(wiperSpeed);
}

void Agent::show()
{
	cout<<"Now the Lever‘s position is: ["<<this->objl.getPosition()<<"]"<<endl;
	cout<<"The Dial‘s position is: ["<<this->objd.getPosition()<<"]"<<endl;
	cout<<"The Wiper‘s speed is: ["<<this->objw.getWiperSpeed()<<"]"<<endl<<endl;
}

主函数源文件

#include <iostream.h>
#include <stdlib.h>
#include "Agent.h"

void menu()
{
	cout<<"============== 1 Lever up ================"<<endl; 
	cout<<"============== 2 Lever down =============="<<endl; 
	cout<<"============== 3 Dial up ================="<<endl; 
	cout<<"============== 4 Dial down ==============="<<endl; 
	cout<<"============== 0 Exit ===================="<<endl; 
	cout<<endl;
	cout<<"Please input your choice:"<<endl;
}

void main()
{
	Agent obja;
	int input;
	menu();
	cin>>input;
	while(1)
	{
		switch(input)
		{
		case 1:
			obja.upLeverPosition();
			break;
		case 2:
			obja.downLeverPosition();
			break;
		case 3:
			obja.upDialPosition();
			break;
		case 4:
			obja.downDialPosition();
			break;
		case 0:
			exit(0);
		}
		obja.judgeWiperSpeed();
		obja.show();
		menu();
		cin>>input;
	}

}

大家好好看下这个代码,把类之间的关系搞清楚,尤其是类的封装性、类之间的低耦合性以及类的内聚性对面向对象设计的影响。然后
再去完善一下第七次关于继承的作业。







版权声明:本文为博主原创文章,未经博主允许不得转载。

雨刷作业——四个类实现

标签:

原文地址:http://blog.csdn.net/laoduan_78/article/details/49888711

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!