Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
vpnwz151
10 / 11 / 3
Регистрация: 03.11.2011
Сообщений: 129
#1

Динамический массив, запись и удаление - C++

07.05.2012, 09:38. Просмотров 819. Ответов 1
Метки нет (Все метки)

Помогите решить задачу нужно создать динамический массив записать в него работника, выйти в меню и записать опять нового, выйти в меню зайти в поиск через stricmp в массиве найти роботника 1 и вывести на экран. Нужна еще чтоб можно было удалить его. Как это организовать!
Заранее спасибо.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2012, 09:38
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Динамический массив, запись и удаление (C++):

Динамический массив, удаление и вставка элементов
Имеется класс пользователя. Нужно создать динамический массив. MyClass **arr;...

Запись данных в динамический массив
Цель программы: принимать от пользователя ,не ограниченное количество раз,...

Запись слова в динамический массив
помогите пожалуйста, пользователь вводит слово, надо записать это слово по...

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

Двумерный динамический массив и запись в него
Всем доброго времени суток.Проблема с записью в двумерный динамический массив...

Посимвольная запись из консоли в динамический массив
Доброго времени суток! Хочу посимвольно ввести строку из консоли в динамический...

1
denys_l
52 / 52 / 10
Регистрация: 26.09.2011
Сообщений: 186
07.05.2012, 15:48 #2
Лучший ответ Сообщение было отмечено vpnwz151 как решение

Решение

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
#include <iostream>
#include <windows.h>
#include <string.h>
using namespace std;
 
enum {SHOWALL=1, ADD, DEL, SEARCH, EXIT};
 
int menu()
{
    system("cls");
    cout << "[1] Показать\n";
    cout << "[2] Добавить\n";
    cout << "[3] Удалить\n";
    cout << "[4] Поиск\n";
    cout << "[5] Выход\n";
    cout << "Выбор: ";
    int key;
    bool flag = false;
    do
    {
        cin >> key;
        if(!cin.good())
        {
            cin.clear();
            cin.ignore(100,'\n');
        } else if(key>0 && key<6) flag = true;
 
    }while(!flag);
    cin.ignore(100,'\n');
    return key;
}
 
void Show(char **p, const int N)
{
    system("cls");
    for(int i=0; i<N; i++)
        cout << i+1 << ": " << p[i] << endl;
    system("pause");
}
 
char **Add(char **p, int &N)
{
    system("cls");
    N++;
    cout << "Добавление " << N << " записи: ";
    char **temp = new char *[N];
    if(p)
    {
        for(int i=0; i<N-1; i++) temp[i] = p[i];
        delete []p;
    }
    char str[100];
    cin.getline(str,100);
    temp[N-1] = new char [strlen(str)+1];
 
    strcpy(temp[N-1],str);
    cout << "\nДанные успешно добавлены!\n";
    system("pause");
    return temp;
}
 
char **Del(char **p, int &N)
{
    system("cls");
    int to_del;
 
    cout << "Номер удаляемого элемента: ";
    do
    {
        cin >> to_del;
    } while (to_del<0 || to_del>(N-1));
    delete p[to_del];
    char **temp = new char *[N-1];
    if(p)
    {
        for(int i=0, j=0; i<N; j++)
        {
            if(j!=to_del)
            {
                temp[i] = p[j];
                i++;
            }
        }
        delete []p;
    }
    N--;
    cout << "\nДанные успешно удалены!\n";
    system("pause");
    if(!N) return NULL;
    else return temp;
}
 
void Search(char **p, const int N)
{
    system("cls");
    cout << "Поиск работника/n";
    char *temp = new char [100];
    cout << "Введит слово для поиска: ";
    cin >> temp;
    for(int i=0; i<N; i++)
    {
        if(stricmp(p[i],temp) == 0)
        {
            cout << "Найден работник по совпадению " << temp << ": " << p[i] << endl;
            system("pause");
            break;
        }
        if(i==(N-1))
        {
            cout << "Поиск не дал результатов\n";
            system("pause");
        }
    }
}
 
int main()
{
    SetConsoleOutputCP(1251);
 
 
    char **empl = NULL;
    int cnt=0;
 
    int key;
    do
    {
        switch(key=menu())
        {
          case SHOWALL: if(empl) Show(empl, cnt);
          break;
          case ADD: empl = Add(empl, cnt);
          break;
          case DEL: if(empl) empl = Del(empl,cnt);
          break;
          case SEARCH: Search(empl, cnt);
          break;
          case EXIT: return 0;
        };
    }while(true);
 
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2012, 15:48
Привет! Вот еще темы с решениями:

Считывание матрицы из файла и запись в динамический массив
Есть файл c n-количеством матриц и нужно считать их. И записать их элементы в...

Запись данных в динамический массив через указатели
Здравствуйте! У меня возникла проблема... Когда я ввожу, например, 10 чисел в...

Одномерный динамический массив, передача в функции, добавление и удаление элемента
Разбираю одномерные динамические массивы. Пока всё просто, пока и не возникает...

Класс "динамический массив" - добавление и удаление элементов в рантайме
#ifndef ARRAY// if not defined #define ARRAY Class ARRAY{ Public ...


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

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

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