Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Дмитрий Павлов
0 / 0 / 0
Регистрация: 22.10.2011
Сообщений: 33
#1

Написать программу выбора места в курящей или не курящей части самолета - C++

29.10.2011, 02:34. Просмотров 531. Ответов 9
Метки нет (Все метки)

Народ кто знает как сделать такую задачу?


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

Массивы одинарные.Как можно проще так же если не сложно коменты что для чего и зачем.Спасибо большое тому кто поможет.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.10.2011, 02:34     Написать программу выбора места в курящей или не курящей части самолета
Посмотрите здесь:
C++ Написать программу, меню использующую оператор выбора
Написать программу, которая упорядочивает вещественный массив методом выбора C++
C++ Написать программу вычисления выражения c использованием оператора множественного выбора Switch
C++ Написать программу вычисления выражения c использованием оператора множественного выбора Switch
C++ ошибка в коде. Написать программу для выбора различных методов вычесления
C++ Написать программу вычисления площади треугольники или квадрата или трапеции
C++ Надо написать программу на while или do while и написать алгоритм
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
29.10.2011, 02:52     Написать программу выбора места в курящей или не курящей части самолета #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
#include "stdafx.h"
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
 
int checkSeats(int classType, int arrSeats[]){
    int start;
    int end;
    switch(classType){
    case 1:
        start = 1; end = 5;
        break;
    case 2:
        start = 6; end = 10;
        break;
    default:
        cout << "type of class is not valid" << endl;
    } 
    for(int i = start; i<=end; ++i){
        if(arrSeats[i] == 0){
            return i;
        }
    }
    return 0;
}
 
void setReserve(int place, int arr[]){
    arr[place] = 1;
}
 
void reserveSeat(){
    const int numberOfSeats = 10;
    int arrSeats[numberOfSeats+1] = {};
    int classType;
    int freeSeat;
    int next = 1;
    bool firstIsOccupied = false;
    bool economyIsOccupied = false;
 
    while(next==1){
        if(!firstIsOccupied && !economyIsOccupied){
            cout << "Please type 1 for \"First Class\" or type 2 for \"Economy\"" << endl;
            cin >> classType;
            freeSeat = checkSeats(classType, arrSeats); 
            if(freeSeat==0){
                classType==1 ? firstIsOccupied = true : economyIsOccupied = true;
                cout << "All seats of " <<( classType==1 ? "\"First Class\"" : "\"Economy Class\"") << " are occupied" << endl;
                cout << "Please type " << (classType==1 ? "2": "1") << " if it is acceptable to be placed in the " 
                    << ( classType==1 ? "\"Economy Class\"" : "\"First Class\"") << endl;
                cin >> classType;
            } else {
                setReserve(freeSeat, arrSeats);
                cout << "Seat reserved.\nPlease type 1 to make another reservation or 0 to exit" << endl;
                cin >> next;
            }
        } else if(!firstIsOccupied && economyIsOccupied){
            freeSeat = checkSeats(1, arrSeats);
            if(freeSeat!=0){
                setReserve(freeSeat, arrSeats);
                cout << "Seat reserved.\nPlease type 1 to make another reservation or 0 to exit" << endl;
                cin >> next;
            } else {
                firstIsOccupied = true;
            }
 
        } else if(firstIsOccupied && !economyIsOccupied){
            freeSeat = checkSeats(2, arrSeats);
            if(freeSeat!=0){
                setReserve(freeSeat, arrSeats);
                cout << "Seat reserved.\nPlease type 1 to make another reservation or 0 to exit" << endl;
                cin >> next;
            } else {
                economyIsOccupied = true;
            }
        } else {
            cout << " Sorry, all places are occupied. Next flight leaves in 3 hours" << endl;
            next = 0;
        }
    }
 
    for(int j = 1; j < numberOfSeats+1; ++j){
        cout << "Seat " << j << (arrSeats[j]==1 ? " is occupied" : "is free" ) << endl;
    }
}
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    reserveSeat();
    system("pause");
    return 0;
}
Дмитрий Павлов
0 / 0 / 0
Регистрация: 22.10.2011
Сообщений: 33
29.10.2011, 03:05  [ТС]     Написать программу выбора места в курящей или не курящей части самолета #3
Интересное решение только есть другие варианты есть пару непонятность и кое что я не учил из этого и преподаватель не поймет меня..
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
29.10.2011, 03:10     Написать программу выбора места в курящей или не курящей части самолета #4
Цитата Сообщение от Дмитрий Павлов Посмотреть сообщение
есть пару непонятность
задавайте вопросы. проясню пару непонятностей

Цитата Сообщение от Дмитрий Павлов Посмотреть сообщение
и преподаватель не поймет меня
а он что тоже что-то из этого не учил ?
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
29.10.2011, 03:11     Написать программу выбора места в курящей или не курящей части самолета #5

Не по теме:

Цитата Сообщение от Дмитрий Павлов Посмотреть сообщение
преподаватель не поймет меня..
прапорщик в армии всех поймет...


хоть бы написали чего не ясно
Дмитрий Павлов
0 / 0 / 0
Регистрация: 22.10.2011
Сообщений: 33
29.10.2011, 03:27  [ТС]     Написать программу выбора места в курящей или не курящей части самолета #6
Да не вопрос щя

Добавлено через 1 минуту
А насчет препада он та учил а типа я принес то чего мы не учили и говорю я програмер великий.

Добавлено через 4 минуты
Библиотека Stdafx.h не знаю не учили что это за библиотека.
За чем писать using std::cin cout endl мы всегда пишем так на пример
#include <iostream>
using namespace std;
void main ()
{

Пару строчек начинать с void что это значит?
И в конце int _tmain(int argc, _TCHAR* argv[])
{
reserveSeat();
system("pause");
return 0;
}
что значит??
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
29.10.2011, 03:41     Написать программу выбора места в курящей или не курящей части самолета #7
Цитата Сообщение от Дмитрий Павлов Посмотреть сообщение
Библиотека Stdafx.h не знаю не учили что это за библиотека.
эту библиотеку по дефолу вкладывает MSVisual Studio как прекомпилированный хэдер. Совершенно не обязательно его наличие. можете это убрать если пользуетесь чем то другим.
Цитата Сообщение от Дмитрий Павлов Посмотреть сообщение
За чем писать using std::cin cout endl мы всегда пишем так на пример
#include <iostream>
using namespace std;
это плохая практика. потому что использование ВСЕГО простарнства имен сразу может привести к ошибкам. поэтому я пишу using std::cin; чтобы использовать только то что мне надо.


Цитата Сообщение от Дмитрий Павлов Посмотреть сообщение
void main ()
{}
не совсем правильно потому что функция main должна вернуть 0 в случае удачного выполнения программы и 1 в случае ошибки. поэтому main должна быть int.
т.е. может написать так:
C++
1
2
3
4
5
int main(){
  reserveSeat();
  system("pause");
return 0;
}
Дмитрий Павлов
0 / 0 / 0
Регистрация: 22.10.2011
Сообщений: 33
29.10.2011, 03:47  [ТС]     Написать программу выбора места в курящей или не курящей части самолета #8
Спасибо все толково обяснил если будут какието вопросы как можно будет с тобой связатсо???
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
29.10.2011, 03:51     Написать программу выбора места в курящей или не курящей части самолета #9
Цитата Сообщение от Дмитрий Павлов Посмотреть сообщение
... как можно будет с тобой связатсо???
а что значит связатсо ? связаться что ли? ... а форум то на что?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.10.2011, 04:23     Написать программу выбора места в курящей или не курящей части самолета
Еще ссылки по теме:
C++ Написать программу разбиения строки на две части: до первого вхождения заданного символа и после него
Написать программу которая выводит на экран заполненный или C++
C++ Написать программу, проверяющую, поместится ли круг в квадрат или наоборот.
C++ Написать программу, которая определяет симметричный массив или нет
Написать консольную программу на языке С/C++ с использованием операторов цикла while или do while C++

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

Или воспользуйтесь поиском по форуму:
Дмитрий Павлов
0 / 0 / 0
Регистрация: 22.10.2011
Сообщений: 33
29.10.2011, 04:23  [ТС]     Написать программу выбора места в курящей или не курящей части самолета #10
да не просто не удобно так писать удобней по моему в аське или в скайпе...
Yandex
Объявления
29.10.2011, 04:23     Написать программу выбора места в курящей или не курящей части самолета
Ответ Создать тему
Опции темы

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