需求分析:
公司主營業(yè)務(wù):網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)推出興平免費做網(wǎng)站回饋大家。
超市銷售管理系統(tǒng)功能
1.歡迎用戶使用超市銷售管理系統(tǒng),提示用戶登錄,如果是用戶名為admin,密碼為123456,則管理員身份。
如果是其他用戶(可以自己設(shè)置也可隨意接收),則是顧客身份。
2.如果用戶是管理員身份,提示用戶輸入編號,選擇對應(yīng)功能
輸入編號"1":顯示商品的信息 (編號 商品名稱 價格)
輸入編號"2":添加商品信息 (輸入編號,商品名稱,價格)
輸入編號"3":刪除商品信息 (輸入編號,刪除對應(yīng)的名稱和價格)
輸入編號"4":退出系統(tǒng)功能
3.如果用戶是顧客身份,只有一個功能:購買商品,
展示所有商品信息,用戶循環(huán)輸入商品編號和購買數(shù)量,輸入n時,退出系統(tǒng),并提示用戶總價格。
涉及到的知識點(目前已學(xué)全部內(nèi)容):
編程語言變量,語句,函數(shù)
面向?qū)ο笏枷虢Y(jié)合編程語言進行類的封裝與方法的調(diào)用
常見數(shù)據(jù)容器列表與字典的使用
程序中對于文件的操作
因為涉及對于文件的讀取和寫入,建議大家在程序開始前,先確定文件內(nèi)容的格式,有效合理的表達商品內(nèi)容,我采取以下格式,在項目工程目錄下創(chuàng)建shop.txt文件夾
邏輯分析:
增刪查買都是對于商品的操作,商品信息包括編號名稱和價格,可以將信息封裝到對象當(dāng)中,可創(chuàng)建對象所屬的類Goods。然后對于增刪等操作應(yīng)該屬于管理系統(tǒng)的功能,所以將相關(guān)功能封裝到ShopManager類當(dāng)中。在進入系統(tǒng)時,應(yīng)該首先查看之前是否有存儲信息,所以要讀取文件寫入到內(nèi)存中,增刪操作都是通過編號作為索引,所以可以選擇字典dict數(shù)據(jù)結(jié)構(gòu)作為內(nèi)存存儲容器,然后增刪都是對于字典的操作,當(dāng)系統(tǒng)退出時,在將數(shù)據(jù)更新寫入到文件中,避免惡意修改文件,惡意提交。
功能實現(xiàn)代碼:
首先創(chuàng)建表達商品對象的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
將對于商品操作的函數(shù)放到ShopManager類當(dāng)中,功能包括管理員以及普通用戶的,在登錄后進行分流選擇。
class ShopManager(object):
def __init__(self,path):
# path:表示讀取文件的路徑 shopdic:表示存放內(nèi)存的容器
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("|")
# 將每行的內(nèi)容存放到一個對象中
good = Goods(ctlist[0],ctlist[1],int(ctlist[2]))
# 將對向存放到集合中
shopdic[good.id] = good
index = index + 1
return shopdic
def writeContentFile(self):
# 將內(nèi)存當(dāng)中的信息寫入到文件當(dāng)中
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”:退出系統(tǒng)功能
==========================================
"""
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("感謝您的使用,正在退出系統(tǒng)!!")
self.writeContentFile()
break
else:
print("輸入編號有誤,請重新輸入!!")
def userWork(self):
print(" ==============歡迎進入好海哦購物商場==============")
print("您可輸入編號和購買數(shù)量選購商品,輸入編號為n則結(jié)賬")
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("請輸入購買數(shù)量:>"))
total = total+good.price*num
else:無錫×××醫(yī)院 https://yyk.familydoctor.com.cn/20612/
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))
#執(zhí)行用戶的購買功能
self.userWork()
最后我們可在main語句中,調(diào)用登錄方法,會自動選擇相關(guān)功能。
if __name__ == '__main__':
shopManage = ShopManager("shop.txt")
shopManage.login()