使用Python实现校园二手物品交易系统
引言
校园二手物品交易是大学生活中常见的一部分。为了方便校园内的二手物品交易,我们可以开发一个简单而实用的校园二手物品交易系统。本文将介绍如何使用Python编程语言来实现这样一个系统,它将使用命令行界面(CLI)和文件存储方式。
功能概述
我们的校园二手物品交易系统将具有以下功能:
- 存储数据:使用文件存储方式,将物品信息保存在一个文本文件中。
- 增加物品:用户可以输入物品的相关信息,系统将添加物品到系统中。
- 浏览物品:系统将输出所有已发布的物品信息供用户浏览。
- 查询物品:用户可以根据出售物品名称、物品类别或期望价格等条件进行查询,并返回匹配的物品信息。
- 修改物品:用户可以选择要修改的物品,并输入新的物品信息进行更新。
- 删除物品:用户可以选择要删除的物品,并将其从系统中移除。
- 自动删除已售出物品:系统将自动删除已售出的物品信息,保持系统数据的更新和整洁。
技术实现
数据存储
为了存储物品信息,我们将使用文本文件作为数据存储介质。每个物品的信息将占据一行,并使用制表符分隔不同字段。
面向对象设计
我们将使用面向对象的方式来设计和实现校园二手物品交易系统。其中,Item
类用于表示每个物品的信息,ItemManager
类用于管理物品的增删改查操作。
用户界面
系统将采用命令行界面(CLI)方式与用户进行交互。用户可以通过菜单选择不同的操作,并根据提示输入相关信息。
代码实现
import os
DATA_FILE = "items.txt"
class Item:
def __init__(self, item_id, name, category, price, description, sold, seller_name, contact_phone, contact_qq):
self.item_id = item_id
self.name = name
self.category = category
self.price = price
self.description = description
self.sold = sold
self.seller_name = seller_name
self.contact_phone = contact_phone
self.contact_qq = contact_qq
def __str__(self):
return f"编号: {self.item_id}\n名称: {self.name}\n类别: {self.category}\n价格: {self.price}\n描述: {self.description}\n已售出: {'是' if self.sold else '否'}\n发布者姓名: {self.seller_name}\n联系电话: {self.contact_phone}\n联系QQ: {self.contact_qq}\n--------------------"
class ItemManager:
def __init__(self):
self.items = []
def load_items(self):
if os.path.exists(DATA_FILE):
with open(DATA_FILE, "r") as file:
for line in file:
item_data = line.strip().split("\t")
item = Item(
item_data[0],
item_data[1],
item_data[2],
item_data[3],
item_data[4],
item_data[5] == "True",
item_data[6],
item_data[7],
item_data[8]
)
self.items.append(item)
def save_items(self):
with open(DATA_FILE, "w") as file:
for item in self.items:
line = "\t".join([
item.item_id,
item.name,
item.category,
item.price,
item.description,
str(item.sold),
item.seller_name,
item.contact_phone,
item.contact_qq
])
file.write(line + "\n")
def add_item(self):
item_id = input("请输入二手物品编号: ")
name = input("请输入出售物品名称: ")
category = input("请输入物品类别: ")
price = input("请输入期望价格: ")
description = input("请输入出售物品的描述: ")
seller_name = input("请输入发布者姓名: ")
contact_phone = input("请输入联系电话: ")
contact_qq = input("请输入联系QQ: ")
item = Item(item_id, name, category, price, description, False, seller_name, contact_phone, contact_qq)
self.items.append(item)
self.save_items()
print("二手物品已成功添加!")
def browse_items(self):
for item in self.items:
print(item)
def search_items(self):
search_type = input("请选择查询方式(1-按出售物品名称 2-按物品类别 3-按期望价格): ")
if search_type == "1":
name = input("请输入出售物品名称: ")
results = [item for item in self.items if item.name == name]
elif search_type == "2":
category = input("请输入物品类别: ")
results = [item for item in self.items if item.category == category]
elif search_type == "3":
price = input("请输入期望价格: ")
results = [item for item in self.items if item.price == price]
else:
print("无效的查询方式!")
return
if results:
print("查询结果:")
for item in results:
print(item)
else:
print("未找到匹配的物品信息!")
def modify_item(self):
item_id = input("请输入要修改的二手物品编号: ")
found_item = None
for item in self.items:
if item.item_id == item_id:
found_item = item
break
if found_item:
print("请输入新的物品信息:")
name = input("请输入出售物品名称: ")
category = input("请输入物品类别: ")
price = input("请输入期望价格: ")
description = input("请输入出售物品的描述: ")
seller_name = input("请输入发布者姓名: ")
contact_phone = input("请输入联系电话: ")
contact_qq = input("请输入联系QQ: ")
found_item.name = name
found_item.category = category
found_item.price = price
found_item.description = description
found_item.seller_name = seller_name
found_item.contact_phone = contact_phone
found_item.contact_qq = contact_qq
self.save_items()
print("二手物品已成功修改!")
else:
print("未找到指定编号的物品!")
def delete_item(self):
item_id = input("请输入要删除的二手物品编号: ")
found_item = None
for item in self.items:
if item.item_id == item_id:
found_item = item
break
if found_item:
self.items.remove(found_item)
self.save_items()
print("二手物品已成功删除!")
else:
print("未找到指定编号的物品!")
def remove_sold_items(self):
self.items = [item for item in self.items if not item.sold]
self.save_items()
print("已删除已售出的物品!")
def show_menu():
print("欢迎使用校园二手物品交易系统")
print("1. 添加二手物品")
print("2. 浏览二手物品")
print("3. 查询二手物品")
print("4. 修改二手物品")
print("5. 删除二手物品")
print("6. 删除已售出的物品")
print("0. 退出系统")
print()
item_manager = ItemManager()
item_manager.load_items()
while True:
show_menu()
option = input("请输入要执行的操作: ")
print()
if option == "1":
item_manager.add_item()
elif option == "2":
item_manager.browse_items()
elif option == "3":
item_manager.search_items()
elif option == "4":
item_manager.modify_item()
elif option == "5":
item_manager.delete_item()
elif option == "6":
item_manager.remove_sold_items()
elif option == "0":
break
else:
print("无效的选项!")
print()
print("感谢使用校园二手物品交易系统!")
使用示例
以下是系统的使用示例:
- 添加二手物品:
请输入二手物品编号: 001
请输入出售物品名称: 手机
请输入物品类别: 数码产品
请输入期望价格: 1000
请输入出售物品的描述: 优质二手手机,性能良好
请输入发布者姓名: 张三
请输入联系电话: 1234567890
请输入联系QQ: 12345678
二手物品已成功添加!
2
. 浏览二手物品:
编号: 001
名称: 手机
类别: 数码产品
价格: 1000
描述: 优质二手手机,性能良好
已售出: 否
发布者姓名: 张三
联系电话: 1234567890
联系QQ: 12345678
--------------------
- 查询二手物品:
请选择查询方式(1-按出售物品名称 2-按物品类别 3-按期望价格): 2
请输入物品类别: 图书
查询结果:
(显示匹配的物品信息)
- 修改二手物品:
请输入要修改的二手物品编号: 001
请输入新的物品信息:
请输入出售物品名称: 手机(修改后的名称)
请输入物品类别: 数码产品(修改后的类别)
请输入期望价格: 1200(修改后的价格)
请输入出售物品的描述: 优质二手手机,性能良好(修改后的描述)
请输入发布者姓名: 张三(修改后的姓名)
请输入联系电话: 1234567890(修改后的电话)
请输入联系QQ: 12345678(修改后的QQ)
二手物品已成功修改!
- 删除二手物品:
请输入要删除的二手物品编号: 001
二手物品已成功删除!
- 删除已售出的物品:
已删除已售出的物品!
总结
通过使用Python编程语言和面向对象的设计方法,我们成功地实现了一个校园二手物品交易系统。该系统可以方便地存储、浏览、查询、修改和删除二手物品信息,帮助校园内的买卖双方快速、准确地进行交易。
你可以在实际的校园生活中应用这个系统,并根据自己的需求进行扩展和定制。
希望这篇博客对你有所帮助!如果你对校园二手物品交易系统有任何问题或建议,请随时留言。感谢阅读!