用python语言写一个超市商品管理系统,包括增删改查,并使用tkinter实现界面,信息储存在excel表格中。
时间: 2024-03-17 18:47:07 浏览: 124
基于Python语言做的一款超市管理系统
好的,这是一个比较复杂的项目,需要一定的编程基础和时间。以下是简要的步骤:
1. 安装所需的库:pandas、openpyxl、tkinter
2. 创建一个Excel表格,用于储存商品信息。表头包括:商品编号、商品名称、商品价格、商品库存。
3. 使用pandas库读取Excel表格中的数据。
4. 使用tkinter创建一个GUI界面,包括以下功能:
- 显示商品列表
- 添加商品
- 修改商品
- 删除商品
5. 实现以上功能需要编写对应的函数,具体实现可以参考以下代码:
```python
import pandas as pd
from tkinter import *
from tkinter import messagebox
# 读取Excel表格中的数据
df = pd.read_excel('商品信息.xlsx')
# 显示商品列表
def show_goods():
# 清空列表框
listbox.delete(0, END)
# 遍历数据并添加到列表框中
for row in df.itertuples():
listbox.insert(END, f"{row.商品编号}\t{row.商品名称}\t{row.商品价格}\t{row.商品库存}")
# 添加商品
def add_goods():
# 获取用户输入的商品信息
goods_id = entry_id.get()
goods_name = entry_name.get()
goods_price = entry_price.get()
goods_stock = entry_stock.get()
# 判断商品编号是否已存在
if goods_id in df['商品编号'].values:
messagebox.showerror('错误', '商品编号已存在!')
else:
# 将新商品信息添加到DataFrame中
new_goods = pd.DataFrame({'商品编号': [goods_id], '商品名称': [goods_name], '商品价格': [goods_price], '商品库存': [goods_stock]})
df = df.append(new_goods, ignore_index=True)
# 将DataFrame中的数据写入Excel表格
df.to_excel('商品信息.xlsx', index=False)
# 清空输入框
entry_id.delete(0, END)
entry_name.delete(0, END)
entry_price.delete(0, END)
entry_stock.delete(0, END)
# 刷新商品列表
show_goods()
# 修改商品
def modify_goods():
# 获取用户输入的商品信息
goods_id = entry_id.get()
goods_name = entry_name.get()
goods_price = entry_price.get()
goods_stock = entry_stock.get()
# 判断商品编号是否存在
if goods_id not in df['商品编号'].values:
messagebox.showerror('错误', '商品编号不存在!')
else:
# 修改DataFrame中对应商品编号的数据
df.loc[df['商品编号'] == goods_id, '商品名称'] = goods_name
df.loc[df['商品编号'] == goods_id, '商品价格'] = goods_price
df.loc[df['商品编号'] == goods_id, '商品库存'] = goods_stock
# 将DataFrame中的数据写入Excel表格
df.to_excel('商品信息.xlsx', index=False)
# 清空输入框
entry_id.delete(0, END)
entry_name.delete(0, END)
entry_price.delete(0, END)
entry_stock.delete(0, END)
# 刷新商品列表
show_goods()
# 删除商品
def delete_goods():
# 获取用户输入的商品编号
goods_id = entry_id.get()
# 判断商品编号是否存在
if goods_id not in df['商品编号'].values:
messagebox.showerror('错误', '商品编号不存在!')
else:
# 删除DataFrame中对应商品编号的数据
df.drop(df[df['商品编号'] == goods_id].index, inplace=True)
# 将DataFrame中的数据写入Excel表格
df.to_excel('商品信息.xlsx', index=False)
# 清空输入框
entry_id.delete(0, END)
entry_name.delete(0, END)
entry_price.delete(0, END)
entry_stock.delete(0, END)
# 刷新商品列表
show_goods()
# 创建GUI界面
root = Tk()
root.title('超市商品管理系统')
# 创建列表框
listbox = Listbox(root, width=50)
listbox.grid(row=0, column=0, rowspan=6, padx=10, pady=10)
# 显示商品列表
show_goods()
# 创建标签和输入框
label_id = Label(root, text='商品编号:')
label_id.grid(row=0, column=1, padx=5, pady=5, sticky=W)
entry_id = Entry(root)
entry_id.grid(row=0, column=2, padx=5, pady=5)
label_name = Label(root, text='商品名称:')
label_name.grid(row=1, column=1, padx=5, pady=5, sticky=W)
entry_name = Entry(root)
entry_name.grid(row=1, column=2, padx=5, pady=5)
label_price = Label(root, text='商品价格:')
label_price.grid(row=2, column=1, padx=5, pady=5, sticky=W)
entry_price = Entry(root)
entry_price.grid(row=2, column=2, padx=5, pady=5)
label_stock = Label(root, text='商品库存:')
label_stock.grid(row=3, column=1, padx=5, pady=5, sticky=W)
entry_stock = Entry(root)
entry_stock.grid(row=3, column=2, padx=5, pady=5)
# 创建按钮
button_add = Button(root, text='添加', width=10, command=add_goods)
button_add.grid(row=4, column=1, padx=5, pady=5)
button_modify = Button(root, text='修改', width=10, command=modify_goods)
button_modify.grid(row=4, column=2, padx=5, pady=5)
button_delete = Button(root, text='删除', width=10, command=delete_goods)
button_delete.grid(row=5, column=1, padx=5, pady=5)
# 运行GUI界面
root.mainloop()
```
这只是一个简单的实现,还有很多细节需要考虑,比如用户输入的数据类型是否正确、输入框的清空方式等等。希望能对你有所帮助!
阅读全文