G
Guest
Всем привет. У меня такая проблема:
Написал класс avto, в нем данные об автомобиле.Моя задача создать массив таких классов изначально задав размерность этого массива. Данная программа должна осуществлять следующее:
1. Вывод всего списка автомобилей.
2. Поиск по марке автомобиля.
3. Возможность добавления нового автомобиля( нового класса с данными об автомобиле в список).
И так первые 2 пункта я сделал, а вот как добавить новый элемент в массив увеличив исходную размерность я не могу додуматься...
вот моя функция main():
вот функция вывода всего списка и поиска по марке (добавление элемента я тоже попытался сделать здесь ) :
сам класс:
Я знаю что не верно организовываю добавление элемента, может кто-нибудь разберется как это сделать?
Написал класс avto, в нем данные об автомобиле.Моя задача создать массив таких классов изначально задав размерность этого массива. Данная программа должна осуществлять следующее:
1. Вывод всего списка автомобилей.
2. Поиск по марке автомобиля.
3. Возможность добавления нового автомобиля( нового класса с данными об автомобиле в список).
И так первые 2 пункта я сделал, а вот как добавить новый элемент в массив увеличив исходную размерность я не могу додуматься...
вот моя функция main():
C++:
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++:
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++:
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(); //возвращает цену
};
Я знаю что не верно организовываю добавление элемента, может кто-нибудь разберется как это сделать?