第1关:模拟生成波音737飞机座位图
任务描述
本关任务:编写一个能模拟生成波音737飞机座位图的小程序。
背景
出行做攻略时,各位同学是不是为了空客319、320啦,波音737、747啦,各种飞机的都是什么座位图而上火?该怎么选合适的座位?每种座位都有什么属性?
靠窗座位优点:可观赏风景,人流量少
靠走道座位优点:进出方便,空间大
前排座位优点:腿部可自由伸展,餐饮快
紧急出口排座位优点:空间大,方便紧急撤离
机舱中部座位优点:颠簸较小,空间大
窄体客机是指每排座位不超过六座的单走道客机。
包括:空客A319、A320、A321、波音737(737-700、737-800),一般国内长途航线多为窄体客机。
机身从左至右,横向座位编号:ABC、JKL
靠窗座位:A、L;靠走道座位:C、J
一般第1-10行的座位为头等舱、第11-30行是商务舱(可无)、第31行以后的座位都是经济舱。
编程要求
根据提示,在右侧编辑器补充代码,输入头等舱座位数量与经济舱座位数量,输出空机座位表,用'O'表示空闲座位(为控制输出格式,请直接复制这个符号)。
测试说明
平台会对你编写的代码进行测试:
测试输入:
8
120
预期输出:
头等舱座位图:
A C J L
1 O O O O
2 O O O O
经济舱座位图:
A B C J K L
31 O O O O O O
32 O O O O O O
33 O O O O O O
34 O O O O O O
...
first_class_seats = int(input())
economy_class_seats = int(input())
# 头等舱行数计算
first_class_rows = first_class_seats // 4
# 经济舱行数计算
economy_class_rows = economy_class_seats // 6 + (1 if economy_class_seats % 6 != 0 else 0)
# 打印头等舱座位图
print("头等舱座位图:")
print(" A C J L")
for i in range(1, first_class_rows + 1):
print(f"{i:<2d} O O O O")
# 打印经济舱座位图
print("经济舱座位图:")
print(" A B C J K L")
for i in range(31, 31 + economy_class_rows):
print(f"{i:<2d} O O O O O O")
第2关:模拟随机安排座位
任务描述
本关任务:编写一个为旅客随机分配座位的小程序。
编程要求
“旅客信息151.csv”中有准备乘坐本次航班的旅客信息。先输入一个整数做随机数种子,再输入一个不大于120的自然数表示需要分配座位的旅客数量,在8座头等舱与120座经济舱的机型中为这些旅客依照在文件中出现的次序逐一随机分配经济舱座位(用random.choice()从座位列表中每次随机取一个座位,分配了旅客的座位不能再次分配给其他人),输出分配好旅客的座位表,用'O'表示空闲座位(为控制输出格式,请直接复制这个符号),用'1'表示分配好的座位。
按指定格式输出分配好座位的旅客信息,注意有复姓。
旅客信息151.csv
测试说明
平台会对你编写的代码进行测试:
测试输入:
10
20
预期输出:
头等舱座位图:
A C J L
1 O O O O
2 O O O O
经济舱座位图:
A B C J K L
31 O 1 O O 1 O
32 1 O O O O O
33 1 O O O O O
34 O O O O 1 O
...
31B座位为手机号后四位为0976的秋女士
31K座位为手机号后四位为2791的西门女士
32A座位为手机号后四位为3210的伯赏先生
...
50B座位为手机号后四位为4602的费先生
50C座位为手机号后四位为3417的卢女士
import csv
import random
def read_passenger_info(file_path):
with open(file_path, 'r',