Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа Авиабилеты.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
247 Кб
Скачать

Спецификация программы

Обозначение

Наименование

Примечание

stdafx.cpp

Файл проекта

Исходный файл, содержащий только стандартные включаемые модули

Авиабилеты. cpp

Файл модуля проекта

определяет точку входа для консольного приложения.

Текст программы

#include "stdafx.h"

#include <iostream>

#include <locale>

#include <ctime>

#include <string>

using namespace std;

typedef struct zajfka{ // информация о заявках на авиабилеты:

char point[100]; //- пункт назначения;

int number; //- номер рейса;

char name1[20]; //- фамилия пассажира;

char name2[20]; //- имя

char name3[20]; //- отчество

int time_t,date,L; //- желаемая дата вылета;

struct zajfka * next; // указатель на структуру заявка.

}Node;

void addNode( Node *& list ); // - добавление заявок в список;

void deleteNode( Node *& list, const int num ); // - удаление заявок по заданному номеру рейса

void outNodeNum( const Node * list, int num ); // - вывод заявок по заданному номеру рейса

void outNodeDate( const Node * list ); // - вывод заявок по дате вылета

void outNode( const Node * list ); // - вывод всех заявок.

void out( const Node * list ); // вывод одной заявки

bool if_end( char * ch, wchar_t *str = L"" );

//_________ MAIN_________________

int main(int argc, char *argv[])

{

Node * list = NULL;

wcout.imbue(locale(".866"));

addNode( list );

outNode( list );

int num;

wcout << L"\n\nВведите номер рейса для просмотра заявок этого рейса > ";

cin >> num; getchar();

wcout << L"\n\nЗаявки с номером рейса "; cout << num;

outNodeNum( list, num );

wcout << L"\n\nУдаление заявок по заданному номеру рейса > ";

cin >> num; getchar();

deleteNode( list, num );

wcout << L"\n\nОставшиеся заявки:";

outNode( list );

wcout << L"\n\nНажмите клавишу Enter для выхода из программы";

getchar(); // пауза

return 0;

}

//________ END MAIN ______________

void addNode( Node *& list ){

wcout << L"Введите данные о заявках:\n";

wcout << L"Для выхода введите слово \"end\"\n\n";

int L,num = 0;

while(1){

num++;

wcout << L"\nДанные о заявке № " << num << endl;

Node * n = new Node;

if( if_end( n->point,L"Введите пункт назначения > " )) break;

wcout << L"Введите номер рейса > ";

cin >> n->number;

getchar();

if( if_end( n->name1, L"Введите фамилию пассажира > " )) break;

if( if_end( n->name2, L"Введите имя пассажира > " )) break;

if( if_end( n->name3, L"Введите отчество пассажира > " )) break;

wcout << L->date, "Введите желаемую дату вылета > ";

cin >> n->date; // вводим дату

n->next = list; // "пристыковываемся" в список

list = n;

}

}

bool if_end( char * ch, wchar_t *str ){

wcout << str;

gets( ch );

if( strcmp( ch, "end" )) return false;

return true;

}

void out( const Node * list, int num ){

wcout << L"\n\nЗаявка № " << num;

wcout << L"\nПункт назначения > " << list->point;

wcout << L"\nНомер рейса > "; cout << list->number;

wcout << L"\nФамилия пассажира > " << list->name1;

wcout << L"\nИмя пассажира > " << list->name2;

wcout << L"\nВведите отчество пассажира > " << list->name3;

wcout << L"\nЖелаемая датa вылета > " << list->date;

}

void outNode( const Node * list ){

int n = 1;

for(; list ; list = list->next ){

out( list, n );

n++;

}

}

void outNodeNum( const Node * list, int num ){

int n = 1;

for(; list ; list = list->next ){

if( list->number == num )

out( list, n++ );

}

}

void deleteNode( Node *& list, const int num ){

int n = 1;

Node *x, *y = list, *begin = list;

wcout << L"\n\n_____ Удаление: ________";

while( list ){

if( list->number == num ){

x = list->next;

out( list, n );

n++;

if( list != y ){

delete list;

y->next = list = x;

}end if( list != y ){ else{

delete list;

y = list = x;

}end; if( list != y ){

} end; if( list->number == num ){

else{

y = list;

list = list->next;

} end; else if( list->number == num )

}end; while();

list = begin;

} end deleteNode();

}