从零开始撸python

Day3 :超市管理系统2.0(mysql版)

实现第一阶段飞跃~,达到科班本科毕业水平,后端基本打通,接下来修整一周时间,学习前端内容hh

 

 

 

 1 import market
 2 
 3 def main():
 4     print("********************************************超市管理系统2.0******************************************")
 5     print("*************1.查看商品列表")
 6     print("*************2.根据编号查询商品")
 7     print("*************3.添加商品")
 8     print("*************4.根据编号删除商品")
 9     print("*************5.商品打折")
10     print("*************6.查看所有订单")
11     print("*************7.删除订单")
12     print("*************8.订单统计")
13     print("*************9.商品结算")
14     print("*************10.退出")
15     print("****************************************************************************************************")
16     c=int(input("请选择:"))
17     if c==1:
18         market.getAllProducts()
19     elif c==2:
20         market.getProduct()
21     elif c==3:
22         market.addProduct()
23     elif c==4:
24         market.delProduct()
25     elif c==5:
26         market.setDiscount()
27     elif c==6:
28         market.getAllOrders()
29     elif c==7:
30         market.delOrder()
31     elif c==8:
32         market.acountOrders()
33     elif c==9:
34         market.settle()
35     else:
36         print("****************************************************************************************************")
37         
38 
39 if __name__=='__main__':
40     main()

  1 import orm
  2 import random
  3 
  4 #查看商品列表
  5 
  6 def getAllProducts():
  7     sql="SELECT * FROM products;"
  8     data=orm.getData(sql)
  9     print("序号        编号         名称      单价        折扣")
 10     for product in data:
 11         for x in product:
 12             print(x,end="      ")
 13         print()
 14 
 15 
 16 #根据编号查询商品
 17 def getProduct():
 18     num=input("请输入商品编号:")
 19     sql="SELECT * FROM products WHERE num="+num+";"
 20     data=orm.getData(sql)
 21     if data!=None:
 22         print("商品名称:",data[0][2]," 单价:",data[0][3]," 折扣:",data[0][4])
 23         return data[0][2],data[0][3],data[0][4]
 24     else:
 25         print("商品不存在!")
 26         return None
 27 
 28 
 29 
 30 #添加商品
 31 def addProduct():
 32     name=input("请输入商品名称:")
 33     num=random.randint(1000,9999)
 34     price=int(input("请输入商品价格:"))
 35     sql="INSERT INTO products(num,name,price,discount) VALUES({},'{}',{},1)".format(num,name,price)
 36     r=orm.writeData(sql)
 37     print(r)
 38 
 39 
 40 
 41 #删除商品
 42 def delProduct():
 43     num=input("请输入待删除商品信息:")
 44     sql="DELETE FROM products WHERE num='{}'".format(num)
 45     r=orm.writeData(sql)
 46     if r==0:
 47         print("删除失败!")
 48     else:
 49         print("商品",num,"被删除!")
 50 
 51 
 52 #订单统计(总销量、销售额)
 53 def acountOrders():
 54     sql="SELECT * FROM orders;"
 55     data=orm.getData(sql)
 56     totalCount=0
 57     totalAmount=0
 58     for orders in data:
 59         totalCount+=orders[2]
 60         totalAmount+=orders[3]
 61     print("总销量",totalCount,"件!销售额",totalAmount,"元!")
 62 
 63 
 64 #商品折扣(修改折扣信息)
 65 def setDiscount():
 66     num=input("请输入需要修改折扣的商品编号:")
 67     discount=float(input("请输入要设置的折扣:"))
 68 
 69     if 0.1<discount    <1:
 70             sql="UPDATE products SET discount={} WHERE num={};".format(discount,num)
 71             r=orm.writeData    (sql)
 72             if r==0:
 73                 print("设置失败!")
 74             else:
 75                 print("商品{}折扣设置成功".format    (num))
 76     else:
 77         print("折扣信息输入错误!")
 78     
 79 
 80 
 81 
 82 
 83 
 84 
 85 
 86 
 87 
 88 
 89 #查看所有订单
 90 def getAllOrders():
 91     sql="SELECT * FROM orders;"
 92     data=orm.getData(sql)
 93     print("序号        编号         数量      金额")
 94     for orders in data:
 95         for x in orders:
 96             print(x,end="      ")
 97         print()
 98     print("--------------------------------")
 99 #删除订单
100 def delOrder():
101     num=input("请输入待删除订单信息:")
102     sql="DELETE FROM orders WHERE num='{}'".format(num)
103     r=orm.writeData(sql)
104     if r==0:
105         print("删除失败!")
106     else:
107         print("订单",num,"被删除!")
108 
109 
110 #商品结算
111 def settle():
112     # 输入商品编号和数量
113     # 计算金额
114     # 重复添加多个商品
115     # 计算订单的总金额、数量
116     # 在订单中添加订单
117     orderCount=0
118     orderAmount=0
119     msg=0 #保存订单是否有效
120 
121     while 1==1:
122         data=getProduct()
123         # print(data)
124         num=int(input("请输入商品数量:"))
125         if data!=None:
126             msg=1
127             price=data[1]
128             discount=data[2]
129             amount=float(price)*float(discount)*num
130             orderCount+=num
131             orderAmount+=amount
132             print("当前添加{}件!金额{}元!".format(num,amount))
133         c=int(input("继续添加请输入1,结算请输入2 :"))
134         if c==1:
135             continue
136         elif c==2:
137             print("=========================================================")
138             break
139         else:
140             print("*****************不要闹!*****************")
141             exit(0)
142 
143     print("*********当前您购买的总数量{}件!总金额{}元!".format(orderCount,orderAmount))    
144 
145 
146 #添加订单
147     if msg==1:
148         oid=str(random.randint(1000,9999))
149         sql="INSERT INTO orders(num,count,amount) VALUES({},{},{});".format(oid,orderCount,orderAmount)
150         orm.writeData(sql)
151         print("-----------添加成功!") 
 1 #数据库操作
 2 
 3 import pymysql
 4 
 5 host="localhost"
 6 port=3306
 7 user="root"
 8 password="775825"
 9 productdb="python"
10 charset="utf8"
11 
12 #链接数据库
13 def getConection():
14     db=pymysql.Connect(host=host,port=port,user=user,passwd=password,db=productdb,charset=charset)
15     print("--------------------------------链接成功!")
16     return db
17 #查询数据
18 
19 def getData(sql):
20     db=getConection()
21     cursor=db.cursor()
22     try:
23         cursor.execute(sql)
24         data=cursor.fetchall()
25     except Exception as e:
26         print("出现异常",e)
27     finally:
28         cursor.close()
29         db.close()
30     return data
31 
32 
33 
34 #更新数据
35 
36 def writeData(sql):
37     db=getConection()
38     cursor=db.cursor()
39     r=0
40     try:
41         r=cursor.execute(sql)
42         db.commit()
43         print("------------------数据已更新{}条!".format(r))
44     except Exception as e:
45         print("出现异常",e)
46     finally:
47         cursor.close()
48         db.close()
49     return r         #返回受影响的行数

 

 

posted @ 2022-10-13 07:32  Alex-CTO  阅读(47)  评论(0)    收藏  举报