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

Написать программу для учета сведений о количестве изделий категорий

03.10.2022, 15:52. Показов 1340. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Буду признателен тем кто поможет написать эту монструозную программы в которой нужны функции для удаления записей ,функцию поиска данных ,функцию сортировки записей по одному из полей. Написать программу для учета сведений о количестве изделий категорий А, В, С, собранных рабочим за месяц. Структура записи имеет поля - фамилия, имя, отчество сборщика, наименование цеха, количество изделий, категория.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.10.2022, 15:52
Ответы с готовыми решениями:

Написать программу для учета сведений о количестве изделий категорий А, В, С, собранных рабочим за месяц
Написать программу для учета сведений о количестве изделий категорий А, В, С, собранных рабочим за месяц. Структура записи имеет поля -...

Написать программу для учета сведений о командировках сотрудников предприятия
Написать программу для учета сведений о командировках сотрудников предприятия. Каждая запись содержит поля - фамилия, имя, отчество, дата...

Написать программу для учета сведений об ассортименте товаров в магазине
Написать программу для учета сведений об ассортименте товаров в магазине. Структура записи - название товара, цена, количество. В...

5
 Аватар для Tanya2007
593 / 230 / 72
Регистрация: 13.05.2020
Сообщений: 412
03.10.2022, 16:01
Выкладывайте что у вас уже написано.
0
 Аватар для ram876
759 / 456 / 213
Регистрация: 19.12.2016
Сообщений: 1,815
03.10.2022, 16:12
Цитата Сообщение от Tanya2007 Посмотреть сообщение
уже написано.
int main(){}
0
 Аватар для Tanya2007
593 / 230 / 72
Регистрация: 13.05.2020
Сообщений: 412
03.10.2022, 16:15
Цитата Сообщение от ram876 Посмотреть сообщение
int main(){}
да, смешно)
0
0 / 0 / 0
Регистрация: 02.10.2022
Сообщений: 3
03.10.2022, 17:44  [ТС]
если бы было что-то выложил
0
 Аватар для Tanya2007
593 / 230 / 72
Регистрация: 13.05.2020
Сообщений: 412
04.10.2022, 21:59
main.cpp

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
#include <windows.h>
#include "products.h"
 
int main ()
{
    setlocale(LC_ALL, "Russian");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);   
    
    char ch, ch_data;
    string search;
    products* pr_tmp;
    int search_int;
    category cat_sh;
    
    do                                                      //вносим первоначальные данные
    {
        pr_tmp = new products;
        pr_tmp->get_data();
        list_product.push_back (pr_tmp);
        cout << "\nПродолжить ввод записей? (Y/N): "; 
        cin >> ch;
        cin.ignore(100, '\n');
    }while(ch != 'N');
    
    do
    {
        cout << "\nВыберите действие (D - удалить данные, S - сортировка данных по фамилии работника,\nP - поиск данных, A - вывести все данные, Q - добавить данные): ";
        cin >> ch_data;
        cin.ignore(100, '\n');
        if (ch_data == 'D')
        {
            delete_entry();                 //удаляем данные
        }
        else if (ch_data == 'S')
        {
            sort_data();                    //сортировка по фамилии
        }
        else if (ch_data == 'P')
        {
            search_data();                  //поиск данных
        }
        else if (ch_data == 'A')
        {
            for (iter_product = list_product.begin(); iter_product != list_product.end(); iter_product++)
            {
                cout << "-------------------------------------------------------";
                (*iter_product)->show_data();//вывод данных на экран
                cout << "-------------------------------------------------------";
            }
        }
        else if (ch_data == 'Q')
        {
            pr_tmp = new products;          //добавляем новые данные
            pr_tmp->get_data();
            list_product.push_back (pr_tmp);
        }
        cout << "\nПродолжить работу? (Y/N): ";
        cin >> ch;
    }while (ch !='N');
    
    for (iter_product = list_product.begin(); iter_product != list_product.end(); iter_product++)
    {
        delete (*iter_product);             //очищаем память, выделенную путем new
    }
    
    system("pause");
    return 0;
}

products.cpp

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
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
293
294
295
296
297
298
299
300
301
302
303
304
305
#include "products.h"
 
list<products*> list_product;
list<products*>::iterator iter_product;
    
products::products()
{
}
 
products::~products()
{
}
 
void products::get_data()               //метод класса для ввода данных
{
    cout << "\nВведите фамилию рабочего: "; getline(cin, surname);
    cout << "\nВведите имя рабочего: "; getline(cin, name);
    cout << "\nВведите отчество рабочего: "; getline(cin, patronymic);
    cout << "\nВведите наименование цеха: "; getline(cin, name_workshop);
    char ch;
    do
    {
        cout << "\nВведите категорию изделий (A, B или C)(англ.): "; cin >> ch;
        if (ch == 'A')
        {
            category_products = A;
            break;
        }
        else if(ch == 'B')
        {
            category_products = B;
            break;
        }
        else if(ch == 'C')
        {
            category_products = C;
            break;
        }
        else
        {
            cout << "\nНет такой категории!";
        }
    }while(true);
    cout << "\nВведите количество изделий: "; cin >> number_products;
}
 
void products::show_data() const            //метод для вывода на экран
{
    cout << "\nФамилия рабочего: " << surname << endl;
    cout << "\nИмя: " << name << endl;
    cout << "\nОтчество: " << patronymic << endl;
    cout << "\nЦех: " << name_workshop << endl;
    cout << "\nКоличество изделий: " << number_products << endl;
    if (category_products == A)
    {
        cout << "\nКатегория изделий: A" << endl;
    }
    else if(category_products == B)
    {
        cout << "\nКатегория изделий: B" << endl;
    }
    else
    {
        cout << "\nКатегория изделий: C" << endl;
    }   
}
 
products* products::delete_entry(string string_search)//методы для удаления в зависимости от аргумента
{
    if (surname == string_search || name == string_search 
            || patronymic == string_search || name_workshop == string_search)
    {
        return this;
    }
    return 0x0;
}
 
products* products::delete_entry(int kol)
{
    if (number_products == kol)
    {
        return this;
    }
    return 0x0;
}
 
products* products::delete_entry(category cat)
{
    if (category_products == cat)
    {
        return this;
    }
    return 0x0;
}
 
void products::data_search(string string_search)    //методы для поиска в зависимости от аргумента
{
    if (surname == string_search || name == string_search 
            || patronymic == string_search || name_workshop == string_search)
    {
        show_data();
    }
}
 
void products::data_search(int kol)
{
    if (number_products == kol)
    {
        show_data();
    }
}
 
void products::data_search(category cat)
{
    if (category_products == cat)
    {
        show_data();
    }
}
 
bool operator < (const products& p1, const products& p2)//дружественные функции класса для сравнения фамилий и имен (для сортировки)
{
    if(p1.surname == p2.surname)
    {
        return (p1.name < p2.name) ? true : false;
    }
    return (p1.surname < p2.surname) ? true : false;
}
 
bool operator == (const products& p1, const products& p2)
{
    return (p1.surname == p2.surname && p1.name == p2.name) ? true : false;
}
 
void delete_entry()                                     //функция удаления данных
{
    char ch;
    string search;
    products* pr_tmp;
    int search_int;
    category cat_sh;
    
    cout << "\nВыберите действие (D - удалить данные по строке,\nI - удалить данные по количеству, C - удалить данные по категории): ";
    cin >> ch;
    cin.ignore(100, '\n');
    
    switch(ch)
    {
        case 'D':
            cout << "\nВведите строку (фамилию, имя, отчество или наименование цеха)\nданные по которым надо удалить: ";
            getline(cin, search);
            iter_product = list_product.begin();
            while (iter_product != list_product.end())
            {
                pr_tmp = (*iter_product)->delete_entry(search); 
                if (pr_tmp != 0x0)
                {
                    list_product.erase(iter_product);
                    iter_product = list_product.begin();
                    delete pr_tmp;
                }
                else
                {
                    iter_product++;
                }
            }
            break;
            
        case 'I':
            cout << "\nВведите количество: "; cin >> search_int;
            iter_product = list_product.begin();
            while (iter_product != list_product.end())
            {
                pr_tmp = (*iter_product)->delete_entry(search_int); 
                if (pr_tmp != 0x0)
                {
                    list_product.erase(iter_product);
                    iter_product = list_product.begin();
                    delete pr_tmp;
                }
                else
                {
                    iter_product++;
                }
            }
            break;
            
        case 'C':
            do
            {
                cout << "\nВведите категорию: "; cin >> ch;
                if (ch == 'A')
                {
                    cat_sh = A;
                    break;
                }
                else if(ch == 'B')
                {
                    cat_sh = B;
                    break;
                }
                else if(ch == 'C')
                {
                    cat_sh = C;
                    break;
                }
                else
                {
                    cout << "\nНет такой категории!";
                }
            }while(true);
            
            iter_product = list_product.begin();
            while (iter_product != list_product.end())
            {
                pr_tmp = (*iter_product)->delete_entry(cat_sh); 
                if (pr_tmp != 0x0)
                {
                    list_product.erase(iter_product);
                    iter_product = list_product.begin();
                    delete pr_tmp;
                }
                else
                {
                    iter_product++;
                }
            }
            break;
            
        default:
            break;      
    }
}
 
void search_data()                          //функция для поиска данных
{
    char ch;
    string search;
    int search_int;
    category cat_sh;
    
    cout << "\nВыберите действие (D - поиск данных по строке,\nI - поиск данных по количеству, C - поиск данных по категории): ";
    cin >> ch;
    cin.ignore(100, '\n');
    
    switch(ch)
    {
        case 'D':
            cout << "\nВведите строку (фамилию, имя, отчество или наименование цеха)\nданные по которым надо найти: ";
            getline(cin, search);
            for (iter_product = list_product.begin(); iter_product != list_product.end(); iter_product++)
            {
                (*iter_product)->data_search(search);   
            }
            break;
            
        case 'I':
            cout << "\nВведите количество: "; cin >> search_int;
            for (iter_product = list_product.begin(); iter_product != list_product.end(); iter_product++)
            {
                (*iter_product)->data_search(search_int);
            }
            break;
            
        case 'C':
            do
            {
                cout << "\nВведите категорию: "; cin >> ch;
                if (ch == 'A')
                {
                    cat_sh = A;
                    break;
                }
                else if(ch == 'B')
                {
                    cat_sh = B;
                    break;
                }
                else if(ch == 'C')
                {
                    cat_sh = C;
                    break;
                }
                else
                {
                    cout << "\nНет такой категории!";
                }
            }while(true);
            
            for (iter_product = list_product.begin(); iter_product != list_product.end(); iter_product++)
            {
                (*iter_product)->data_search(cat_sh);
            }
            break;
            
        default:
            break;      
    }
}
 
void sort_data()                    //функция для сортировки
{
    list_product.sort(sortProducts());
    cout << "\nДанные отсартированы.";
}
products.h

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
#if !defined (_PRODUCTS)
#define _PRODUCTS
 
#include <iostream>
#include <string>
#include <list>
#include <algorithm>
 
using namespace std;
 
enum category {A, B, C};                //категория изделий
 
class products
{
    private:
        string surname;                 //фамилия рабочего
        string name;                    //имя рабочего
        string patronymic;              //отчество рабочего
        string name_workshop;           //наименование цеха
        int number_products;            //количество изделий
        category category_products;     //категория изделий
    
    public:
        products();                     //конструктор
        ~products();                    //деструктор
        void get_data();                //данные от пользователя
        void show_data() const;         //вывод данных на экран
        products* delete_entry (string);//удаление записи
        products* delete_entry (int);
        products* delete_entry (category);
        void data_search (string);      //поиск данных
        void data_search (int);
        void data_search (category);
        friend bool operator < (const products&, const products&);//сортировка записей
        friend bool operator== (const products&, const products&);//перегрузка операторов   
};
 
class sortProducts                      //функциональный объект для сортировки
{
    public:
        bool operator() (const products* ptrP1, const products* ptrP2) const
        {
            return *ptrP1 < *ptrP2;
        }
};
 
extern list<products*> list_product;                //список объектов
extern list<products*>::iterator iter_product;      //итератор для списка
 
void delete_entry();
void sort_data();
void search_data();
 
#endif
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.10.2022, 21:59
Помогаю со студенческими работами здесь

Файлы: Написать программу для учёта сведений об отпусках сотрудников предприятия
Написать программу для учёта сведений бо сотрудников предприятия. Каждая запись содержит поля - ФИО, дата начала отпска и количество дней...

Написать программу для учета сведений об ассортименте обуви в магазине фирмы
Написать программу для учета сведений об ассортименте обуви в магазине фирмы. Структура записи - артикул, наименование, количество,...

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

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

Создать файл, содержащий сведения о количестве изделий категорий А, В, С, собранных рабочим за месяц
Создать файл, содержащий сведения о кол-ве изделий категорий А,В,С, собранных рабочим за месяц. Структура записи имеет поля: фамилия...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Настройка записи справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru