Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> создание класов, помогите доделать программу 
:(
    Опции темы
лео
Дата 5.12.2014, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 5.12.2014

Репутация: нет
Всего: нет



Настольная лампа с автоматическим регулятором освещенности 
"Люстра" 
свойства:
 • количество ламп. методы: 
• замена лампы;
 • включения. 
"Лампа ночного освещения" 
методы:
 • установление времени включения лампы;
 • установка текущего времени.
PM MAIL   Вверх
baldina
Дата 5.12.2014, 19:30 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



Цитата(лео @  5.12.2014,  17:29 Найти цитируемый пост)
помогите доделать программу

программу покажите
PM MAIL   Вверх
лео
  Дата 9.12.2014, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 5.12.2014

Репутация: нет
Всего: нет




Код

// Содержание файла 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;
}

PM MAIL   Вверх
baldina
Дата 9.12.2014, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



лео, программу наверняка не вы писали. но... допустим.
теперь показывайте полное задание: 
1. в вашем задании предлагается смоделировать два типа объектов, но что делать с ними не сказано
2. непонятно в чем заключается функционал метода "замена лампы"
3. непонятно как должна работать лампа ночного освещения: асинхронно в фоне ждать наступления времени или синхронно менять состояние, если в результате установки текущего времени оно совпадает (или больше?) времени включения.

показанная программа в части моделирования лампы не соответствует заданию (что-то излишне сложно, чего-то не хватает)
main() выглядит феерично, но в задании про это ничего нет

если подходить буквально к "заданию", выйдет примерно такое:

Код

class Lamp {
    int n; // число ламп
    bool on;
  public:
    Lamp (int n) : n(n), on(false) {}
    void changeLamp (int index) { /* что тут делать непонятно */ }
    void switchOn() { on=true; }
    void switchOff() { on=false; }
};

class NightLamp : public Lamp {
    time_t time;
  public:
    NightLamp (int n) : Lamp (n),time(-1) {}
    void setSwitchingTime (time_t t) { time = t; }
    void setCurrentTime (time_t t) { if (time != -1 && t >= time) switchOn(); }
};


Это сообщение отредактировал(а) baldina - 9.12.2014, 12:18
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0437 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.