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

Немного жестокости, о классах и конструкторах

10.11.2014, 01:14. Показов 579. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток. Суть проблемы, у нас есть задача: добавить в класс конструктор по умолчанию, конструктор инициализации(самостоятельно определенные аргументы) и конструктором копирования. Проверить тестовую программу поочередно с каждым конструктором при создании объекта класса.
Сам класс:
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
#include "stdafx.h"
#include <cmath>
 
using namespace std;
 
const int MAX_TEMPERATURE = 25;
const int MIN_TEMPERATURE = 16;
 
class AirConditioning {
private:
    bool ACPower;
    int temperature;
    int temperatureNOW;
    double getTime;
    bool vent;
    bool cooler;
    bool workState;
    int temp;
    bool indicator;
public:
 
    void ACPowerON() {
        ACPower = true;
        workState = true;
        cooler = true;
        temperature = 20;
        cout << "AirCoditioning succesfully ON \n";
        if (temperatureNOW > temperature * 2) {
            vent = true;
            cout << "Ventilator is ON. \n";
        }
 
    }
    void ACPowerOFF() {
        if (ACPower = false) {
            if (vent = false) {
                if (cooler = false) {
                    cout << "AirConditioning is already turned OFF\n";
                }
            }
        }
        else {
            cooler = false;
            vent = false;
            ACPower = false;
            cout << "AirConditioning succesfully turned off \n";
        }
    }
 
    void getTimeforT() {
        cout << "Enter temperature of room: \n";
        cin >> temperatureNOW; "\n";
        cout << "Enter target temperature: \n";
        cin >> temperature;
        cout << "Time to change current temperature \n";
        getTime = 10 * log2((temperature - temperatureNOW) * 1);
        cout << "time to get current temperature = " << getTime << " minutes." << endl;
    }
 
    void workStateValue() {
        cout << "please select work state: 1 - cooling  0 - drying";
        cin >> temp;
        if (temp == 1) {
            workState = true;
            cout << "Cooling state selected." << endl;
        }
        else if (temp == 0) {
            workState = false;
            cout << "Drying state selected." << endl;
        }
        else
            cout << "Invalid count. Operation denied!";
    }
 
    void indicatorOF() {
        indicator = false;
    }
};
 
int main() {
    int asd;
    int i = 0;
    cout << "To start operations select a module:" << endl;
    cout << "0 - ACPower on" << endl;
    cout << "1 - ACPower off" << endl;
    cout << "2 - get time to do selected temperature" << endl;
    cout << "3 - select work state " << endl;
    cout << "4 - indicator OFF" << endl;
    cout << "5 - end testing \n";
    cout << "Testing AirConditioning is started";
    AirConditioning Air;
 
    while (i == 0) {
        cin >> asd;
        switch (asd) {
        case 0: Air.ACPowerON(); break;
        case 1: Air.ACPowerOFF(); break;
        case 2: Air.getTimeforT(); break;
        case 3: Air.workStateValue(); break;
        case 4: Air.indicatorOF(); break;
        case 5: i = 1; cout << "test complete!"; break;
        }
 
    }
 
}
Еще плюс ко всему,конструкторы - с одной переменной: открывает файл с заданным названием, создается копия с именем *filename*copy.txt, с двумя:открывает файл и файл-копию, с тремя: открытие файла и файла - копии, сохранение копии в указанной директории. Очень прошу сам код ибо конструкторы я знаю, а эту дикость надо сдать завтра.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.11.2014, 01:14
Ответы с готовыми решениями:

О классах и конструкторах и об операторах case c {} и без. Нюансы
Зачем в С++ имеется возможность определять методы вне тела класса через разделитель ::? class green { private: int...

О классах и конструкторах в Microsoft Visual С++.
Всем добрый день народ, есть задачи, которые надо решить Microsoft Visual С++. решение 1. /* Написать программу, в которой...

Помогите, только без излишней жестокости!
Ну не понимаю я ничего в интернете и в создании сайтов, раскрутке и т.д. ТИЦ 60 за 1,5 месяца с создания сайта-это много или мало? Что...

1
9 / 9 / 13
Регистрация: 25.10.2014
Сообщений: 52
10.11.2014, 11:24
Цитата Сообщение от defiler Посмотреть сообщение
добавить в класс конструктор по умолчанию, конструктор инициализации(самостоятельно определенные аргументы) и конструктором копирования.
Код под спойлером.
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <cmath>
 
using namespace std;
 
const int MAX_TEMPERATURE = 25;
const int MIN_TEMPERATURE = 16;
 
class AirConditioning {
public:
    void ACPowerON();
    void ACPowerOFF();
    void getTimeforT();
    void workStateValue();
    void indicatorOFF() { indicator = false; cout << "indicator off\n"; };
    AirConditioning(); // конструктор по умолчанию
    AirConditioning(const AirConditioning&); // копирующий конструктор
    AirConditioning& operator=(const AirConditioning&); // оператор копирующего присваивания
private:
    bool ACPower;
    bool indicator;
    bool vent;
    bool cooler;
    bool workState;
    int temp;
    int temperature;
    int temperatureNOW;
    double getTime;
};
 
AirConditioning::AirConditioning() 
    :ACPower(0), indicator(0), vent(0), cooler(0), workState(0),
temp(MIN_TEMPERATURE), temperature(MIN_TEMPERATURE), temperatureNOW(MIN_TEMPERATURE), getTime(0){};
 
AirConditioning::AirConditioning(const AirConditioning& ac)
    :ACPower(ac.ACPower), indicator(ac.indicator), vent(ac.vent), cooler(ac.cooler),
    workState(ac.workState), temp(ac.temp), temperature(ac.temperature),
    temperatureNOW(ac.temperatureNOW), getTime(ac.getTime){};
 
 
AirConditioning& AirConditioning::operator = (const AirConditioning& ac)
{
    if (this != &ac)
    {
        ACPower = ac.ACPower;
        indicator = ac.indicator;
        vent = ac.vent;
        cooler = ac.cooler;
        workState = ac.workState;
        temp = ac.temp;
        temperature = ac.temperature;
        temperatureNOW = ac.temperatureNOW;
        getTime = ac.getTime;
    }
    return *this;
};
 
void AirConditioning::ACPowerON() {
        ACPower = true;
        workState = true;
        cooler = true;
        temperature = 20;
        cout << "AirCoditioning succesfully ON \n";
        if (temperatureNOW > temperature * 2) {
            vent = true;
            cout << "Ventilator is ON. \n";
        }
 
};
 
void AirConditioning::ACPowerOFF() {
    if (ACPower = false) {
        if (vent = false) {
            if (cooler = false) {
                cout << "AirConditioning is already turned OFF\n";
            }
        }
    }
    else {
        cooler = false;
        vent = false;
        ACPower = false;
        cout << "AirConditioning succesfully turned off \n";
    }
};
 
void AirConditioning::getTimeforT() {
    cout << "Enter temperature of room: \n";
    cin >> temperatureNOW; "\n";
    cout << "Enter target temperature: \n";
    cin >> temperature;
    cout << "Time to change current temperature \n";
    getTime = (temperature != temperatureNOW)?10 * log2(abs(temperature - temperatureNOW) * 1):0;
    cout << "time to get current temperature = " << getTime << " minutes.\n" << endl;
}
 
void AirConditioning::workStateValue() {
    cout << "please select work state: 1 - cooling  0 - drying\n";
    cin >> temp;
    if (temp == 1) {
        workState = true;
        cout << "Cooling state selected.\n" << endl;
    }
    else if (temp == 0) {
        workState = false;
        cout << "Drying state selected.\n" << endl;
    }
    else
        cout << "Invalid count. Operation denied!\n";
}
 
int main() {
    locale lc("Russian");
    locale::global(lc);
 
    int asd;
    int i = 0;
    cout << "To start operations select a module:" << endl;
    cout << "0 - ACPower on" << endl;
    cout << "1 - ACPower off" << endl;
    cout << "2 - get time to do selected temperature" << endl;
    cout << "3 - select work state " << endl;
    cout << "4 - indicator OFF" << endl;
    cout << "5 - end testing \n";
    cout << "Testing AirConditioning is started\n";
 
    AirConditioning Air1, Air4;  // создаем объект используя конструктор по умолчанию.
    AirConditioning Air2(Air1);  // создаем объект используя конструктор копирования
    AirConditioning Air3 = Air1; // создаем объект используя конструктор копирования
    Air4 = Air3; // используем оператор копирования
 
    while (i == 0) {
        cin >> asd;
        switch (asd) {
        case 0: Air1.ACPowerON(); break;
        case 1: Air1.ACPowerOFF(); break;
        case 2: Air1.getTimeforT(); break;
        case 3: Air1.workStateValue(); break;
        case 4: Air1.indicatorOFF(); break;
        case 5: i = 1; cout << "test complete!"; break;
        }
 
    }
}

Цитата Сообщение от defiler Посмотреть сообщение
Проверить тестовую программу поочередно с каждым конструктором при создании объекта класса.
Давайте будем надеяться, что вы сможете сделать это сами
Цитата Сообщение от defiler Посмотреть сообщение
Еще плюс ко всему,конструкторы - с одной переменной: открывает файл с заданным названием, создается копия с именем *filename*copy.txt, с двумя:открывает файл и файл-копию, с тремя: открытие файла и файла - копии, сохранение копии в указанной директории.
это, если я правильно понял, отдельное задание, которое не относится к вашему классу AirConditioning?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.11.2014, 11:24
Помогаю со студенческими работами здесь

Ошибка в конструкторах
Почему нельзя создать два конструктора? class Test { private List&lt;First&gt; first; private List&lt;Second&gt; second; private int...

Исключения в конструкторах
Для начала приведу код, а затем соответствующие вопросы. #include &lt;iostream&gt; #include &lt;stdexcept&gt; using namespace...

Определить какие из имён встречаются во всех классах, только в некоторых классах, не встречаются ни в одном
1. Заданный имена девочек . Определить , какие из этих имён встречаются во всех классах данной параллели , которые есть только в некоторых...

Вопрос об особенности char и конструкторах
1. Хочу вывести на экран таблицу символов ascii: #include &lt;iostream&gt; int main() { unsigned short T; for...

Исключения в конструкторах стандартных контейнеров
Очень тупой вопрос: могут ли перемещающие конструкторы std::map и std::vector выкинуть исключение? С одной стороны, ну чему там кидать...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Вопросы на собеседованиях по микросервисам
ArchitectMsa 27.03.2025
Работодатели ищут не просто разработчиков, знающих базовые концепции, а специалистов, разбирающихся в тонкостях масштабирования, отказоустойчивости и производительности. Сейчас на первый план выходят. . .
Взаимодействие Python с REST API
py-thonny 27.03.2025
REST API - это архитектурный стиль взаимодействия компонентов распределённого приложения в сети. Python располагает функциональным набором инструментов для работы с REST API и основная библиотека для. . .
sshd restrictions, ssh access limitations
jigi33 26.03.2025
sshd restrictions | ssh access limitations рестрикции доступа на сервер sshd статья: https:/ / www. golinuxcloud. com/ restrict-allow-ssh-certain-users-groups-rhel
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
Многопоточное программировани­е в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер