Предмет: Информатика, автор: Трафальгар

Напишите на с++ через классы:
Есть отель. В нем n номеров. Если номер занят, то false, если свободен, то true. Заполненность номеров хранится в массиве. Нужно добавить функцию бронирования номера. Если номер занят, то вывести false, если свободен true. Так же нужно вывести массив занятых и свободных номеров

Ответы

Автор ответа: saintegg
1
Вот решение, как я понял, что тебе нужно, если что-то переделать - пиши

Трафальгар: Вы сделали, что он показывает все номера свободными и только забронированный false, а неплохо было б, чтоб он уже рандомные номера делал заполнеными и если так совпало, что мы бронируем номер и он занят, вывел, что номер уже занят
saintegg: если еще актуально, могу переделать
Трафальгар: да, актуально
Трафальгар: так же могли бы сделать, что номер занятый можно было освободить
saintegg: #include
#include
#include

class Hotel
{
private:

std::vector rooms;

public:

void booking(unsigned int n)
{
if (rooms[n]) rooms[n] = 0;
else
{
std::cout << "You can't book this room\n";
system("pause");
}
}
saintegg: void createRooms (unsigned int n)
{
srand(time(0));
for (int i = 0; i < n; i++)
{

rooms.push_back( rand() % 2);
}
}

void ViewRooms ()
{
for (int i = 0; i < rooms.size(); i++)
{
std::cout << "Room - " << i << " ";
if (rooms[i]) std::cout << "true\n"; else std::cout << "false\n";
}
}

void cancelBooking (int n)
{
if (!rooms[n]) rooms[n] = 1; else std::cout << "This room is free.";
}
};
saintegg: int main ()
{
Hotel hotel;

while (1)
{
system("cls");

std::cout << "Choose an option:\n1. Create rooms.\n2. Booking room.\n3. View rooms.\n4. Cancel booking.\n 5. Exit.\n";
int choice;
std::cin >> choice;

system("cls");

int n;
saintegg: switch(choice)
{
case 1:
std::cout << "Set nubmer of rooms: ";

std::cin >> n;
hotel.createRooms(n);
break;
case 2:
std::cout << "Set room's number to book: ";
std::cin >> n;
hotel.booking(n);
break;
case 3:
hotel.ViewRooms();
system("pause");
break;
case 4:
std::cout << "Set a room to cancel booking: ";
std::cin >> n;
hotel.cancelBooking(n);
break;
}

if (choice == 5) break;
}
}
saintegg: первые инклюды - iostream, vector, ctime
saintegg: в седьмой строке добавить bool в треуольных скобках между vector и rooms
Интересные вопросы
Предмет: История, автор: egordubrosky007
Предмет: Химия, автор: kolobok1312