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

📄 drinkmachine.cpp

📁 饮料自动售货机
💻 CPP
字号:
#include "stdafx.h"
#include "DrinkMachine.h"
#include <iostream>
using namespace std;


CDrinkMachine::CDrinkMachine()
{  
	m_dNumberCoin = 0;
	m_blance =0;
	m_state = m_soldOutState;

    m_haveCoinState = new CHaveCoinState(this); 
	m_noCoinState = new CNoCoinState(this);
	m_soldState = new CSoldState(this);
	m_soldOutState = new CSoldOutState(this);
	InitDrinkStorage();  //新机器,初始化装箱
	SetSellOverLights();
}


void CDrinkMachine::InitDrinkStorage()
{
	m_drinkStorage[0] = new CDrinkStorage("CocaCola",3,2.5);
	m_drinkStorage[1] = new CDrinkStorage("Sprite",0,2.5);
    m_drinkStorage[2] = new CDrinkStorage("Water",4,1.0);
    m_drinkStorage[3] = new CDrinkStorage("GreenTea",2,3.0);
    m_drinkStorage[4] = new CDrinkStorage("Orangeade",6,3.5);
    

 	if ( m_drinkStorage[0]->GetDrinkCount() >0 
	   ||m_drinkStorage[0]->GetDrinkCount() >0
	   ||m_drinkStorage[0]->GetDrinkCount() >0
	   ||m_drinkStorage[0]->GetDrinkCount() >0
	   ||m_drinkStorage[0]->GetDrinkCount() >0
	   ||m_drinkStorage[0]->GetDrinkCount() >0)
	{
		m_state = m_noCoinState;
 	}

}

void CDrinkMachine::InsertCoin(double dCoinValue)
{   
	//m_dNumberCoin += dCoinValue;
	m_state->InsertCoin(dCoinValue);
}



double CDrinkMachine::EjectCoin()
{   
	return m_state->EjectCoin();
}

void CDrinkMachine::SelectDrinkButton(int nkindNum)
{
	m_state->SelectDrinkButton(nkindNum);
}

void CDrinkMachine::DispenseDrink(int nkindNum)
{
	m_state->DispenseDrink(nkindNum);
}

void CDrinkMachine::SetState(CState* state)
{
	m_state = state;
}

void CDrinkMachine::SetSelectLights()
{
	for (int i = 0;i < NUMBER;i++)
	{
		if ((m_dNumberCoin - m_drinkStorage[i]->GetDrinkPrice()) >= 0)
		{
			m_bSelectLight[i] = true;
		}
		else
		{
			m_bSelectLight[i] = false;
		}
	}

}

void CDrinkMachine::SetSellOverLights()
{
	for (int i = 0;i < NUMBER;i++)
	{
		if (m_drinkStorage[i]->GetDrinkCount() > 0)
		{
			m_bSellOverLight[i] = false;
		}
		else
		{
			m_bSellOverLight[i] = true;
		}
	}
}

CState* CDrinkMachine::GetNotEnoughCoinState()
{
	return m_noCoinState;
}

CState* CDrinkMachine::GetHaveEnoughCoinState()
{
	return m_haveCoinState;
}

CState* CDrinkMachine::GetSoldOutState()
{
	return m_soldOutState;
}

CState* CDrinkMachine::GetSoldState()
{
	return m_soldState;
}

CString CDrinkMachine::GetInfoLED()
{
	return m_infoLED;
}

void CDrinkMachine::SetInfoLED(CString strInfo)
{
	m_infoLED = strInfo;
}


double CDrinkMachine::GetTotalCoin()
{
	return m_dNumberCoin;
}

void CDrinkMachine::SetBuyedDrinkName(CString strBuyedDrinkName)
{
	m_BuyedDrinkName = strBuyedDrinkName;
}

CString CDrinkMachine::GetSetBuyedDrinkName()
{
	return m_BuyedDrinkName;
}


void CDrinkMachine::SetBlance(double blance)
{
	m_blance = blance;
}

double CDrinkMachine::GetBlnce()
{
	return m_blance;
}


void CDrinkMachine::GetBackBlnce()
{
	m_blance = 0.00;
}

void CDrinkMachine::GetBackBuyedName()
{
	m_BuyedDrinkName = "";
}

void CDrinkMachine::TurnoffSellOverLights()
{
	for (int i = 0;i < NUMBER;i++)
	{
		m_bSellOverLight[i] = false;
	}
}

void CDrinkMachine::TurnOffAllSelectLights()
{
	for (int i = 0;i < NUMBER;i++)
	{
		m_bSelectLight[i] = false;
	}
}

⌨️ 快捷键说明

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