python實現超市商品銷售管理系統

 更新時間:2019年10月25日 11:37:26   作者:程序員lamed   我要評論
這篇文章主要為大家詳細介紹了python實現超市商品銷售管理系統,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了python超市商品銷售管理系統的具體代碼,供大家參考,具體內容如下

需求分析:超市銷售管理系統功能

1.歡迎用戶使用超市銷售管理系統,提示用戶登錄,如果是用戶名為admin,密碼為123456,則管理員身份。 如果是其他用戶(可以自己設置也可隨意接收),則是顧客身份。

2.如果用戶是管理員身份,提示用戶輸入編號,選擇對應功能

輸入編號"1":顯示商品的信息 (編號 商品名稱 價格)
輸入編號"2":添加商品信息 (輸入編號,商品名稱,價格)
輸入編號"3":刪除商品信息 (輸入編號,刪除對應的名稱和價格)
輸入編號"4":退出系統功能

3.如果用戶是顧客身份,只有一個功能:購買商品,
展示所有商品信息,用戶循環輸入商品編號和購買數量,輸入n時,退出系統,并提示用戶總價格。

涉及到的知識點

編程語言變量,語句,函數
面向對象思想結合編程語言進行類的封裝與方法的調用
常見數據容器列表與字典的使用
程序中對于文件的操作
因為涉及對于文件的讀取和寫入,建議大家在程序開始前,先確定文件內容的格式,有效合理的表達商品內容,我采取以下格式,在項目工程目錄下創建shop.txt文件夾

邏輯分析:

增刪查買都是對于商品的操作,商品信息包括編號名稱和價格,可以將信息封裝到對象當中,可創建對象所屬的類Goods。然后對于增刪等操作應該屬于管理系統的功能,所以將相關功能封裝到ShopManager類當中。在進入系統時,應該首先查看之前是否有存儲信息,所以要讀取文件寫入到內存中,增刪操作都是通過編號作為索引,所以可以選擇字典dict數據結構作為內存存儲容器,然后增刪都是對于字典的操作,當系統退出時,在將數據更新寫入到文件中,避免惡意修改文件,惡意提交。

功能實現代碼:

首先創建表達商品對象的Goods類

class Goods(object):
 def __init__(self,id,name,price):
 self.id = id
 self.name = name
 self.price = price
 
 def __str__(self):
 info = "編號:%s\t商品名稱:%s\t\t價格:%d"%(self.id,self.name,self.price)
 return info

將對于商品操作的函數放到ShopManager類當中,功能包括管理員以及普通用戶的,在登錄后進行分流選擇。

class ShopManager(object):


def __init__(self,path):
 # path:表示讀取文件的路徑 shopdic:表示存放內存的容器
 self.path = path
 self.shopdic = self.readFileToDic()

def readFileToDic(self):
 # 讀取文件,寫入到字典中
 f = open(self.path, 'r', encoding='utf-8')
 clist = f.readlines()
 f.close()
 index = 0
 shopdic = {}
 while index < len(clist):
 # 將每一行的字符串進行分割,存放到新的列表中
 ctlist = clist[index].replace('\n', "").split("|")
 # 將每行的內容存放到一個對象中
 good = Goods(ctlist[0],ctlist[1],int(ctlist[2]))
 # 將對向存放到集合中
 shopdic[good.id] = good
 index = index + 1
 return shopdic

def writeContentFile(self):
 # 將內存當中的信息寫入到文件當中
 str1 = ''
 for key in self.shopdic.keys():
 good = self.shopdic[key]
 ele = good.id+"|"+good.name+"|"+str(good.price)+"\n"
 str1 = str1 + ele
 f = open(self.path, 'w', encoding='utf-8')
 f.write(str1)
 f.close()

def addGoods(self):
 # 添加商品的方法
 id = input("請輸入添加商品編號:>")
 if self.shopdic.get(id):
 print("商品編號已存在,請重新選擇!")
 return
 name = input("請輸入添加商品名稱:>")
 price = int(input("請輸入添加商品價格:>"))
 good = Goods(id,name,price)
 self.shopdic[id] = good
 print("添加成功!")

def deleteGoods(self):
 # 刪除商品的方法
 id = input("請輸入刪除商品編號:>")
 if self.shopdic.get(id):
 del self.shopdic[id]
 print("刪除成功!")
 else:
 print("商品編號不存在!")

def showGoods(self):
 # 展示所有商品信息
 print("="*40)
 for key in self.shopdic.keys():
 good = self.shopdic[key]
 print(good)
 print("="*40)

def adminWork(self):
 info = """
 ==========歡迎進入好海哦購物商場==========
 輸入功能編號,您可以選擇以下功能:
 輸入“1”:顯示商品的信息
 輸入“2”:添加商品的信息
 輸入“3”:刪除商品的信息
 輸入“4”:退出系統功能
 ==========================================
 """
 print(info)
 while True:
 code = input("請輸入功能編號:>")
 if code == "1":
  self.showGoods()
 elif code == "2":
  self.addGoods()
 elif code == "3":
  self.deleteGoods()
 elif code == "4":
  print("感謝您的使用,正在退出系統!!")
  self.writeContentFile()
  break
 else:
  print("輸入編號有誤,請重新輸入!!")

def userWork(self):
 print(" ==============歡迎進入好海哦購物商場==============")
 print("您可輸入編號和購買數量選購商品,輸入編號為n則結賬")
 self.showGoods()
 total = 0
 while True:
 id = input("請輸入購買商品編號:>")
 if id == "n":
  print("本次購買商品共消費%d元,感謝您的光臨!"%(total))
  break
 if self.shopdic.get(id):
  good = self.shopdic[id]
  num = int(input("請輸入購買數量:>"))
  total = total+good.price*num
 else:
  print("輸入商品編號有誤,請核對后重新輸入!")



def login(self):
 # 登錄功能
 print("==========歡迎登錄好海哦購物商場==========")
 uname = input("請輸入用戶名:>")
 password = input("請輸入密碼:>")
 if uname == "admin":
 if password == "123456":
  print("歡迎您,admin管理員")
  self.adminWork()
 else:
  print("管理員密碼錯誤,登錄失敗!")
 else:
 print("歡迎你,%s用戶"%(uname))
 #執行用戶的購買功能
 self.userWork()

最后我們可在main語句中,調用登錄方法,會自動選擇相關功能。

if __name__ == '__main__':
 shopManage = ShopManager("shop.txt")
 shopManage.login() 

上述代碼運行后,會實現的效果為:

以上項目案例將學習內容進行了統一整理和綜合,相信同學們順利理解和敲出這部分代碼。

更多學習資料請關注專題《管理系統開發》。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

最新評論

福建体育彩票时时彩11