Python模拟飞机选座系统:实现与扩展功能

Python实现:模拟飞机选座系统

在构建一个飞机选座系统时,我们可以利用Python来模拟一个基本的座位选择功能。此系统将包含座位布局展示、用户选座、重复确认和显示最终选择等功能。以下代码将展示如何实现一个简单的飞机选座系统。

功能描述

  1. 座位布局初始化:设定飞机座位布局,如每排有6个座位(A, B, C, D, E, F),总共20排。
  2. 显示座位:清晰地展示座位状态(O表示空座位,X表示已占用)。
  3. 选择座位:用户可以选择具体的座位。
  4. 确认选座:提供选座确认提示,避免误选。
  5. 显示最终结果:确认选座后展示更新后的座位布局。

代码实现

class AirplaneSeatingSystem:
    def __init__(self, rows=20, seats_per_row=6):
        self.rows = rows
        self.seats_per_row = seats_per_row
        # 初始化所有座位为空座位 "O"
        self.seats = [['O' for _ in range(seats_per_row)] for _ in range(rows)]
        self.seat_labels = ['A', 'B', 'C', 'D', 'E', 'F'][:seats_per_row]

    def display_seating(self):
        print("\nCurrent seating arrangement:")
        print("   " + " ".join(self.seat_labels))  # 顶部显示座位标签
        for i, row in enumerate(self.seats):
            row_display = f"{i + 1:2} " + " ".join(row)
            print(row_display)
        print("O = Available, X = Occupied\n")

    def select_seat(self, row, seat):
        # 检查行号和座位号是否有效
        if 0 < row <= self.rows and seat in self.seat_labels:
            seat_index = self.seat_labels.index(seat)
            if self.seats[row - 1][seat_index] == 'O':
                confirm = input(f"Confirm booking for seat {row}{seat}? (yes/no): ").strip().lower()
                if confirm == 'yes':
                    # 更新座位状态
                    self.seats[row - 1][seat_index] = 'X'
                    print(f"Seat {row}{seat} successfully booked!")
                else:
                    print("Seat selection cancelled.")
            else:
                print(f"Seat {row}{seat} is already occupied. Please choose another seat.")
        else:
            print("Invalid seat selection. Please try again.")

    def start_booking(self):
        print("Welcome to the Airplane Seating System!")
        while True:
            self.display_seating()
            try:
                row = int(input("Enter the row number (1-20) or '0' to exit: "))
                if row == 0:
                    print("Thank you for using the Airplane Seating System!")
                    break
                seat = input("Enter the seat letter (A-F): ").upper()
                self.select_seat(row, seat)
            except ValueError:
                print("Invalid input. Please enter a valid row number.")

使用流程

  1. 初始化程序:创建AirplaneSeatingSystem的实例并开始选座流程。

    plane = AirplaneSeatingSystem()
    plane.start_booking()
    
  2. 用户交互

  3. 程序将展示当前座位状态。
  4. 用户输入行号和座位字母来选择座位。
  5. 系统提供确认选座提示,用户需输入yesno进行确认。
  6. 退出程序:输入0退出选座程序。

示例运行

Welcome to the Airplane Seating System!

Current seating arrangement:
    A B C D E F
 1  O O O O O O
 2  O O O O O O
 ...
20  O O O O O O

O = Available, X = Occupied

Enter the row number (1-20) or '0' to exit: 5
Enter the seat letter (A-F): B
Confirm booking for seat 5B? (yes/no): yes
Seat 5B successfully booked!

Current seating arrangement:
    A B C D E F
 1  O O O O O O
 2  O O O O O O
 3  O O O O O O
 4  O O O O O O
 5  O X O O O O
 ...

代码说明

  • display_seating():清晰展示当前座位状态,帮助用户更方便地查看空余座位。
  • select_seat():验证用户输入的行号和座位字母是否有效;若座位可用,提示确认选座,以避免误操作。
  • start_booking():循环运行选座流程,直到用户输入退出命令。
  • 功能扩展

    1. 不同座位类型:添加商务舱、头等舱的座位分布。
    2. 多座位预订:允许一次选择多个座位并进行批量确认。
    3. 乘客信息:记录乘客信息,如姓名、座位号等。

    通过这样的设计,我们实现了一个简单的飞机选座系统,易于用户理解和操作,并可以扩展为更复杂的系统,如在线票务预订平台。

    作者:徐浪老师

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python模拟飞机选座系统:实现与扩展功能

    发表回复