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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Stifler24
Сообщений: n/a
#1

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

28.05.2014, 18:58. Просмотров 292. Ответов 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");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2014, 18:58     Класс TGoods, создающий тип – товар
Посмотрите здесь:

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

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

Реализовать класс, описывающий товар на складе - C++
2. «Работа со стандартной библиотекой шаблонов». На языке С++ реализовать класс, описывающий товар на складе, содержащий поля:...

Используя класс отыскать самый дорогой товар и вывести скидки на товары - C++
Помогите пожалуста с задачей: создать программу которая формирует накладную на три товара, и используя класс отыскать самый дорогой товар...

Создайте базовый абстрактный класс «Товар» с чистой виртуальной функцией вывода данных - C++
Создайте базовый абстрактный класс «Товар» с чистой виртуальной функцией вывода данных. В этом классе должны быть элементы данных,...

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

Переназвать тип переменной или класс - C++
Помогите новичку, пожалуста! Куда копать? Надо вместо int использовать класс jint. Просто создать класс того-же типа или тип...

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

Объявленный класс не воспринимается как тип - C++
Подскажите почему вылетает эта ошибка?

Описать класс, реализующий тип данных «вещественная матрица» - C++
Уважаемые гении программирования)) Помогите, пожалуйста написать программу на С++ (VS 2008). Заранее огромное спасибо))) Описать...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
5241 / 4561 / 1532
Регистрация: 14.04.2014
Сообщений: 18,146
28.05.2014, 19:14     Класс TGoods, создающий тип – товар #2
Во-первых, конструкторы опиши
C++
1
2
    TGoods() { _name[0] = '\0'; _year = 0; };
    TGoods(char *n, int y) { strcpy(_name, n); _year = y; };
Во-вторых, твои методы доступа к полям - это тоже самое, что сделать их public.
Нужно перегрузить операторы >> и << для ввода и вывода.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru