Условие: Описать структуру с именем 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)