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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.68
YURAN89
1 / 1 / 0
Регистрация: 04.12.2008
Сообщений: 19
#1

Как добавить элемент в динамический массив? - C++

28.11.2009, 12:35. Просмотров 3201. Ответов 1
Метки нет (Все метки)

Всем привет. У меня такая проблема:

Написал класс avto, в нем данные об автомобиле.Моя задача создать массив таких классов изначально задав размерность этого массива. Данная программа должна осуществлять следующее:
1. Вывод всего списка автомобилей.
2. Поиск по марке автомобиля.
3. Возможность добавления нового автомобиля( нового класса с данными об автомобиле в список).

И так первые 2 пункта я сделал, а вот как добавить новый элемент в массив увеличив исходную размерность я не могу додуматься...

вот моя функция main():

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void main() 
{
int n,i,z;
 
avto *spis;
cout<<"vvedite kolvo mashin :"<< endl;
cin>>n;
spis=new avto [n];
for( i = 0; i < n; i++) 
{
      cout << "==============================" << endl;
      spis[i].zapolnenie();
}
 
do {
    cout<<"-*-*-*-*-*-*-*-*--*-*-*-*-*-*-*-*-*-*-*"<< endl;
    cout<<"1-vivesti vesi spisok; 2-naiti marku; 3-dobaviti mashinu; 0-vihod."<< endl;
    cin>>z;
        vibor(z,spis,n);
}while (z!=0);
}

вот функция вывода всего списка и поиска по марке (добавление элемента я тоже попытался сделать здесь ) :
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
void vibor(int z,avto *spis,int n)
{
//  avto *sps;
    char s[10];
    int i,r=0,g=0;
if (z==1)
    {   int y=g+n;
         for( i = 0; i < y; i++) 
         {
            spis[i].show();
         }
    }
else
{
     if (z==2)
     {
         cout<<"Vvedite marku mashini : "<< endl;
                 cin>>s;
          for( i = 0; i < n; i++)
          {
              if (strcmp(spis[i].m(),s)==0)
              {
                  spis[i].show();r++;
              }
          }
          if (r==0)  cout<<endl<<"Net takoi marki v nashem salone!"<<endl<<endl;
     }
//добавление нового элемента
     else
     {
         g++;
         spis=new avto [n+1];
         cout << "==============================" << endl;
         spis[n].zapolnenie();
     }      
}
}
сам класс:
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
struct data
{
    int den,mes,god;
};
 
class avto
{
private:
    char marka[20];//марка машины
    char cvet[15];   //цвет машины
    int s_num;        //серийный номер
    int reg_num;     //регистрационный номер
    int dver;           // кол-во дверей
    int price;           //цена
    data data_reg;   //дата регистрации
    
    public:
          void zapolnenie();   // заполнение данными
          void show();            //вывод данных
          char* m();              //возвращает марку
          char* c();                //возвращает цвет
          int s_n();                 //возвращает серийный номер
          int r_n();                 //  возвращает рег-й номер
          int d();                    //возвращает кол-во дверей
          int p();                    //возвращает цену
 
          
};
Я знаю что не верно организовываю добавление элемента, может кто-нибудь разберется как это сделать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2009, 12:35     Как добавить элемент в динамический массив?
Посмотрите здесь:
Как добавить элемент с заданным номером в динамический массив? C++
C++ Как добавить строку в динамический массив?
C++ Как добавить новое значение в одномерный динамический массив?
Динамический двусвязный список (операции: добавить элемент после данного, удалить данный элемент …) C++
C++ как в динамический массив добавить еще одну ячейку памяти?
Как в динамический массив вставить элемент? C++
C++ Как вставить элемент в динамический массив?
Как прочесть несколько слов из файла в динамический массив char и добавить новое значение в конец? C++
C++ Как передвигать указатель чтобы выделить память под новый элемент и добавить новый элемент в массив?
Массив: передать динамический массив в функцию и записать в каждый элемент строку из файла C++
Двумерный динамический массив: добавить К столбцов в начало C++
Добавить новую строку в двумерный динамический массив C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
28.11.2009, 12:41     Как добавить элемент в динамический массив? #2
std::vector<avto> spis;
Yandex
Объявления
28.11.2009, 12:41     Как добавить элемент в динамический массив?
Ответ Создать тему
Опции темы

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