Выполняю задание. Условие следующее: Составить программу, которая содержит текущую информацию о заявках на авиабилеты. Каждая заявка содержит: 1) пункт назначения 2) номер рейса 3) фио 4) дату
Требуется реализовать функции: 1) хранения заявок в виде списка 2) добавления заявок 3) вывода всех заявок 4) поиск заявки по номеру и дате 5) удаление заявок.
Не могу понять, как правильно добавлять заявки и их выводить. Заполнив одну заявку, всё выводится хорошо. Но как только хочу заполнить ещё или вывести больше одной, то не работает. Прошу подсказать, что исправить нужно. Код прикладываю:
| Код | #include <iostream> #include <string> #include <cstring> using namespace std;
struct List // объявление структуры с данными { string point; int reis_n; string fio; string date; List *next; };
// прототипы функций int Menu(); void add(List *first); void cout_all(List *first); void cout_one(List *first); void del(List *first);
int main() { setlocale( LC_ALL,"Russian" ); List *first = new List; cout<<"Введите пункт назначения: "; cin>>first->point; cout<<"Введите номер рейса: "; cin>>first->reis_n; cout<<"Введите фио пассажира: "; cin>>first->fio; cout<<"Введите дату вылета: "; cin>>first->date; first->next=NULL;
short k; while ((k=Menu())!=0) { switch(k) { case 1: add(first); break; case 2: cout_all(first); break; case 3: del(first); break; case 4: cout_one(first); break; case 5: break; default: cout<<"Введите число от 1 до 5: "; } } return 0; }
int Menu() { cout<<"\n"; cout<<"1 - Добавить заявку\n"; cout<<"2 - Вывести все заявки\n"; cout<<"3 - Удалить заявку\n"; cout<<"4 - Вывести заявку по номеру рейса и дате вылета\n"; cout<<"0 - Выход\n"; cout<<"\n"; cout<<"Введите нужный пункт: "; short k; cin>>k; cout<<"\n"; return k; }
void add(List *first) // добавление одной заявки в список { List *t;
for (t=first; (t->next)!=NULL; t=t->next) {} List *tmp = new List; cout<<"Введите пункт назначения: "; cin>>tmp->point; cout<<"Введите номер рейса: "; cin>>tmp->reis_n; cout<<"Введите фио пассажира: "; cin>>tmp->fio; cout<<"Введите дату вылета: "; cin>>tmp->date; t->next=tmp; }
void cout_all(List *first) // вывод всех заявок { List *t; for (t=first; (t->next)!=NULL; t=t->next) {} cout<<"Пункт назначения: "<<t->point<<"\n"; cout<<"Номер рейса: "<<t->reis_n<<"\n"; cout<<"ФИО пассажира: "<<t->fio<<"\n"; cout<<"Дата вылета пассажира: "<<t->date<<"\n"; t->next=t; }
void cout_one(List *first) // вывод заявки по критериям { List *t; int i=0; int num; string d; cout<<"Введите номер рейса:"<<"\n"; cin>>num; cout<<"Введите дату вылета (ДД.ММ.ГГ): "<<"\n"; cin>>d; for (t=first; (t->next)!=NULL;t=t->next) {} if ((t->reis_n==num)&&(t->date==d)) { cout<<"Требуемая заявка найдена"; cout<<"Пункт назначения: "<<t->point<<"\n"; cout<<"Номер рейса: "<<t->reis_n<<"\n"; cout<<"ФИО пассажира: "<<t->fio<<"\n"; cout<<"Дата вылета пассажира: "<<t->date<<"\n"; i++; } if (i==0) cout<<"Таких заявок не найдено"<<"\n"; }
void del(List *first) // удаление заявки { cout<<"\n"; }
|
|