В наше современное информационное общество, где путешествия стали неотъемлемой частью нашей повседневной жизни, эффективное и удобное бронирование билетов стало одним из ключевых компонентов комфортного путешествия. Программы бронирования билетов предоставляют нам мощные инструменты для организации наших поездок, делая процесс выбора, резервирования и управления билетами более удобным, быстрым и прозрачным. Эти программы, будь то в области авиаперелетов, железнодорожных поездок, автобусных маршрутов или даже развлекательных мероприятий, стали незаменимыми помощниками в планировании наших маршрутов и приобретении билетов с минимальными усилиями. С развитием технологий, мобильные приложения и веб-платформы для бронирования предоставляют нам не только широкий выбор вариантов, но и доступ к актуальной информации, обзорам, и, главное, возможностью совершения операций онлайн в любое удобное для нас время. В данной статье мы рассмотрим важность и преимущества программ бронирования билетов.
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; } } ?>