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

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

Обозначение

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

Примечание

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();

}