欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python實(shí)現(xiàn)庫存商品管理系統(tǒng)

 更新時(shí)間:2022年02月27日 09:33:26   作者:weixin_45564026  
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)庫存商品管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

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

題目要求:

請(qǐng)?jiān)O(shè)計(jì)一個(gè)商品管理系統(tǒng),程序要求根據(jù)用戶輸入的選項(xiàng)進(jìn)入相應(yīng)的功能模塊,并顯示相應(yīng)的提示信息。若用戶輸入其他選項(xiàng)時(shí),提示“輸入有誤”。
程序的功能模塊有:

1、添加

程序讀取源文件路徑下的goodinformation.txt,若沒有就創(chuàng)建。當(dāng)添加的商品已存在時(shí),顯示“該商品已存在”

2、查詢

根據(jù)用戶輸入的商品名稱,查詢商品信息,并輸出。當(dāng)查詢的商品不存在時(shí),顯示“商品庫中無該商品”

3、統(tǒng)計(jì)

根據(jù)goodinformation.xt中的數(shù)據(jù),生成統(tǒng)計(jì)數(shù)據(jù),包括(商品種類,商品總數(shù),銷售總額,商品均價(jià)),并寫入到goodtotal.txt中去

4、退出

退出運(yùn)行。

提示:

字典、列表、函數(shù)、文件的打開和讀取等

要求如下:

1.如果具體功能代碼無法實(shí)現(xiàn),那么就把程序架構(gòu)完成,比如羅列需要的函數(shù),并且添加適當(dāng)?shù)淖⑨尅?br />2.添加測(cè)試用例,即根據(jù)題目功能,可以寫明如果輸入為XXX,輸出 應(yīng)該為YYY。

代碼入下,為了增強(qiáng)程序的健壯性,使用了re模塊防止輸入輸出出現(xiàn)逗號(hào)標(biāo)點(diǎn)符號(hào)不識(shí)別的情況。

# 假設(shè)文件中的數(shù)據(jù)按照這樣來寫:藍(lán)莓,10,20(一行的數(shù)據(jù))
import re


def read_goods(fn):
? ? fdic = {}
? ? with open(fn, "r") as f:
? ? ? ? for i in f.readlines():
? ? ? ? ? ? goodl = list(re.split(r"[,,]", i))
? ? ? ? ? ? goodl = [x.strip() for x in goodl]
? ? ? ? ? ? fdic[goodl[0]] = goodl
? ? return fdic


def add_goods(fdic, fn):
? ? goods_list = list(re.split('[,,]', input("請(qǐng)輸入商品信息(商品名稱,單價(jià),數(shù)量),直接輸入回車退出:")))
? ? if goods_list[0] == "":
? ? ? ? return 0
? ? elif len(goods_list) == 3:
? ? ? ? try:
? ? ? ? ? ? a = eval(goods_list[1]) + eval(goods_list[2]) ?# 防止輸入價(jià)格時(shí)輸入非數(shù)字符號(hào)
? ? ? ? except NameError:
? ? ? ? ? ? print("價(jià)格請(qǐng)輸入數(shù)字符號(hào)")
? ? ? ? else:
? ? ? ? ? ? if goods_list[0] in fdic.keys():
? ? ? ? ? ? ? ? print("該商品已存在")
? ? ? ? ? ? else:
? ? ? ? ? ? ? ? fdic[goods_list[0]] = goods_list
? ? ? ? ? ? ? ? with open(fn, "a") as f:
? ? ? ? ? ? ? ? ? ? f.writelines(','.join(goods_list))
? ? ? ? ? ? ? ? ? ? f.write("\n")
? ? ? ? ? ? add_goods(fdic, fn)
? ? else:
? ? ? ? if goods_list[0] in fdic.keys():
? ? ? ? ? ? print("該商品已存在")
? ? ? ? else:
? ? ? ? ? ? print("輸入錯(cuò)誤請(qǐng)重新輸入")
? ? ? ? add_goods(fdic, fn)


def find_goods(fdic):
? ? while True:
? ? ? ? good_name = input("請(qǐng)輸入查詢商品名稱,直接輸入回車退出:")
? ? ? ? if good_name == "":
? ? ? ? ? ? break
? ? ? ? else:
? ? ? ? ? ? for k in fdic.keys():
? ? ? ? ? ? ? ? if k == good_name:
? ? ? ? ? ? ? ? ? ? print("{},{:.2f}".format(k, eval(fdic[k][2])))
? ? ? ? ? ? ? ? ? ? find_goods(fdic)
? ? ? ? ? ? ? ? ? ? return 0
? ? ? ? ? ? print("商品庫中無該商品")


def count(fdic, fn):
? ? type_amount = len(fdic)
? ? good_amount, total_sales, sum_price, ave_price = 0, 0, 0, 0
? ? for v in fdic.values():
? ? ? ? good_amount += eval(v[2])
? ? ? ? total_sales += eval(v[2]) * eval(v[1])
? ? ? ? sum_price += eval(v[1])
? ? try:
? ? ? ? ave_price = sum_price / type_amount
? ? ? ? with open(fn, "w") as f:
? ? ? ? ? ? text = "商品種類: " + str(type_amount) + \
? ? ? ? ? ? ? ? ? ?"\n商品總數(shù): " + str(good_amount) + \
? ? ? ? ? ? ? ? ? ?"\n銷售總額: " + str(total_sales) + \
? ? ? ? ? ? ? ? ? ?"\n商品均價(jià): " + str(ave_price)
? ? ? ? ? ? f.write(text)
? ? except ZeroDivisionError:
? ? ? ? with open(fn, "w+") as f:
? ? ? ? ? ? f.seek(0)
? ? ? ? ? ? text = "商品種類: 0\n商品總數(shù): 0 \n銷售總額: 0\n商品均價(jià): 0"
? ? ? ? ? ? f.write(text)

? ? return print("商品統(tǒng)計(jì)數(shù)據(jù)已寫入統(tǒng)計(jì)文件")


def main():
? ? goodinfo = "C:\\Users\\13935\\Desktop\\goodinformation.txt" ?# 換成自己的路徑
? ? goodtotal = "C:\\Users\\13935\\Desktop\\goodtotle.txt" ?# 換成自己的路徑
? ? goods_dict = read_goods(goodinfo)
? ? print("1. 查詢商品\n2. 添加商品\n3. 統(tǒng)計(jì)商品\n4. 退出\n")
? ? while True:
? ? ? ? try:
? ? ? ? ? ? info = eval(input('請(qǐng)輸入您的選擇:'))
? ? ? ? ? ? if info == 1:
? ? ? ? ? ? ? ? find_goods(goods_dict)
? ? ? ? ? ? elif info == 2:
? ? ? ? ? ? ? ? add_goods(goods_dict, goodinfo)
? ? ? ? ? ? elif info == 3:
? ? ? ? ? ? ? ? count(goods_dict, goodtotal)
? ? ? ? ? ? elif info == 4:
? ? ? ? ? ? ? ? break
? ? ? ? ? ? else:
? ? ? ? ? ? ? ? print("輸入錯(cuò)誤請(qǐng)重新輸入")
? ? ? ? except NameError:
? ? ? ? ? ? print("輸入錯(cuò)誤請(qǐng)重新輸入")
? ? return 0


main()

運(yùn)行結(jié)果:

生成兩個(gè)文件:

本要求截圖如下

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

相關(guān)文章

最新評(píng)論