Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Persik
0 / 0 / 0
Регистрация: 02.04.2009
Сообщений: 49
#1

Динамический массив структур - C++

20.04.2017, 12:44. Просмотров 142. Ответов 3
Метки нет (Все метки)

Структура «Сотрудник» хранит имя, должность и возраст сотрудника. Структура «Компания» хранит название и массив сотрудников.
Программа должна обеспечивать ввод данных, редактирование данных сотрудника.
P.S.: Все массивы создаются динамически.
Как правильно работать с динамическим массивом структур и почему ошибку выдает?
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
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
struct Worker{
    char name[21], position[50];
    int age;
};
 
struct Company{
    char comp[21];
    Worker *workers;
};
 
void main(){
    Company *company = new Company;
    company->workers = new Worker[10];
    Worker *worker = new Worker[10];
    
    char n; 
    int size = 5;
 
    while (true){
        int vybor;
        cout << "1-add" << endl;
        cout << "5-quit" << endl;
 
        cin >> vybor;
 
        switch (vybor){
        case 1://redaktirovanie sotrudnika
            char arr[50];
            cout << "name: ";
            cin >> worker[size].name;
 
            if (n == size)
                name[arr] = new char[strlen(arr) + 1];
            strcpy_s(name[arr], strlen(arr) + 1, arr);
 
            return names;
}
    system("pause");
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2017, 12:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Динамический массив структур (C++):

Как объявить динамический массив структур, и как выглядит обращение к полям структур по указателю? - C++
Ребята подскажите как объявить динамический массив структур, и как выглядит обращение к полям структур по указателю.

Динамический массив структур - C++
Необходимо создать структуру, и сделать динамический массив структур. Фиксированный массив получается сделать, а вот с динамическим...

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

Динамический массив структур - C++
Здравствуйте. Нужна помощь. Не получается записать данные в массив структур. По логике вроде все правильно. 1. Создаем динамический...

Динамический массив структур - C++
Помогите пожалуйста с заданием Создать динамический массив структур (не менее 10 записей) со следующими полями: -шифр поезда -пункт...

Динамический массив структур - C++
Нужно сделать динамический массив структур. Задание составить перечень стран и количество автомобилей выпущенных этими странами. ...

3
MrGluck
Модератор
Эксперт CЭксперт С++
7488 / 4603 / 691
Регистрация: 29.11.2010
Сообщений: 12,589
20.04.2017, 12:49 #2
Цитата Сообщение от Persik Посмотреть сообщение
Как правильно работать с динамическим массивом
Использовать вектор (std::vector)
Либо (в академических целях), память выделять в конструкторе, освобождать в деструкторе. Не забыть определить явно конструктор копий и оператор копирующего присваивания. По желанию конструктор перемещения и оператор перемещающего присваивания.
0
Persik
0 / 0 / 0
Регистрация: 02.04.2009
Сообщений: 49
20.04.2017, 13:07  [ТС] #3
Вы не могли написать задачу
0
Persik
0 / 0 / 0
Регистрация: 02.04.2009
Сообщений: 49
24.04.2017, 16:55  [ТС] #4
Как удалить сотрудника? У меня ошибка выходить
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
while (true){
        cout << "1 add" << endl;
        cout << "2 delete" << endl;
    
        cin >> vybor;
 
        if (vybor == 1){ //redaktirovanie sotrudnika
            
            cout << "Name: ";
            cin >> arr[n].name;
            cout << "Position: ";
            cin >> arr[n].position;
            cout << "Age: ";
            cin >> arr[n].age;
            n++;
        }
 
        if (vybor == 2){ //udalenie sotrudnika
            if (n != 0){
                int index;
            
                for (int i = 0; i < n; i++)
                    cout << i << ' ' << arr[i].name << "-" << arr[i].position << "-" << arr[i].age << endl;
 
                cout << "Kogo udalit:";
                cin >> index;
                
                
                if (index < n){
                    for (int i = index; i < n - 1; i++){
                        arr[i].name[i] = arr[i].name[i + 1];
                        arr[i].position[i] = arr[i].position[i + 1];
                        arr[i].age[i] = arr[i].age[i + 1];
                    }
                    for (int i = index; i < n - 1; i++)
                    arr[i].name[n - 1] = NULL;
                    arr[i].position[n - 1];
                    arr[i].age[n - 1];
                    n--;
                }
            }
            }
0
24.04.2017, 16:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2017, 16:55
Привет! Вот еще темы с ответами:

Динамический массив структур - C++
Нужно создать базу данных библиотеки состоящую из структур: книга, автор, количество читателей взявших эту книгу. Реализовать функции:...

Динамический массив структур С++ - C++
Мне нужно сделать добавление экземпляра структуры в массив. Для этого нужно расширить динамический массив, я нашел для этого метод...

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

Динамический массив структур - C++
Прога почти готова интересует как сделать вот это добавление и удаление элемента из списка?


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

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

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