//Если массив не пуст
if ( vector [ i ] != NULL )
system ( "cls" );
//Выводим шапку таблицы
showHeadTable ( );
//Пока существуют элементы в массиве
while ( vector [ i ] != NULL){
//Выводим текущий элемент
vector [ i ] -> show ( "line" );
//Если следующий элемент не пуст, выводим разделитель
if ( vector [ i + 1] != NULL ) showSeparator ( );
//Иначе закрываем таблицу
else showEndTable ( );
//Наращиваем индекс
i++;
}
system( "pause" );
}
//Функция добавления нового элемента в конец массива
void variety::addItem ( ){
//Инициализируем вспомогательные переменные
int temp = count, level = 0;
//Ввод административного уровня города
cout << "Enter the administrative level of the city: " << endl;
cout << "1: Capital" << endl;
cout << "2: Region" << endl;
cout << "3: District" << endl;
cout << "4: Large Village" << endl;
cin >> level;
//Согласно выбранном административному уровню создаем в массиве ссылку на новый объект
switch ( level ){
case ( 1 ):
vector [ temp ] = new Capital;
break;
case ( 2 ):
vector [ temp ] = new Region;
break;
case ( 3 ):
vector [ temp ] = new District;
break;
case ( 4 ):
vector [ temp ] = new Village;
break;
}
//Ввод количества жителей города
vector [ temp ] -> setPopulation ( );
//Ввод названия города
vector [ temp ] -> setName ( );
//Ввод главной достопримечательности
vector [ temp ] -> setAttraction ( );
//Наращиваем счетчик
count++;
//Выводим сообщение об успеном добавлении элемента
system ( "cls" );
cout << "Added element succesfull" << endl;
system("pause");
}
//Функция удаления элемента массива по его номеру
void variety::deleteItemId ( int id ){
//Если номер больше нуля и меньше количества элементов
if ( id > 0 && id <= count){
//Значит делаем "сдвиг" элементов влево, смещая тем самым ссылки в массиве
for ( int i = id - 1; i < count; i++)
vector [ i ] = vector [ i + 1 ];
//Удаляем последнюю сыллку в массиве
delete vector [ count - 1 ];
//Усеньшаем количество элементов на единицу
count--;
//Выводим сообщение об успешном удалении элемента
system ( "cls" );
cout << "Delete succesfull" << endl;
system( "pause" );
}
}
//Поиск элемента по названию города
void variety::findItem ( char* strTmp ){
//Инициализация вспомогательной переменной
int i = 0;
//Пока текущий элемент массива не пуст
while ( vector [ i ] != NULL){
//Если передано имя текущего элемента
if ( strcmp ( strTmp, vector [ i ] -> getName ( ) ) == 0){
//То выводим данные об этом элементе
cout << "The position in the array" << i + 1 << endl;
vector [ i ] -> show ( "element" );
//и заканчиваем дальнейший поиск
break;
}
//Иначе
else
//Переходим к следующему элементу
i++;
}
//Если весь массив проверили и не нашли элемента с таким значением
if ( i + 1 > count )
//То выводим соответсвующее сообщение
cout << "Element not found" << endl;
system( "pause" );
}
//Функция сортировки массива
void variety::sortMas ( ){
int k;
cout << "Sort by: " << endl << "1 -.- Population" << endl << "2 -.- Name" << endl << "3 -.- Attraction" << endl;
cin >> k;
switch ( k ){
case 1:
//Организуем внещний цикл для прохода по массиву
for ( int i = 0; i < count - 1; i++)
//Организуем внутренний цикл для прохода по массиву
for ( int j = 0; j < count - 1; j++ )
//Если популяция текущего города БОЛЬШЕ популяции следующего города
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.