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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Описать структуру с именем NOTE http://www.cyberforum.ru/cpp-beginners/thread68171.html
Вот такого рода задание: Программа должна запрашивать все необходимые параметры, отслеживая правильность формата ввода. Упорядочивание должно происходить после каждого дополнения вносимого в данные , а также позволять вводить не все записи сразу а по мере необходимости. Описать структуру с именем NOTE, содержащую следующие поля: Фамилия Имя Номер телефона Дата рождения(состоит из трех...
C++ Какая книга лучшая Какая книга лучшая, понятная и удобная по вашему мнению для изучения DirectX и программировании игр?? Напишите пожалуйста автора и название книги!!! http://www.cyberforum.ru/cpp-beginners/thread68170.html
C++ Строки
Задание: Дана строка текста, в которой слова разделены запятыми. Необходимо: - определить количество слов в строке; - определить, сколько слов в строке имеют максимальную длину; - определить, есть ли в данной строке повторяющиеся слова, и вывести их на экран. С первым пунктом разобрался,буду очень признателен если 2-ой и 3-ий поможете.
C++ пользовательские функции
Уважаемые программисты,помагите решить задачку. Задание: Даны натуральные числа n и m. Напишите функцию, вычисляющую результат операции сложения двух чисел, образованных k младшими цифрами числа n и k старшими цифрами числа m. зы: заранее благодарен
C++ Матрица http://www.cyberforum.ru/cpp-beginners/thread68157.html
Есть задача в заданной матрице A(N,M) в каждом столбце поменять местами максимальный и минимальный элементы, а как сделать чтобы когда максимальный и минимальный элементы поменялись местами увеличить эти элементы в 2 раза. void Task2() { for(int i=0; i<cols; i++) { int max = m; int min = m; int maxPosRow=0;
C++ Текстовый файл. Нужен код для следующей задачи: В файле myfile.txt содержится информация типа а= 1,0; b = 5; с = 25,2; d = -l2,5. Написать функцию, которая получает строку типа «а + b = », «c*d = » или «b/d = », выбирает из файла необходимые значения, вычисляет и возвращает результат. В главной программе обеспечить ввод с клавиатуры строки и вывод результата. Выход из программы обеспечить при вводе... подробнее

Показать сообщение отдельно
YURAN89
1 / 1 / 0
Регистрация: 04.12.2008
Сообщений: 19

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

28.11.2009, 12:35. Просмотров 3219. Ответов 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();                    //возвращает цену
 
          
};
Я знаю что не верно организовываю добавление элемента, может кто-нибудь разберется как это сделать?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru