Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
23 / 27 / 18
Регистрация: 31.03.2018
Сообщений: 424
1

Массив структур. Работа с массивом через функции

14.05.2018, 17:54. Просмотров 342. Ответов 5
Метки нет (Все метки)

Здравствуйте! Дано задание:
1) создать массив структур
2) заполнить его через ф-цию
3) вывести массив
4) добавить n-ое кол-во элементов к массиву
5) удалить э-нт массива, чей номер должен ввести пользователь
Вылетело много ошибок(16) поэтому фоткать ошибки не буду.
Вот код:
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 <string>
using namespace std;
 
void enter(car *array, int size);
void exit(car *array, int size);
void adding(car *array_1, int size_1, car *array, int size);
void DELETE(car *array_1, int size_1, int number);
 
struct car
{
    string CarName;
    int Year;
    int cost;
};
 
void main()
{
    int n, add;
    cout << "Enter quantity elements of array, please: ";
    cin >> n;
    car *basic = new car[n];
    cout << endl;
    enter(basic, n);
    cout << "--------------------------------------------------------------------------------------------------" << endl;
    exit(basic, n);
    cout << "--------------------------------------------------------------------------------------------------" << endl;
    cout << "How many array structure elements do you want to add?\nEnter, please: ";
    cin >> add;
    add = add + n;
    car *base = new car[add];
    cout << "--------------------------------------------------------------------------------------------------" << endl;
    adding(base, add, basic, n);
    cout << "--------------------------------------------------------------------------------------------------" << endl;
    delete[] basic;
    cout << "Which of these array structure elements do you want to delete?\nEnter, please: ";
    cin >> n;
    cout << "--------------------------------------------------------------------------------------------------" << endl;
    DELETE(base, add, n);
    cout << "--------------------------------------------------------------------------------------------------" << endl;
    delete[] base;
}
 
void enter(car *array, int size)
{
    for (int i = 0; i < size; i++)
    {
        cout << "Enter brand of your car: ";
        cin >> array[i].CarName;
        cout << "\n" << "Enter year when your car was created: ";
        cin >> array[i].Year;
        cout << "\n" << "Enter price of your car: ";
        cin >> array[i].cost;
        cout << endl;
    }
}
 
void exit(car *array, int size)
{
    for (int j = 0; j < size; j++)
    {
        cout << array[j].CarName << endl;
        cout << array[j].Year << endl;
        cout << array[j].cost << endl;
        cout << endl;
    }
}
 
void adding(car *array_1, int size_1, car *array, int size)
{
    for (int k = 0; k < size; k++)
    {
        array_1[k].CarName = array[k].CarName;
        array_1[k].Year = array[k].Year;
        array_1[k].cost = array[k].cost;
    }
    for (int h = size; h < size_1; h++)
    {
        cout << "Enter brand of your car: ";
        cin >> array_1[h].CarName;
        cout << "\n" << "Enter year when your car was created: ";
        cin >> array_1[h].Year;
        cout << "\n" << "Enter price of your car: ";
        cin >> array_1[h].cost;
        cout << endl;
    }
    for (int j = 0; j < size; j++)
    {
        cout << array[j].CarName << endl;
        cout << array[j].Year << endl;
        cout << array[j].cost << endl;
        cout << endl;
    }
}
 
void DELETE(car *array_1, int size_1, int number)
{
    for (int n = number; n < size_1 - 1; n++)
    {
        array_1[n] = array_1[n - 1];
    }
    for (int j = 0; j < size_1 - 1; j++)
    {
        cout << array_1[j].CarName << endl;
        cout << array_1[j].Year << endl;
        cout << array_1[j].cost << endl;
        cout << endl;
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.05.2018, 17:54
Ответы с готовыми решениями:

Работа с массивом структур в функции через указатель на этот массив
Добрый вечер. Имеется следующая задача: &quot;Разработайте программу, сохраняющую записи (порядковый...

Функции работаты с массивом структур или с отдельной структурой через указатели
Всем доброго времени суток. Я вот переписал код, но прога не работает. Не пойму почему. Помогите,...

Работа с массивом через пользовательские функции через указатели
Не хочет работать ( Выводит только последний элемент массива ) Help! #include &lt;iostream&gt; using...

Работа с массивом структур
Необходимо создать массив записей (структур) с определенными полями (марка автомобиля, рег. номер,...

5
6913 / 5978 / 2709
Регистрация: 14.04.2014
Сообщений: 25,504
14.05.2018, 20:13 2
Текст ошибок давай.
0
23 / 27 / 18
Регистрация: 31.03.2018
Сообщений: 424
15.05.2018, 21:43  [ТС] 3
nmcf,
Массив структур. Работа с массивом через функции
0
23 / 27 / 18
Регистрация: 31.03.2018
Сообщений: 424
15.05.2018, 21:48  [ТС] 4
Не появляется структурный э-нт и удаление проходит не правильно. Мне подсказывет, что чтоб правильно провести удаление нужно соответсвующию ф-цию изменить с void на (как раз не знаю что, ибо передается car) и возвратить значение size_1, которое уменьшено после цикла на одну еденицу. А вот почему не появяется добавленый структурный э-нт не знаю как решить. В общем не знаю как решить эти две проблемы.

Добавлено через 33 секунды
Вот актуальный код:
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
#include <iostream>
#include <string>
using namespace std;
 
struct car
{
    string CarName;
    int Year;
    int cost;
};
 
 
void enter(car *array, int size);
void exit(car *array, int size);
void adding(car *array_1, int size_1, car *array, int size);
void DELETE(car *array_1, int size_1, int number);
 
void main()
{
    int n, add;
    cout << "Enter quantity elements of array, please: ";
    cin >> n;
    car *basic = new car[n];
    cout << endl;
    enter(basic, n);
    cout << "--------------------------------------------------------------------------------" << endl;
    exit(basic, n);
    cout << "--------------------------------------------------------------------------------" << endl;
    cout << "How many array structure elements do you want to add?\nEnter, please: ";
    cin >> add;
    add = add + n;
    car *base = new car[add];
    cout << "--------------------------------------------------------------------------------" << endl;
    adding(base, add, basic, n);
    cout << "--------------------------------------------------------------------------------" << endl;
    delete[] basic;
    cout << "Which of these array structure elements do you want to delete?\nEnter, please: ";
    cin >> n;
    cout << "--------------------------------------------------------------------------------" << endl;
    DELETE(base, add, n);
    cout << "--------------------------------------------------------------------------------" << endl;
    delete[] base;
}
 
void enter(car *array, int size)
{
    for (int i = 0; i < size; i++)
    {
        cout << "Enter brand of your car: ";
        cin >> array[i].CarName;
        cout << "\n" << "Enter year when your car was created: ";
        cin >> array[i].Year;
        cout << "\n" << "Enter price of your car: ";
        cin >> array[i].cost;
        cout << endl;
    }
}
 
void exit(car *array, int size)
{
    for (int j = 0; j < size; j++)
    {
        cout << array[j].CarName << endl;
        cout << array[j].Year << endl;
        cout << array[j].cost << "₴" << endl;
        cout << endl;
    }
}
 
void adding(car *array_1, int size_1, car *array, int size)
{
    for (int k = 0; k < size; k++)
    {
        array_1[k].CarName = array[k].CarName;
        array_1[k].Year = array[k].Year;
        array_1[k].cost = array[k].cost;
    }
    for (int h = size; h < size_1; h++)
    {
        cout << "Enter brand of your car: ";
        cin >> array_1[h].CarName;
        cout << "\n" << "Enter year when your car was created: ";
        cin >> array_1[h].Year;
        cout << "\n" << "Enter price of your car: ";
        cin >> array_1[h].cost;
        cout << endl;
    }
    for (int j = 0; j < size; j++)
    {
        cout << array_1[j].CarName << endl;
        cout << array_1[j].Year << endl;
        cout << array_1[j].cost << "₴" << endl;
        cout << endl;
    }
}
 
void DELETE(car *array_1, int size_1, int number)
{
    for (int n = number; n < size_1 - 1; n++)
    {
        array_1[n] = array_1[n - 1];
    }
    for (int j = 0; j < size_1 - 1; j++)
    {
        cout << array_1[j].CarName << endl;
        cout << array_1[j].Year << endl;
        cout << array_1[j].cost << "₴" << endl;
        cout << endl;
    }
}
0
6913 / 5978 / 2709
Регистрация: 14.04.2014
Сообщений: 25,504
20.05.2018, 16:52 5
C++
1
2
3
4
    for (int n = number; n < size_1 - 1; n++)
    {
        array_1[n] = array_1[n + 1];
    }
number - номер элемента при нумерации с нуля.
0
23 / 27 / 18
Регистрация: 31.03.2018
Сообщений: 424
21.05.2018, 17:43  [ТС] 6
nmcf, а я уже нашел, ошибка в 88 строке, вместо size должно быть size_1 и в 101 там в квадратных скобках должно быть не - 1, а +1.
Но спасибо, что откликнулись!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.05.2018, 17:43

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

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

Работа с массивом структур
Всем привет!!! Пожаалусто помогите кому нетрудно))) Программирование задач с использованием...

Работа с массивом структур
Всем привет! Дана информация о шести вкладчиках в сберкассы. Структура имеет вид: фамилия,...

Работа с массивом структур
Есть структура: struct student { char fam; }; Объявлена: int N = 3; student *stud; stud =...


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

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

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