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

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

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

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

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

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


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

Массивы одинарные.Как можно проще так же если не сложно коменты что для чего и зачем.Спасибо большое тому кто поможет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.10.2011, 02:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написать программу выбора места в курящей или не курящей части самолета (C++):

Написать программу, меню использующую оператор выбора - C++
Помогите написать программу меню использующую оператор выбора.

Написать программу для определения места символа - Pascal
Задана строка символов и отдельный символ. Определить на каком месте в строке впервые встречается такой символ.

Написать программу для автоматизации рабочего места учителя - C (СИ)
Дядя работает в универе и с утра прислал мне вот такое письмо: "Здарова! По поводу сайта профкома пока тишина. Тут работу...

Составить программу, определяющую, имеются ли свободные места в том или ином вагоне - Pascal ABC
1. В поезде 18 вагонов, в каждом из которых 36 мест. Информация о проданных на поезд билетах хранится в двумерном массиве, номера строк...

Написать программу выбора режима работ - Delphi
. Написать программу выбора режима работ, состоящую из следующих пунктов: Очистка экрана, ввод данных, выдача результатов В delphi...

написать программу сортировки методом простого выбора(пузырьком) - C#
нужна помощь 1)написать программу сортировки методом простого выбора(методом пузырька) элементов двумерного массива,имеющих нечетные...

9
greeezz
273 / 166 / 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;
}
1
Дмитрий Павлов
0 / 0 / 0
Регистрация: 22.10.2011
Сообщений: 33
29.10.2011, 03:05  [ТС] #3
Интересное решение только есть другие варианты есть пару непонятность и кое что я не учил из этого и преподаватель не поймет меня..
0
greeezz
273 / 166 / 4
Регистрация: 10.07.2011
Сообщений: 441
29.10.2011, 03:10 #4
Цитата Сообщение от Дмитрий Павлов Посмотреть сообщение
есть пару непонятность
задавайте вопросы. проясню пару непонятностей

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

Не по теме:

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


хоть бы написали чего не ясно
0
Дмитрий Павлов
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;
}
что значит??
0
greeezz
273 / 166 / 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;
}
1
Дмитрий Павлов
0 / 0 / 0
Регистрация: 22.10.2011
Сообщений: 33
29.10.2011, 03:47  [ТС] #8
Спасибо все толково обяснил если будут какието вопросы как можно будет с тобой связатсо???
0
greeezz
273 / 166 / 4
Регистрация: 10.07.2011
Сообщений: 441
29.10.2011, 03:51 #9
Цитата Сообщение от Дмитрий Павлов Посмотреть сообщение
... как можно будет с тобой связатсо???
а что значит связатсо ? связаться что ли? ... а форум то на что?
0
Дмитрий Павлов
0 / 0 / 0
Регистрация: 22.10.2011
Сообщений: 33
29.10.2011, 04:23  [ТС] #10
да не просто не удобно так писать удобней по моему в аське или в скайпе...
0
29.10.2011, 04:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.10.2011, 04:23
Привет! Вот еще темы с ответами:

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

Написать программу, которая формирует типизированный файл. и сортирует методом выбора - Pascal ABC
Написать программу, которая формирует типизированный файл из k-случайных чисел и сортирует методом выбора. Имеется аналогичная...

Написать программу вычисления выражения c использованием оператора множественного выбора Switch - C++
Всем привет!) Помогите с написанием программы для вычисления выражения c использованием оператора множественного выбора Switch. Заранее...

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


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

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

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