前言
在计算机编程的学习过程中,实践是巩固理论知识、提升编程能力的最佳方式。本次Python期末大作业,选择开发一个"航空订票系统",这是一个结合了数据结构、文件操作和用户交互的综合性项目。通过这个项目,不仅加深了对Python语言的理解,还掌握了实际应用开发的基本流程。航空订票系统是现实生活中常见的应用场景,它涉及到用户管理、航班信息管理、票务处理等多个功能模块。开发这样一个系统,能够帮助理解如何将编程知识应用到实际问题解决中,同时也体会到了软件开发中的逻辑思维和用户体验的重要性。
项目概述
这个航空订票系统主要包含以下功能:
-
用户管理:用户登录与注册功能,记录用户的基本信息
-
航班管理:航班的录入、查询等操作
-
票务服务:机票的预订和退订功能
-
数据持久化:使用JSON格式文件保存系统数据
系统采用控制台交互方式,通过菜单选择实现各项功能,适合初学者理解和实现。
核心代码解析
1. 用户登录与自动注册机制
def login(users):
print("航空订票系统用户登录")
name = input("请输入姓名:")
id_card = input("请输入身份证号:")
phone = input("请输入电话号码:")
# 检查用户是否存在
for user in users:
if user['id_card'] == id_card:
print(f" 欢迎回来,{user['name']}!")
return user
# 新用户自动注册
new_user = {
"name": name,
"id_card": id_card,
"phone": phone,
"bookings": [] # 新增预订记录字段
}
users.append(new_user)
print("注册成功!已自动登录")
return new_user
2. 数据持久化实现
def load_data():
try:
with open(DATA_FILE, "r", encoding="utf-8") as file:
return json.load(file)
except FileNotFoundError:
return {"flights": [], "users": []}
def save_data(data):
with open(DATA_FILE, "w", encoding="utf-8") as file:
json.dump(data, file, ensure_ascii=False, indent=4)
这段代码实现了数据的加载和保存功能,使用JSON格式存储,确保程序重启后数据不丢失
3. 航班查询功能
def search_flights(flights):
origin = input("请输入起点站名:")
destination = input("请输入终点站名:")
date = input("请输入飞行日期(YYYY-MM-DD):")
filtered_flights = [flight for flight in flights
if flight['origin'] == origin
and flight['destination'] == destination
and flight['date'] == date]
4. 事务型订票处理
def book_ticket(flights, user):
if not flights:
print("当前无可用航班")
return
search_flights(flights) # 先展示航班
try:
choice = int(input("\n请选择要预订的航班编号:")) - 1
selected = flights[choice]
if selected['tickets'] <= 0:
print(" 该航班已售罄")
return
# 执行订票事务
selected['tickets'] -= 1
booking_id = len(user['bookings']) + 1
user['bookings'].append({
"id": booking_id,
"flight_number": selected['flight_number'],
"date": selected['date'],
"status": "confirmed"
})
print(f" 订票成功!预订编号:B{booking_id:04d}")
print(f"航班信息:{selected['origin']}→{selected['destination']} {selected['date']} {selected['time']}")
except (ValueError, IndexError):
print(" 选择无效,请重新操作")
技术实现
项目主要使用了以下Python技术:
-
文件操作:使用
json
模块实现数据的读取和保存 -
数据结构:使用列表和字典管理航班和用户信息
-
函数封装:将不同功能模块封装成函数,提高代码可读性和复用性
-
用户交互:通过
input()
实现简单的控制台交互
项目亮点
-
模块化设计:将系统功能划分为多个菜单和函数,结构清晰
-
数据持久化:使用JSON文件保存数据,程序重启后数据不丢失
-
用户友好:提供明确的提示信息和错误处理
-
实用功能:实现了航空订票系统的基本核心功能
总结与展望
通过完成这个项目,系统地练习了Python编程的各个方面,特别是对文件操作和数据结构的应用有了更深的理解。虽然目前的系统还比较简单,只有控制台界面,但它已经具备了航空订票系统的基本功能。
未来可以考虑的改进方向包括:
-
添加图形用户界面(GUI)
-
实现更复杂的查询功能,如模糊查询、排序等
-
增加用户订票记录功能
-
添加管理员权限和普通用户权限的区分
这个项目不仅是我Python学习的总结,也是我编程能力提升的一个重要里程碑。希望这个简单的航空订票系统能够为初学者提供一个参考,也欢迎各位提出改进建议。