Помогите дополнить класс
Оператором перегрузки
"<<" (Со значением true / false) - открывания / закрывания дверцы.
// Холодильник.cpp: определяет точку входа для консольного приложения.
//
Код:
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <cstdlib>
using namespace std;
enum State { Off, On };
class Fridge
{
private:
double Time = 0, Temperature = 0, Ambienttemperature = 0;
State Door = Off, Signal = Off, Power = Off;
public:
void SetTime(double t1);
void Operator =(double t);
double TemperatureSet(double, double);
double PowerON(double, double);
double PowerOFF();
double DoorOpen();
double DoorClose();
char* GetSignal();
char* GetDoor();
};
void Fridge::SetTime(double t1) { Time = t1; }
void Fridge::Operator =(double t) { Temperature = t; }
char* Fridge::GetDoor()
{
switch (Door)
{
case Off: {return "CLOSED"; break; }
case On: {return "OPEN"; break; }
default: { return 0; }
}
}
char* Fridge::GetSignal()
{
switch (Signal)
{
case Off: {return "OFF"; break; }
case On: {return "ON"; break; }
default: { return 0; }
}
}
double Fridge::DoorOpen()
{
Signal = On;
Door = On;
if (Temperature <Ambienttemperature) {
Time = 0.05*(Ambienttemperature - Temperature);
}
return Time;
}
double Fridge:: DoorClose()
{
Door = Off;
Signal = Off;
return Temperature;
}
double Fridge::TemperatureSet(double Temperature, double Time)
{
if (Door == Off)
{
return 24 * log(Ambienttemperature - Temperature);
}
else
{
Temperature = Ambienttemperature;
Signal = On;
return Temperature;
}
}
double Fridge::PowerON(double Ambienttemperature, double Time)
{
if (Door == Off)
{
Time = 24 * log(Ambienttemperature - Temperature);
}
else
{
Signal = On;
Temperature = Ambienttemperature;
Time = 24 * log(Ambienttemperature - Temperature);
}
return Time;
}
double Fridge::PowerOFF()
{
if (Signal == On)
{
Signal = Off;
}
Temperature = Ambienttemperature;
return Temperature;
}
using namespace std;
int main()
{
double Temperature1 = 0, Temperature2, ambienttemperature = 0;
Fridge h;
int n = 0;
while (Temperature1 <= -25 || Temperature1 >= 0)
{
setlocale(LC_ALL, "Russian");
cout << "Температура холодильника(от -25 до 0):=";
cin >> Temperature1;
if (Temperature1 <= -25 || Temperature1 >= 0)
cout << "Ошибка.Только цифры(от -25 до 0).Введите еще раз." << endl;
}
setlocale(LC_ALL, "Russian");
h.operator =(Temperature1);
cout << "Задайте температуру:=";
cin >> Temperature2;
h.SetTime(Temperature2);
cout << "0-Закрытая дверь" << endl;
cout << "1-Открытая дверь" << endl;
cout << "2-Включить" << endl;
cout << "3-Выключить" << endl;
cout << "4-Установленная температура" << endl;
while (n != 3)
{
cout << "Установите состояние холодильника:";
cin >> n;
switch (n)
{
setlocale(LC_ALL, "Russian");
case 0:
cout << "Температура:" << h.DoorClose() << endl;
cout << "Двери:" << h.GetDoor() << endl;
cout << "Сигнал:" << h.GetSignal() << endl;
break;
case 1:
cout << "Температура:" << h.operator <<() << endl;
cout << "Двери:" << h.GetDoor() << endl;
cout << "Сигнал:" << h.GetSignal() << endl;
break;
case 2:
cout << "Температура:" << h.PowerON(ambienttemperature, Temperature2) << endl;
cout << "Двери:" << h.GetDoor() << endl;
cout << "Сигнал:" << h.GetSignal() << endl;
break;
case 3:
cout << "Температура:" << h.PowerOFF() << endl;
cout << "Двери:" << h.GetDoor() << endl;
cout << "Сигнал:" << h.GetSignal() << endl;
break;
case 4:
cout << "Температура:" << h.TemperatureSet(Temperature1, Temperature2) << endl;
cout << "Двери:" << h.GetDoor() << endl;
cout << "Сигнал:" << h.GetSignal() << endl;
break;
default:
{
setlocale(LC_ALL, "Russian");
cout << "Ошибка.Повторите попытку." << endl;
}
}
}
system("pause");
}