You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

航班预订系统最终汇总计算异常问题咨询

航班预订系统汇总错误的问题排查与修复

我帮你梳理了代码里的几个关键问题,这些正是导致最终汇总结果不正确的原因:

问题1:剩余座位计算逻辑混乱

你在每次会话里先计算了当前会话后的剩余座位seats_left = availble_seats - child_ticket - adult_ticket,但紧接着又执行了seats_left = seats_left - t_total_s,这相当于重复扣除了所有已售出的票数,导致剩余座位数越算越少,完全不符合实际。而且你没有更新全局的可用座位变量availble_seats,每次会话都用初始的152来计算,也会导致后续会话的座位判断不准确。

问题2:总销售额没有累加

你定义的t_adult、t_child、t_total变量,每次会话都会被重新赋值为当前会话的成人票销售额、儿童票销售额和总销售额,而不是累加所有会话的金额。所以最终汇总时,这些变量只保存了最后一次会话的销售数据,不是所有会话的总和。

问题3:总销售额变量未初始化

你没有在代码开头初始化t_adult、t_child、t_total这几个总销售额变量,虽然Python会自动处理,但这是不规范的,也容易引发逻辑错误。


修正后的完整代码

adult_price = 120
child_price = 60
available_seats = 152  # 修正拼写错误:availble → available
# 初始化汇总统计变量
t_adult_s_s = 0  # 总售出成人票数
t_child_s_s = 0  # 总售出儿童票数
t_total_s = 0     # 总售出票数
t_adult = 0       # 成人票总销售额
t_child = 0       # 儿童票总销售额
t_total = 0       # 票务总销售额

while True:
    print("*****************************************")
    print(" 欢迎来到Freezy Jet航空公司 ")
    print("*****************************************")
    print(f"我们共有{available_seats}个可预订座位")  # 显示实时剩余可用座位
    print("- - - - - - - - - - - - - - - - - - - - ")
    print("成人票单价为£120")
    print("儿童票单价为£60")
    print("*****************************************")
    
    # 输入成人票数量
    while True:
        try:
            adult_ticket = int(input("请问您需要购买多少张成人票? "))
        except ValueError:
            print("请重试,输入有效的数字")
            continue
        if adult_ticket < 0:
            print("请输入正数重新预订")
            continue
        else:
            break
    
    # 输入儿童票数量
    while True:
        try:
            child_ticket = int(input("请问您需要购买多少张儿童票? "))
        except ValueError:
            print("请重试,输入有效的数字")
            continue
        if child_ticket < 0:
            print("请输入正数重新预订")
            continue
        else:
            break
    
    total_ticket = adult_ticket + child_ticket
    if total_ticket > available_seats:  # 用实时可用座位判断,不是固定152
        print("由于座位数量有限,我们无法为您提供该数量的票务服务")
        print("请减少购票数量后重试\n")
        continue
    else:
        print("- - - - - - - - - - - - - - - - - - - - - - - - - ")
        print(" 会话汇总 ")
        print("已购买成人票数量:", adult_ticket)
        print("已购买儿童票数量:", child_ticket)
        total_tickets_purchased = adult_ticket + child_ticket
        print("已购买总票数:", total_tickets_purchased)
        print("****************************************************")
        
        # 当前会话的费用计算
        adult_cost = adult_price * adult_ticket
        child_cost = child_price * child_ticket
        total_cost = adult_cost + child_cost
        
        print("成人票总费用:", adult_cost)
        print("儿童票总费用:", child_cost)
        print("票务总费用:", total_cost)
        
        # 更新全局可用座位
        available_seats -= total_tickets_purchased
        print("剩余座位数:", available_seats)
        
        # 累加汇总统计数据
        t_adult_s_s += adult_ticket
        t_child_s_s += child_ticket
        t_total_s = t_adult_s_s + t_child_s_s
        t_adult += adult_cost
        t_child += child_cost
        t_total = t_adult + t_child
        
        # 询问用户是否继续
        question = input("\n按's'键停止,按其他键继续 ")
        if question.lower() == 's':  # 兼容大小写输入
            break

# 最终汇总
print("\n- - - - - - - - - - - - - - - - - - - - - - - - - ")
print(" 最终汇总 ")
print("已售出成人票总数:", t_adult_s_s)
print("已售出儿童票总数:", t_child_s_s)
print("已售出总票数:", t_total_s)
print("***************************************************")
print("剩余座位数:", available_seats)
print("成人票总销售额:", t_adult)
print("儿童票总销售额:", t_child)
print("票务总销售额:", t_total)
print("END")

主要修改说明

  1. 修正变量拼写:把availble_seats改为available_seats,避免拼写错误导致的逻辑问题。
  2. 初始化总销售额变量:在开头新增t_adult、t_child、t_total的初始化,确保从0开始累加。
  3. 实时更新可用座位:每次会话成功购票后,直接更新available_seats,后续会话判断座位时用最新的剩余座位数,同时剩余座位显示也更准确。
  4. 正确累加销售额:把t_adult += adult_cost这类累加操作替代原来的重新赋值,确保所有会话的销售额都被汇总。
  5. 优化用户输入体验:把错误提示信息更清晰,同时支持小写/大写's'来停止程序。
  6. 移除错误的剩余座位计算:删掉了seats_left = seats_left - t_total_s这行错误代码,改用实时更新的available_seats来显示剩余座位。

这样修改后,最终的汇总数据就会准确累加所有会话的购票信息啦!

内容的提问来源于stack exchange,提问作者user11003285

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 14:27:28