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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Структура "Студент" http://www.cyberforum.ru/cpp-beginners/thread1191604.html
Помогите пожалуйста разобраться в программе Тест. // test.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <iostream> #include <math.h> #include <windows.h> #include <cstdio>
C++ Разделение классовой функции из заголовка в .h + .cpp Пытаюсь разобрать заголовок на IAI.h + IAI.cpp столкнулся с функцией которую тупо не знаю как разбить правильно. Помогитепожа! :D friend ostream& operator<<(ostream& os, const sto& sto) { os << sto.num; return os; }если что, это функция для дружбы кастумного типа (sto) с std:cout http://www.cyberforum.ru/cpp-beginners/thread1191582.html
C++ Случайные блуждания с переменным шагом
не могу разобраться в задании, объясните матмоделью или алгоритмом, может кто то программой поможет Случайные блуждания с переменным шагом. Рассмотрите одномерное случайное блуждание со всеми допустимыми длинами прыжков. Вероятность того, что длина шага равна j, имеет вид P(j)=exp(-j). Определите удаление от начального положения после 10 шагов.
Длинная арифметика: вычислить 7^123 C++
Помогите пожалуйста!! Не могу справиться! Задание: вычислить 7123.
C++ Перегрузка функций: определите функцию, которая находит минимальное значение из двух чисел http://www.cyberforum.ru/cpp-beginners/thread1191554.html
Определите две функции с одним именем для решения задачи. Определите функцию, которая находит минимальное значение из двух чисел (числа могут быть целыми или действительными). #include "stdafx.h" #include <cstdlib> #include <iostream> using namespace std;
C++ Определите функцию, которая возвращает площадь треугольника, используя формулу Определите функцию, которая возвращает площадь треугольника, используя формулу S=sqrt(p(p-a)(p-b)(p-c)) где p=(a+b+c)/2 - полупериметр треугольника, - длины сторон треугольника. #include "stdafx.h" #include <iostream> #include <math.h> using namespace std; подробнее

Показать сообщение отдельно
Stifler24
Сообщений: n/a

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

28.05.2014, 18:58. Просмотров 272. Ответов 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");
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru