最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實(shí)現(xiàn)超市商品銷售管理系統(tǒng)

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

本文實(shí)例為大家分享了python超市商品銷售管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

需求分析:超市銷售管理系統(tǒng)功能

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

2.如果用戶是管理員身份,提示用戶輸入編號(hào),選擇對(duì)應(yīng)功能

輸入編號(hào)"1":顯示商品的信息 (編號(hào) 商品名稱 價(jià)格)
輸入編號(hào)"2":添加商品信息 (輸入編號(hào),商品名稱,價(jià)格)
輸入編號(hào)"3":刪除商品信息 (輸入編號(hào),刪除對(duì)應(yīng)的名稱和價(jià)格)
輸入編號(hào)"4":退出系統(tǒng)功能

3.如果用戶是顧客身份,只有一個(gè)功能:購(gòu)買商品,
展示所有商品信息,用戶循環(huán)輸入商品編號(hào)和購(gòu)買數(shù)量,輸入n時(shí),退出系統(tǒng),并提示用戶總價(jià)格。

涉及到的知識(shí)點(diǎn)

編程語(yǔ)言變量,語(yǔ)句,函數(shù)
面向?qū)ο笏枷虢Y(jié)合編程語(yǔ)言進(jìn)行類的封裝與方法的調(diào)用
常見數(shù)據(jù)容器列表與字典的使用
程序中對(duì)于文件的操作
因?yàn)樯婕皩?duì)于文件的讀取和寫入,建議大家在程序開始前,先確定文件內(nèi)容的格式,有效合理的表達(dá)商品內(nèi)容,我采取以下格式,在項(xiàng)目工程目錄下創(chuàng)建shop.txt文件夾

邏輯分析:

增刪查買都是對(duì)于商品的操作,商品信息包括編號(hào)名稱和價(jià)格,可以將信息封裝到對(duì)象當(dāng)中,可創(chuàng)建對(duì)象所屬的類Goods。然后對(duì)于增刪等操作應(yīng)該屬于管理系統(tǒng)的功能,所以將相關(guān)功能封裝到ShopManager類當(dāng)中。在進(jìn)入系統(tǒng)時(shí),應(yīng)該首先查看之前是否有存儲(chǔ)信息,所以要讀取文件寫入到內(nèi)存中,增刪操作都是通過(guò)編號(hào)作為索引,所以可以選擇字典dict數(shù)據(jù)結(jié)構(gòu)作為內(nèi)存存儲(chǔ)容器,然后增刪都是對(duì)于字典的操作,當(dāng)系統(tǒng)退出時(shí),在將數(shù)據(jù)更新寫入到文件中,避免惡意修改文件,惡意提交。

功能實(shí)現(xiàn)代碼:

首先創(chuàng)建表達(dá)商品對(duì)象的Goods類

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

將對(duì)于商品操作的函數(shù)放到ShopManager類當(dāng)中,功能包括管理員以及普通用戶的,在登錄后進(jìn)行分流選擇。

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):
 # 將每一行的字符串進(jìn)行分割,存放到新的列表中
 ctlist = clist[index].replace('\n', "").split("|")
 # 將每行的內(nèi)容存放到一個(gè)對(duì)象中
 good = Goods(ctlist[0],ctlist[1],int(ctlist[2]))
 # 將對(duì)向存放到集合中
 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("請(qǐng)輸入添加商品編號(hào):>")
 if self.shopdic.get(id):
 print("商品編號(hào)已存在,請(qǐng)重新選擇!")
 return
 name = input("請(qǐng)輸入添加商品名稱:>")
 price = int(input("請(qǐng)輸入添加商品價(jià)格:>"))
 good = Goods(id,name,price)
 self.shopdic[id] = good
 print("添加成功!")

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

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

def adminWork(self):
 info = """
 ==========歡迎進(jìn)入好海哦購(gòu)物商場(chǎng)==========
 輸入功能編號(hào),您可以選擇以下功能:
 輸入“1”:顯示商品的信息
 輸入“2”:添加商品的信息
 輸入“3”:刪除商品的信息
 輸入“4”:退出系統(tǒng)功能
 ==========================================
 """
 print(info)
 while True:
 code = input("請(qǐng)輸入功能編號(hào):>")
 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("輸入編號(hào)有誤,請(qǐng)重新輸入??!")

def userWork(self):
 print(" ==============歡迎進(jìn)入好海哦購(gòu)物商場(chǎng)==============")
 print("您可輸入編號(hào)和購(gòu)買數(shù)量選購(gòu)商品,輸入編號(hào)為n則結(jié)賬")
 self.showGoods()
 total = 0
 while True:
 id = input("請(qǐng)輸入購(gòu)買商品編號(hào):>")
 if id == "n":
  print("本次購(gòu)買商品共消費(fèi)%d元,感謝您的光臨!"%(total))
  break
 if self.shopdic.get(id):
  good = self.shopdic[id]
  num = int(input("請(qǐng)輸入購(gòu)買數(shù)量:>"))
  total = total+good.price*num
 else:
  print("輸入商品編號(hào)有誤,請(qǐng)核對(duì)后重新輸入!")



def login(self):
 # 登錄功能
 print("==========歡迎登錄好海哦購(gòu)物商場(chǎng)==========")
 uname = input("請(qǐng)輸入用戶名:>")
 password = input("請(qǐng)輸入密碼:>")
 if uname == "admin":
 if password == "123456":
  print("歡迎您,admin管理員")
  self.adminWork()
 else:
  print("管理員密碼錯(cuò)誤,登錄失?。?)
 else:
 print("歡迎你,%s用戶"%(uname))
 #執(zhí)行用戶的購(gòu)買功能
 self.userWork()

最后我們可在main語(yǔ)句中,調(diào)用登錄方法,會(huì)自動(dòng)選擇相關(guān)功能。

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

上述代碼運(yùn)行后,會(huì)實(shí)現(xiàn)的效果為:

以上項(xiàng)目案例將學(xué)習(xí)內(nèi)容進(jìn)行了統(tǒng)一整理和綜合,相信同學(xué)們順利理解和敲出這部分代碼。

更多學(xué)習(xí)資料請(qǐng)關(guān)注專題《管理系統(tǒng)開發(fā)》。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python從文件中讀取數(shù)據(jù)的方法講解

    Python從文件中讀取數(shù)據(jù)的方法講解

    今天小編就為大家分享一篇關(guān)于Python從文件中讀取數(shù)據(jù)的方法講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-02-02
  • python字符串常用方法

    python字符串常用方法

    這篇文章主要介紹了python字符串常用方法,find、count、replace、split、startswith、endswith等多種方法,需要的朋友可以參考一下文章得具體內(nèi)容,希望對(duì)你有所幫助
    2021-10-10
  • Python學(xué)習(xí)思維導(dǎo)圖(必看篇)

    Python學(xué)習(xí)思維導(dǎo)圖(必看篇)

    下面小編就為大家?guī)?lái)一篇Python學(xué)習(xí)思維導(dǎo)圖(必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • pytorch Dropout過(guò)擬合的操作

    pytorch Dropout過(guò)擬合的操作

    這篇文章主要介紹了pytorch Dropout過(guò)擬合的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python實(shí)戰(zhàn)小游戲飛機(jī)大戰(zhàn)詳解

    Python實(shí)戰(zhàn)小游戲飛機(jī)大戰(zhàn)詳解

    飛機(jī)大戰(zhàn)想必是很多人童年時(shí)期的經(jīng)典游戲,我們依舊能記得抱個(gè)老人機(jī)娛樂(lè)的場(chǎng)景,下面這篇文章主要給大家介紹了關(guān)于如何利用python寫一個(gè)簡(jiǎn)單的飛機(jī)大戰(zhàn)小游戲的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • Python?虛擬環(huán)境的價(jià)值和常用命令詳解

    Python?虛擬環(huán)境的價(jià)值和常用命令詳解

    在實(shí)際項(xiàng)目開發(fā)中,我們通常會(huì)根據(jù)自己的需求去下載各種相應(yīng)的框架庫(kù),如Scrapy、Beautiful?Soup等,但是可能每個(gè)項(xiàng)目使用的框架庫(kù)并不一樣,或使用框架的版本不一樣,今天給大家分享下Python?虛擬環(huán)境的價(jià)值和常用命令,感興趣的朋友一起看看吧
    2022-05-05
  • python操作redis數(shù)據(jù)庫(kù)的三種方法

    python操作redis數(shù)據(jù)庫(kù)的三種方法

    這篇文章主要介紹了python操作redis數(shù)據(jù)庫(kù)的三種方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-09-09
  • Python使用Matplotlib庫(kù)創(chuàng)建3D 圖形和交互式圖形詳解

    Python使用Matplotlib庫(kù)創(chuàng)建3D 圖形和交互式圖形詳解

    Matplotlib 是 Python 中最重要的數(shù)據(jù)可視化庫(kù)之一,在本文中,我們將深入研究 Matplotlib 的高級(jí)特性,特別是如何創(chuàng)建 3D 圖形和交互式圖形,需要的朋友可以參考下
    2023-07-07
  • 使用Python讀取json文件的方法小結(jié)

    使用Python讀取json文件的方法小結(jié)

    這篇文章主要給大家介紹了Python讀取json文件的方法,使用python讀取json文件,輸出結(jié)果為字符串或python對(duì)象,文中有詳細(xì)的代碼示例和圖解,感興趣的小伙伴可以自己動(dòng)手試一試
    2023-09-09
  • Python 添加命令行參數(shù)步驟

    Python 添加命令行參數(shù)步驟

    這篇文章主要介紹了Python 添加命令行參數(shù)步驟,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08

最新評(píng)論

托里县| 得荣县| 堆龙德庆县| 嵩明县| 马龙县| 咸阳市| 鄂温| 大田县| 湘潭县| 宜川县| 平昌县| 花垣县| 东兴市| 宁城县| 安岳县| 阿巴嘎旗| 高雄市| 八宿县| 大连市| 盈江县| 齐齐哈尔市| 四子王旗| 长阳| 资中县| 武清区| 奉新县| 游戏| 巫溪县| 永宁县| 龙门县| 屏东市| 宝应县| 武邑县| 新建县| 白玉县| 小金县| 奇台县| 平阳县| 海门市| 绥芬河市| 淄博市|