Вариант 4

Описать структуру с именем AEROFLOT, содержащую следующие поля:

  • название пункта назначения рейса;
  • номер рейса;
  • тип самолета.

Написать программу, выполняющую следующие действия:

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

Код программы:

//---------------------------------------------------------------------------
#include<iostream.h>
#include<conio.h>
#include<windows.h>
#include <vcl.h>
#pragma hdrstop
#pragma argsused
//---------------------------------------------------------------------------
char *rus(const char *text);//функция для распознавания русских символов
int main(int argc, char* argv[])
{
 const int k=30; //объявление именованной константы 
 int n,i;      //объявление
 bool not_found,sort=1;//переменных
 char dest[k];
 struct aeroflot //объявление структуры 
  { 
    char destiny[k]; //объявление 
    int numb; //полей 
    char type[k]; //структуры 
  };
 aeroflot buffer;
 aeroflot *AEROFLOT=new aeroflot[n];//выделение в динамической памяти место под массив структур
 cout<<rus(" Введите количество структур AEROFLOT: ");cin>>n;//ввод кол-ва структур
 cout<<endl; 
 cin.ignore();
 for(i=0;i<n;i++)
  {
   cout<<(i+1)<<rus(".Введите пункт назначения рейса: ");
   cin>>AEROFLOT[i].destiny; //ввод
   cout<<rus("   Введите номер рейса: ");cin>>AEROFLOT[i].numb;                     //данных
   cout<<rus("   Введите тип самолета: ");                //в структуру
   cin.ignore();cin.getline(AEROFLOT[i].type,k);
   cout<<endl;
  }
 while(sort)
  {
   sort=0;
   for(i=0;i<n-1;i++)
   if(AEROFLOT[i].numb>AEROFLOT[i+1].numb)
    {
     buffer=AEROFLOT[i];
     AEROFLOT[i]=AEROFLOT[i+1];
     AEROFLOT[i+1]=buffer;
     sort=1;
    }
  }
 cout<<endl;
 cout<<rus(" Список рейсов упорядоченных по возрастанию:\n\n");
 for(i=0;i<n;i++)
  {                              //вывод отсортированной структуры
   cout<<rus(" Пункт назначения рейса: ")<<AEROFLOT[i].destiny<<endl;
   cout<<rus(" Номер рейса: ")<<AEROFLOT[i].numb<<endl;
   cout<<rus(" Тип самолета: ")<<AEROFLOT[i].type<<endl;
   cout<<endl;
  }
 cout<<rus("\n Информация о номерах рейсов и типов самолетов вылетающих в пункт\
 назначения, название которого введено с клавиатуры:")<<endl<<endl;
 while(true)
  { 
   cout<<rus(" Введите пункт назначения или слово ""\"end\" для окончания: ");cin>>dest;
   if(strcmp(dest,"end")==0)break;
   not_found=true;
   for(i=0;i<n;i++)
    {
     if(strcmp(AEROFLOT[i].destiny,dest)==0)
      {
       cout<<rus("\n Номер рейса: ")<<AEROFLOT[i].numb<<endl; //вывод
       cout<<rus(" Тип Самолета: ")<<AEROFLOT[i].type<<endl;       //запрошенной
       not_found=false;                                            //информации
       cout<<endl;
      }
    } //если нет такой информации выводится сообщение
   if(not_found)cout<<rus("\n Таких рейсов нет!")<<endl<<endl;
  }
 getch();
 return 0;
}                                                             
//---------------------------------------------------------------------------
char bufrus[256];
char *rus(const char *text)
 {
  CharToOem(text,bufrus);
  return bufrus;
 }
//--------------------------------------------------------------------------- 

Для уменьшения количества выводимой на экран информации, заполним только 2 структуры AEROFLOT.

Результат работы программы:

Результат работы. Четвертый вариант. Структуры

Вариант 3
Вариант 5
error: Content is protected !!