Форум программистов, компьютерный форум CyberForum.ru

Классы аквариум и обогреватель. Класс обработчик реализует поддержание заданной температуры в аквариуме - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сортировка вектора сложного класса (Просто для тех кто знает) http://www.cyberforum.ru/cpp-beginners/thread648489.html
Есть класс: class Tovar { protected: Date_class expiry; string articul, name, catigory,barcode; double price; public: /*............................................*/
C++ Как сдвинуть указатель файла НА НАЧАЛО уже считанной строки? getline (file,tmp);// считываю строку tmp из файла file ПОТОМ ЧТО-ТО ТИПА file.seekg(???); http://www.cyberforum.ru/cpp-beginners/thread648488.html
Объявить конструкторы C++
Доброго дня. Написал класс с полями и методами. Сделал тестовую программку - все работает. Добавил в класс несколько конструкторов (в .h прототипы, в .сpp реализацию) - не компилируется, на каждую реализацию конструктора дает ошибку, мол, не является членом класса. Вот листинг (C++ Builder): OwnThing.h class OwnThing { char title; char type; int age; ...
C++ Программа построения таблицы значений функции
ЗАДАНИЕ: Для формулы из Таблицы 1 составить программу построения таблицы значений функции при изменении аргумента от L до R с шагом T. В каждой строке выводить значения аргумен¬та и соответствующее ему значение функции в форматированном виде с 4 знаками после за¬пятой. Кроме того, в конце таблицы напечатать отдельной строкой следующее: Среднее арифметическое всех отрицательных значений...
C++ Округление дробных http://www.cyberforum.ru/cpp-beginners/thread648478.html
Добрый день! Подскажите как можно округлить число с плавающей точкой до определённого числа знаков после точки? например до 4: 34.5672245 -> 34.5672 34.76549875 -> 34.7655
C++ переменную в функцию system #include <iostream> using namespace std; int main() { char* namefile = "test.txt"; system("notepad "namefile); //error } думаю из кода понятно. как можно это реализовать? подробнее

Показать сообщение отдельно
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
08.09.2012, 15:04     Классы аквариум и обогреватель. Класс обработчик реализует поддержание заданной температуры в аквариуме
Цитата Сообщение от Lawlliet Посмотреть сообщение
Требования к классу:
- продумать атрибуты класса и инкапсулировать их в закрытой части интерфейса класса;
-определить по крайней меретри конструктора; конструктор по умолчанию, конструктор с параметрами и конструктор копии;
-задать набор методов для получения значений и модификаций элементов-данных, находящихся в закрытой части класса;
- требуеться продемонстировать работу с кассом в функции main() .По мимо этого необходимо показать:
-создание экземпляра тремя способами: без параметров с последующим заполнением полей, с вызовом конструктора с параметрами, создание копии на основании имеющегося экземпляра.
-вывод информации на экран.
-работу конструкторов и деструкторов экземпляров.
Не знаю в какое место это все засунуть, вот накидал что-то на коленке
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
#include <iostream>
#include <cstdlib>
#include <ctime>
 
template <class T>
class ObservedObject
{
public:
    ObservedObject(T val) : optimalVal(val) {}
 
    T getOptimalVal () const
    {
        return optimalVal;
    }
 
    virtual T getCurrentVal()const = 0;
    virtual void valUp() = 0;
    virtual void valDown() = 0;
 
private:
    T optimalVal;
};
 
class Device
{
public:
    enum state {ON, OFF};
 
    Device(std::string name) : deviceName(name), deviceState(OFF) {}
 
    bool isOn () const
    {
        return deviceState == ON;
    }
 
    void on()
    {
        deviceState = ON;
    }
 
    void off()
    {
        deviceState = OFF;
    }
 
 
    std::string getDeviceName () const
    {
        return deviceName;
    }
 
    std::string getState () const
    {
        return deviceState == ON ? "ON " : "OFF";
    }
 
private:
    std::string deviceName;
    state deviceState;
};
 
class Aquarium : public ObservedObject<int>
{
    static const int defaultTemp = 30;
public:
    Aquarium (int temp = defaultTemp) : ObservedObject<int>(defaultTemp), temperature(defaultTemp)
    {
        srand(time(NULL));
    }
 
    int getCurrentVal() const
    {
        return temperature;
    }
 
    void valUp ()
    {
        ++temperature;
    }
 
    void valDown()
    {
        --temperature;
    }
 
private:
    int temperature;
};
 
 
template <class T>
class Controller
{
public:
    Controller (Device &_dev, ObservedObject<T> &_ob) : dev(_dev), ob(_ob) {}
 
    void exec()
    {
        const T optVal = ob.getOptimalVal();
 
        while (true)
        {
            static int count = 0;
 
            T curVal = ob.getCurrentVal();
 
            if (optVal != curVal)
            {
                if (!dev.isOn())
                {
                    dev.on();
                }
 
                ob.valUp();
 
            }
            else
            {
                if (dev.isOn())
                {
                    dev.off();
                }
            }
 
            std::cout << "Temperature = " << curVal
                      << ", " << dev.getDeviceName() << " is " << dev.getState() << '\r';
 
            system("timeout 1 > nul"); // Sleep(1)
 
            // имитируем охлаждение аквариума на случайное число градусов каждые 5 секунд
            ++count;
            if ((!(count % 5)) && !dev.isOn())
            {
                for (int i = rand() % 5; i >= 0; i--)
                {
                    ob.valDown();
                }
            }
        }
    }
 
private:
    Device &dev;
    ObservedObject<T> &ob;
};
 
int main()
{
    Aquarium aquarium;
    Device heater("heater");
    Controller<int> ctrl(heater, aquarium);
 
    ctrl.exec();
 
    return 0;
}
по идее нагревание/охлаждение по другому надо сделать и я бы еще добавил, что-нибудь типа class Termometr, но уже лень. Да и код нужно по файлам разбить, а то все в куче - не красиво.
 
Текущее время: 19:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru