Описать структуру с именем AEROFLOT, содержащую следующие поля:
- название пункта назначения рейса;
- номер рейса;
- тип самолета.
Написать программу, выполняющую следующие действия:
- ввод с клавиатуры данных в массив, состоящий из семи элементов типа AEROFLOT, записи должны быть упорядочены по возрастанию номера рейса;
- вывод на экран номеров рейсов и типов самолетов, вылетающих в пункт назначения, название которого совпало с названием, введенным с клавиатуры;
- если таких рейсов нет, выдать на дисплей соответствующее сообщение.
Код программы:
//--------------------------------------------------------------------------- #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.
Результат работы программы: