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

Добавление нового элемента (объекта) в массив объектов

16.11.2016, 03:15. Показов 847. Ответов 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
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
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <cstdio>
 
using namespace std;
 
class product
{
private:
    char NameOfProduct[80];
    char DateOfProduction[80];
    char Producer[80];
    float Weight;
public:
    product()
    {
        strcpy(NameOfProduct," ");
        strcpy(DateOfProduction," ");
        strcpy(Producer," ");
        Weight = 0.0;
    }
 
    void setDate(char arr_name[],char arr_date[],char arr_producer[],float weight2)
    {
        strcpy(NameOfProduct,arr_name);
         strcpy(DateOfProduction,arr_date);
          strcpy(Producer,arr_producer);
           Weight = weight2;
    }
 
    void getList()
    {
       cout << endl;
        cout << " Name of Product: \t" << NameOfProduct << endl;
         cout << " Date of Production: \t" << DateOfProduction << endl;
          cout << " Producer: \t\t" << Producer << endl;
           cout << " Weight: \t\t" << Weight << endl;
            cout << endl;
    }
    float getWeight()
    {
        return Weight;
    }
};
 
 
int main()
{
    char arr_name[80],arr_date[80],arr_producer[80];
    float weigth2;
    int i=0,j,size;
    cout << "How many objects you want to add? -  ";
    cin >>size;
    product *main_arr = new product[size], *buff = nullptr;
    cout << endl;
    while(i<size)
    {
        cout << "Enter name: ";
        cin >> arr_name;
        cout << "Enter date of production: ";
        cin >> arr_date;
        cout << "Enter producer: ";
        cin >> arr_producer;
        cout << "Enter weight: ";
        cin >> weigth2;
        cout << endl;
        main_arr[i].setDate(arr_name,arr_date,arr_producer,weigth2);
        i++;
    }
 
            system("cls");
            float find_weight;
            for(i=0;i<size;i++)
            {
                main_arr[i].getList();
            }
            cout << "Please, enter the weight: ";
            cin >> find_weight;
            for(i=0;i<size;i++)
            {
                if(find_weight == main_arr[i].getWeight())
                {
                    int label = i;
                    buff = new product[size+1];
 
                    for(j=0;j<size;j++)
                    {
                        buff[j] = main_arr[j];
                    }
 
                    delete [] main_arr;
                    size++;
 
                    main_arr = new product[size];
 
                    main_arr = buff;
 
                    for(j=0;j<size;j++)
                    {
                        if( j == label )
                        {
                            cout << "Enter name: ";
                            cin >> arr_name;
                            cout << "Enter date of production: ";
                            cin >> arr_date;
                            cout << "Enter producer: ";
                            cin >> arr_producer;
                            cout << "Enter weight: ";
                            cin >> weigth2;
                            cout << endl;
                            main_arr[i].setDate(arr_name,arr_date,arr_producer,weigth2);
                        }
                           main_arr[j+1] = buff[j];
                    }
 
                    for(i=0;i<size;i++)
                    {
                        main_arr[i].getList();
                    }
 
                }
            }
 
    return 0;
}
Добавлено через 4 часа 42 минуты
Короче, сам разобрался.

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
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <cstdio>
 
using namespace std;
 
class product
{
private:
    char NameOfProduct[80];
    char DateOfProduction[80];
    char Producer[80];
    float Weight;
public:
    product()
    {
        strcpy(NameOfProduct," ");
        strcpy(DateOfProduction," ");
        strcpy(Producer," ");
        Weight = 0.0;
    }
 
    void setDate(char arr_name[],char arr_date[],char arr_producer[],float weight2)
    {
        strcpy(NameOfProduct,arr_name);
         strcpy(DateOfProduction,arr_date);
          strcpy(Producer,arr_producer);
           Weight = weight2;
    }
 
    void getList()
    {
       cout << endl;
        cout << " Name of Product: \t" << NameOfProduct << endl;
         cout << " Date of Production: \t" << DateOfProduction << endl;
          cout << " Producer: \t\t" << Producer << endl;
           cout << " Weight: \t\t" << Weight << endl;
            cout << endl;
    }
    float getWeight()
    {
        return Weight;
    }
};
 
 
int main()
{
    char arr_name[80],arr_date[80],arr_producer[80];
    float weigth2;
    int i=0,size;
    cout << "How many objects you want to add? -  ";
    cin >>size;
    product *main_arr = new product[size], *buff;
    cout << endl;
    while(i<size)
    {
        cout << "Enter name: ";
        cin >> arr_name;
        cout << "Enter date of production: ";
        cin >> arr_date;
        cout << "Enter producer: ";
        cin >> arr_producer;
        cout << "Enter weight: ";
        cin >> weigth2;
        cout << endl;
        main_arr[i].setDate(arr_name,arr_date,arr_producer,weigth2);
        i++;
    }
 
            system("cls");
            float find_weight;
            for(i=0;i<size;i++)
            {
                main_arr[i].getList();
            }
            cout << "Please, enter the weight: ";
            cin >> find_weight;
            for(i=0;i<size;i++)
            {
                if(find_weight == main_arr[i].getWeight())
                {
                    int label = i;
                    buff = new product[size+1];
 
                    for(i=0;i<size;i++)
                    {
                        buff[i] = main_arr[i];
                    }
 
                    delete [] main_arr;
 
                    size++;
                    main_arr = new product[size];
 
                    for(i=0;i<label;i++)
                    {
                        main_arr[i] = buff[i];
                    }
 
                    cout << "Enter name: ";
                    cin >> arr_name;
                    cout << "Enter date of production: ";
                    cin >> arr_date;
                    cout << "Enter producer: ";
                    cin >> arr_producer;
                    cout << "Enter weight: ";
                    cin >> weigth2;
                    cout << endl;
                    main_arr[label].setDate(arr_name,arr_date,arr_producer,weigth2);
 
                    for(i=label+1;i<size;i++)
                    {
                        main_arr[i] = buff[i-1];
                    }
 
                    for(i=0;i<size;i++)
                    {
                        main_arr[i].getList();
                    }
 
                }
            }
 
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.11.2016, 03:15
Ответы с готовыми решениями:

Добавление нового элемента в массив объектов
Ошибка заключается в том что, после добавления нового элемента в массив groupArray через функцию Add, если попытаться вывести их происходит...

Добавление в одномерный массив нового элемента
Вечер добрый ,создал одномерный массив ,не могу по кнопке к нему добавить +1 элемент. Я понимаю нужно что нужно создать новый...

Добавление нового элемента в двумерный массив.
Добрый день. Для одномерного все предельно ясно - присваиваешь и он запихивает в следующую незанятую ячейку. Как быть для двумерного,...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.11.2016, 03:15
Помогаю со студенческими работами здесь

Добавление нового объекта
Как при помощи ссылок в java создать метод по добавлению нового объекта в массив объектов(например,-новый номер в справочник) ? что делать...

Добавление нового объекта в ArrayList
Добрый день, подскажите, почему не получается добавить новый объект в ArrayList ArrayList&lt;A&gt; ar_textView = new...

Добавление нового элемента в список после указанного элемента по значению информационного поля
Добавление нового элемента в список после указанного элемента по значению информационного поля.

Реализовать приложение, содержащее функции добавления нового элемента в массив и удаления элемента из массива. (Имитируется “резиновый” массив)
Реализовать приложение, содержащее функции добавления нового элемента в массив и удаления элемента из массива. (Имитируется “резиновый”...

Добавление нового и/или обновление существующего свойства объекта
function updateOne(db, collection, _id, service, phase, status) { let query = {_id: _id}; let values = { $set:...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru