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

Описать структуру для хранения информации

11.02.2023, 19:21. Показов 837. Ответов 4

Студворк — интернет-сервис помощи студентам
Задание:
Описать структуру для хранения следующей информации данных о товарах:
-в наличии (номенклатурный №, наименование, ед.изм.(шт, кг, упаковки), цена);
-на складе (№ склада, № стеллажа, тип контейнера(белый, синий, красный));
-под заказ (№ заказа, фамилия, дата).
Написать программу, выполняющую следующие действия:
-добавление записи в массив; если в массиве нет места - вывести соответствующее сообщение;
-удаление записи из массива; если такой записи нет - вывести соответствующее сообщение;
-вывод всех записей массива.
Я могу неправильно понимать задание, но при создания такой структуры пользователь должен сам выбирать какую он создает структуру(в наличии,на складе,под заказ), в дальнейшем я еще должен магическим способом выводить данные из структуры, буду благодарен за кусочек или пример кода(задания описал для понятности что надо, нужен хотя бы пример как так колдовать).
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.02.2023, 19:21
Ответы с готовыми решениями:

Описать структуру для хранения данных о платежах
Нужно срочно написать, а не выходит(((( Описать структуру для хранения следующей информации (при необходимости используйте перечисления):...

Разработать объектную структуру для хранения информации о зачетной книжке
Разработать объектную структуру для хранения информации в зачетнойкнижке,а конкретно титульный лист зачетки.

Создать структуру для хранения информации о матрице переменных размерностей
помогите, пожалуйста, разобраться с заданием создать структуру для хранения информации о матрице переменных размерностей Struct Matr { ...

4
 Аватар для Fabien159
43 / 30 / 13
Регистрация: 20.12.2017
Сообщений: 147
13.02.2023, 01:24
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
#include <iostream>
#include <string>
 
struct Availability {
  int nomenclature_number;
  std::string name;
  std::string unit_of_measurement;
  float price;
};
 
struct Warehouse {
  int warehouse_number;
  int shelf_number;
  std::string container_type;
};
 
struct Order {
  int order_number;
  std::string surname;
  std::string date;
};
 
int main() {
  int option;
  std::cout << "Choose the type of data structure to create: " << std::endl;
  std::cout << "1. Availability" << std::endl;
  std::cout << "2. Warehouse" << std::endl;
  std::cout << "3. Order" << std::endl;
  std::cin >> option;
 
  if (option == 1) {
    Availability availabilityArray[100];
    int count = 0;
    // Perform actions on the AvailabilityArray here
  } else if (option == 2) {
    Warehouse warehouseArray[100];
    int count = 0;
    // Perform actions on the WarehouseArray here
  } else if (option == 3) {
    Order orderArray[100];
    int count = 0;
    // Perform actions on the OrderArray here
  } else {
    std::cout << "Invalid option." << std::endl;
  }
 
  return 0;
}
1
1 / 1 / 0
Регистрация: 15.10.2022
Сообщений: 14
13.02.2023, 18:19  [ТС]
А есть способ что бы объекты этих структур могли находиться в одном массиве, пользователь сам мог выбирать какую структуру ему пушить в массив? Я пробовал организовать union и запихнуть туда 3 объекта данных структур, но там нужно замарочится с конструктором по умолчанию.
0
Заблокирован
13.02.2023, 18:35
Лучший ответ Сообщение было отмечено Faith725 как решение

Решение

Faith725, std::variant или std::any
1
1 / 1 / 0
Регистрация: 15.10.2022
Сообщений: 14
01.03.2023, 20:29  [ТС]
Удалось решить без использования variant, через нереальные костыли, выложил код если кому он будет полезен, а так используйте std::variant



Code
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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
#include <iostream>
#include <string>
#define _CRT_SECURE_NO_WARNINGS
 
 
using namespace std;
 
struct Availability
{
    double coast;
    int price;
    string name;
 
    void FillInfo()
    {
        cout << "Номер товара\n"; cin >> coast;
        cout << "Цена\n"; cin >> price;
        cout << "Имя\n"; cin >> name;
    }
 
    void Showinfo()
    {
        cout << coast << '\t' << price << '\t' << name << '\n';
    }
 
};
 
 
struct Stock
{
    string type;
    int number_of_stock, number_of_shelf;
 
    
    void FillInfo()
    {
        cout << "Тип\n"; cin >> type;
        cout << "Номер 1\n"; cin >> number_of_stock;
        cout << "Номер 2\n"; cin >> number_of_shelf;
    }
 
    void Showinfo()
    {
        cout << type << '\t' << number_of_stock << '\t' << number_of_shelf << '\n';
    }
 
};
 
struct Order
{
    string data, surname ;
    int number_of_order;
 
    void FillInfo()
    {
        cout << "Дата\n"; cin >> data;
        cout << "Фамилия\n"; cin >> surname;
        cout << "Номер склада\n"; cin >> number_of_order;
    }
 
    void Showinfo()
    {
        cout << data << '\t' << surname << '\t' << number_of_order << '\n';
    }
 
};
 
struct Product
{
    
    Availability ava;
    Stock sto;
    Order ord;
 
};
 
void PushArr(Product product[], int* score, int index[], int pos/*позиция которую удалить*/, int select/*номер*/);
 
void AddProduct(Product product[], int* score, int index[]);
 
void ShowInfo(Product product[], const int score, int index[]);
 
void DeleteProduct(Product product[], int* score, int index[]);
 
void WorkWithProduct(Product product[], const int SIZE);
 
 
int main()
{
    setlocale(LC_ALL, "rus");
    system("chcp 1251");
 
 
    cout << "Есть 3 продукт, каждый продукст может быть как на складе в наличии и под заказ" << endl << "Суть программы добавлять или удалять записи о этих вещах" << endl;
    cout << "Вналичии(номер, имя,цена)" << endl;
    cout << "На складе(тип,номер склада,номер стелажа)" << endl;
    cout << "Под заказ(дата, фамилия,номер заказа)" << endl;
 
    const int SIZE = 3;
    Product product[SIZE];
    
    
    WorkWithProduct(product,SIZE);
 
 
    return 0;
}
 
 
void AddProduct(Product product[], int* score,int index[])
{
    cout << "Какого типа ваш товар?\n1-вналичии\n2-на складе\n3-под заказ\n";
    int choise; cin >> choise;
 
    bool is_correct = false;
 
    while (!is_correct)
    {
 
        if (choise == 1)
        {
            product[*score].ava.FillInfo();
            index[*score] = 1;
            (*score)++;
            is_correct = true;
        }
 
        else if (choise == 2)
        {
            product[*score].sto.FillInfo();
            index[*score] = 2;
            (*score)++;
            is_correct = true;
        }
 
        else if (choise == 3)
        {
            product[*score].ord.FillInfo();
            index[*score] = 3;
            (*score)++;
            is_correct = true;
        }
 
        else
        {
            cout << "Данные введены неверно пожалуйсту повторите попытку ввода\n";
        }
    }
}
 
void WorkWithProduct(Product product[],const int SIZE)
{
    int score = 0;
    int index[3]; for (int i = 0; i < 3; i++) { index[i] = 0; }//для вывода индекст где какой товар 
    int action=1;
 
    cout << "Введите действие\n1-Добавить товар в список\n2-Убрать товар из списка\n3-Вывести информацию\nДругая цыфра-выход\n";
    cin >> action;
 
    while (action==1 || action==2 || action==3)
    {
        if (action == 1)
        {
            if (score == 3)
            {
                cout << "Список переполнен\n";
            }
 
            else
            {
                AddProduct(product, &score, index);
            }
        }
 
        else if (action == 2)
        {
            if (score == 0)
            {
                cout << "Список пуст\n";
            }
 
            else
            {
                DeleteProduct(product,&score,index);
            }
        }
 
        else if (action == 3)
        {
            ShowInfo(product, score, index);
        }
 
        cout << "Введите действие\n";
        cin >> action;
    }
 
}
 
void DeleteProduct(Product product[], int* score,int index[])
{
    cout << "Показ информации перед удаление\n";
    ShowInfo(product, *score, index);
 
    cout<<"Выберете какой товар вы хотите удалить\n1-вналичии\n2-на складе\n3-под заказ\n";
    int choise; cin >> choise;
 
    cout << "Введите номер какой вы хотите удалить\n";
    int number; cin >> number;
 
    if (choise==1)
    {
        PushArr(product, score, index, number, 1);
    }
 
    else if (choise==2)
    {
 
        PushArr(product, score, index, number, 2);
    }
 
    else if (choise==3)
    {
 
        PushArr(product, score, index, number, 3);
    }
 
    else
    {
        cout << "Оу не нарушай правила BROOOO\n";
    }
}
 
void ShowInfo(Product product[],const int score,int index[])
{
    cout << "Вналичии\n";
    for (int i=0;i< score;i++)
    {
        if (index[i]==1)
        {
            cout << "Номер " << i + 1<<"  ";
            product[i].ava.Showinfo();
        }
    }
 
    cout << "На складе\n";
    for (int i = 0; i < score; i++)
    {
        if (index[i] == 2)
        {
            cout << "Номер " << i + 1 << "  ";
            product[i].sto.Showinfo();
        }
    }
 
    cout << "Под заказ\n";
    for (int i = 0; i < score; i++)
    {
        if (index[i] == 3)
        {
            cout << "Номер " << i + 1 << "  ";
            product[i].ord.Showinfo();
        }
    }
 
    cout << '\n';
}
 
void PushArr(Product product[],int *score,int index[],int pos/*позиция которую удалить*/, int select/*номер*/)
{
    int k = 0;
    for (int i=0;i<*score;i++)
    {
        if (index[i]==select)
        {
            if (k==pos-1)
            {
                int j;
                for (j=i;j<*score-1;j++)
                {
                    index[j] = index[j + 1];
                    product[j] = product[j + 1];
                }
                index[*score] = 0;
                (*score)--;
            }
            else
            {
                k++;
            }
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.03.2023, 20:29
Помогаю со студенческими работами здесь

Описать струкутуру для хранения информации об автомобилях
Описать структуру для хранения следующей информации: код владельца номер авто марка авто год выпуска Добавить возможность...

Разработать объектную структуру для хранения информации в титульном листе зачетной книжки
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; struct Zacetka {int nomer_zacetki; int nomer_prikaza; ...

Описать абстрактный класс для хранения информации геометрических фигурах.
Описать абстрактный класс для хранения информации геометрических фигурах.Использовать его тестовой программе. я попробовал описать с...

Описать структуру для обработки информации о студентах
Информация включает в себя: ФИО студента. Группа. Пол. Экзаменационные оценки по высшей математике, вычислительной математике и...

Сформировать структуру AEROFLOT для хранения следующей информации номер рейса название пункта назначения рейса тип самолета
Сформировать структуру AEROFLOT для хранения следующей информации: · номер рейса; · название пункта назначения рейса; · тип...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru