Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 05.10.2014
Сообщений: 10

Программа "Холодильник", работающая по заданным правилам

05.10.2014, 18:03. Показов 2409. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Программа холодильник:
её свойства :
• состояние питания (вкл. / Выкл.)
• текущая температура (-25 ... 0) С;
• состояние дверцы (открыта / закрыта);
• сигнал аварийного состояния (вкл. / Выкл.).
Метод, Правила работы метода:
1.Включение [/SIZE] - Если дверца закрыта снижает текущую температуру до уровня заданной за время, рассчитывается согласно выражению:
t [мин] = 24 • ln (tнс - tз),
где tнс - температура окружающей среды, °;
tз - заданная (целевая) температура, °.
Если дверца открыта, приравнивает текущую температуру до температуры окружающей среды и включает сигнал аварийного состояния.
2.Выключение- Включение сигнал аварийного состояния (если он работал); повышает текущую температуру до температуры окружающей среды.
3.Установка температуры ---Если дверца закрыта снижает текущую температуру до уровня заданной за время, рассчитывается согласно выражению:
t [мин] = 24 • ln (tп - tз),
где tнс - текущая температура, °;
tз - заданная (целевая) температура, °.
Если дверца открыта приравнивает текущую температуру до температуры окружающей среды и включает сигнал аварийного состояния.
4.Открыть двери --Если текущая температура меньше температуры окружающей среды повышает текущую температуру на 5% от их разности.
5.Закрыть двери---- Выключает сигнал аварийного состояния (если он работал); снижает текущую температуру до уровня заданной за время, рассчитывается аналогично метода "Включение". помогите пожалуйста, есть пример :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#include "stdafx.h"
#include <iostream>
#include <string>
#include <conio.h>
using namespace std;
class Radio
{
private:
    bool stan;         //стан (увімкн./вимкн.)
    double chastota;   //частота налаштування, МГц (88 … 108);
    string nameStation;//назва активної станції;
    int volume;        //рівень гучності (0 … 10).
public:
    Radio(bool st,double chast,string name,int vol) {
    stan = st;
    if(chast > 108 || chast < 88) {cout <<"Не правильна частота " << endl; exit(0);}
    if(vol > 10 || vol < 0)       {cout <<"Не правильна гучнiсть " << endl; exit(0);}
    chastota = chast;
    nameStation = name;
    volume = vol;
    }
    void On() { stan = 1; volume = 5; chastota = 88;}//Вмикання
    void Off(){ stan = 0; volume = 0;cout <<"Вимкнено\n";}               //Вимикання
    //Перемикання на станцію із заданою назвою
    void setCastota(double c) {if(c > 108 || c < 88) {cout <<"Не правильна частота " << endl; exit(0);}
    chastota = c;
    }           
    void SetMaxChastota(int step){ //Запуск збільшення/зменшення частоти налаштування
    volume = 0;
    for(double i =  0; i < step; i+=0.5)
    {   
        chastota+=i;
        if(chastota==108) break;
        if(chastota == 95.5) {cout << "Lux fm";break;}
        if(chastota == 96.5) {cout << "Perez fm ";break;}
        if(chastota == 97) {cout << "Мелодiя";break;}
        if(chastota == 106.5) {cout << "Галичина  ";break;}
    }
    }
    void SetMinChastota(int step){ //Запуск збільшення/зменшення частоти налаштування
    volume = 0;
    for(double i = 0;i < step; i-=0.5)
    {       
        chastota+=i;
        if(chastota == 108) break;
        if(chastota == 95.5) {cout << "Lux fm";break;}
        if(chastota == 96.5) {cout << "Perez fm ";break;}
        if(chastota == 101.5) {cout << "Мелодiя";break;}
        if(chastota == 106.5) {cout << "Галичина  ";break;}
    }
    }
    void SetVolumeInc(){if(volume == 10) {cout << "Max ";--volume;} ++volume;}//Збільшення/зменшення гучності
    void SetVolumeDec(){if(volume == 0)  {cout << "Min ";++volume;}--volume;}
    double GetChastota(){return chastota;}
    bool   GetStan()    {return stan;}
    string GetName()    {return nameStation;};
    int    GetVolume()  {return volume;}
};
int main()
{
    setlocale(0,"");
    Radio r(1,96,"Ua Radio",5);
    r.SetVolumeInc();
    r.SetVolumeInc();
    int i;
    do{
    cout << "0.Увімкнути(1-готово) "   << endl;
    cout << "1.Поточний стан звуку  "  << endl;
    cout << "2.Звук +1 "   << endl;
    cout << "3.Звук -1 "   << endl;
    cout << "4.Iм’я станцiї " << endl;
    cout <<"5.Частота +0,5 > " << endl;
    cout <<"6.Частота -0,5 <" << endl;
    cout <<"7.Частота " << endl;
    cout <<"8.Вимкнути" << endl;
 
 
cin >> i;   
    switch (i)
    {
    case 0:system("cls");  cout << r.GetStan();       cout << endl;;break;
    case 1:system("cls");  cout << r.GetVolume();     cout << endl; break;
    case 2: system("cls"); r.SetVolumeInc();          cout << endl; break;
       case 3:system("cls");  r.SetVolumeDec();          cout << endl; break;
    case 4: system("cls"); cout << r.GetName();       cout << endl; break;
    case 5:system("cls");  r.SetMaxChastota(10);      cout << endl; break;
    case 6: system("cls"); r.SetMinChastota(10);      cout << endl; break;
    case 7:system("cls");  cout << r.GetChastota();   cout << endl; break;
    case 8:exit(0);break;
    default: cerr <<"error" << endl;
        break;  
    }
     
}while(i!=10);
   getch();
   return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.10.2014, 18:03
Ответы с готовыми решениями:

Сформировать матрицы по заданным правилам
Сформировать матрицы {a i,j}n,m,{b i,j}k,l, где i&lt;=(n,k), j&lt;=(m,l), по заданным правилам : (i+j)/2, (i*j)/sqrt(27). Фактическое число строк...

Объединение строк по заданным правилам
Нужно написать программу для создания строки по следующим правилам: 1. На вход подаются 2 строки 2. Все совпадающие гласные, стоящие на...

Сформировать дерево по заданным правилам
нужно написать прогу с деревом, иначе я буду висеть на дереве( пасаны вообще ребята! сформировать дерево глубины N (задано...

3
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,245
05.10.2014, 19:42
Что Вам мешает переделать этот пример под холодильник?
Свойства написаны:
Цитата Сообщение от arbok Посмотреть сообщение
её свойства :
• состояние питания (вкл. / Выкл.)
• текущая температура (-25 ... 0) С;
• состояние дверцы (открыта / закрыта);
• сигнал аварийного состояния (вкл. / Выкл.).
Всего то 3 булевских переменных и одна действительная(дробная).
Методы заданы
Цитата Сообщение от arbok Посмотреть сообщение
-Включение
-Выключение
-Установка температуры
-Открыть дверь
-Закрыть дверь
Т.е. Ваша задача даже проще, чем пример.
0
0 / 0 / 0
Регистрация: 05.10.2014
Сообщений: 10
05.10.2014, 21:11  [ТС]
эта тема мне действительно непонятна, помогите пожалуйста

Добавлено через 1 час 7 минут
вот что полуяилочь сделать, а дальше не знаю вообще((
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
const float maxtemperature = 0;
const float mintemperature = -25;
enum holodilnickstate {off, on, opendoor, closedoor, errorsound};
const char holodilnickstatename [5][11] = {"off", "on", "closedoor", "opendoor", "errorsound"};
 
class Holodilnick;
{
    bool power;
    int state;
    int signal;
    float temperature;
 
    void setstate (int);
public:
    void reset (void);
    void turnon (void);
    void turnoff (void);
 
    bool getpower (void) {return power;}
 
    int getstate (void);
    const char* const getstatename () {return holodilnickstatename [state];}
};
#include <stblib.h>
#include "Holodilnick.h"
 
void holodilnick::reset(void)
{
    power = false;
    setstate (off);
}
void holodilnick::turnon (void)
{
    if (!power) // при умові вимкненого стану
    {
        power=true;
        setstate (on);
    }
}
void holodilnick::turnoff (void)
{
    if (power) // при умові включеного стану
    {
        power=false;
        setstate (off);
    }
}
int holodilnick::signal (int signal);
{
    if (opendoor)
    {
 
    }
}
0
0 / 0 / 0
Регистрация: 05.10.2014
Сообщений: 10
06.10.2014, 18:03  [ТС]
Просьба, помогите написать и склеить к этой программе МЕНЮ работы
Программа холодильник:
её свойства :
• состояние питания (вкл. / Выкл.)
• текущая температура (-25 ... 0) С;
• состояние дверцы (открыта / закрыта);
• сигнал аварийного состояния (вкл. / Выкл.).
Метод, Правила работы метода:
1.Включение [/SIZE] - Если дверца закрыта снижает текущую температуру до уровня заданной за время, рассчитывается согласно выражению:
t [мин] = 24 • ln (tнс - tз),
где tнс - температура окружающей среды, °;
tз - заданная (целевая) температура, °.
Если дверца открыта, приравнивает текущую температуру до температуры окружающей среды и включает сигнал аварийного состояния.
2.Выключение- Включение сигнал аварийного состояния (если он работал); повышает текущую температуру до температуры окружающей среды.
3.Установка температуры ---Если дверца закрыта снижает текущую температуру до уровня заданной за время, рассчитывается согласно выражению:
t [мин] = 24 • ln (tп - tз),
где tнс - текущая температура, °;
tз - заданная (целевая) температура, °.
Если дверца открыта приравнивает текущую температуру до температуры окружающей среды и включает сигнал аварийного состояния.
4.Открыть двери --Если текущая температура меньше температуры окружающей среды повышает текущую температуру на 5% от их разности.
5.Закрыть двери---- Выключает сигнал аварийного состояния (если он работал); снижает текущую температуру до уровня заданной за время, рассчитывается аналогично метода "Включение". помогите пожалуйста, есть пример :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#include "stdafx.h"
#include <iostream>
#include <time.h>
#include <math.h>
using namespace std;
class Refrigerator{
public :
 double outtemp;
 double targettemp;
 bool power;
 double temperature;
 bool open;
 bool signal;
  
 void powerON(){
    cout<<"Холодильник включили "<<endl;
 if(open){
  cout<<"Дверца открыта время за которое температура холодильника становится равной внешней "<<endl;
  cout<<"Включаем сигнал "<<endl;
  temperature=outtemp;
  signal=true;
 }
 else{
  double time=24*log((double)(abs(temperature-targettemp)));
  cout<<"Дверца закрыта, время снижения температуры до заданой "<<time<<endl;
  temperature =targettemp;
 
 }
 }
 
 void powerOff(){
  cout<<"Холодильник включили "<<endl;
  temperature=outtemp;
  signal=false;
 }
 void setTemperature(int ntemp){
 targettemp=ntemp;
  if(open){
  cout<<"Дверца открыта время за которое температура холодильника становится равной внешней "<<endl;
  cout<<"Включаем сигнал "<<endl;
  temperature=outtemp;
  signal=true;
 }
 else{
  double time=24*log((double)(abs(temperature-targettemp)));
  cout<<"Дверца закрыта, время снижения температуры до заданой "<<time<<endl;
  temperature =targettemp;
 
 }
 
 }
 void Open(){
  cout<<"Холодильник открыли"<<endl;
 if(temperature<outtemp){
  cout<<"Внутреннея температура меньше внешней , потому увеличеваем температуру на 5% от разницы"<<endl;
  temperature+=((double)(abs(outtemp)-abs(temperature))/100)*5;
       
  
 }
 else{
 cout<<"Внутреннея температура не меньше"<<endl;
 }}
 void close(){
 cout<<"Холодильник закрыли"<<endl;
 cout<<"Время уменьшения температуры до заданой =="<<abs(24*log((double)(abs(temperature-targettemp))))<<endl;
 temperature =targettemp;
 signal=false;
 }
    void printStat(){
  cout<<endl<<"Печатаем стстояние холодильника ,при внешней температуре равной "<<outtemp<<endl<<"Целевая температура =="<<targettemp<<endl;
  if(power)cout<<"Холодильник включен, ";
  else cout<<"Холодильник выключен , ";
  if(open)cout<<"открыт. "<<endl;
  else cout<<"закрыт. "<<endl;
  if(signal)cout<<"Аварийный сигнал включен "<<endl;
  else cout<<"Аварийный сигнал выключен "<<endl;
  cout<<"Текущая температура == "<<temperature<<endl<<endl;
}
 
};
int main() {
 setlocale (0, "");
 Refrigerator r;
 cout<<"Введите внешнею температуру "<<endl;
 cin>>r.outtemp;
 cout<<"Введите целевую температуру "<<endl;
 cin>>r.targettemp;
 r.open=false;
 r.power=true;
 r.signal=false;
 r.temperature=-25;
 r.printStat();
 r.powerON();
 r.printStat();
 r.Open();
 r.printStat();
 r.close();
 r.printStat();
 r.powerOff();
 r.printStat();
 system("pause");
 return 0;
}
Добавлено через 20 часов 40 минут
помогите пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.10.2014, 18:03
Помогаю со студенческими работами здесь

Сформировать массив Zk по заданным правилам
помогите решить задачу на Делфи: Даны два одномерных массива Xn и Yn. Сформировать новый массив Zk по следующим правилам: если Xi &lt; Yi,...

Заполнение матриц по заданным правилам
Всем доброго времени суток. Прошу вашей уже наверное профессиональной помощи). Не могу сделать 3 задания связанных с матрицами. Не понимаю...

Сформировать массив по заданным правилам
1. Сформировать массив К(15,15) так, чтобы элементы заштрихованной области были равны 1, а остальные были равны 3. 2. Определить...

Отредактировать текст по заданным правилам
№ 4. Задать с клавиатуры текст. Отредактировать текст по следующим правилам: перед запятой не может быть пробела; после запятой должен...

Сформировать массив по заданным правилам
Сформировать массив А(11,11) так, чтобы элементы первого и последнего столбцов были равны, элементы первой и последней строки равны 3, а...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru