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

Класс TGoods, создающий тип – товар

28.05.2014, 18:58. Показов 2001. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание вот:
Кликните здесь для просмотра всего текста
Объявите класс TGoods, создающий тип – товар.
Элементы – данные класса – наименование товара, год производства.
Предусмотрите конструкторы класса:
по умолчанию;
получающий параметры;
получающий параметр –ссылку на класс TGoods
Напишите функции – методы класса:
для ввода – вывода данных о товаре;
определения, относится ли год производства товара к какому – либо, значение которого передается через параметр;
определения, совпадает ли наименование товара со значением, передаваемым в виде параметра.
Напишите программу, в которой создайте массив объектов типа TGoods, заполните его в диалоговом режиме и найдите в этом массиве все товары определенного наименования, дата производства которых соответствует, например, 1998 году.


нашёл на вашем форуме такой код, к сожалению не работает:
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <cstring>
#include <ctime>
#include <cstdlib>
 
class TGoods
{
public:
        TGoods() : year_(0), name_(NULL)
        {
        }
        TGoods(int year, const char *name): year_(year),name_(strcpy(new char[strlen(name) + 1], name))
        {
        }
 
        void set()
        {
                int year;
                char name[25];
 
                std::cout<<"Enter name of goods\t";
                std::cin>>name;
                delete name_;
                name_ = strcpy(new char[strlen(name) + 1], name);
 
                std::cout<<"Enter year\t";
                std::cin>>year;
                year_ = year;
        }
        void TGoods::out()
        {
                std::cout<<"Name of goods\t"<<name_<<std::endl;
                std::cout<<"Year of goods\t"<<year_<<std::endl;
        }
        void setYear(int year)
        {
                year_ = year;
        }
        int getYear() const
        {
                return year_;
        }
        void setName(const char *name)
        {
                delete name_;
                name_ = strcpy(new char[strlen(name) + 1], name);
        }
        const char *getName() const
        {
                return name_;
        }
        
        virtual ~TGoods()
        {
                delete [] name_;
        }
        
        friend std::ostream &operator<<(std::ostream &stream, const TGoods &TGoods)
        {
                return stream << "Name: " << TGoods.getName() << std::endl << "Year: " << TGoods.getYear() << std::endl;
        }
private:
        
        int year_;
        char *name_;
};
 
int main(int argc, char *argv[])
{
        srand(time(NULL));
        int TGoodssCount,year;
 
        std::cout<<"Enter Count Array of Objects ";
        std::cin>>TGoodssCount;
        TGoods *TGoodss = new TGoods[TGoodssCount];
 
        for (int i = 0; i < TGoodssCount; ++i)
        {
                /*TGoodss[i].setName(randomSymbols(9, buffer));
                TGoodss[i].setYear(rand() % 7 + 2005);*/
                TGoodss[i].set();
                std::cout << TGoodss[i];
        }
 
 
          // поиск товара по name:
        std::cout<<"Enter name\t";
        char buffer[25];
        std::cin>>buffer;
        std::cout << std::endl << "Searching for TGoods with name " << buffer << std::endl;
 
        std::cout<<TGoodss[1].getName()<<std::endl;
        for (size_t i = 0; i < TGoodssCount; ++i)
    if (strcmp(TGoodss[i].getName(), buffer)==0)
                std::cout << TGoodss[i];
 
 
  // поиск товара по году:
        std::cout<<"Enter year ";
        std::cin>>year;
        std::cout << std::endl << "Searching for TGoods with year " << year << std::endl;
 
        for (size_t i = 0; i < TGoodssCount; ++i)
    if (TGoodss[i].getYear() == year)
                std::cout << TGoodss[i];
 
        delete [] TGoodss;
        return 0;
}


Сам писал по примеру в учебнике, получилась чушь какаето, задание не выполнил даже((
Кликните здесь для просмотра всего текста
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
#include<iostream>
using namespace std;
class TGoods{
    char _name[15];
    int _year;
 
public:
    char* name() { return _name; }
    int& year(){ return _year; }
};
 
void main()
{
    setlocale(0, "");
    TGoods wares[5],
        *p;
    int i,
        k = sizeof(wares) / sizeof(wares[0]);
    system("cls");
    cout << "Введите сведения о товарах:\n";
    for (i = 0; i<k; i++)
    {
        cout << "Наименование товара: ";
        cin >> wares[i].name();
        cout << "Год: ";
        cin >> wares[i].year();
    }
 
    for (i = 0; i<k; i++)
    {
        cout << "\nНаименование товара: ";
        cout << wares[i].name();
        cout << "\nГод: ";
        cout << wares[i].year();
    }
    p = wares;
    for (i = 0; i<k; i++, p++)
    {
        cout << "\nНаименование товара: ";
        cout << p->name();
        cout << "\nГод: ";
        cout << p->year();
    }
    system("pause");
}
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.05.2014, 18:58
Ответы с готовыми решениями:

Объявите класс TCar, создающий тип – автомобиль
ВАРИАНТ 8 Объявите класс TCar, создающий тип – автомобиль. Элементы – данные класса – название автомобиля, год выпуска. ...

Объявите класс TGoods, создающий тип «Товар»
Не пойму, что не так. Сравнивает наименование товара и год производства только с последним элементом массива, а нужно со всем массивом....

Объявите класс TBook, создающий тип «Книга»
Есть задание: Объявите класс TBook, создающий тип «Книга». Определите элементы-данные класса: ― автор книги; ― название; ...

1
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
28.05.2014, 19:14
Во-первых, конструкторы опиши
C++
1
2
    TGoods() { _name[0] = '\0'; _year = 0; };
    TGoods(char *n, int y) { strcpy(_name, n); _year = y; };
Во-вторых, твои методы доступа к полям - это тоже самое, что сделать их public.
Нужно перегрузить операторы >> и << для ввода и вывода.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.05.2014, 19:14
Помогаю со студенческими работами здесь

Объявите класс Book, создающий тип «Книга»
Здравствуйте, уважаемые программисты, прошу помочь с написанием программы. Вот задание (С#): Объявите класс Book, создающий тип...

Объявите класс TCar, создающий тип "Автомобиль"
Объявите класс TCar, создающий тип «Автомобиль». Определите элементы-данные класса: ― марка автомобиля; ― год выпуска; ...

Класс создающий класс и любого его наследника
Есть класс: #pragma once #include &lt;string&gt; #include &quot;Entity.h&quot; class ObjectList { private: //Global List struct List_ {...

Класс создающий другой класс (ошибка)
Начал писать прогу, суть в том, что один класс должен создавать группу объектов другого класса, написал один класс - работало, а во втором...

Класс создающий классы
Есть задание, мне нужно создать класс который будет создвать классы лишь по их атрибутеам. Мне бы хотя бы пример класса который создает...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru