结合面向对象编程思想,开发“裹裹快投”快递服务控制台程序,可实现用户寄件、取件、查询订单、修改订单、取消订单等功能。 具体要求如下: (1)显示系统主菜单 包括寄件、取件、查询订单、修改订单、取消订单...
时间: 2023-10-20 09:09:07 浏览: 95
好的,我们可以设计一个名为 "CourierService" 的类来实现这个程序。
首先,我们需要定义一些属性来存储快递订单的信息,例如订单号、发件人姓名、发件人地址、收件人姓名、收件人地址、快递状态等。我们还需要定义一些方法来实现具体的功能。
以下是一个示例代码,可能不是完整的程序,但可以作为一个基础框架:
```python
class CourierService:
def __init__(self):
self.orders = [] # 存储所有的快递订单
def display_menu(self):
# 显示主菜单
print("欢迎使用裹裹快投快递服务!")
print("1. 寄件")
print("2. 取件")
print("3. 查询订单")
print("4. 修改订单")
print("5. 取消订单")
print("0. 退出系统")
def create_order(self):
# 创建新订单
order_id = input("请输入订单号:")
sender_name = input("请输入发件人姓名:")
sender_address = input("请输入发件人地址:")
receiver_name = input("请输入收件人姓名:")
receiver_address = input("请输入收件人地址:")
status = "待发货"
order = {"id": order_id, "sender_name": sender_name, "sender_address": sender_address,
"receiver_name": receiver_name, "receiver_address": receiver_address, "status": status}
self.orders.append(order)
print("订单创建成功!")
def pick_up_order(self):
# 取件
order_id = input("请输入订单号:")
for order in self.orders:
if order["id"] == order_id:
order["status"] = "已取件"
print("订单取件成功!")
return
print("订单不存在!")
def query_order(self):
# 查询订单
order_id = input("请输入订单号:")
for order in self.orders:
if order["id"] == order_id:
print("订单信息如下:")
print("订单号:", order["id"])
print("发件人姓名:", order["sender_name"])
print("发件人地址:", order["sender_address"])
print("收件人姓名:", order["receiver_name"])
print("收件人地址:", order["receiver_address"])
print("快递状态:", order["status"])
return
print("订单不存在!")
def modify_order(self):
# 修改订单
order_id = input("请输入订单号:")
for order in self.orders:
if order["id"] == order_id:
print("请输入要修改的信息:")
sender_name = input("发件人姓名(或直接回车不修改):")
if sender_name:
order["sender_name"] = sender_name
sender_address = input("发件人地址(或直接回车不修改):")
if sender_address:
order["sender_address"] = sender_address
receiver_name = input("收件人姓名(或直接回车不修改):")
if receiver_name:
order["receiver_name"] = receiver_name
receiver_address = input("收件人地址(或直接回车不修改):")
if receiver_address:
order["receiver_address"] = receiver_address
print("订单修改成功!")
return
print("订单不存在!")
def cancel_order(self):
# 取消订单
order_id = input("请输入订单号:")
for order in self.orders:
if order["id"] == order_id:
order["status"] = "已取消"
print("订单已取消!")
return
print("订单不存在!")
def run(self):
# 运行程序
while True:
self.display_menu()
choice = input("请选择操作:")
if choice == "1":
self.create_order()
elif choice == "2":
self.pick_up_order()
elif choice == "3":
self.query_order()
elif choice == "4":
self.modify_order()
elif choice == "5":
self.cancel_order()
elif choice == "0":
print("谢谢使用!")
break
else:
print("输入有误,请重新输入!")
```
在这个示例代码中,我们定义了一个 "CourierService" 类,其中包含了创建订单、取件、查询订单、修改订单和取消订单等功能。在 "run" 方法中,我们使用一个 while 循环来不断显示主菜单,并根据用户的选择执行相应的操作。
当用户选择创建新订单时,我们会提示用户输入订单号、发件人姓名、发件人地址、收件人姓名和收件人地址等信息,并将这些信息保存在一个字典中,最后将该字典添加到 "orders" 列表中,表示一个新的订单已经创建成功。
当用户选择查询订单时,我们会提示用户输入订单号,并遍历 "orders" 列表查找对应的订单。如果找到了该订单,我们会输出该订单的信息,包括订单号、发件人姓名、发件人地址、收件人姓名、收件人地址和快递状态等信息。
当用户选择修改订单时,我们会提示用户输入订单号,并遍历 "orders" 列表查找对应的订单。如果找到了该订单,我们会提示用户输入要修改的信息,并根据用户的输入更新对应的订单信息,例如修改发件人姓名、发件人地址、收件人姓名或收件人地址等信息。
当用户选择取消订单时,我们会提示用户输入订单号,并遍历 "orders" 列表查找对应的订单。如果找到了该订单,我们会将该订单的状态设置为 "已取消"。
以上是一个简单的示例代码,你可以根据需要进行修改和扩展。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)