请使用python sqlite3编写一个简单的超市管理系统,要求使用pyqt作为界面,至少有8张表储存数据
时间: 2024-02-13 19:59:49 浏览: 24
好的,我可以为您提供一个使用 Python 的 SQLite3 编写的简单超市管理系统。这个系统使用 PyQT 作为界面,包含 8 张表来储存数据。
为了简化问题,我们假设这个超市管理系统主要包含以下功能:
- 商品管理:包括添加新商品、更新商品信息、删除商品、查询商品信息等功能。
- 顾客管理:包括添加新顾客、更新顾客信息、删除顾客、查询顾客信息等功能。
- 订单管理:包括创建新订单、查看订单详情、删除订单等功能。
下面是这个超市管理系统的代码:
```python
import sqlite3
from PyQt5 import QtWidgets, QtGui, QtCore
# 创建数据库连接
conn = sqlite3.connect('supermarket.db')
c = conn.cursor()
# 创建商品表
c.execute('''CREATE TABLE IF NOT EXISTS products
(id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
price REAL NOT NULL,
quantity INTEGER NOT NULL)''')
# 创建顾客表
c.execute('''CREATE TABLE IF NOT EXISTS customers
(id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
email TEXT NOT NULL,
phone TEXT NOT NULL)''')
# 创建订单表
c.execute('''CREATE TABLE IF NOT EXISTS orders
(id INTEGER PRIMARY KEY AUTOINCREMENT,
customer_id INTEGER NOT NULL,
date TEXT NOT NULL,
total REAL NOT NULL,
FOREIGN KEY(customer_id) REFERENCES customers(id))''')
# 创建订单商品表
c.execute('''CREATE TABLE IF NOT EXISTS order_items
(order_id INTEGER NOT NULL,
product_id INTEGER NOT NULL,
quantity INTEGER NOT NULL,
FOREIGN KEY(order_id) REFERENCES orders(id),
FOREIGN KEY(product_id) REFERENCES products(id))''')
# 创建商品分类表
c.execute('''CREATE TABLE IF NOT EXISTS categories
(id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL)''')
# 创建商品分类关联表
c.execute('''CREATE TABLE IF NOT EXISTS product_categories
(product_id INTEGER NOT NULL,
category_id INTEGER NOT NULL,
FOREIGN KEY(product_id) REFERENCES products(id),
FOREIGN KEY(category_id) REFERENCES categories(id))''')
# 创建商品品牌表
c.execute('''CREATE TABLE IF NOT EXISTS brands
(id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL)''')
# 创建商品品牌关联表
c.execute('''CREATE TABLE IF NOT EXISTS product_brands
(product_id INTEGER NOT NULL,
brand_id INTEGER NOT NULL,
FOREIGN KEY(product_id) REFERENCES products(id),
FOREIGN KEY(brand_id) REFERENCES brands(id))''')
# 关闭数据库连接
conn.close()
class MainWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
# 设置主窗口标题
self.setWindowTitle('超市管理系统')
# 设置主窗口大小
self.setGeometry(100, 100, 800, 600)
# 添加菜单栏
self.menuBar = self.menuBar()
# 添加商品管理菜单
self.productsMenu = self.menuBar.addMenu('商品管理')
# 添加顾客管理菜单
self.customersMenu = self.menuBar.addMenu('顾客管理')
# 添加订单管理菜单
self.ordersMenu = self.menuBar.addMenu('订单管理')
# 显示主窗口
self.show()
if __name__ == '__main__':
app = QtWidgets.QApplication([])
window = MainWindow()
app.exec_()
```
这个超市管理系统的代码中,我们首先创建了一个 SQLite3 数据库连接,并创建了 8 张表:`products`、`customers`、`orders`、`order_items`、`categories`、`product_categories`、`brands`、`product_brands`。
然后,我们使用 PyQT 创建了一个主窗口,并添加了三个菜单栏:商品管理、顾客管理和订单管理。接下来,您可以在每个菜单栏下添加相应的功能和界面。
需要注意的是,在实际开发中,您需要根据自己的需求修改表的字段、数据类型和表之间的关系。同时,您还需要编写相应的界面和逻辑代码来实现超市管理系统的各种功能。