使用Python实现校园二手物品交易系统

使用Python实现校园二手物品交易系统

引言

校园二手物品交易是大学生活中常见的一部分。为了方便校园内的二手物品交易,我们可以开发一个简单而实用的校园二手物品交易系统。本文将介绍如何使用Python编程语言来实现这样一个系统,它将使用命令行界面(CLI)和文件存储方式。

功能概述

我们的校园二手物品交易系统将具有以下功能:

  1. 存储数据:使用文件存储方式,将物品信息保存在一个文本文件中。
  2. 增加物品:用户可以输入物品的相关信息,系统将添加物品到系统中。
  3. 浏览物品:系统将输出所有已发布的物品信息供用户浏览。
  4. 查询物品:用户可以根据出售物品名称、物品类别或期望价格等条件进行查询,并返回匹配的物品信息。
  5. 修改物品:用户可以选择要修改的物品,并输入新的物品信息进行更新。
  6. 删除物品:用户可以选择要删除的物品,并将其从系统中移除。
  7. 自动删除已售出物品:系统将自动删除已售出的物品信息,保持系统数据的更新和整洁。

技术实现

数据存储

为了存储物品信息,我们将使用文本文件作为数据存储介质。每个物品的信息将占据一行,并使用制表符分隔不同字段。

面向对象设计

我们将使用面向对象的方式来设计和实现校园二手物品交易系统。其中,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("感谢使用校园二手物品交易系统!")

使用示例

以下是系统的使用示例:

  1. 添加二手物品:
请输入二手物品编号: 001
请输入出售物品名称: 手机
请输入物品类别: 数码产品
请输入期望价格: 1000
请输入出售物品的描述: 优质二手手机,性能良好
请输入发布者姓名: 张三
请输入联系电话: 1234567890
请输入联系QQ: 12345678

二手物品已成功添加!

2

. 浏览二手物品:

编号: 001
名称: 手机
类别: 数码产品
价格: 1000
描述: 优质二手手机,性能良好
已售出: 否
发布者姓名: 张三
联系电话: 1234567890
联系QQ: 12345678
--------------------
  1. 查询二手物品:
请选择查询方式(1-按出售物品名称 2-按物品类别 3-按期望价格): 2
请输入物品类别: 图书

查询结果:
(显示匹配的物品信息)
  1. 修改二手物品:
请输入要修改的二手物品编号: 001
请输入新的物品信息:
请输入出售物品名称: 手机(修改后的名称)
请输入物品类别: 数码产品(修改后的类别)
请输入期望价格: 1200(修改后的价格)
请输入出售物品的描述: 优质二手手机,性能良好(修改后的描述)
请输入发布者姓名: 张三(修改后的姓名)
请输入联系电话: 1234567890(修改后的电话)
请输入联系QQ: 12345678(修改后的QQ)

二手物品已成功修改!
  1. 删除二手物品:
请输入要删除的二手物品编号: 001

二手物品已成功删除!
  1. 删除已售出的物品:
已删除已售出的物品!

总结

通过使用Python编程语言和面向对象的设计方法,我们成功地实现了一个校园二手物品交易系统。该系统可以方便地存储、浏览、查询、修改和删除二手物品信息,帮助校园内的买卖双方快速、准确地进行交易。

你可以在实际的校园生活中应用这个系统,并根据自己的需求进行扩展和定制。

希望这篇博客对你有所帮助!如果你对校园二手物品交易系统有任何问题或建议,请随时留言。感谢阅读!

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
适合专科和本科毕业生的【原创论文】【已降重】【万字】【本科】【专科】【毕业论文】【预览目录】【预览正文】适合专科和本科毕业生的【原创论文】【已降重】【万字】【本科】【专科】【毕业论文】【预览目录】【预览正文】适合专科和本科毕业生的【原创论文】【已降重】【万字】【本科】【专科】【毕业论文】【预览目录】【预览正文】适合专科和本科毕业生的【原创论文】【已降重】【万字】【本科】【专科】【毕业论文】【预览目录】【预览正文】适合专科和本科毕业生的【原创论文】【已降重】【万字】【本科】【专科】【毕业论文】【预览目录】【预览正文】适合专科和本科毕业生的【原创论文】【已降重】【万字】【本科】【专科】【毕业论文】【预览目录】【预览正文】适合专科和本科毕业生的【原创论文】【已降重】【万字】【本科】【专科】【毕业论文】【预览目录】【预览正文】适合专科和本科毕业生的【原创论文】【已降重】【万字】【本科】【专科】【毕业论文】【预览目录】【预览正文】适合专科和本科毕业生的【原创论文】【已降重】【万字】【本科】【专科】【毕业论文】【预览目录】【预览正文】适合专科和本科毕业生的【原创论文】【已降重】【万字】【本科】【专科】【毕业论文】【预览目录】【预览正文】适合专科和本科毕业生的【原创论文】【已降重】【万字】【本科】【专科】【毕业论文】【预览目录】【预览正文】适合专科和本科毕业生的【原创论文】【已降重】【万字】【本科】【专科】【毕业论文】【预览目录】【预览正文】适合专科和本科毕业生的【原创论文】【已降重】【万字】【本科】【专科】【毕业论文】【预览目录】【预览正文】适合专科和本科毕业生的【原创论文】【已降重】【万字】【本科】【专科】【毕业论文】【预览目录】【预览正文】适合专科和本科毕业生的【原创论文】【已降重】【万字】【本科】【专科】【毕业论文】【预览目录】【预览正文】

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值