⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 substate.cpp

📁 设计模式中的状态模式(state)的程序实现
💻 CPP
字号:
#include "StdAfx.h"
#include "substate.h"
#include <iostream>
using namespace  std;

Forenoonstate::Forenoonstate()
{

}

Forenoonstate::~Forenoonstate()
{

}

void Forenoonstate::WriteProgram(work* w)
{
	if(w->GetTime() < 12)
	{
		cout<<"current time :"<<w->GetTime()<<"work hard"<<endl;
	}
	else
	{
		workstate* pState = new NoonState;
		w->SetState(pState);
		w->Writeprogram();
	}
}

NoonState::NoonState()
{

}
NoonState::~NoonState()
{

}

void NoonState::WriteProgram( work* w)
{
	if(w->GetTime()<13)
	{
		cout<<"current time :"<<w->GetTime()<<"hunger,sleeping,have a break"<<endl;
	}
	else
	{
		workstate* pState = new Afternoonstate;
		w->SetState(pState);
		w->Writeprogram();
	}
}
 
Afternoonstate::Afternoonstate()
{

}

Afternoonstate::~Afternoonstate()
{

}

void Afternoonstate::WriteProgram( work* w)
{
	if(w->GetTime()<17)
	{
		cout<<"current time :"<<w->GetTime()<<"good,go on"<<endl;
	}
	else
	{
		workstate* pState = new EveningState;
		w->SetState(pState);
		w->Writeprogram();
	}
}

EveningState::EveningState()
{

}

EveningState::~EveningState()
{

}

void EveningState::WriteProgram( work* w)
{
	if(w->getfinished())
	{ 
		workstate* pState =new SleepState;
		w->SetState(pState);
		w->Writeprogram();
	}
	else
	{
		if(w->GetTime()<21)
		{
			cout<<"current time :"<<w->GetTime()<<"work not be finished,go on"<<endl;
		}
		else
		{	
			workstate* pState = new SleepState;	
			w->SetState(pState);
			w->Writeprogram();
		}
	}
}

SleepState::SleepState()
{

}

SleepState::~SleepState()
{

}

void SleepState::WriteProgram(work* w)
{
	cout<<"current time:"<<w->GetTime()<<"sleep"<<endl;
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -