Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
denstan
0 / 0 / 0
Регистрация: 22.12.2013
Сообщений: 28
#1

Не могу понять правильно ли сделана?

24.12.2013, 16:37. Просмотров 781. Ответов 29
Метки нет (Все метки)

В радиоателье хранятся квитанции о сданной в ремонт радиоаппарату-
ре. Каждая квитанция содержит следующую информацию: наименование груп-
пы изделий (телевизоры, радиоприемники и т. п.), марку изделия, дату приемки
в ремонт, состояние готовности заказа (выполнен, не выполнен). Вывести ин-
формацию о состоянии заказов на текущие сутки для заданной группы изделий.
Кликните здесь для просмотра всего текста

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
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <cstdlib>
 
class GoodsItem
{
public:
    std::string name, shop, manufacture;
    int year, price;
    friend bool operator < (const GoodsItem &item1, const GoodsItem &item2);
};
 
std::ostream& operator << (std::ostream &out, const GoodsItem &value);
 
class GoodsStore : public std::vector<GoodsItem>
{
public:
    void input(const int &amount);
    void printSelected(const int &price);
};
 
std::ostream &operator << (std::ostream &out, const GoodsStore &value);
 
int main(int argc, char *argv[])
{
    setlocale(LC_ALL, "Russian");
 
    bool running(true);
    GoodsStore store;
 
    while (running) 
    {
        int caseInput;
        std::cout   << "\nViberite deistvie:\n"
                    << "1.Vvod\n" 
                    << "2.Vivod\n" 
                    << "3.Vivod po gotovnosti\n" 
                    << "4.vihod\n\n";
        std::cin >> caseInput;
 
        switch (caseInput)
        {
        case 1:
            int amount;
            std::cout << "Vvedite kol-vo zapisey: ";
            std::cin >> amount;
            store.input(amount);
            std::sort(store.begin(), store.end());
            break;
        case 2:
            std::cout << store;
            break;
        case 3:
            int price;
            std::cout << "gotovnost: ";
            std::cin >> price;
            store.printSelected(price);
            break;
        default:
            running = false;
        }
    }
 
    return EXIT_SUCCESS;
}
 
std::ostream& operator << (std::ostream &out, const GoodsItem &value)
{
    out << " Nazvanie izdeliya:    ;"   << value.name 
        << " marka izdeliya:    ;"  << value.manufacture
        << " data priema v remont:    ;"     << value.year 
        << " Gotovnost:   ;"    << value.price
 
        << std::endl;
    return out;
}
 
std::ostream &operator << (std::ostream &out, const GoodsStore &value) 
{
    out << "Perechen tovarov:" << std::endl;
    for (int i = 0; i < value.size(); ++i)
        out << value[i];
    return out;
}
 
bool operator < (const GoodsItem &item1, const GoodsItem &item2)
{
    return item1.price < item2.price;
}
 
void GoodsStore::input(const int &amount) 
{
    for (int i = 0; i < amount; ++i) {
        GoodsItem item;
 
        std::cout << "Vvedite Nazvanie izdeliya: ";
        std::cin >> item.name;
        std::cout << "Vvedite marky izdeliya: ";
        std::cin >> item.manufacture;
        std::cout << "Vvedite data priema v remont: ";
        std::cin >> item.year;
        std::cout << "Vvedite sostoyanie zakaza: ";
        std::cin >> item.price;
 
 
        this->push_back(item);
    }
}
 
void GoodsStore::printSelected(const int &price) 
{
    std::vector<GoodsItem>::iterator item = end();
    for (std::vector<GoodsItem>::iterator it = begin(); it != end(); ++it)
        if (price == it->price) item = it;
 
    if (item == end()) 
    {
        std::cout << "Zakaz Gotov " << price << " Ne gotov" << std::endl;
    }
    else std::cout << (*item) << std::endl;
}


Добавлено через 2 минуты
лепил с другой программы,
заметил ошибкку: когда ввожу дату приёма в ремон в формате 12.12.13 либо 12/12/13 программа зависает.
как можно исправить?

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2013, 16:37
Ответы с готовыми решениями:

не могу понять че тут не правильно
задание: Дана последовательность чисел а1,а2,...,аn. Указать наименьшую длину...

Не могу понять как написать правильно.
Не могу понять как это написать правильно. Оно даже не компилируется. ...

Не могу понять почему программа работает не правильно!
Задание: Программа находит в строке 1 символ который не входит во 2 заданную...

Не могу понять как правильно считать строки
Задача: Задача1. «Поиск в строке» Самым популярным вопросом прошлого...

Не могу понять как правильно сделать задачу с функциями
В рамках университетского Дня спорта в соревнованиях по кроссу участвуют...

29
alsav22
5439 / 4834 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
24.12.2013, 16:50 #2
Цитата Сообщение от denstan Посмотреть сообщение
как можно исправить?
1) Заменить тип year на string. 2) Сделать дату отдельной структурой с тремя полями int: день, месяц, год.
0
denstan
0 / 0 / 0
Регистрация: 22.12.2013
Сообщений: 28
24.12.2013, 18:49  [ТС] #3
Цитата Сообщение от alsav22 Посмотреть сообщение
1) Заменить тип year на string. 2) Сделать дату отдельной структурой с тремя полями int: день, месяц, год.
а можешь по подробнее написть про Сделать дату отдельной структурой с тремя полями int: день, месяц, год.

Добавлено через 10 минут
правильно ли я выполнил условие?
0
alsav22
5439 / 4834 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
24.12.2013, 18:53 #4
Цитата Сообщение от denstan Посмотреть сообщение
про Сделать дату отдельной структурой с тремя полями int: день, месяц, год.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class GoodsItem
{
public:
    std::string name, shop, manufacture;
    struct date
    {
        int day;
        int month;
        int year;
    };
    int price;
    friend bool operator < (const GoodsItem &item1, const GoodsItem &item2);
};
2
denstan
0 / 0 / 0
Регистрация: 22.12.2013
Сообщений: 28
25.12.2013, 16:02  [ТС] #5
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
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <cstdlib>
 
class GoodsItem
{
public:
    std::string name, shop, manufacture;
   
    struct date
    {
        int day;
        int month;
        int year;
    };
     int  price;
    friend bool operator < (const GoodsItem &item1, const GoodsItem &item2);
};
 
std::ostream& operator << (std::ostream &out, const GoodsItem &value);
 
class GoodsStore : public std::vector<GoodsItem>
{
public:
    void input(const int &amount);
    void printSelected(const int &price);
};
 
std::ostream &operator << (std::ostream &out, const GoodsStore &value);
 
int main(int argc, char *argv[])
{
    setlocale(LC_ALL, "Russian");
 
    bool running(true);
    GoodsStore store;
 
    while (running) 
    {
        int caseInput;
        std::cout   << "\nViberite deistvie:\n"
                    << "1.Vvod\n" 
                    << "2.Vivod\n" 
                    << "3.Vivod po cene\n" 
                    << "4.vihod\n\n";
        std::cin >> caseInput;
 
        switch (caseInput)
        {
        case 1:
            int amount;
            std::cout << "Vvedite kol-vo zapisey: ";
            std::cin >> amount;
            store.input(amount);
            std::sort(store.begin(), store.end());
            break;
        case 2:
            std::cout << store;
            break;
        case 3:
            int price;
            std::cout << "Gotovnost: ";
            std::cin >> price;
            store.printSelected(price);
            break;
        default:
            running = false;
        }
    }
 
    return EXIT_SUCCESS;
}
 
std::ostream& operator << (std::ostream &out, const GoodsItem &value)
{
    out << " Nazvanie izdeliya: "   << value.name 
        << " marka izdeliya: "  << value.manufacture
        << " data priema v remont: "     << value.date 
        << " CeNa: "    << value.price
        << " Magazin: " << value.shop
        << std::endl;
    return out;
}
 
std::ostream &operator << (std::ostream &out, const GoodsStore &value) 
{
    out << "Perechen tovarov:" << std::endl;
    for (int i = 0; i < value.size(); ++i)
        out << value[i];
    return out;
}
 
bool operator < (const GoodsItem &item1, const GoodsItem &item2)
{
    return item1.price < item2.price;
}
 
void GoodsStore::input(const int &amount) 
{
    for (int i = 0; i < amount; ++i) {
        GoodsItem item;
 
        std::cout << "Vvedite Nazvanie izdeliya: ";
        std::cin >> item.name;
        std::cout << "Vvedite marky izdeliya: ";
        std::cin >> item.manufacture;
        std::cout << "Vvedite data priema v remont: ";
        std::cin >> item.date;
        std::cout << "Vvedite sostoyanie zakaza: ";
        std::cin >> item.price;
        std::cout << "Vvedite nazvanie magaziNa: ";
        std::cin >> item.shop;
 
        this->push_back(item);
    }
}
 
void GoodsStore::printSelected(const int &price) 
{
    std::vector<GoodsItem>::iterator item = end();
    for (std::vector<GoodsItem>::iterator it = begin(); it != end(); ++it)
        if (price == it->price) item = it;
 
    if (item == end()) 
    {
        std::cout << "Zakaz Gotov " << price << " Ne gotov" << std::endl;
    }
    else std::cout << (*item) << std::endl;
}

выдает ошибку
C:\Users\DenStan\Desktop\789\789.cpp(81) : error C2274: 'function-style cast' : illegal as right side of '.' operator
C:\Users\DenStan\Desktop\789\789.cpp(110) : error C2274: 'function-style cast' : illegal as right side of '.' operator

Добавлено через 1 минуту
указывает на строчки 81 и 110
0
alsav22
5439 / 4834 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.12.2013, 16:08 #6
Чтобы вот так писать:
C++
1
2
 << value.date 
 std::cin >> item.date;
нужно перегрузить соответствующие операторы. Или делать ввод/вывод полями date:
C++
1
2
<< value.date.day
std::cin >> item.date.day;
0
denstan
0 / 0 / 0
Регистрация: 22.12.2013
Сообщений: 28
25.12.2013, 19:41  [ТС] #7
Цитата Сообщение от alsav22 Посмотреть сообщение
Чтобы вот так писать:
C++
1
2
 << value.date 
 std::cin >> item.date;
нужно перегрузить соответствующие операторы. Или делать ввод/вывод полями date:
C++
1
2
<< value.date.day
std::cin >> item.date.day;
C:\Users\DenStan\Desktop\789\789.cpp(80) : error C2274: 'function-style cast' : illegal as right side of '.' operator
C:\Users\DenStan\Desktop\789\789.cpp(81) : error C2228: left of '.day' must have class/struct/union type
C:\Users\DenStan\Desktop\789\789.cpp(110) : error C2274: 'function-style cast' : illegal as right side of '.' operator
C:\Users\DenStan\Desktop\789\789.cpp(110) : error C2228: left of '.day' must have class/struct/union type
0
alsav22
5439 / 4834 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.12.2013, 19:54 #8
Вижу свои предложения и ошибки компилятора, но не вижу, что и как сделано. Ясновидящих тут нет.
0
denstan
0 / 0 / 0
Регистрация: 22.12.2013
Сообщений: 28
25.12.2013, 19:56  [ТС] #9
избавился от ошибок, но когда запускаю...выводит вот что:
0
Миниатюры
Не могу понять правильно ли сделана?  
denstan
0 / 0 / 0
Регистрация: 22.12.2013
Сообщений: 28
25.12.2013, 19:58  [ТС] #10
это понятно)

Добавлено через 1 минуту
Цитата Сообщение от alsav22 Посмотреть сообщение
Вижу свои предложения и ошибки компилятора, но не вижу, что и как сделано. Ясновидящих тут нет.
Вот код кот. сейчас

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
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <cstdlib>
 
class GoodsItem
{
public:
    std::string name,  manufacture;
   
    struct date
    {
        int day;
        int month;
        int year;
    }d;
     int  price;
    friend bool operator < (const GoodsItem &item1, const GoodsItem &item2);
};
 
std::ostream& operator << (std::ostream &out, const GoodsItem &value);
 
class GoodsStore : public std::vector<GoodsItem>
{
public:
    void input(const int &amount);
    void printSelected(const int &price);
};
 
std::ostream &operator << (std::ostream &out, const GoodsStore &value);
 
int main(int argc, char *argv[])
{
    bool running(true);
    GoodsStore store;
 
    while (running) 
    {
        int caseInput;
        std::cout   << "\nViberite deistvie:\n"
                    << "1.Vvod\n" 
                    << "2.Vivod\n" 
                    << "3.Vivod po cene\n" 
                    << "4.vihod\n\n";
        std::cin >> caseInput;
 
        switch (caseInput)
        {
        case 1:
            int amount;
            std::cout << "Vvedite kol-vo zapisey: ";
            std::cin >> amount;
            store.input(amount);
            std::sort(store.begin(), store.end());
            break;
        case 2:
            std::cout << store;
            break;
        case 3:
            int price;
            std::cout << "Gotovnost: ";
            std::cin >> price;
            store.printSelected(price);
            break;
        default:
            running = false;
        }
    }
 
    return EXIT_SUCCESS;
}
 
std::ostream& operator << (std::ostream &out, const GoodsItem &value)
{
    out << " Nazvanie izdeliya: "   << value.name 
        << " marka izdeliya: "  << value.manufacture
        << " den priema v remont: "     << value.d.day
        << " mesyac priema v remont: "     << value.d.month
        << " god priema v remont: "     << value.d.year
        << " Gotovnost: "    << value.price
 
        << std::endl;
    return out;
}
 
std::ostream &operator << (std::ostream &out, const GoodsStore &value) 
{
    out << "Perechen izdeliy:" << std::endl;
    for (int i = 0; i < value.size(); ++i)
        out << value[i];
    return out;
}
 
bool operator < (const GoodsItem &item1, const GoodsItem &item2)
{
    return item1.price < item2.price;
}
 
void GoodsStore::input(const int &amount) 
{
    for (int i = 0; i < amount; ++i) {
        GoodsItem item;
 
        std::cout << "Vvedite Nazvanie izdeliya: ";
        std::cin >> item.name;
        std::cout << "Vvedite marky izdeliya: ";
        std::cin >> item.manufacture;
        std::cout << "Vvedite den priema v remont: ";
        std::cin >> item.d.day;
        std::cout << "Vvedite mecyac priema v remont: ";
        std::cin >> item.d.month;
        std::cout << "Vvedite god priema v remont: ";
        std::cin >> item.d.year;
        std::cout << "Vvedite sostoyanie zakaza: ";
        std::cin >> item.price;
 
 
        this->push_back(item);
    }
}
 
void GoodsStore::printSelected(const int &price) 
{
    std::vector<GoodsItem>::iterator item = end();
    for (std::vector<GoodsItem>::iterator it = begin(); it != end(); ++it)
        if (price == it->price) item = it;
 
    if (item == end()) 
    {
        std::cout << "Zakaz Gotov " << price << " Ne gotov" << std::endl;
    }
    else std::cout << (*item) << std::endl;
}
0
alsav22
5439 / 4834 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.12.2013, 20:03 #11
Цитата Сообщение от denstan Посмотреть сообщение
избавился от ошибок,
Только хотел написать, что забыл указать создание поля самой структуры в классе, а вы уже сами исправили. Мой косяк, прошу прощения.
1
denstan
0 / 0 / 0
Регистрация: 22.12.2013
Сообщений: 28
25.12.2013, 20:10  [ТС] #12
ничего страшного=)

Добавлено через 1 минуту
Цитата Сообщение от alsav22 Посмотреть сообщение
Только хотел написать, что забыл указать создание поля самой структуры в классе, а вы уже сами исправили. Мой косяк, прошу прощения.
програма работает на 50%
она зависает когда ввожу данные
0
alsav22
5439 / 4834 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.12.2013, 20:18 #13
Сейчас посмотрю.

Добавлено через 5 минут
Вы, в input(), создаёте локальный объект класса, который уже не существует при выходе из функции. Нужно в main() его создавать и передавать по ссылке в input(). Почему operator>> не перегрузили в классе? Напрашивается.
1
denstan
0 / 0 / 0
Регистрация: 22.12.2013
Сообщений: 28
25.12.2013, 20:23  [ТС] #14
Цитата Сообщение от alsav22 Посмотреть сообщение
Сейчас посмотрю.

Добавлено через 5 минут
Вы, в input(), создаёте локальный объект класса, который уже не существует при выходе из функции. Нужно в main() его создавать и передавать по ссылке в input(). Почему operator>> не перегрузили в классе? Напрашивается.
вы про этот участок кода говорите? не совсем понял вас..

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
int main(int argc, char *argv[])
{
    bool running(true);
    GoodsStore store;
 
    while (running) 
    {
        int caseInput;
        std::cout   << "\nViberite deistvie:\n"
                    << "1.Vvod\n" 
                    << "2.Vivod\n" 
                    << "3.Vivod po gotovnosti\n" 
                    << "4.vihod\n\n";
        std::cin >> caseInput;
 
        switch (caseInput)
        {
        case 1:
            int amount;
            std::cout << "Vvedite kol-vo zapisey: ";
            std::cin >> amount;
            store.input(amount);
            std::sort(store.begin(), store.end());
            break;
        case 2:
            std::cout << store;
            break;
        case 3:
            int price;
            std::cout << "Gotovnost: ";
            std::cin >> price;
            store.printSelected(price);
            break;
        default:
            running = false;
        }
    }
 
    return EXIT_SUCCESS;
}
0
alsav22
5439 / 4834 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.12.2013, 20:26 #15
Опять не то написал.

Добавлено через 29 секунд
Цитата Сообщение от denstan Посмотреть сообщение
не совсем понял вас..
И правильно сделали.
0
denstan
0 / 0 / 0
Регистрация: 22.12.2013
Сообщений: 28
25.12.2013, 20:37  [ТС] #16
так в чём косяк??
никак понять не могу...
0
alsav22
5439 / 4834 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.12.2013, 20:39 #17
Перевод строк нужно добавить в оператор <<, а так у меня работает.
0
Миниатюры
Не могу понять правильно ли сделана?  
alsav22
5439 / 4834 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.12.2013, 20:47 #18
И я бы не стал наследовать класс от std::vector. Можно просто создать std::vector<GoodsItem>.
0
denstan
0 / 0 / 0
Регистрация: 22.12.2013
Сообщений: 28
25.12.2013, 21:00  [ТС] #19
Цитата Сообщение от alsav22 Посмотреть сообщение
Перевод строк нужно добавить в оператор <<, а так у меня работает.
так это как?
\n куда именно вставить нужно?

Добавлено через 3 минуты
Цитата Сообщение от alsav22 Посмотреть сообщение
И я бы не стал наследовать класс от std::vector. Можно просто создать std::vector<GoodsItem>.
std::vector<GoodsItem>
так он же вроде как есть...
C++
1
2
3
4
5
6
class GoodsStore : public std::vector<GoodsItem>
{
public:
    void input(const int &amount);
    void printSelected(const int &price);
};
C++
1
2
3
4
5
void GoodsStore::printSelected(const int &price) 
{
    std::vector<GoodsItem>::iterator item = end();
    for (std::vector<GoodsItem>::iterator it = begin(); it != end(); ++it)
        if (price == it->price) item = it;
Добавлено через 8 минут
Цитата Сообщение от alsav22 Посмотреть сообщение
Перевод строк нужно добавить в оператор <<, а так у меня работает.
можете скинуть код этот код скинуть?? если вы его меняли
0
alsav22
5439 / 4834 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.12.2013, 21:06 #20
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
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <cstdlib>
 
class GoodsItem
{
public:
    std::string name,  manufacture;
   
    struct date
    {
        int day;
        int month;
        int year;
    }d;
     int  price;
    friend bool operator < (const GoodsItem &item1, const GoodsItem &item2);
};
 
std::ostream& operator << (std::ostream &out, const GoodsItem &value);
std::ostream &operator << (std::ostream &out, const std::vector<GoodsItem>& value);  
void input(std::vector<GoodsItem>& store, const int &amount);
void printSelected(std::vector<GoodsItem>& store, const int &price);
 
 
int main(int argc, char *argv[])
{
    bool running(true);
    std::vector<GoodsItem> store;
 
    while (running) 
    {
        int caseInput;
        std::cout   << "\nViberite deistvie:\n"
                    << "1.Vvod\n" 
                    << "2.Vivod\n" 
                    << "3.Vivod po cene\n" 
                    << "4.vihod\n\n";
        std::cin >> caseInput;
 
        switch (caseInput)
        {
        case 1:
            int amount;
            std::cout << "Vvedite kol-vo zapisey: ";
            std::cin >> amount;
            input(store, amount);
            std::sort(store.begin(), store.end());
            break;
        case 2:
            std::cout << store;
            break;
        case 3:
            int price;
            std::cout << "Gotovnost: ";
            std::cin >> price;
            printSelected(store, price);
            break;
        default:
            running = false;
        }
    }
 
    return EXIT_SUCCESS;
}
 
std::ostream& operator << (std::ostream &out, const GoodsItem &value)
{
    out << " Nazvanie izdeliya: "   << value.name << std::endl 
        << " marka izdeliya: "  << value.manufacture << std::endl
        << " den priema v remont: "     << value.d.day << std::endl
        << " mesyac priema v remont: "     << value.d.month << std::endl
        << " god priema v remont: "     << value.d.year << std::endl
        << " Gotovnost: "    << value.price << std::endl
 
        << std::endl;
    return out;
}
 
std::ostream &operator << (std::ostream &out, const std::vector<GoodsItem>& value) 
{
    out << "Perechen izdeliy:" << std::endl;
    for (int i = 0; i < value.size(); ++i)
        out << value[i];
    return out;
}
 
bool operator < (const GoodsItem &item1, const GoodsItem &item2)
{
    return item1.price < item2.price;
}
 
void input(std::vector<GoodsItem>& store, const int &amount) 
{
    for (int i = 0; i < amount; ++i) {
        GoodsItem item;
 
        std::cout << "Vvedite Nazvanie izdeliya: ";
        std::cin >> item.name;
        std::cout << "Vvedite marky izdeliya: ";
        std::cin >> item.manufacture;
        std::cout << "Vvedite den priema v remont: ";
        std::cin >> item.d.day;
        std::cout << "Vvedite mecyac priema v remont: ";
        std::cin >> item.d.month;
        std::cout << "Vvedite god priema v remont: ";
        std::cin >> item.d.year;
        std::cout << "Vvedite sostoyanie zakaza: ";
        std::cin >> item.price;
 
 
        store.push_back(item);
    }
}
 
void printSelected(std::vector<GoodsItem>& store, const int &price) 
{
    std::vector<GoodsItem>::iterator item = store.end();
    for (std::vector<GoodsItem>::iterator it = store.begin(); it != store.end(); ++it)
        if (price == it->price) item = it;
 
    if (item == store.end()) 
    {
        std::cout << "Zakaz Gotov " << price << " Ne gotov" << std::endl;
    }
    else std::cout << (*item) << std::endl;
}
0
25.12.2013, 21:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2013, 21:06

Написал программу, не могу понять правильно или нет
Написать функцию sum с переменным числом параметров, которая находит сумму...

Не могу понять, как правильно передать указатель на объект в файл
Есть вектор v, который надо отсортировать. Есть класс MergeSort, который это...

Правильно ли сделана программа?
Здравствуйте, такая задачка для олимпиады: Написал данный код(Без...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

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