‘’‘小明是一个直播带货的主播,他想找人做一个方便操作的系统。并且有一个单独的数据库,订单和商品相互独立。
(1)小明的仓库有五种商品:
①牙刷 5元 库存10个
②小熊背包 130元 库存5个
③2B铅笔 2元 库存15个
④笔记本电脑 8900元 库存2个
⑤dsb处理器 880元 库存3个
(2)在pycharm命令行输入购买可以购买商品,所购买的商品用商品号区分,并生成一个对应商品的订单号。
请输入操作: 购买
请输入购买的商品号:1
您的订单号为: xxx
输入查询,可以查询所有商品信息
(3)有一个购买电脑的客户A,他是小明的朋友,小明后来才知道他购买了电脑,并且给朋友便宜了3000元,微信转给了他。请修改对应订单数据,将账目顺清。
(4)小明后来听A说,B好像在他这也购买了商品(已知订单号),请确认B是否购买了。(通过算法得知)’’’
import pymysql
#连接数据库 并执行sql语句 得到结果
def sql_do(sql):
#建立连接
coon = pymysql.connect(
host = ‘localhost’,
port = 3306,
user = ‘root’,
password = ‘’,
db = ‘xiaoming’
)
#建立游标
cur = coon.cursor()
#执行sql语句
cur.execute(sql)
data = cur.fetchall()
#提交数据库连接
coon.commit()
#关闭游标
cur.close()
#关闭连接
coon.close()
return data
#生成不重复的订单号
def get_order_num(good_id):
import time
# 生成时间戳
time_stamp = int(time.time())
order_num = good_id+time_stamp
return order_num
#获取其他应该加入订单表中的信息 并生insert进订单表数据
def get_order_info(good_id,order_num):
# 获取订单表中的g_id
g_id = good_id
# 加入订单标中的 id 是几 (应该是订单表的长度加一)
orderssss = sql_do(‘select * from orders’)
id = len(orderssss) + 1
sql1 = ‘select * from goods where id=’ + str(good_id)
good_data = sql_do(sql1)
print(‘用户购买的商品信息:’, good_data)
#获取当前商品价格
price = good_data[0][-2]
# 生成订单表数据
sql2 = ‘insert into orders (id,price,g_id,order_num) values (’ + str(id) + ‘,’ + str(price) + ‘,’ + str(g_id) + ‘,’ + str(order_num) + ‘)’
print(sql2)
sql_do(sql2)
#如果是购买商品 商品库存减少
def goods_change(order_num):
# 首先根据订单号 查询用户购买的哪一件商品
sql1 = ‘select * from orders where order_num=’+str(order_num)
print(sql_do(sql1))
# 找到商品id
g_id=sql_do(sql1)[0][-2]
print(g_id)
#通过商品id去查询商品库存
sql2 = ‘select * from goods where id=’+str(g_id)
print(sql_do(sql2))
num = str(int(sql_do(sql2)[0][-1])-1)
print(num)
#修改库存
sql3 = ‘update goods set num=’+str(num) + ’ where id=’+str(g_id)
sql_do(sql3)
print(sql3)
def zhu():
do = input(‘请输入操作:’)
if do not in [‘购买’,‘查询’]:
print(‘错误’)
else:
if do == ‘查询’:
sql = ‘select * from goods’
print(sql_do(sql))
else:
#商品id
good_id = int(input(“请输入想要购买的商品号:”))
#订单号
order_num = get_order_num(good_id)
print(“购买成功,您的订单号为:”,order_num)
#添加订单数据
get_order_info(good_id,order_num)
#修改商品库存
goods_change(order_num)
#修改订单表 第三题
def update_order(order_num):
sql = ‘update orders set price = 6900 where order_num=’+str(order_num)
sql_do(sql)
print(“修改成功”)
#获得列表
def get_list():
# 初始化一个空列表
list = []
# 将所有订单号转为数字格式,加入列表中
sql = ‘select order_num from orders’
data = sql_do(sql)
# print(data)
for i in data:
# print(i[0])
list.append(int(i[0]))
# print(list)
return list
#给列表排序
def bubbleSort(list):
n = len(list)
# 遍历所有数组元素
for i in range(n):
for j in range(0, n - i - 1): #n-i-1 因为前面已经交换一次了 所以前面那个不用再交换了
if list[j] > list[j + 1]: #如果左面的比右面的大 就换位置
list[j], list[j + 1] = list[j + 1], list[j]
return list
#查找一个订单号是否在一个区间内 第四题
def search(list,item):
mid = len(list)//2
if list[mid] == item:
return ‘在’
elif item < list[mid]:
return search(list[0:mid],item)
elif item > list[mid]:
return search(list[mid+1:],item)
else:
return ‘不存在’
if name == ‘main’:
zhu()
# print(search(bubbleSort(get_list()),11111))