Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 13.02.2015
Сообщений: 2
1

Система резервирования билетов авиакомпании

28.02.2015, 11:44. Показов 3999. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Система резервирования билетов авиакомпании. Небольшая авиакомпания купила компьютеры для своей новой автоматизированной системы резервирования. Вас попросили запрограммировать новую систему. Вы должны написать программу выделения мест на каждый полет единственного самолета (вместимость: 10 мест). Ваша программа должна отображать следующее меню альтернатив:
a. Введите, пожалуйста, 1 для «курящих»
b. Введите, пожалуйста, 2 для «некурящих»
Если клиент ввел 1, ваша программа должна выделить место в салоне для курящих (места 1-5). Если клиент ввел 2, ваша программа должна выделять место в салоне для некурящих (места 6-10).
Ваша программа должна также напечатать посадочный талон, указывающий номер места клиента и тип салона в самолете – для курящих или некурящих. Используйте одномерный массив для представления схемы расположения мест в самолете. Присвойте всем элементам массива нулевые начальные значения, чтобы показать, что все места свободны. Как только место выделено пассажиру, устанавливайте соответствующие элементы массива в состояние 1, чтобы показать, что место уже занято.
Ваша программа, конечно, никогда не должна выделять уже занятые места. Если салон для курящих уже заполнен, ваша программа должна спросить у клиента, приемлем ли для него салон для некурящих. Если да, то сделайте выделение соответствующего места. Если нет, то напечатайте сообщение «Следующий полет состоится через три часа».
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.02.2015, 11:44
Ответы с готовыми решениями:

Система резервирования билетов авиакомпании.
Пишем Microsoft Visual Studio -> Win32 Console Application -> C++. Вот такая вот задачка: ...

Cистема резервирования билетов авиакомпании
Уважаемые Гуру! Помогите довести до ума этот код. Уже 3 часа сижу и никак к норме не могу привести,...

Разработка системы резервирования и продажи билетов
Доброе время суток господа программисты. Я полный ламер в программировании. Прошу помочь мне в...

Система предварительной продажи билетов. Интересная программа)
Программа для бронирования мест на каждом рейсе единственного самолета авиакомпании (его...

1
0 / 0 / 1
Регистрация: 02.03.2016
Сообщений: 1
07.04.2016, 04:15 2
Лучший ответ Сообщение было отмечено Van_Witcher как решение

Решение

Писал пару часов, но увлекся, в итоге имеем немного не по заданию, а расширенную:

+ Можно указать количество мест;
+ Рисует салоны с занятыми и свободными местами;
+ Проверяет не занято ли место ( можно выбирать номер места );
+ Проверка диапазона мест в текущем салоне ( от неправильного ввода);
+ Проверка ввода салона ( также от неправильного ввода );
+ Программа работает в диалоговом режиме и постоянно спрашивает пользователя для выбора мест, предлагает подсказки, альтернативу ( перевод в другой салон );
+ Работает в цикле, если пользователь желает продолжить выбор мест, нет - выход из программы.

- Рисует деление по салону лишь при общем количестве мест / 2 == нечетное число.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
#include <clocale>
#include <iostream>
#include <iomanip>
 
using namespace std;
 
#define seats 10        // Выбор количества мест. 
                        // P.S. Отображает корректно отдельные залы, если приделении общего количества мест на 2 остается нечетное число (30/2=15).
                    // Может доработаете мою схему с потоковым выводом). Не стал уже морочится. :)
 
char book_place (int);  
int nonsmokers (int);
int smokers (int);
 
void print_seats (int plane[])   // Печать посадочных мест в виде кабинки. Принимает значения занято (X) / свободно (V) из функции book_place()
{
    cout<<" \t _______________\n"<<"\t/\t\t\\\t\n"<<"\t|  ЗАЛ КУРЯЩИХ  |\n"<<"\t|\t\t|\n"<<"\t|\t\t|\n";
 
    for(int i=1; i<=seats;)
    {
        if( i==(seats/2) )      // опеределяет середину зала для деления салонов визуально
        {
            cout<<"\t|\t"<<i++<<"\t|\n"<<"\t|"<<setw(7)<<'['<<book_place(plane[i-2])<<']'<<"\t|\n"<<"\t|\t\t|\n";
            cout<<"\n\t-----------------\n\n";
            cout<<"\t|\t"<<i++<<"\t|\n"<<"\t|"<<setw(7)<<'['<<book_place(plane[i-2])<<']'<<"\t|\n"<<"\t|\t\t|\n";
        }
 
         cout<<"\t|"<<setw(5)<<i++<<setw(6)<<i++<<"\t|\n"<<"\t|"<<setw(4)<<'['<<book_place(plane[i-2])<<']'<<setw(4)<<'['<<book_place(plane[i-3])<<']'<<"\t|\n"<<"\t|\t\t|\n";
    }
 
    cout<<"\t|\t\t|\n"<<"\t|\t\t|\n"<<"\t| ЗАЛ НЕКУРЯЩИХ |\n"<<"\t\\\t\t/\t\n"<<"\t ---------------\n";
}
 
inline char book_place (int AirSit) // Определяет занято ли место. Сравнивает каждый элемент массива (inline - для производительности)
{
    char Answer=0;
    (AirSit==0)?Answer='V':Answer='X';
 
    return Answer;
}
 
int nonsmokers ( int nonsmok [] ) // Собственно салон Некурящих)
{
    int change_seat=0, i=0, revision=1, traverse=2;
    cout<<"\n\n\t*Салон Некурящих*\n\nСвободные места: ";
 
    for ( int i=0; i<seats/2; i++ ) // Сравнивает значения половины массива (1-занято, 0 - свободно) и печатает свободные.
    {
        if (nonsmok[i]==0) cout<<i+1<<", ";
        else revision++;            // revision увлечивает количество занятых мест, вычисляет, сколько еще свободно.
    }
 
    if(revision>seats/2)           // когда превышает значение - перевод на другой салон (1) или выход (0)
        {
            cout<<"\nИзвините, мест в некурящем салоне нет. Можем перевести в салон для курящих? (1 - ДА, 0 - Нет): ";
            cin>>traverse;
        }
    cout<<"\b\b \n\n";            // Стирает последнюю запятую и переход на новую строку тута: cout<<i+1<<", ";
 
    if(traverse==1) return 1;     //  Если не устроит пассажира перевод в другой салон, досвидос, устроит - снова выбор салона.
    else if(traverse==0) 
    {
        cout<<"Следующий полёт будет через 3 часа";
        exit(0);
    }
 
    else cout<<endl;
 
    cout<<"Выберите свободное место: ";
    cin>>change_seat;                                           // выбор места свободного
    for (int j=0; j<seats/2; j++)  
    {
 
        if (change_seat<1 || change_seat>seats/2)               // Проверка введенного места в допустимый диапазон салона
        {
            cout<<"\nТакого места нет в салоне! Выберите правильно!\n";
            return 0;
        }
 
        else if (change_seat==j+1 && nonsmok[change_seat-1]==0)  // Если всё ок, билет даем
        {
          cout<<"\nВаш билет № "<<change_seat<<endl;
          nonsmok [change_seat-1]=1;
        }
 
        else if (change_seat==j+1 && nonsmok[change_seat-1]==1)   // Если пытаемся ломиться на занятое место - увы нельзя
        {
            cout<<"\nДанное место занято! Выберите свободное!\n";
            break;
        }
    }
 
    return 0;
}
 
 
int smokers ( int smok [] )                         // Функция аналогична вышеприведенной, разница лишь в диапазоне.
{
    int change_seat=0, i=0, revision=seats/2, traverse=2;
    cout<<"\n\n\t*Салон курящих*\n\nСвободные места: ";
 
    for ( int i=seats/2; i<seats ; i++ )
    {
        if(smok[i]==0) cout<<i+1<<", ";
        else revision++;
    }
 
    if(revision==seats)
        {
            cout<<"\nИзвините, мест в курящем салоне нет. Можем перевести в салон для некурящих? (1 - ДА, 0 - Нет): ";
            cin>>traverse;
        }
    cout<<"\b\b \n\n";
 
    if(traverse==1) return 1;
    else if(traverse==0) 
    {
            cout<<"Следующий полёт будет через 3 часа.\n";
            exit(0);
    }
    else cout<<endl;
 
    cout<<"Выберите свободное место: ";
    cin>>change_seat;
    for (int j=seats/2; j<=seats; j++)
    {
        if (change_seat<=seats/2 || change_seat>seats)
        {
            cout<<"\nТакого места нет в салоне! Выберите правильно!\n";
            return 0;
        }
 
        else if (change_seat==j && smok[change_seat-1]==0)
        {
          cout<<"\nВаш билет № "<<change_seat<<endl;
          smok [change_seat-1]=1;
        }
 
        else if (change_seat==j && smok[change_seat-1]==1)
        {
            cout<<"\nДанное место занято! Выберите свободное!\n";
            break;
        }
    }
 
    return 0;
}
 
int main ()
{
    setlocale(LC_CTYPE, "rus");
    srand(time(NULL));
 
    int change = 0, change_continue = 0;
    int aircraft [seats] = {0};  // массив мест
 
    cout<<"\tДобро пожаловать в <Систему резервирования билетов авиакомпании>!\n\n";
 
recovery:
    int transfer=0;
 
    cout<<"\t<Текущее состояние свободных мест>\n\n";
    print_seats(aircraft);       // Печатает свободные / занятые места с рисунком салона
 
    cout<<"\nВведите, пожалуйста, '1' для курящих или Введите, пожалуйста, '2' для некурящих\n";
    cin>>change;                
 
    switch(change)               // перенаправление на функции по выбору пользователя
    {
        case 1:
            transfer=smokers (aircraft);
            if(transfer==1) nonsmokers (aircraft);
            break;
 
        case 2: 
            nonsmokers (aircraft);
            if(transfer==1) smokers (aircraft);
            break;
 
        default:
            cout<<"Неправильно выбран салон!Повторите попытку";
    }
 
    cout<<"\n\nПродолжить бронь билетов? (1 - Да ; 2 - Нет)\n\n";    // Если продолжаем выбор билета - goto вверх поднимает к т. Recovery, нет- Выход
    cin>>change_continue;
    if (change_continue==1) goto recovery;
 
    cout<<"\n\n\tСпасибо за покупку! Удачного полёта!)\n\n";
    return 0;
}
0
07.04.2016, 04:15
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.04.2016, 04:15
Помогаю со студенческими работами здесь

Система резервирования мест в гостинице
Я уже начал реализовывать, но мне кажется, что моя реализация бредова... unit Unit1; ...

Разработать справочно-информационую систему «Справочная система авиакомпании»
Система должна содержать базу данных со следующей информацией: номер рейса, пункт отправления,...

Разработать справочно-информационную систему "справочная система авиакомпании"
Здравствуйте! Помогите, пожалуйста, разработать справочно-информационную систему &quot;справочная...

Помогите разобраться в рабочей программе. "справочная система авиакомпании"
Ребят, эта готовый год. Помогите понять, что к чему. Просто при запуске ее не пойму что дальше...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Элементы алгоритмизации
hw_wired 28.01.2025
Основы алгоритмизации В современном мире алгоритмы играют фундаментальную роль в развитии информационных технологий и программирования. Понимание основ алгоритмизации является ключевым элементом в. . .
Человек и информация
hw_wired 28.01.2025
Введение: роль информации в познании мира В современном мире информация играет фундаментальную роль в процессе познания окружающей действительности. Она представляет собой совокупность сведений об. . .
Компьютер и информация
hw_wired 28.01.2025
Эволюция вычислительных машин История развития вычислительной техники начинается задолго до появления первых электронных устройств. Человечество всегда стремилось упростить процесс вычислений и. . .
Информационные технологии
hw_wired 28.01.2025
Введение в современные технологии работы с информацией В современном мире информационные технологии стали неотъемлемой частью практически всех сфер человеческой деятельности. Они существенно. . .
Информация вокруг нас
hw_wired 28.01.2025
Основные понятия информации В современном мире понятие информации является фундаментальным и охватывает практически все сферы человеческой деятельности. Информация представляет собой совокупность. . .
Компьютер для начинающих
hw_wired 28.01.2025
Введение в мир компьютерных технологий В современном мире информация стала одним из важнейших ресурсов человечества, определяющим развитие общества и технологий. Наша жизнь неразрывно связана с. . .
[golang] 189. Rotate Array
alhaos 28.01.2025
Повороты рукоятки, целочисленный слайс нужно сдвинуть на целое положительное число. Мне очень нравится решение на GO / / https:/ / leetcode. com/ studyplan/ top-interview-150/ package topInterview . . .
КуМир: решение задач на матрицы
bytestream 28.01.2025
КуМир представляет собой среду для обучения программированию, которая включает в себя мощные инструменты для работы с матрицами. Матрица в программировании - это двумерный массив, состоящий из. . .
КуМир: решение задач на строки
bytestream 28.01.2025
В системе программирования КуМир работа со строковыми данными является одним из важнейших аспектов создания программ. Строки представляют собой последовательности символов, заключенные в кавычки,. . .
КуМир: решение геометрических задач
bytestream 28.01.2025
Программирование геометрических задач в среде КуМир становится всё более актуальным в обучении школьников и студентов. КуМир — это разработанная в России обучающая программная среда, предназначенная. . .
КуМир, исполнитель Водолей: Задачи и решения
bytestream 28.01.2025
КуМир — это образовательная среда для обучения программированию. Она предлагает пользователям разнообразные инструменты для разработки и отладки программ, что особенно ценно для студентов и. . .
КуМир, исполнитель Чертежник: Решение задач
bytestream 28.01.2025
КуМир (Комплект Учебных МИРов) представляет собой образовательную среду для обучения основам программирования и алгоритмизации. Исполнитель Чертежник работает на координатной плоскости, где может. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru