Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
 Аватар для Georgiy2017
2 / 2 / 4
Регистрация: 30.07.2017
Сообщений: 42

9 Задача 4 главы Стивен Прата

13.08.2017, 21:59. Показов 1418. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Выполните упражнение 6, но вместо объявления массива из трех структур CandyBar используйте операцию new для
динамического размещения массива.

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
#include <iostream>
#include <string>
using std::string;
using std::endl;
using std::cout;
 
struct  CandyBar
{
    string BoxName;
    double Weight;
    unsigned int Calories;
};
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    CandyBar *p = new CandyBar[3];
    p[0] = { "Кукуруза", 0.100, 103 };
    p[1] = { "Молочные сосиски", 0.100, 260 };
    p[2] = { "Арбуз", 0.100, 40 };
    
    cout << "Название: " << p->BoxName << ", вес " << p->Weight << ", калорий " << p->Calories << endl;
    cout << "Название: " << (p + 1)->BoxName << ", вес " << (p + 1)->Weight << ", калорий " << (p + 1)->Calories << endl;
    cout << "Название: " << (p + 2)->BoxName << ", вес " << (p + 2)->Weight << ", калорий " << (p + 2)->Calories << endl;
    delete[] p;
    return 0;
}
Сделал все правильно но хотел еще сделать с перегрузкой функций ввода/вывода, но что-то не получается, подскажите как это сделать
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.08.2017, 21:59
Ответы с готовыми решениями:

Kак реализуются "сложные проценты"? (Стивен Прата - задача про Дафну и Клео)
Изначально дано, что переменная K=100, тогда наша переменная temp становится =5 при объявлении и инициализации. Почему тогда в переменной...

Стивен прата, задание с очередью
Привет. Хотелось бы немного помощи по листингу. Вообще сам листинг очень сложный для меня, я уже и блок схемы рисовал, но все равно очень...

Стивен Прата (гл. 6, упр. 6) - массив структур
Что-то упускаю, не могу понять, что именно. Не выводит список имён. Кто подскажет, почему? // sp_Ch6_Pg301_Ex06 /// Занятия по...

2
 Аватар для anapshy
533 / 274 / 220
Регистрация: 14.11.2016
Сообщений: 1,054
13.08.2017, 23:13
Georgiy2017,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/*
    CandyBar item;
    std::cin >> item;
    std::cout << item << std::endl;
*/
// Добавь в структуру CandyBar следующее...
friend std::istream& operator >> (std::istream &is, CandyBar &rhs)
{
    is >> rhs.BoxName >> rhs.Weight >> rhs.Calories;
    /* также можешь использовать std::cout
    std::cout << "Введите BoxName: ";
    is >> rhs.BoxName;
     Думаю ты понял... */
    return is;
}
 
friend std::ostream& operator << (std::ostream &os, const CandyBar &rhs)
{
    return os << "Название: " << rhs.BoxName
        << ", вес " << rhs.Weight
        << ", калорий " << rhs.Calories;
}
P.s. возможны где-то ошибки в словах.. Ну думаю как делается ты понял.
0
 Аватар для Georgiy2017
2 / 2 / 4
Регистрация: 30.07.2017
Сообщений: 42
14.08.2017, 15:36  [ТС]
anapshy, не понимаю как реализовать в 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
struct  CandyBar
{
    friend ostream & operator<< (ostream & ost, const CandyBar &p)
    {
        ost << "Название " << p.BoxName << ", вес " << p.Weight << ", калории " << p.Calories;
        return ost;
    }
    friend istream & operator>> (istream & ist, CandyBar &p)
    {
        ist >> p.BoxName >> p.Weight >> p.Calories;
        return ist;
    }
 
    string BoxName;
    double Weight;
    unsigned int Calories;
};
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    CandyBar *p = new CandyBar[3];
    p[0] = { "Кукуруза", 0.100, 103 };
    p[1] = { "Молочные сосиски", 0.100, 260 };
    p[2] = { "Арбуз", 0.100, 40 };
    
    cout << p;
    /*cout << "Название: " << p->BoxName << ", вес " << p->Weight << ", калорий " << p->Calories << endl;
    cout << "Название: " << (p + 1)->BoxName << ", вес " << (p + 1)->Weight << ", калорий " << (p + 1)->Calories << endl;
    cout << "Название: " << (p + 2)->BoxName << ", вес " << (p + 2)->Weight << ", калорий " << (p + 2)->Calories << endl;*/
    delete[] p;
    return 0;
}
Добавлено через 25 минут
Получилось как-то так
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
struct  CandyBar
{
    friend ostream & operator<< (ostream & ost, const CandyBar *p)
    {
        ost << "Название " << p->BoxName << ", вес " << p->Weight << ", калории " << p->Calories;
        return ost;
    }
    friend istream & operator>> (istream & ist, CandyBar *p)
    {
        cout << "Название: ";
        getline(ist, p->BoxName);
        cout << "Вес: ";
        ist >> p->Weight;
        cout << "Калории: ";
        (ist >> p->Calories).get();
        return ist;
    }
 
    string BoxName;
    double Weight;
    unsigned int Calories;
};
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    CandyBar *p = new CandyBar[3];
    /*p[0] = { "Кукуруза", 0.100, 103 };
    p[1] = { "Молочные сосиски", 0.100, 260 };
    p[2] = { "Арбуз", 0.100, 40 };*/
    
    for (size_t i = 0; i < 3; i++)
    {
        cout << i + 1 << " ящик\n";
        cin >> p + i;
        cout << p + i << endl << endl;
    }
    /*cout << "Название: " << p->BoxName << ", вес " << p->Weight << ", калорий " << p->Calories << endl;
    cout << "Название: " << (p + 1)->BoxName << ", вес " << (p + 1)->Weight << ", калорий " << (p + 1)->Calories << endl;
    cout << "Название: " << (p + 2)->BoxName << ", вес " << (p + 2)->Weight << ", калорий " << (p + 2)->Calories << endl;*/
    delete[] p;
    return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.08.2017, 15:36
Помогаю со студенческими работами здесь

Шилдт или Стивен Прата: что выбрать?
Недавно закончил вводный курс от Яндекс по C++. Хотел бы дальше продолжить изучать язык. В интернете нарыл, что хвалят учебник Шилда...

Стивен Прата (гл. 8, упр. 4) - структура с методами и использование new
Вопрос. Имеется упражнение. Собственно, вот оно: Начал делать. То есть, сделал: #include &lt;iostream&gt; #include...

Стивен Прата - про decltype (гл. 8, стр. 422)
Прочитал раз десять. Сверился с оригиналом: Я что-то упустил или тип функции long? Соответственно, и m должна быть long? С какого...

Стивен Прата Кто Читал его ? - Нужен Совет
Нужна книжка по изучению C++ ,так сказать &quot;С НУЛЯ&quot;,чтоб всё разжевывалось. Остановился На авторе Стивен Прата ,книга - Язык...

книга стивен прата как справиться с задачей стр 342 листинг 7.12
стивен прата 6 издание. стр 343 листинг 7.12 strctfun переписал код, код полностью работает и проблем в этом нет, но при вводе данных по...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru