| Код | // Содержание файла Lamp.h //--------------------------------------------------------------------------------------Перевищення допустимой температуры плафона. #pragma once enum Regulation {automatic, hand};
const int MaxDegrie = 100;
class Lamp { private: bool StateGuird, // состояние электросети (вкл (true) / выкл.) StateOverheating; // Сигнал перегрева (вкл (true) / выкл.)
int th; // Случайное число от 0-100 float P; // Положение регулятора (0 ... 100%) float TPlaphon; // Температура плафона (не более 100 С);
Regulation regulation; public: Lamp (void); ~ Lamp (void);
int TurnOnInTime (int Tns, int p, int t); // Включение на заданное время void SwitchOff (); // Выключение bool ChangeRegulator (int Tns, int t, int P); // Изменение положения регулятора на заданное время void AutomaticRoutine (int L, int Tns, int t); // Автоматическая режима регулирования на заданное время
float getTPlaphon (int Tns, int t) { TPlaphon = TempretureOfPlaphone (Tns, t); return TPlaphon; } float getP () {return P; } char * getRegulationState () { if (regulation == automatic) return "Automatic"; else return "Hand"; }
// Определение температуры плафона float TempretureOfPlaphone (int Tns, int t) { return (float) (Tns * (1 + P / 100) + P / 3 * th * ((t-30) / 30)); } };
// Содержание файла Lamp.cpp // ------------------------------------------------ -------------------------------------- #include "Lamp.h" #include <time.h> #include <random> #include <iostream>
Lamp :: Lamp (void) { srand (time (NULL));
P = 0; TPlaphon = 0;
th = (rand ()% 100 + 1);
StateOverheating = false; StateGuird = false;
regulation = automatic; }
Lamp :: ~ Lamp (void) { }
/ * tнс - температура окружающей среды; P - положение регуклятора,%; T - время работы лампы, мин. * / // Включение на заданное время int Lamp :: TurnOnInTime (int Tns, int p, int t) { regulation = hand; StateGuird = true; // Включенное состояние электросети
P = p; // Присваиваем положение регулятора
// Температура плафона TPlaphon = TempretureOfPlaphone (Tns, t);
// Проверка ли перегрет плафон if (TPlaphon> MaxDegrie) { StateOverheating = true; // Состояние перегревания return -1; } return TPlaphon; }
// Выключение void Lamp :: SwitchOff () { StateGuird = false; // Отключенном состоянии электросети TPlaphon = 25; // Температура плафона 25 градусов StateOverheating = false; // Выключает сигнал перегрева. }
// Изменение положения регулятора на заданное время bool Lamp :: ChangeRegulator (int Tns, int t, int p) { P = (float) p; if (StateGuird) { // Температура плафона TPlaphon = TempretureOfPlaphone (Tns, t);
// Проверка ли перегрет плафон if (TPlaphon> MaxDegrie) { StateOverheating = true; // Состояние перегревания return -1; } } return true; }
// Автоматическая режима регулирования на заданное время void Lamp :: AutomaticRoutine (int L, int Tns, int t) // L - уровень освещенности { P = (1 / ((L / 5000) 0.01));
// Температура плафона TPlaphon = TempretureOfPlaphone (Tns, t);
// Проверка ли перегрет плафон if (TPlaphon> MaxDegrie) { StateOverheating = true; // Состояние перегревания // return -1; } } // Содержание файла Source.cpp // ------------------------------------------------ -------------------------------------- #include <iostream> #include <Windows.h> #include <clocale> #include "Lamp.h"
using namespace std;
void EnterInf (int & time) {
cout << "Введите время работы лампы:"; cin >> time; while (time <0) { cout << "Время не может быть вiдэмним, введите еще раз:"; cin >> time; } }
int main () { setlocale (LC_ALL, "Rus");
int tempreture = 0, // температура окружающей среды time = 0, // время работы лампы L = 0; // Уровень освещенности float P = 0, // положение регулятора TPlahon = 0; // Температура плафона Lamp lamp;
cout << "\ t \ t \ t *** Настольный лампа *** \ n \ n"; cout << "Введите положение регулятьора (не более 100%):"; cin >> P; while (P> 100 || P <0) { cout << "Мощность мажь быть от 0 до 100! Введите еще раз:"; cin >> P; } cout << "Введите температуру окружающей среды:"; cin >> tempreture; EnterInf (time);
int menuSelect; while (true) { system ("cls"); cout << "\ t \ t \ t *** Настольная лампа *** \ n \ n"; cout << "Выберите из меню: \ n"; cout << "1.Вмикання на заданное время" << endl; cout << "2.Змiна положение регулятора на заданное время" << endl; cout << "3.Встановлення автоматического режима регулирования на заданное время" << endl; cout << "4.Ввесты время работы лампы" << endl; cout << "5.Дiзнатись температуру плафона" << endl; cout << "6.Дiзнатись положение регулятора" << endl; cout << "7.Дiзнатись режим регулирования" << endl; cout << "8.Вимкнення" << endl; cout << "9.Вихiд" << endl << endl;
cin >> menuSelect; while (menuSelect> 10 || menuSelect <1) { cout << "попытку:" << endl; cin >> menuSelect; }
switch (menuSelect) { /// Включение на заданное время case 1: TPlahon = lamp.TurnOnInTime (tempreture, P, time); if (TPlahon == -1) cout << "Лампа перегрiлася! \ n"; else cout << "Температура плафона =" << TPlahon << "градусов". << Endl; break; // Изменение положения регулятора на заданное время case 2: ///// cout << "Введите положение регулятора (не более 100%):"; cin >> P; while (P> 100 || P <0) { cout << "Мощность должна быть от 0 до 100! Введите еще раз:"; cin >> P; } ///// if (! lamp.ChangeRegulator (tempreture, time, P)) cout << cout << "Лампа перегрелась! \ n"; else cout << "Температура плафона =" << lamp.getTPlaphon (tempreture, time) << "градусов". << Endl; break; // Автоматическая режима регулирования на заданное время case 3: lamp.AutomaticRoutine (L, tempreture, time); cout << "Температура плафона =" << lamp.getTPlaphon (tempreture, time) << "градусов". << Endl; break; // Ввод данных case 4: EnterInf (time); break; // Узнать температуру плафона case 5: cout << "Температура плафона =" << lamp.getTPlaphon (tempreture, time) << "градусов". << Endl; break; // Узнать положение регулятора case 6: cout << "Значение регулятора =" << lamp.getP () << "%" << endl; break; // Узнать режим регулирования case 7: cout << "Режим регулирования:" << lamp.getRegulationState () << endl; break; // Выключение case 8: lamp.SwitchOff (); cout << "Выключение!" << Endl; break; case 9: return 0; break;
default: break; }
system ("pause"); }
return 0; }
|
|