Семинар 6 (Вариант 5)

Условие: Описать структуру с именем AEROFLOT, содержащую следующие поля: название пункта назначения рейса; номер рейса; тип самолета. Написать программу, выполняющую следующие действия:

1) ввод с клавиатуры данных в массив, состоящий из семи элементов типа AEROFLOT; записи должны быть размещены в алфавитном порядке по названиям пунктов назначения;

2) вывод на экран пунктов назначения и номеров рейсов, обслуживаемых самолетом, тип которого введен с клавиатуры;

3) если таких рейсов нет, выдать на дисплей соответствующее сообщение

Листинг программы

#include <iostream>

#include <cstring>

#include <iomanip>

using namespace std;

 

int main()

{

setlocale(LC_ALL, "Russian");

 

const int l_dest = 40, l_type = 40;

struct Aeroflot

{

   char destination[l_dest + 1];

   int flightNum;

   char type[l_type + 1];

};

const int l_dbase = 7;

Aeroflot dbase[l_dbase];

 

 

cout << "Введите информацию о " << l_dbase << " рейсах" << endl;

for (int i = 0; i < l_dbase; i++)

{

   Aeroflot flyght;

   cout << "Рейс " << i + 1 << endl;

   cout << "Пункт назначения: ";

   cin.getline(flyght.destination, l_dest);

   cout << "Номер рейса: ";

   cin >> flyght.flightNum; cin.ignore(128, '\n');

   cout << "Тип самолёта: ";

   cin.getline(flyght.type, l_type);

   int j;

   for (j = 0; j < i; j++)

   {

       if (strcmp(flyght.destination, dbase[j].destination) < 0)

           break;

   }

   for (int k = i - 1; k >= j; k--)

   {

       strcpy(dbase[k + 1].destination, dbase[k].destination);

       dbase[k + 1].flightNum = dbase[k].flightNum;

       strcpy(dbase[k + 1].type, dbase[k].type);

   }

  strcpy(dbase[j].destination, flyght.destination);

   dbase[j].flightNum = flyght.flightNum;

   strcpy(dbase[j].type, flyght.type);

}

 

 

cout << endl << "Отсортированные по пункту назначения рейсы" << endl;

cout << setw(40) << left << "Пункт назначения"

   << setw(40) << left << "Тип самолёта"

   << left << "Номер рейса" << endl;

for (int i = 0; i < l_dbase; i++)

{

   cout << setw(40) << left << dbase[i].destination

       << setw(40) << left << dbase[i].type

       << left << dbase[i].flightNum << endl;

}

 

 

char type[l_type];

cout << endl << "Введите тип самолёта: ";

cin.getline(type, l_type);

int cnt = 0;

cout << "Рейсы с данным типом самолёта" << endl;

for (int i = 0; i < l_dbase; i++)

{

   if (strcmp(type, dbase[i].type) == 0)

   {

       cnt++;

       cout << cnt << ". Пункт назначения: " << dbase[i].destination

           << ", номер рейса: " << dbase[i].flightNum << endl;

   }

}

if (cnt == 0)

   cout << "Таких нет" << endl;

 

return 0;

}

 

 

Скриншоты работы

(часть 1)

(часть 2)

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: