使用 mysql 保存数据,实现超市日常管理中以下业务。" 一、建立以下数据表并填充数据+登录+' 用户表: users _学号后四位+' 列名: id _学号后四位用户名 name 学号后四位密码: pwd _学号后四位*产品表: products _学号后四位. 列名: id _学号后四位编号 num 学号后四位名称 name 学号后四位单价 price 学号后四位折扣 discount _学号后四位 订单表: orders _学号后四位. 列名: id _学号后四位编号 num 学号后四位货品数量 count 学号后四位金额 arnount 学号后四位. 二、实现以下菜单并实现业务0用户登录 1查看所有产品信息。"2查找商品(用户输入商品名称,查看价格和折扣):- 3添加商品(需要程序生成编号),- 4修改商品价格和折扣(折扣为0.1-0.99之间):. 5删除商品(根据编号): 6查看所有订单:+ 7.订单统计(显示总销售额和货品数量): 8.商品结算。
时间: 2024-01-21 18:20:07 浏览: 970
好的,以下是使用 MySQL 实现超市日常管理的代码:
1. 建立用户表 users
```
CREATE TABLE users (
id INT(4) NOT NULL AUTO_INCREMENT,
name VARCHAR(8) NOT NULL,
pwd VARCHAR(8) NOT NULL,
PRIMARY KEY (id)
);
```
2. 建立产品表 products
```
CREATE TABLE products (
id INT(4) NOT NULL AUTO_INCREMENT,
num VARCHAR(8) NOT NULL,
name VARCHAR(50) NOT NULL,
price DECIMAL(10,2) NOT NULL,
discount DECIMAL(5,2) NOT NULL,
PRIMARY KEY (id)
);
```
3. 建立订单表 orders
```
CREATE TABLE orders (
id INT(4) NOT NULL AUTO_INCREMENT,
num VARCHAR(8) NOT NULL,
count INT(10) NOT NULL,
amount DECIMAL(10,2) NOT NULL,
PRIMARY KEY (id)
);
```
4. 填充数据
```
INSERT INTO users (name, pwd) VALUES ('0001', '0001');
INSERT INTO users (name, pwd) VALUES ('0002', '0002');
INSERT INTO users (name, pwd) VALUES ('0003', '0003');
INSERT INTO products (num, name, price, discount) VALUES ('0001', '可口可乐', 3.00, 0.9);
INSERT INTO products (num, name, price, discount) VALUES ('0002', '雪碧', 2.50, 0.8);
INSERT INTO products (num, name, price, discount) VALUES ('0003', '芬达', 2.80, 0.85);
INSERT INTO orders (num, count, amount) VALUES ('0001', 2, 5.40);
INSERT INTO orders (num, count, amount) VALUES ('0002', 3, 6.00);
INSERT INTO orders (num, count, amount) VALUES ('0003', 1, 2.38);
```
5. 实现登录功能
```
def login():
name = input("请输入用户名:")
pwd = input("请输入密码:")
cursor.execute("SELECT * FROM users WHERE name=%s AND pwd=%s", (name, pwd))
result = cursor.fetchone()
if result:
print("登录成功!")
return result[0]
else:
print("用户名或密码错误!")
return False
```
6. 查看所有产品信息
```
def show_all_products():
cursor.execute("SELECT * FROM products")
results = cursor.fetchall()
for row in results:
print("编号:%s,名称:%s,单价:%s,折扣:%s" % (row[1], row[2], row[3], row[4]))
```
7. 查找商品
```
def find_product():
name = input("请输入要查找的商品名称:")
cursor.execute("SELECT * FROM products WHERE name=%s", (name,))
result = cursor.fetchone()
if result:
print("价格:%s,折扣:%s" % (result[3], result[4]))
else:
print("未找到该商品!")
```
8. 添加商品
```
def add_product():
name = input("请输入商品名称:")
price = float(input("请输入商品单价:"))
discount = float(input("请输入商品折扣(0.1-0.99之间):"))
num = "0001" + str(random.randint(1000, 9999))
cursor.execute("INSERT INTO products (num, name, price, discount) VALUES (%s, %s, %s, %s)", (num, name, price, discount))
conn.commit()
print("添加成功!")
```
9. 修改商品价格和折扣
```
def update_product():
num = input("请输入要修改的商品编号:")
price = float(input("请输入新的商品单价:"))
discount = float(input("请输入新的商品折扣(0.1-0.99之间):"))
cursor.execute("UPDATE products SET price=%s, discount=%s WHERE num=%s", (price, discount, num))
conn.commit()
print("修改成功!")
```
10. 删除商品
```
def delete_product():
num = input("请输入要删除的商品编号:")
cursor.execute("DELETE FROM products WHERE num=%s", (num,))
conn.commit()
print("删除成功!")
```
11. 查看所有订单
```
def show_all_orders():
cursor.execute("SELECT * FROM orders")
results = cursor.fetchall()
for row in results:
print("编号:%s,货品数量:%s,金额:%s" % (row[1], row[2], row[3]))
```
12. 订单统计
```
def order_statistics():
cursor.execute("SELECT SUM(count), SUM(amount) FROM orders")
result = cursor.fetchone()
print("总销售额:%s,货品数量:%s" % (result[1], result[0]))
```
13. 商品结算
```
def product_settlement():
orders = []
while True:
num = input("请输入商品编号:")
count = int(input("请输入商品数量:"))
cursor.execute("SELECT * FROM products WHERE num=%s", (num,))
result = cursor.fetchone()
if result:
price = result[3]
discount = result[4]
amount = price * count * discount
orders.append((num, count, amount))
else:
print("未找到该商品!")
is_continue = input("是否继续结算?(Y/N)")
if is_continue.upper() == 'N':
break
total_amount = sum([order[2] for order in orders])
cursor.execute("INSERT INTO orders (num, count, amount) VALUES %s", (orders,))
conn.commit()
print("结算成功!总金额:%s" % total_amount)
```
完整代码如下:
```
import pymysql
import random
conn = pymysql.connect(host='localhost', port=3306, user='root', password='123456', db='market')
cursor = conn.cursor()
def login():
name = input("请输入用户名:")
pwd = input("请输入密码:")
cursor.execute("SELECT * FROM users WHERE name=%s AND pwd=%s", (name, pwd))
result = cursor.fetchone()
if result:
print("登录成功!")
return result[0]
else:
print("用户名或密码错误!")
return False
def show_all_products():
cursor.execute("SELECT * FROM products")
results = cursor.fetchall()
for row in results:
print("编号:%s,名称:%s,单价:%s,折扣:%s" % (row[1], row[2], row[3], row[4]))
def find_product():
name = input("请输入要查找的商品名称:")
cursor.execute("SELECT * FROM products WHERE name=%s", (name,))
result = cursor.fetchone()
if result:
print("价格:%s,折扣:%s" % (result[3], result[4]))
else:
print("未找到该商品!")
def add_product():
name = input("请输入商品名称:")
price = float(input("请输入商品单价:"))
discount = float(input("请输入商品折扣(0.1-0.99之间):"))
num = "0001" + str(random.randint(1000, 9999))
cursor.execute("INSERT INTO products (num, name, price, discount) VALUES (%s, %s, %s, %s)", (num, name, price, discount))
conn.commit()
print("添加成功!")
def update_product():
num = input("请输入要修改的商品编号:")
price = float(input("请输入新的商品单价:"))
discount = float(input("请输入新的商品折扣(0.1-0.99之间):"))
cursor.execute("UPDATE products SET price=%s, discount=%s WHERE num=%s", (price, discount, num))
conn.commit()
print("修改成功!")
def delete_product():
num = input("请输入要删除的商品编号:")
cursor.execute("DELETE FROM products WHERE num=%s", (num,))
conn.commit()
print("删除成功!")
def show_all_orders():
cursor.execute("SELECT * FROM orders")
results = cursor.fetchall()
for row in results:
print("编号:%s,货品数量:%s,金额:%s" % (row[1], row[2], row[3]))
def order_statistics():
cursor.execute("SELECT SUM(count), SUM(amount) FROM orders")
result = cursor.fetchone()
print("总销售额:%s,货品数量:%s" % (result[1], result[0]))
def product_settlement():
orders = []
while True:
num = input("请输入商品编号:")
count = int(input("请输入商品数量:"))
cursor.execute("SELECT * FROM products WHERE num=%s", (num,))
result = cursor.fetchone()
if result:
price = result[3]
discount = result[4]
amount = price * count * discount
orders.append((num, count, amount))
else:
print("未找到该商品!")
is_continue = input("是否继续结算?(Y/N)")
if is_continue.upper() == 'N':
break
total_amount = sum([order[2] for order in orders])
cursor.execute("INSERT INTO orders (num, count, amount) VALUES %s", (orders,))
conn.commit()
print("结算成功!总金额:%s" % total_amount)
while True:
print("欢迎使用超市管理系统")
user_id = login()
if user_id:
while True:
print("请选择操作:")
print("0. 用户登录")
print("1. 查看所有产品信息")
print("2. 查找商品")
print("3. 添加商品")
print("4. 修改商品价格和折扣")
print("5. 删除商品")
print("6. 查看所有订单")
print("7. 订单统计")
print("8. 商品结算")
choice = input("请选择操作:")
if choice == '0':
user_id = login()
elif choice == '1':
show_all_products()
elif choice == '2':
find_product()
elif choice == '3':
add_product()
elif choice == '4':
update_product()
elif choice == '5':
delete_product()
elif choice == '6':
show_all_orders()
elif choice == '7':
order_statistics()
elif choice == '8':
product_settlement()
else:
print("输入错误,请重新输入!")
else:
print("登录失败!")