溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python基礎項目:超市商品銷售管理系統

發布時間:2020-07-12 09:11:58 來源:網絡 閱讀:1228 作者:nineteens 欄目:編程語言

  需求分析:

  超市銷售管理系統功能

  1.歡迎用戶使用超市銷售管理系統,提示用戶登錄,如果是用戶名為admin,密碼為123456,則管理員身份。

  如果是其他用戶(可以自己設置也可隨意接收),則是顧客身份。

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

  輸入編號"1":顯示商品的信息 (編號 商品名稱 價格)

  輸入編號"2":添加商品信息 (輸入編號,商品名稱,價格)

  輸入編號"3":刪除商品信息 (輸入編號,刪除對應的名稱和價格)

  輸入編號"4":退出系統功能

  3.如果用戶是顧客身份,只有一個功能:購買商品,

  展示所有商品信息,用戶循環輸入商品編號和購買數量,輸入n時,退出系統,并提示用戶總價格。

  涉及到的知識點(目前已學全部內容):

  編程語言變量,語句,函數

  面向對象思想結合編程語言進行類的封裝與方法的調用

  常見數據容器列表與字典的使用

  程序中對于文件的操作

  因為涉及對于文件的讀取和寫入,建議大家在程序開始前,先確定文件內容的格式,有效合理的表達商品內容,我采取以下格式,在項目工程目錄下創建shop.txt文件夾

  

Python基礎項目:超市商品銷售管理系統


  邏輯分析:

  增刪查買都是對于商品的操作,商品信息包括編號名稱和價格,可以將信息封裝到對象當中,可創建對象所屬的類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:無錫×××醫院 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))

  #執行用戶的購買功能

  self.userWork()

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

  if __name__ == '__main__':

  shopManage = ShopManager("shop.txt")

  shopManage.login()


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女