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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
^nex
0 / 0 / 0
Регистрация: 22.04.2009
Сообщений: 24
#1

статический массив ----> динамический массив - C++

29.12.2009, 19:44. Просмотров 1765. Ответов 7
Метки нет (Все метки)

Есть программа, нужно статический массив заменить на динамический. Как будет выглядеть?

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
142
143
144
145
146
147
148
149
150
151
152
153
#include <iostream> 
#include <windows.h> 
#include <fstream> 
#include <cstdlib> 
#include <cstring> 
using namespace std; 
// Определение структуры 
struct sotrudnik 
{// определение полей 
    // фамилия 
    char ns[40]; 
    // должность 
    char nz[40]; 
    // год рождения 
    double ob; 
    // заработанная плата 
    char avt[30]; 
}; 
// Главная функция 
void main() 
{// Объявление массивов объектов структуры 
    sotrudnik d[3]; 
    sotrudnik dt[4]; 
 // Объявление потока записи информации в файл 
    ofstream f; 
 // Объявление необходимых строк 
    char str0[30], str1[80], str2[80], str3[80], str4[80], str5[80], s[80], str[80]; 
     
    CharToOemA("Введите путь к файлу \n",str); 
    cout<<str; 
    cin>>s; 
 // связывание потока записи с файлом 
    f.open(s); 
 // проверка успешности открытия файла 
    if(f.fail())   {cout<<"\n oshibka otkritiya faila"; 
                    exit(1); 
                   } 
 
CharToOemA(" Введите информацию о сотруднике ",str1); 
    CharToOemA("\n фамилия: ",str2); 
    CharToOemA("\n год рождения : ",str3); 
    CharToOemA("\n должность: ",str4); 
    CharToOemA("\n заработанная плата: ",str5); 
    CharToOemA("-й сотрудник ",str0); 
int i;     
    for(i=0;i<3;i++) 
      {cout<<"\n"<<i+1; 
       cout<<str0; 
       cout<<str1; 
       cout<<str2; 
       cin>>d[i].ns; 
       cout<<str3; 
       cin>>d[i].ob; 
       cout<<str4; 
       cin>>d[i].nz; 
       cout<<str5; 
       cin>>d[i].avt; 
       cout<<"\n \n"; 
      } 
CharToOemA(" Введенная информация о сотрудниках ",str1); 
f<<str1; 
    for(i=0;i<3;i++) 
      {f<<"\n"<<i+1; 
       f<<str0; 
       f<<str2; 
       f<<d[i].ns; 
       f<<str3; 
       f<<d[i].ob; 
       f<<str4; 
       f<<d[i].nz; 
       f<<str5; 
       f<<d[i].avt; 
       f<<"\n \n"; 
      } 
// Удаление элемента из массива по названию 
       char p1[40], *p2[40],*p3[40];   
       CharToOemA("\n Ввести фамилию удаляемого сотрудника: ",str); 
       cout<<str; 
       cin>>p1; 
       for(i=0;i<3;i++) 
       {*p2=d[i].ns; 
       *p3=p1; 
       int t; 
         t=strcmp(*p3,*p2); 
       if(t==0)  
       {d[i]=d[i+1];  
       CharToOemA("\nУдаляем  ",str); 
       CharToOemA("  сотрудник  \n",str1); 
       cout<<str<<i+1<<str1;} 
       else {CharToOemA("-й не указанный сотрудник \n",str); 
       cout<<i+1<<str;       } 
      } 
 
CharToOemA("\n Список после удаления выбранного элемента \n",str); 
    f<<str; 
    for(i=0;i<2;i++) 
      {f<<"\n"<<i+1; 
       f<<str0; 
       f<<str2; 
       f<<d[i].ns; 
       f<<str3; 
       f<<d[i].ob; 
       f<<str4; 
       f<<d[i].nz; 
       f<<str5; 
       f<<d[i].avt; 
       f<<"\n \n"; 
      } 
 
cout<<"\n\n"; 
int k; 
// Добавление новых элементов в список 
    CharToOemA("\n Добавление новых элементов \n",str); 
    cout<<str; 
    CharToOemA("\n Ввести количество элементов: ",str); 
    cout<<str; 
    cin>>k; 
    for(i=0;i<2;i++) 
      {dt[i]=d[i]; 
      } 
    for(i=2;i<2+k;i++) 
      {cout<<"\n"<<i+1; 
       cout<<str1; 
       cout<<str2; 
       cin>>dt[i].ns; 
       cout<<str3; 
       cin>>dt[i].ob; 
       cout<<str4; 
       cin>>dt[i].nz; 
       cout<<str5; 
       cin>>dt[i].avt; 
       cout<<"\n \n"; 
      } 
 
 CharToOemA("\n Список после добавления новых элементов \n",str); 
    f<<str; 
    for(i=0;i<2+k;i++) 
      {f<<"\n"<<i+1; 
       f<<str0; 
       f<<str2; 
       f<<dt[i].ns; 
       f<<str3; 
       f<<dt[i].ob; 
       f<<str4; 
       f<<dt[i].nz; 
       f<<str5; 
       f<<dt[i].avt; 
       f<<"\n \n"; 
      } 
// Закрытие файла 
    f.close(); 
    cout<<endl; 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.12.2009, 19:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос статический массив ----> динамический массив (C++):

Двумерный массив (поменять статический массив на динамический) - C++
Нужно поменять статический массив на динамический с выделением памяти #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;cstdlib&gt; ...

Переделать динамический массив на статический массив - C++
#include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; int main() { int dim, counter_1 = 1, counter_2 =...

Статический массив в динамический массив - C++
Месяца два еще назад, во время изучения структур, выполнял простенькое задание. После изучения классов, нужно было предыдущую работу...

Динамический и статический массив - C++
Подскажите, в чем разница. Имеется статический массив, который просто задается: long mas = { 0 }; Т.е. просто вставляем массив...

Переделать статический массив в динамический - C++
Помогите переделать статический массив в динамический #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; #include...

Переделать статический массив в динамический - C++
Помогите переделать статический массив в динамический. #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; using namespace std;...

7
breeve
75 / 75 / 14
Регистрация: 01.08.2009
Сообщений: 177
29.12.2009, 19:55 #2
объявление динамического массива:
C++
1
2
3
int *a;
int size;
a = new int[size];
Добавлено через 2 минуты
соответственно если делаешь массив из структур то выйдет так:
C++
1
2
3
sotrudnik *str;
int size; // А размер можно с клавиатуры считать
a = new sotrudnik[size];
0
^nex
0 / 0 / 0
Регистрация: 22.04.2009
Сообщений: 24
29.12.2009, 20:00  [ТС] #3
а куда это вставляется, если можно как уже готовая программа будет выглядеть?
0
breeve
75 / 75 / 14
Регистрация: 01.08.2009
Сообщений: 177
29.12.2009, 20:05 #4
Цитата Сообщение от ^nex Посмотреть сообщение
а куда это вставляется, если можно как уже готовая программа будет выглядеть?
Если не знаешь ты, то я то тем более)) Ты мне скажи что именно у тебя тут должно быть динамическим)) Или если есть задание кинь.. а иначе ничем не могу помочь..
0
^nex
0 / 0 / 0
Регистрация: 22.04.2009
Сообщений: 24
29.12.2009, 20:09  [ТС] #5
char* + выделение памяти

вроде что то типа этого

C++
1
2
// Объявление необходимых строк 
    char* str0, str1,.............;
0
breeve
75 / 75 / 14
Регистрация: 01.08.2009
Сообщений: 177
29.12.2009, 20:11 #6
Цитата Сообщение от ^nex Посмотреть сообщение
char* + выделение памяти
Ну это я понимаю, под что тебе надо динамически выделять? У тебя тут этих массивов сто штук..
0
^nex
0 / 0 / 0
Регистрация: 22.04.2009
Сообщений: 24
29.12.2009, 21:55  [ТС] #7
под что тут может выделить динамически?

Добавлено через 1 час 24 минуты
C++
1
 sotrudnik d[3];
0
Андрейка
420 / 224 / 27
Регистрация: 25.03.2009
Сообщений: 744
29.12.2009, 23:00 #8
^nex, sotrudnik *d = new sotrudnik[3];
0
29.12.2009, 23:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2009, 23:00
Привет! Вот еще темы с ответами:

Переделать статический массив в динамический - C++
Помогите пожалуйста переделать статический массив в динамический #include &lt;iostream&gt; #include &lt;iomanip&gt; #define N 6 #define M 9 ...

Переделать статический массив структур в динамический - C++
Имею структуру из 8 эл-ов (массивов чаров и 2 подструктуры). Имею исходные данные (5 штук, строк с ними) под эту структуру. Массив с этими...

Как перевести статический массив в динамический? - C++
Есть статический массив типа char,подскажите как перевести его в динамический и как потом изменять его размерность если понадобиться...

Заменить в программе статический массив на динамический - C++
Программа работает, но теперь нужно привести ее к виду, в котором участвует уже динамический массив. ЕСЛИ ВОЗМОЖНО не меняйте printf и...


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

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

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