Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.67
Count
0 / 0 / 0
Регистрация: 06.11.2011
Сообщений: 24
#1

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

07.11.2011, 20:37. Просмотров 2237. Ответов 5
Метки нет (Все метки)

Пишем Microsoft Visual Studio -> Win32 Console Application -> C++.
Вот такая вот задачка:

Система резервирования билетов авиакомпании. Небольшая авиакомпания купила компьютеры для своей новой автоматизированной системы резервирования. Вас попросили запрограммировать новую систему. Вы должны написать программу выделения мест на каждый полет единственного самолета (вместимость: 10 мест). Ваша программа должна отображать следующее меню альтернатив:
a. Введите, пожалуйста, 1 для «курящих»
b. Введите, пожалуйста, 2 для «некурящих»
Если клиент ввел 1, ваша программа должна выделить место в салоне для некурящих (места 1-5). Если клиент ввел 2, ваша программа должна выделять место в салоне для некурящих (места 6-10).
Ваша программа должна также напечатать посадочный талон, указывающий номер места клиента и тип салона в самолете – для курящих или некурящих. Используйте одномерный массив для представления схемы расположения мест в самолете. Присвойте всем элементам массива нулевые начальные значения, чтобы показать, что все места свободны. Как только место выделено пассажиру, устанавливайте соответствующие элементы массива в состояние 1, чтобы показать, что место уже занято.
Ваша программа, конечно, никогда не должна выделять уже занятые места. Если салон для курящих уже заполнен, ваша программа должна спросить у клиента, приемлем ли для него салон для некурящих. Если да, то сделайте выделение соответствующего места. Если нет, то напечатайте сообщение «Следующий полет состоится через три часа»

Есть только самое начало задачи (от которого не слишком много толку). Основная проблема в том как написать "счетчик" посадочных мест и выводить это все на экран.
Если я не ошибаюсь то программа будет построена на "if".

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
# include <locale>
#include <Windows.h>
using namespace std;
void main ()
{
    int arr[10];
    for (int i=0; i<10; i++)
        arr[i]=0;
    {
    int x, z;
    cout<<"Курящий(1)\n";
    cin>>x;
    cout<<"Не курящий(2)\n";
    cin>>z;
    if(x==1)
Добавлено через 11 часов 12 минут
Все таки, как создать "счетчик" и как выводить его на экран?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2011, 20:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Система резервирования билетов авиакомпании. (C++):

Система резервирования билетов авиакомпании - C++
Система резервирования билетов авиакомпании. Небольшая авиакомпания купила компьютеры для своей новой автоматизированной системы...

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

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

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

Цикл. Продажа билетов - C++
Всем привет Короче вот что необходимо. 10 человек хотят купить билеты. За один раз они могут купить только 2 билета, т.е. если он хочет...

Информация по темам билетов - C++
Всем доброго времени суток. Готовлюсь к сессии, все шло хорошо, но тут увидел несколько билетов которые мне не знакомы и более того, ищу...

5
amor1k
Студент
148 / 148 / 24
Регистрация: 18.01.2011
Сообщений: 469
07.11.2011, 21:04 #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
#include <iostream>
#include <clocale>
using namespace std;
int main ()
{
    setlocale(LC_ALL,"rus");
    int arr[10];
    char choice;
    for (int i = 0; i < 10; i++)
        arr[i] = 0;
    int x;
    cout<< "Курящий(1)\n";
    cout<< "Не курящий(2)\n";
    cin >> x;
    int count = 0, countno = 0;
    if(x == 1)
    {
        for(int i = 0; i < 5; i++)
        {
            if(arr[i] == 0)
            {
                arr[i] = 1;
                count++;
                break;
            }
        }
        if(count == 0)
        {
            cout << "В салоне 'для курящих' нет свободных мест. Приемлем ли для вас салон для некурящих? y / n:";
            cin >> choice;
            if(choice == 'y')
            {
                for(int i = 5; i < 10; i++)
                {
                    if(arr[i] == 0)
                    {
                        arr[i] = 1;
                        countno++;
                        break;
                    }
                }
                if(countno == 0)
                {
                    cout << "Извините, но все места для некурящих заняты. Спасибо, что посетили наш рейс.";
                    return 0;
                }
            }
            if(choice == 'n')
            {
                cout << "Спасибо, что посетили наш рейс.";
                return 0;
            }
        }
    }
    else if(x == 2)
    {
        for(int i = 5; i < 10; i++)
        {
            if(arr[i] == 0)
            {
                arr[i] = 1;
                countno++;
                break;
            }
        }
        if(countno == 0)
        {
            cout << "В салоне 'для некурящих' нет свободных мест. Приемлем ли для вас салон для курящих? y / n:";
            cin >> choice;
            if(choice == 'y')
            {
                for(int i = 0; i < 5; i++)
                {
                    if(arr[i] == 0)
                    {
                        arr[i] = 1;
                        count++;
                        break;
                    }
                }
                if(count == 0)
                {
                    cout << "Извините, но все места для курящих заняты. Следующий полет через 3 часа.";
                    return 0;
                }
            }
            if(choice == 'n')
            {
                cout << "Следующий полет через 3 часа.";
                return 0;
            }
        }
    }
 
    cout << "Места для курящих:\n ";
    for(int i = 0; i < 5; i++)
    {
        cout << arr[i] << " ";
    }
 
    cout << "\nМеста для некурящих:\n ";
    for(int i = 5; i < 10; i++)
    {
        cout  << arr[i] << " ";
    }
 
    system("pause");
}
1
Count
0 / 0 / 0
Регистрация: 06.11.2011
Сообщений: 24
07.11.2011, 21:31  [ТС] #3
Огромное спасибо!
0
Xind
275 / 148 / 7
Регистрация: 05.11.2011
Сообщений: 425
Записей в блоге: 1
07.11.2011, 21:46 #4
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
#include <iostream>
using namespace std;
 
char *type[2] = {"Не для курящих", "Для курящих"};
int rest = 10;
int plane[10] = {0};
int desire, number;
 
int empty(int start, int end) {
        for (int i = start; i < end; i++) {
                if (plane[i] == 0) {
                        return i;
                }
        }
        return -1;
}
 
void print_ticket(int num, int t) {
        if (num > -1) {
                cout << "\tВаш талон\n"
                        << "Тип:" << type[t-1] << '\n'
                        << "Номер:" << num+1 << '\n';
        }
        else {
                cout << "Следующий полет состоится через три часа.\n";
        }
}
 
void offer(int t) {
        if (number > -1) {
                cout << "В салоне " << type[t-1]
                        << " нет свободных мест. Приемлем ли для вас салон "
                        << type[(t)%2] << "? 1 - да, 0 - нет";
                int cmd;
                cin >> cmd;
 
                if (!cmd) {
                        number = -1;
                }
        }
}
 
int main() {
 
        while (rest > 0) {
                cout << "\n\n";
                cout << "Не курящий(1)\n";
                cout << "Курящий(2)\n";
                cin >> desire;
 
                switch (desire) {
                        case 1:
                                number = empty(0, 5);
                                if (number < 0) {
                                        number = empty(5, 10);
                                        offer(desire);
                                }
                                break;
                        case 2:
                                number = empty(5, 10);
                                if (number < 0) {
                                        number = empty(0, 5);
                                        offer(desire);
                                }
                                break;
                }
 
                if (number > -1) {
                        plane[number] = 1;
                        rest--;
                }
                print_ticket(number, desire);
        }
        cout << "Мест нет.\n";
        print_ticket(-1, 1);
}
2
MousePro
49 / 30 / 1
Регистрация: 25.04.2013
Сообщений: 366
20.06.2013, 23:19 #5
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
int main()
{
setlocale(LC_ALL,"Russian");
srand (time(NULL));
int const a=11;
int b[a]={0};
int x=0,y=5;
bool count = true;
while(count)
{
    int mesto;
    std::cout<<"Введите желаемое место:";
    std::cin>>mesto;
 
    if(mesto ==1)
        if(x!=5)
        {
            x++;
            std::cout<<"Ваше место  "<< x<<"\n";
            ++b[x];
        }
        else 
        {
            std::cout<<"Извините, здесь мест больше нет\n";
            std::cout<<"В отделе для курящих еще "<< 10-y<<" мест\n";
        }
if (mesto==2)
    if(y!=10)
        {
            y++;
            std::cout<<"Ваше место  "<< y<<"\n";
            ++b[y];
        }
        else 
        {
            std::cout<<"Извините, здесь мест больше нет\n";
            std::cout<<"В отделе для некурящих еще "<< 5-x<<" мест\n";
        }
mesto=0;
if (y==10 && x==5)
    count=false;
}
for(int y=1;y<a;y++)
    std::cout<<b[y]<<"\n";
 
std::cout<<"Следующий самолет через 3 часа\n";
 
 
system ("pause");
return 0;
}
1
Genn55
372 / 219 / 41
Регистрация: 26.12.2012
Сообщений: 718
21.06.2013, 02:40 #6
Еще вариант
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
#include <iostream>
#include <iomanip>
#include<Windows.h>
 
using namespace std;
 
bool checkEmployment(int bk[], const int pl)
{
for(int i = 0; i < pl; i++)
if(bk[i] == 0)
return true;
 
return false;
}
 
void printTichet(int place, int salonType)
{
cout << "Ваш посадочный талон\n\n";
cout << "номер посадочного места - " << place << endl;
cout << "тип салона - " << (salonType == 1 ? "для курящих\n" : "для не курящих\n") << endl;
}
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);//
 
const int places = 10;
int booking[places] = {0};
int salonType, move;
 
//пока в самолете есть свободные места
while(checkEmployment(booking, places))
{
cout << "Введите 1 для \"курящих\"" << endl;
cout << "Введите 2 для \"не курящих\"" << endl;
cin >> salonType;
 
//если выбран салон для курящих
if(salonType == 1)
{
//ищем свободное место в подходящем салоне
for(int i = 0; i < 5; i++)
{
//если место свободно
if(booking[i] == 0)
{
//помечаем место, как занятое и запоминаем его
booking[i] = 1;
printTichet(i + 1, salonType);
break;
}
 
//если все места заняты
if(i == 4 && booking[i] == 1)
{
//предлагаем место из салона для некурящих
cout << "Премлим ли для вас салон для не курящих? (да - 1, нет - 0)";
cin >> move;
 
//если клиент согласен, то присваиваем нужный тип салона
if(move == 1)
salonType = 2;
else
cout << "Следующий полет состоится через 3 часа \n\n";
}
}
}
 
//если выбран салон для некурящих
if(salonType == 2)
{
for(int i = 5; i < 10; i++)
{
if(booking[i] == 0)
{
booking[i] = 1;
printTichet(i + 1, salonType);
break;
}
 
if(i == 9 && booking[i] == 1)
cout << "Следующий полет состоится через 3 часа \n\n";
}
}
 
//если было введено неверное число
if(salonType != 1 && salonType != 2)
cout << "Не верно!! Повторите ввод!\n";
}
 
cout << "Все места заняты!\n";
 
return 0;
}
0
21.06.2013, 02:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2013, 02:40
Привет! Вот еще темы с ответами:

Определить количество счастливых билетов - C++
Имеется часть катушки с автобусными билетами. Номер билета 6-ти значный. Составить программу. определяющую кол-во счастливых билетов! Я...

Подсчитать общее количество «счастливых» билетов - C++
Подсчитать общее количество «счастливых» билетов. Билет имеет шестизначный номер и является счастливым, если сумма первых трех цифр равна...

Найти количество счастливых билетов с 6-значными номерами - C++
Найти количество счастливых билетов в серии ABC, то есть с 6 - значными номерами вида ABCXXX, счастливым билет считается с номером ABCDEF,...

Найти количество всевозможных шестизначных счастливых билетов - C++
Найти количество всевозможных шестизначных счастливых билетов (для простого алгоритма потребуется 6 циклов) Под счастливыми...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru