Описать структуру с именем ORDER, содержащую следующие поля:
- расчетный счет плательщика;
- расчетный счет получателя;
- перечисляемая сумма в руб.
Написать программу, выполняющую следующие действия:
- ввод с клавиатуры данных в массив, состоящий из восьми элементов типа ORDER, записи должны быть размещены в алфавитном порядке по расчетным счетам плательщиков.
- вывод на экран информации о сумме, снятой с расчетного счета плательщика, введенного с клавиатуры.
- если такого расчетного счета нет, выдать на дисплей соответствующее сообщение.
Код программы:
//--------------------------------------------------------------------------- #include<iostream.h> #include<conio.h> #include<windows.h> #include<vcl.h> #pragma hdrstop #pragma argsused //--------------------------------------------------------------------------- char *rus(const char *text);//функция для распознавания русских символов int main() { int i,n,r_schet; //объявление bool not_found,sort=1; //переменных struct Order //объявление структуры { char rspl; //объявление char rspol; //полей double money; //структуры }; Order temp; cout<<rus(" Введите количество структур ORDER: ");cin>>n; //ввод кол-ва структур cout<<endl; Order *ORDER=new Order[n]; //выделение в динамической памяти место под массив структур for(i=0;i<n;i++) { cout<<' '<<(i+1)<<rus(".Введите расчетный счет плательщика: ");cin>>ORDER[i].rspl; //ввод cout<<rus(" Введите расчетный счет получателя: ");cin>>ORDER[i].rspol; //данных cout<<rus(" Введите перечисляемую сумму: ");cin>>ORDER[i].money; //в структуру cout<<endl; } while(sort) { sort=0; for(i=0;i<n-1;i++) if(ORDER[i].rspl>ORDER[i+1].rspl) { temp=ORDER[i]; ORDER[i]=ORDER[i+1]; ORDER[i+1]=temp; sort=1; } } cout<<endl; cout<<rus(" Записи упорядоченные по расчетным счетам:\n\n"); for(i=0;i<n;i++) { //вывод отсортированной структуры cout<<rus(" Расчетный счет плательщика: ")<<ORDER[i].rspl<<endl; cout<<rus(" Расчетный счет получателя: ")<<ORDER[i].rspol<<endl; cout<<rus(" Перечисляемая сумму: ")<<ORDER[i].money<<endl; cout<<endl; } cout<<rus("\n Информация о сумме, снятой с расчетного счета плательщика введенного с клавиатуры:")<<endl; while(true) { cout<<endl; cout<<rus(" Введите р/с или 0 для окончания: ");cin>>r_schet; cout<<endl; if(r_schet==0)break; not_found=true; for(i=0;i<n;i++) { if(ORDER[i].rspl==r_schet) { cout<<rus(" Сумма: ")<<ORDER[i].money<<endl; //вывод not_found=false; //запрошенной информации } } //если нет такой информации выводится сообщение if(not_found)cout<<rus(" Такого р/с нет!")<<endl; } getch(); return 0; } //--------------------------------------------------------------------------- char bufrus[256]; char *rus(const char *text) { CharToOem(text,bufrus); return bufrus; } //---------------------------------------------------------------------------
Для уменьшения количества выводимой на экран информации, заполним только 2 структуры ORDER.
Результат работы программы: