Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2015, 19:25   #1
KHz
 
Регистрация: 06.12.2015
Сообщений: 3
По умолчанию Дополнение класса (С++)

Помогите дополнить класс
Оператором перегрузки
"<<" (Со значением 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");
}

Последний раз редактировалось Аватар; 06.12.2015 в 21:18.
KHz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дополнение к браузеру Predator199 JavaScript, Ajax 2 30.03.2014 11:25
Дополнение к проигрывателю Hitory Мультимедиа в Delphi 2 28.02.2012 19:49
Дополнение к Jquery. Abuhamed JavaScript, Ajax 6 05.06.2011 01:38
Дополнение к таблице X@OC Microsoft Office Access 9 17.05.2011 10:02
резидентное дополнение к VC shtopor Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 8 03.06.2008 21:04