Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
vpnwz151
10 / 11 / 1
Регистрация: 03.11.2011
Сообщений: 129
#1

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

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

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

Динамический массив, удаление и вставка элементов - C++
Имеется класс пользователя. Нужно создать динамический массив. MyClass **arr; Инициализация: arr = new MyClass*; Собственно вопрос:...

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

Запись значения в динамический массив - C++
Добрый вечер, Сел я на ночь глядя писать программу, но вот проблема int s=0,k=0,z=0; char *temp = new char; char *tempnum = new...

Запись слова в динамический массив - C++
помогите пожалуйста, пользователь вводит слово, надо записать это слово по буквам в массив (1 буква, одна ячейка массива) , как определить...

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

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

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

Запись структуры данных в файл. Динамический список - C++
Первый вопрос. Программа вроде бы пишет в файл. Читает из файла тоже корректно, однако, при чтении в список добавляется еще один...

динамический массив - C++
такая задача: дана матрица размерностью mxn определить количество элементов являющихся простыми числами. матрица представленна в виде...

Динамический массив. - C++
Есть такой момент в программе: ... char *r; int a,b,c,dl_len; ... printf("a= "); scanf("%d",&a); printf("b= "); ...

динамический массив - C++
Создайте класс динамического массива, в котором реализована проверка выхода за границы массива. Перегрузите операторы: , =, +, -,++...

Динамический массив - C++
Я постоянно работаю с динамическими массивами в Object Pascal и PHP. Вот внезапно возникла необходимость использования языка C++ и пришлось...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
denys_l
52 / 52 / 4
Регистрация: 26.09.2011
Сообщений: 186
07.05.2012, 15:48     Динамический массив, запись и удаление #2
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);
 
}
Ответ Создать тему
Опции темы

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