Программа бронирования билетов

В наше современное информационное общество, где путешествия стали неотъемлемой частью нашей повседневной жизни, эффективное и удобное бронирование билетов стало одним из ключевых компонентов комфортного путешествия. Программы бронирования билетов предоставляют нам мощные инструменты для организации наших поездок, делая процесс выбора, резервирования и управления билетами более удобным, быстрым и прозрачным. Эти программы, будь то в области авиаперелетов, железнодорожных поездок, автобусных маршрутов или даже развлекательных мероприятий, стали незаменимыми помощниками в планировании наших маршрутов и приобретении билетов с минимальными усилиями. С развитием технологий, мобильные приложения и веб-платформы для бронирования предоставляют нам не только широкий выбор вариантов, но и доступ к актуальной информации, обзорам, и, главное, возможностью совершения операций онлайн в любое удобное для нас время. В данной статье мы рассмотрим важность и преимущества программ бронирования билетов.

C++

Пример программы на c++ для бронирования мест на каждом рейсе единственного самолета авиакомпании (его вместимость 10 мест). Программа использует одномерный массив для представления бронирования мест.

#include <iostream>
using namespace std;

const int TOTAL_SEATS = 10;
int seats[TOTAL_SEATS] = {0}; // 0 - свободно, 1 - забронировано

void displayMenu() {
    cout << "Нажмите 1 для бронирования места в Первом классе\n";
    cout << "Нажмите 2 для бронирования места в Эконом классе\n";
    cout << "Нажмите 3 для просмотра свободных мест\n";
}

void reserveSeat(int seatClass) {
    int startSeat, endSeat;
    if (seatClass == 1) {
        startSeat = 0;
        endSeat = 4;
    } else {
        startSeat = 5;
        endSeat = 9;
    }

    for (int i = startSeat; i <= endSeat; ++i) {
        if (seats[i] == 0) {
            seats[i] = 1; // Забронировано
            cout << "Место забронировано успешно. Номер места: " << i + 1 << "\n";
            return;
        }
    }

    cout << "Извините, места в данном классе заполнены. Желаете забронировать в другом классе? (y/n): ";
    char choice;
    cin >> choice;

    if (choice == 'y' || choice == 'Y') {
        reserveSeat(3 - seatClass); // Забронировать в другом классе
    } else {
        cout << "Следующий рейс через 5 часов.\n";
    }
}

void displayAvailableSeats() {
    cout << "Свободные места:\n";
    for (int i = 0; i < TOTAL_SEATS; ++i) {
        if (seats[i] == 0) {
            cout << "Место " << i + 1 << " свободно\n";
        }
    }
}

int main() {
    while (true) {
        displayMenu();

        int choice;
        cout << "Ваш выбор: ";
        cin >> choice;

        switch (choice) {
            case 1:
            case 2:
                reserveSeat(choice);
                break;
            case 3:
                displayAvailableSeats();
                break;
            default:
                cout << "Неверный ввод. Пожалуйста, введите 1, 2 или 3.\n";
        }
    }

    return 0;
}

Этот код создает простое меню для бронирования мест в Первом и Эконом классах, а также для просмотра свободных мест. Когда пользователь выбирает класс, программа проверяет, есть ли свободные места в этом классе, и бронирует первое доступное место. Если места в выбранном классе закончились, программа предлагает бронирование в другом классе. Если пользователь отказывается, программа выводит сообщение о следующем рейсе через 5 часов.

C# (консольная)

using System;

class Program
{
    const int TotalSeats = 10;
    static int[] seats = new int[TotalSeats]; // 0 - свободно, 1 - забронировано

    static void DisplayMenu()
    {
        Console.WriteLine("Нажмите 1 для бронирования места в Первом классе");
        Console.WriteLine("Нажмите 2 для бронирования места в Эконом классе");
        Console.WriteLine("Нажмите 3 для просмотра свободных мест");
    }

    static void ReserveSeat(int seatClass)
    {
        int startSeat, endSeat;
        if (seatClass == 1)
        {
            startSeat = 0;
            endSeat = 4;
        }
        else
        {
            startSeat = 5;
            endSeat = 9;
        }

        for (int i = startSeat; i <= endSeat; ++i)
        {
            if (seats[i] == 0)
            {
                seats[i] = 1; // Забронировано
                Console.WriteLine($"Место забронировано успешно. Номер места: {i + 1}");
                return;
            }
        }

        Console.Write("Извините, места в данном классе заполнены. Желаете забронировать в другом классе? (y/n): ");
        char choice = Console.ReadLine()[0];

        if (choice == 'y' || choice == 'Y')
        {
            ReserveSeat(3 - seatClass); // Забронировать в другом классе
        }
        else
        {
            Console.WriteLine("Следующий рейс через 5 часов.");
        }
    }

    static void DisplayAvailableSeats()
    {
        Console.WriteLine("Свободные места:");
        for (int i = 0; i < TotalSeats; ++i)
        {
            if (seats[i] == 0)
            {
                Console.WriteLine($"Место {i + 1} свободно");
            }
        }
    }

    static void Main()
    {
        while (true)
        {
            DisplayMenu();

            Console.Write("Ваш выбор: ");
            int choice;
            if (int.TryParse(Console.ReadLine(), out choice))
            {
                switch (choice)
                {
                    case 1:
                    case 2:
                        ReserveSeat(choice);
                        break;
                    case 3:
                        DisplayAvailableSeats();
                        break;
                    default:
                        Console.WriteLine("Неверный ввод. Пожалуйста, введите 1, 2 или 3.");
                        break;
                }
            }
            else
            {
                Console.WriteLine("Неверный ввод. Пожалуйста, введите 1, 2 или 3.");
            }
        }
    }
}

C# (графическая)

Откройте Form1.cs в дизайнере. Разместите элементы управления на форме. Например:
Label для отображения выбранного места.
ComboBox для выбора рейса/поезда/фильма.
NumericUpDown для выбора количества билетов.
Button для бронирования билетов.

Добавим код для обработки событий элементов управления:

Дважды щелкните на кнопке, чтобы создать обработчик события Click.

Добавьте код для бронирования билетов и обновления интерфейса, например:

private void button1_Click(object sender, EventArgs e)
        {
             // Получаем данные из элементов управления
            string selectedMovie = comboBox1.SelectedItem.ToString();
            int numTickets = (int)numericUpDown1.Value;

            // Здесь мог бы быть код для реального бронирования

            // Обновляем интерфейс
               label1.Text = numTickets+" билетов(-а) на "+selectedMovie +" забронированы!";
        }

Запустите приложение, нажав на зеленую стрелку вверх (Start Debugging) или используя F5.

Python

class Airplane:
    def __init__(self):
        self.total_seats = 10
        self.seats = [0] * self.total_seats  # 0 - свободно, 1 - забронировано

    def display_menu(self):
        print("Нажмите 1 для бронирования места в Первом классе")
        print("Нажмите 2 для бронирования места в Эконом классе")
        print("Нажмите 3 для просмотра свободных мест")

    def reserve_seat(self, seat_class):
        start_seat, end_seat = (0, 4) if seat_class == 1 else (5, 9)

        for i in range(start_seat, end_seat + 1):
            if self.seats[i] == 0:
                self.seats[i] = 1  # Забронировано
                print(f"Место забронировано успешно. Номер места: {i + 1}")
                return

        print("Извините, места в данном классе заполнены.")
        choice = input("Желаете забронировать в другом классе? (y/n): ").lower()

        if choice == 'y':
            self.reserve_seat(3 - seat_class)  # Забронировать в другом классе
        else:
            print("Следующий рейс через 5 часов.")

    def display_available_seats(self):
        print("Свободные места:")
        for i in range(self.total_seats):
            if self.seats[i] == 0:
                print(f"Место {i + 1} свободно")


def main():
    airplane = Airplane()

    while True:
        airplane.display_menu()

        choice = input("Ваш выбор: ")
        if choice == '1' or choice == '2':
            airplane.reserve_seat(int(choice))
        elif choice == '3':
            airplane.display_available_seats()
        else:
            print("Неверный ввод. Пожалуйста, введите 1, 2 или 3.")


if __name__ == "__main__":
    main()

Java

import java.util.Scanner;

public class AirplaneReservation {
    private static final int TOTAL_SEATS = 10;
    private static int[] seats = new int[TOTAL_SEATS]; // 0 - свободно, 1 - забронировано

    public static void displayMenu() {
        System.out.println("Нажмите 1 для бронирования места в Первом классе");
        System.out.println("Нажмите 2 для бронирования места в Эконом классе");
        System.out.println("Нажмите 3 для просмотра свободных мест");
    }

    public static void reserveSeat(int seatClass) {
        int startSeat, endSeat;
        if (seatClass == 1) {
            startSeat = 0;
            endSeat = 4;
        } else {
            startSeat = 5;
            endSeat = 9;
        }

        for (int i = startSeat; i <= endSeat; i++) {
            if (seats[i] == 0) {
                seats[i] = 1; // Забронировано
                System.out.println("Место забронировано успешно. Номер места: " + (i + 1));
                return;
            }
        }

        System.out.print("Извините, места в данном классе заполнены. Желаете забронировать в другом классе? (y/n): ");
        Scanner scanner = new Scanner(System.in);
        char choice = scanner.nextLine().charAt(0);

        if (choice == 'y' || choice == 'Y') {
            reserveSeat(3 - seatClass); // Забронировать в другом классе
        } else {
            System.out.println("Следующий рейс через 5 часов.");
        }
    }

    public static void displayAvailableSeats() {
        System.out.println("Свободные места:");
        for (int i = 0; i < TOTAL_SEATS; i++) {
            if (seats[i] == 0) {
                System.out.println("Место " + (i + 1) + " свободно");
            }
        }
    }

    public static void main(String[] args) {
        while (true) {
            displayMenu();

            Scanner scanner = new Scanner(System.in);
            System.out.print("Ваш выбор: ");
            int choice = scanner.nextInt();

            switch (choice) {
                case 1:
                case 2:
                    reserveSeat(choice);
                    break;
                case 3:
                    displayAvailableSeats();
                    break;
                default:
                    System.out.println("Неверный ввод. Пожалуйста, введите 1, 2 или 3.");
                    break;
            }
        }
    }
}

Pascal

program AirplaneReservation;

const
  TOTAL_SEATS = 10;

var
  seats: array[1..TOTAL_SEATS] of Integer;

procedure DisplayMenu;
begin
  writeln('Нажмите 1 для бронирования места в Первом классе');
  writeln('Нажмите 2 для бронирования места в Эконом классе');
  writeln('Нажмите 3 для просмотра свободных мест');
end;

procedure ReserveSeat(seatClass: Integer);
var
  startSeat, endSeat, i: Integer;
  choice: Char;
begin
  if seatClass = 1 then
  begin
    startSeat := 1;
    endSeat := 5;
  end
  else
  begin
    startSeat := 6;
    endSeat := 10;
  end;

  for i := startSeat to endSeat do
  begin
    if seats[i] = 0 then
    begin
      seats[i] := 1; // Забронировано
      writeln('Место забронировано успешно. Номер места: ', i);
      Exit;
    end;
  end;

  write('Извините, места в данном классе заполнены. Желаете забронировать в другом классе? (y/n): ');
  readln(choice);

  if (choice = 'y') or (choice = 'Y') then
  begin
    ReserveSeat(3 - seatClass); // Забронировать в другом классе
  end
  else
  begin
    writeln('Следующий рейс через 5 часов.');
  end;
end;

procedure DisplayAvailableSeats;
var
  i: Integer;
begin
  writeln('Свободные места:');
  for i := 1 to TOTAL_SEATS do
  begin
    if seats[i] = 0 then
    begin
      writeln('Место ', i, ' свободно');
    end;
  end;
end;

var
  choice: Integer;

begin
  while True do
  begin
    DisplayMenu;

    write('Ваш выбор: ');
    readln(choice);

    case choice of
      1, 2: ReserveSeat(choice);
      3: DisplayAvailableSeats;
    else
      writeln('Неверный ввод. Пожалуйста, введите 1, 2 или 3.');
    end;
  end;
end.

JavaScript

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Airplane Reservation</title>
  <style>
    body {
      font-family: Arial, sans-serif;
    }

    button {
      margin-top: 10px;
      padding: 5px 10px;
      font-size: 14px;
    }

    #output {
      margin-top: 20px;
    }
  </style>
</head>
<body>
  <h2>Airplane Reservation</h2>
  <button onclick="reserveSeat(1)">Забронировать место в Первом классе</button>
  <button onclick="reserveSeat(2)">Забронировать место в Эконом классе</button>
  <button onclick="displayAvailableSeats()">Просмотреть свободные места</button>
  <div id="output"></div>

  <script>
    const totalSeats = 10;
    const seats = Array(totalSeats).fill(0); // 0 - свободно, 1 - забронировано

    function reserveSeat(seatClass) {
      let startSeat, endSeat;
      if (seatClass === 1) {
        startSeat = 0;
        endSeat = 4;
      } else {
        startSeat = 5;
        endSeat = 9;
      }

      for (let i = startSeat; i <= endSeat; i++) {
        if (seats[i] === 0) {
          seats[i] = 1; // Забронировано
          displayOutput(`Место забронировано успешно. Номер места: ${i + 1}`);
          return;
        }
      }

      const choice = confirm("Извините, места в данном классе заполнены. Желаете забронировать в другом классе?");
      if (choice) {
        reserveSeat(3 - seatClass); // Забронировать в другом классе
      } else {
        displayOutput("Следующий рейс через 5 часов.");
      }
    }

    function displayAvailableSeats() {
      let availableSeats = "Свободные места:\n";
      for (let i = 0; i < totalSeats; i++) {
        if (seats[i] === 0) {
          availableSeats += `Место ${i + 1} свободно\n`;
        }
      }
      displayOutput(availableSeats);
    }

    function displayOutput(message) {
      document.getElementById('output').innerText = message;
    }
  </script>
</body>
</html>

PHP

<?php
$totalSeats = 10;
$seats = array_fill(0, $totalSeats, 0); // 0 - свободно, 1 - забронировано

function displayMenu()
{
    echo "Нажмите 1 для бронирования места в Первом классе\n";
    echo "Нажмите 2 для бронирования места в Эконом классе\n";
    echo "Нажмите 3 для просмотра свободных мест\n";
}

function reserveSeat($seatClass)
{
    global $seats;

    $startSeat = ($seatClass == 1) ? 0 : 5;
    $endSeat = ($seatClass == 1) ? 4 : 9;

    for ($i = $startSeat; $i <= $endSeat; $i++) {
        if ($seats[$i] == 0) {
            $seats[$i] = 1; // Забронировано
            echo "Место забронировано успешно. Номер места: " . ($i + 1) . "\n";
            return;
        }
    }

    $choice = readline("Извините, места в данном классе заполнены. Желаете забронировать в другом классе? (y/n): ");

    if ($choice === 'y' || $choice === 'Y') {
        reserveSeat(3 - $seatClass); // Забронировать в другом классе
    } else {
        echo "Следующий рейс через 5 часов.\n";
    }
}

function displayAvailableSeats()
{
    global $seats;

    echo "Свободные места:\n";
    for ($i = 0; $i < count($seats); $i++) {
        if ($seats[$i] == 0) {
            echo "Место " . ($i + 1) . " свободно\n";
        }
    }
}

while (true) {
    displayMenu();

    $choice = readline("Ваш выбор: ");

    switch ($choice) {
        case 1:
        case 2:
            reserveSeat($choice);
            break;
        case 3:
            displayAvailableSeats();
            break;
        default:
            echo "Неверный ввод. Пожалуйста, введите 1, 2 или 3.\n";
            break;
    }
}
?>
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Давайте поможем друг другу! Если вы нашли ошибку или хотите предложить лучшее решение, пожалуйста, напишите об этом в комментариях.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *