使用python设计一个仓库管理系统,能提供下列服务: 1. 程序启动,显示仓库管理系统欢迎界面,并显示功能菜单 2. 用户用数字选择不同的功能 3. 根据功能选择,执行不同的功能 4. 物品需要记录 编号、物品名、进价、售价、存储量 5. 如果查询到指定的物品,用户可以选择 修改 或者 删除 6. 加分项:可以将已录入的信息保存到文件中,并可从文件中导入已录入的数据。或者其他创意功能,如模糊搜索,excel导入,语音录入,物品出库入库,物品统计等。
时间: 2024-03-31 18:33:01 浏览: 163
好的,以下是一个基于Python的仓库管理系统示例,提供了上述所有服务:
```python
import csv
class Item:
def __init__(self, id, name, cost_price, selling_price, quantity):
self.id = id
self.name = name
self.cost_price = cost_price
self.selling_price = selling_price
self.quantity = quantity
class Inventory:
def __init__(self):
self.items = []
self.load_items()
def load_items(self):
try:
with open("inventory.csv") as csv_file:
csv_reader = csv.reader(csv_file, delimiter=",")
for row in csv_reader:
id = int(row[0])
name = row[1]
cost_price = float(row[2])
selling_price = float(row[3])
quantity = int(row[4])
item = Item(id, name, cost_price, selling_price, quantity)
self.items.append(item)
except FileNotFoundError:
pass
def save_items(self):
with open("inventory.csv", mode="w") as csv_file:
csv_writer = csv.writer(csv_file, delimiter=",", quotechar='"', quoting=csv.QUOTE_MINIMAL)
for item in self.items:
csv_writer.writerow([item.id, item.name, item.cost_price, item.selling_price, item.quantity])
def add_item(self):
id = int(input("Enter item ID: "))
name = input("Enter item name: ")
cost_price = float(input("Enter item cost price: "))
selling_price = float(input("Enter item selling price: "))
quantity = int(input("Enter item quantity: "))
item = Item(id, name, cost_price, selling_price, quantity)
self.items.append(item)
self.save_items()
def search_item(self):
search_term = input("Enter search term: ")
found_items = []
for item in self.items:
if search_term.lower() in item.name.lower():
found_items.append(item)
return found_items
def display_items(self, items):
print("\nID\tName\tCost Price\tSelling Price\tQuantity")
for item in items:
print(f"{item.id}\t{item.name}\t{item.cost_price}\t\t{item.selling_price}\t\t{item.quantity}")
def update_item(self, item):
print(f"\nID: {item.id}\nName: {item.name}\nCost Price: {item.cost_price}\nSelling Price: {item.selling_price}\nQuantity: {item.quantity}")
choice = input("Enter 'U' to update, 'D' to delete: ").lower()
if choice == "u":
item.name = input("Enter item name: ")
item.cost_price = float(input("Enter item cost price: "))
item.selling_price = float(input("Enter item selling price: "))
item.quantity = int(input("Enter item quantity: "))
self.save_items()
elif choice == "d":
self.items.remove(item)
self.save_items()
else:
print("Invalid choice.")
def menu(self):
while True:
print("\n1. Add item\n2. Search item\n3. Display all items\n4. Exit")
choice = input("Enter choice: ")
if choice == "1":
self.add_item()
elif choice == "2":
found_items = self.search_item()
if len(found_items) == 0:
print("No items found.")
elif len(found_items) == 1:
self.update_item(found_items[0])
else:
self.display_items(found_items)
id = int(input("Enter item ID: "))
for item in found_items:
if item.id == id:
self.update_item(item)
break
else:
print("Invalid item ID.")
elif choice == "3":
self.display_items(self.items)
elif choice == "4":
break
else:
print("Invalid choice.")
# Example usage
inventory = Inventory()
print("Welcome to Inventory Management System.")
inventory.menu()
```
该系统由两个类组成:`Item`表示一个库存条目,其中包含ID、名称、成本价、销售价和数量属性,`Inventory`表示整个库存,其中包含一个包含所有库存条目的列表。`Inventory`类有七个主要方法:`load_items`从文件中加载已保存的库存数据,`save_items`将当前库存数据保存到文件中,`add_item`用于添加新的库存项,`search_item`用于根据名称搜索库存项,`display_items`用于显示库存项列表,`update_item`用于更新或删除库存项,`menu`用于显示菜单并根据用户的选择执行相应的操作。
在这个例子中,我们首先创建一个`Inventory`对象,然后显示欢迎界面并启动主菜单。用户可以选择添加新的库存项,搜索库存项,显示库存项列表或退出程序。如果用户选择搜索库存项,则系统将根据用户提供的搜索项查找所有匹配的库存项,然后显示匹配项的列表。如果只有一个匹配项,则系统将显示该项的详细信息,并允许用户更新或删除该项。如果有多个匹配项,则系统将显示所有匹配项的列表,并要求用户输入要更新或删除的项的ID。如果用户选择添加新的库存项,则系统将要求用户输入新项目的ID、名称、成本价、销售价和数量,然后将新项目添加到库存中并将其保存到文件中。如果用户选择显示库存项列表,则系统将显示所有库存项的详细信息。如果用户选择退出程序,则程序将结束。
阅读全文