用Python写一个航班预订系统,功能包括新建订单、打开订单、更新订单、删除订单功能
时间: 2023-07-10 22:04:19 浏览: 53
好的,我可以帮你写一个简单的航班预订系统,使用Python语言和SQLite数据库。
首先,我们需要创建一个名为`flight_booking_system.py`的Python文件,在文件中导入`sqlite3`模块,连接并创建一个数据库:
```python
import sqlite3
conn = sqlite3.connect('flight_booking.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS bookings
(id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
flight_number TEXT NOT NULL,
departure TEXT NOT NULL,
destination TEXT NOT NULL,
date TEXT NOT NULL,
price REAL NOT NULL);''')
conn.commit()
```
上述代码中,我们创建了一个名为`bookings`的表格,其中包含了订单的各个属性,包括订单号、姓名、航班号、起点、终点、日期、价格等。其中,`id`属性为主键,自动递增。
接下来,我们可以开始编写具体的订单管理功能。首先,实现新建订单的功能:
```python
def new_booking():
name = input("请输入您的姓名:")
flight_number = input("请输入航班号:")
departure = input("请输入起点:")
destination = input("请输入终点:")
date = input("请输入日期(YYYY-MM-DD):")
price = float(input("请输入价格:"))
c.execute("INSERT INTO bookings (name, flight_number, departure, destination, date, price) VALUES (?, ?, ?, ?, ?, ?)",
(name, flight_number, departure, destination, date, price))
conn.commit()
print("订单创建成功!")
```
以上代码中,我们使用`input()`函数获取用户输入的订单信息,然后将其插入到数据库中。注意,价格需要转化成浮点型数据类型。
接下来,实现打开订单的功能:
```python
def view_booking():
booking_id = input("请输入订单号:")
c.execute("SELECT * FROM bookings WHERE id=?", (booking_id,))
booking = c.fetchone()
if booking:
print(f"订单号:{booking[0]}\n姓名:{booking[1]}\n航班号:{booking[2]}\n起点:{booking[3]}\n终点:{booking[4]}\n日期:{booking[5]}\n价格:{booking[6]}")
else:
print("该订单不存在!")
```
以上代码中,我们使用`input()`函数获取用户输入的订单号,然后查询数据库中是否存在该订单。如果存在,则输出订单信息;如果不存在,则提示用户该订单不存在。
接下来,实现更新订单的功能:
```python
def update_booking():
booking_id = input("请输入订单号:")
c.execute("SELECT * FROM bookings WHERE id=?", (booking_id,))
booking = c.fetchone()
if booking:
name = input("请输入您的姓名:")
flight_number = input("请输入航班号:")
departure = input("请输入起点:")
destination = input("请输入终点:")
date = input("请输入日期(YYYY-MM-DD):")
price = float(input("请输入价格:"))
c.execute("UPDATE bookings SET name=?, flight_number=?, departure=?, destination=?, date=?, price=? WHERE id=?",
(name, flight_number, departure, destination, date, price, booking_id))
conn.commit()
print("订单更新成功!")
else:
print("该订单不存在!")
```
以上代码中,我们先查询数据库中是否存在需要更新的订单,如果存在,则使用`input()`函数获取用户输入的新订单信息,并将其更新到数据库中;如果不存在,则提示用户该订单不存在。
最后,实现删除订单的功能:
```python
def delete_booking():
booking_id = input("请输入订单号:")
c.execute("SELECT * FROM bookings WHERE id=?", (booking_id,))
booking = c.fetchone()
if booking:
c.execute("DELETE FROM bookings WHERE id=?", (booking_id,))
conn.commit()
print("订单删除成功!")
else:
print("该订单不存在!")
```
以上代码中,我们先查询数据库中是否存在需要删除的订单,如果存在,则将该订单从数据库中删除;如果不存在,则提示用户该订单不存在。
最后,我们可以编写一个简单的主函数,提供给用户选择需要执行的订单管理功能:
```python
def main():
while True:
print("\n请选择需要执行的操作:")
print("1. 新建订单")
print("2. 打开订单")
print("3. 更新订单")
print("4. 删除订单")
print("5. 退出")
choice = input("\n请输入选项(1/2/3/4/5):")
if choice == '1':
new_booking()
elif choice == '2':
view_booking()
elif choice == '3':
update_booking()
elif choice == '4':
delete_booking()
elif choice == '5':
break
else:
print("无效的选项,请重新输入!")
conn.close()
if __name__ == '__main__':
main()
```
以上代码中,我们提供了五个选项供用户选择,分别对应各个订单管理功能。用户可以根据需求选择相应的选项,并执行相应的功能。当用户选择退出时,程序结束。
完整代码如下: