日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Python实现基于模块的库存管理系统

發布時間:2023/12/31 windows 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python实现基于模块的库存管理系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 推薦自己的專欄:分享一些Python案例,將所學用出來

一:系統測試運行

------ 庫存信息管理系統------- | 1: 增加產品信息 | 2: 產品信息報表 | 3: 增加貨架位置 | 4: 貨架位置報表 | 5: 商品入庫管理 | 6: 商品出庫管理 | 7: 商品庫存信息報表 | 0: 退出 ------------------------------ 請選擇功能菜單(0-7):

二:庫存管理系統概述

sku:Stock Keeping Unit,最小存貨單位

  • 本節實現一個簡單的基于模塊的庫存管理系統。
  • 系統采用JSON文件來保存數據。
  • 產品信息設計為字典,鍵為sku_id (產品ID),值為sku_name (產品名稱),使用products.json實現其持續化。
  • 貨架位置信息也設計為字典,鍵為loc_id (貨架ID),值為loc_name (貨架名稱),使用location.json實現其持續化。
  • 商品庫存信息設計為列表[sku_id, loc_id] 的列表,使用items.json實現其持續化。

庫存管理系統設計為三個模塊文件: data.py、ui.py 和 main.py

庫存管理系統data.py負責數據的管理
庫存管理系統ui.py負責用戶界面交互

三:數據處理模塊data.py的實現

  • 庫存管理系統data.py負責數據的管理
  • 通過Python標準庫模塊json中的loads()函數和dumps()函數,可以實現從JSON文件讀取數據和轉儲數據到JSON文件的功能。

庫存管理系統數據處理模塊data.py。

import os import json#全局變量 _products = {} #保存產品信息的字典: sku_id:sku_name _locations = {} #保存貨架位置的字典: loc_id:loc_name _items = [] #保存商品庫存的列表,元素為元組(sku_id,loc_id)def init():"""從磁盤JSON格式文件中讀取數據"""global _products, _locations, _itemsif os.path.exists("products.json"):f = open("products.json", "r", encoding = 'utf-8')_products = json.loads(f.read())f.close()if os.path.exists("locations.json"):f = open("locations.json", "r", encoding = 'utf-8')_locations = json.loads(f.read())f.close()if os.path.exists("items.json"):f = open("items.json", "r", encoding ='utf-8')_items = json.loads(f.read())f.close()def _save_products():"""把產品信息數據_products以JSON格式保存到磁盤文件"""global _productsf = open("products.json", "w", encoding ='utf-8')f.write(json.dumps(_products, ensure_ascii = False))f.close()def _save_locations():"""把貨架位置數據_ locations以JSON格式保存到磁盤文"""global _locationsf = open("locations.json", "w", encoding ='utf-8')f.write(json.dumps(_locations))f.close()def _save_items():"""把商品庫存數據_ items以JSON格 式保存到磁盤文件"""global _itemsf = open("items.json", "w", encoding ='utf-8')f.write(json.dumps(_items))f.close()def get_products(): """返回產品信息"""global _productsreturn _productsdef get_locations():"""返回貨架位置信息"""global _locationsreturn _locationsdef get_items():"""返回商品庫存信息"""global _itemsreturn _itemsdef add_product(sku_id, sku_name):"""增加一個產品sku_ id、sku_name"""global _products_products[sku_id] = sku_name_save_products()def add_location(loc_id, loc_name):"""增加一個貨架位置loc_ id、 loc_ name"""global _locations_locations[loc_id] = loc_name_save_locations()def add_item(sku_id, loc_id):"""入庫一件商品:商品sku_ id、 貨架sku_ id"""global _items_items.append((sku_id, loc_id))_save_items()def remove_item(sku_id, loc_id):"""出庫一件商品:商品sku_ id、貨架sku_ id, 返回True; 如果不存在, 返回False"""global _itemsfor i in range(len(_items)):if sku_id == _items[i][0] and loc_id == _items[i][1]:del _items[i]_save_items()return Truereturn False

四:用戶界面交互模塊ui.py的實現

  • 庫存管理系統ui.py負責用戶界面交互
  • 用戶界面交互模塊導入data模塊
  • 字典.items() 返回字典的(key, value)對的列表

庫存管理系統用戶界面交互模塊ui.py

import datadef prompt_for_action():"""提示功能菜單。返回用戶輸入選擇"""while True:print('------ 庫存信息管理系統-------')print('| 1: 增加產品信息')print('| 2: 產品信息報表')print('| 3: 增加貨架位置')print('| 4: 貨架位置報表')print('| 5: 商品入庫管理')print('| 6: 商品出庫管理')print('| 7: 商品庫存信息報表')print('| 0: 退出')print('------------------------------')choice = input('請選擇功能菜單(0-7):')if choice == '0': return 'QUIT'elif choice == '1': return 'ADD_PRODUCT'elif choice == '2': return 'REPORT_PRODUCTS'elif choice == '3': return 'ADD_LOCATION'elif choice == '4': return 'REPORT_LOCATIONS'elif choice == '5': return 'ADD_ITEM'elif choice == '6': return 'REMOVE_ITEM'elif choice == '7': return 'REPORT_ITEMS'def prompt_for_old_sku_id():"""提示用戶輸入有效的產品sku_id并返回有效產品ID, 或者返回None"""while True:sku_id = input("請輸入產品ID:")if sku_id == "":return Noneelif sku_id not in data.get_products():print("該產品不存在,請重新輸入")else:return sku_iddef prompt_for_new_sku_id():"""提示用戶輸入新的產品sku_id并返回新產品ID, 或者返回None"""while True:sku_id = input("請輸入新的產品ID:")if sku_id == "": return Noneelif sku_id in data.get_products():print("該產品已經存在,請重新輸入")else:return sku_iddef prompt_for_old_loc_id():"""提示用戶輸入有效的貨架位置loc_id并返回有效貨架位置ID,或者返回None"""while True:loc_id = input("請輸入貨架位置ID:")if loc_id == "":return Noneelif loc_id not in data.get_locations():print("該貨架位置不存在,請重新輸入")else:return loc_iddef prompt_for_new_loc_id():"""提示用戶輸入新的貨架位置loc_ id并返回,或者返回None"""while True:loc_id = input ("請輸新的貨架位置ID:")if loc_id == "": return Noneelif loc_id in data.get_locations():print('該貨架位置已經存在,請重新輸入')else:return loc_iddef prompt_for_sku_name():"""提示用戶輸入產品名稱sku_name并返回產品名稱,或者返回None"""while True:sku_name = input("請輸入產品名稱:")if sku_name =="": return Noneelse: return sku_namedef prompt_for_loc_name():"""提示用戶輸入貨架位置名稱loc_ name并返回貨架位置名稱,或者返回None"""while True:loc_name = input("請輸入貨架位置名稱:")if loc_name == "": return Noneelse: return loc_namedef report_products():"""產品信息報表"""for (k, v) in data.get_products().items():print('{0:8} {1}'.format(k, v))def report_locations():"""貨架位置報表"""for (k, v) in data.get_locations().items():print(' {0:8} {1}'. format(k, v))def report_items():"""庫存信息報表"""for (k, v) in data.get_items():sku_name = data.get_products()[k]loc_name = data.get_locations()[v]print('{0:8} {1}: {2:8} {3}'.format(k, sku_name, v, loc_name))

五:庫存管理系統的功能設計

終究逃不過增、刪、改、查四個字

prompt,提示

  • 增加產品信息
    調用ui.prompt_for_new__sku_id(),提示用戶輸入新的產品ID,
    調用ui.prompt_for_sku_name(),提示用戶輸入產品名稱。
    調用data.add_product(sku_id, sku_name) 增加新的產品。
    如果用戶輸入為空,則返回None,即什么也不做。

  • 產品信息報表
    調用ui.report_products(),顯示產品信息列表。

  • 增加貨架位置
    調用ui.prompt_for_new_loc_id(), 提示用戶輸入新的貨架位置ID,
    調用ui.prompt_for_loc_name(),提示用戶輸入貨架名稱。
    調用data.add_location(sku_id, sku_name) 增加新的貨架。
    如果用戶輸入為空,則返回None,即什么也不做。

  • 貨架位置報表
    調用ui.report_location(),顯示貨架位置信息列表。

  • 商品入庫管理
    調用ui.prompt_for_old_sku_id(),提示用戶輸入產品ID,
    調用ui.prompt_for_old_loc_id(),提示用戶輸入貨架ID。
    調用data.add_item(sku_id, loc_id),實現商品入庫。
    如果用戶輸入為空,則返回None,即什么也不做。

  • 商品出庫管理
    調用ui.prompt_for_old_sku_id(),提示用戶輸入產品ID,
    調用ui.prompt_for_old_loc_id(),提示用戶輸入貨架ID。
    調用data.remove_item(sku_id, loc_id),實現商品出庫。
    如果庫存不存在,則報錯。如果用戶輸入為空,則返回None,即什么也不做。

  • 商品庫存信息報表
    調用ui.report_items(), 顯示庫存信息列表。

  • 六:主模塊main.py的實現

    • 主模塊導入data和ui模塊。
    • 在main.py中,定義main()函數,首先調用data.init(),從磁盤JSON格式文件中讀取數據。然后在無限循環中,調用ui.prompt_for_action()顯示功能菜單,接受用戶輸入,并根據用戶的功能選擇,實現各模塊相應功能。

    庫存管理系統主模塊main. py

    """庫存管理系統:基于JS0N""" import data import uidef main():data.init()while True:action = ui.prompt_for_action()if action == 'QUIT':breakelif action == 'ADD_PRODUCT':sku_id = ui.prompt_for_new_sku_id()if sku_id != None: sku_name = ui.prompt_for_sku_name() if sku_name != None: data.add_product(sku_id, sku_name)elif action == 'REPORT_PRODUCTS':ui.report_products()elif action == 'ADD_LOCATION':loc_id = ui.prompt_for_new_loc_id()if loc_id != None:loc_name = ui.prompt_for_loc_name()if loc_name != None:data.add_location(loc_id, loc_name)elif action == 'REPORT_LOCATIONS':ui.report_locations()elif action == 'ADD_ITEM':sku_id = ui.prompt_for_old_sku_id()if sku_id != None:loc_id = ui.prompt_for_old_loc_id()if loc_id != None:data.add_item(sku_id, loc_id)elif action == 'REMOVE_ITEM':sku_id = ui.prompt_for_old_sku_id()if sku_id != None:loc_id = ui.prompt_for_old_loc_id()if loc_id != None:if not data.remove_item(sku_id, loc_id):print('該庫存不存在!')elif action == 'REPORT_ITEMS':ui.report_items()if __name__ == "__main__": main()

    總結

    以上是生活随笔為你收集整理的Python实现基于模块的库存管理系统的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 最新黄色在线 | 影音先锋黄色网址 | 国产精品二区一区二区aⅴ污介绍 | 国产97超碰 | 精品香蕉一区二区三区 | а 天堂 在线 | 久久精品99国产精品日本 | 无码精品a∨在线观看中文 福利片av | 国产一区=区 | 亚洲成人黄色av | 亚洲丝袜天堂 | 免费国产小视频 | 亚洲区自拍偷拍 | 菲律宾黄色片 | 日韩视频h | 欧美毛片基地 | www.超碰97.com | 亚洲狼人天堂 | 日韩在线一区二区三区 | 成人污视频 | 欧美日韩中文国产一区发布 | 曰本三级日本三级日本三级 | 亚洲看| 欧美视频精品在线 | 男女黄色片 | 91社区福利 | 黄色在线观看网址 | 欧美黑人又粗又大的性格特点 | 在线久草| 97人妻一区二区精品免费视频 | 高清视频免费在线观看 | 亚洲午夜精品久久久久久浪潮 | 国产三区四区视频 | 深夜视频免费在线观看 | 91久久一区二区三区 | 欧美顶级metart裸体全部自慰 | 亚洲aaaaa特级 | 一级黄色录像免费观看 | 日韩免费黄色片 | 女生被男生c | 精品少妇人妻av一区二区三区 | 国产成人精品一区二区三区在线 | 日韩夜夜高潮夜夜爽无码 | 国产一卡二卡在线播放 | 亚洲v欧美 | 成人在线综合 | 少妇一夜三次一区二区 | 91嫩草视频在线观看 | 伊人视频在线观看 | 亚洲一级在线 | 九九久久网 | 国产福利一区二区三区视频 | 福利一区二区在线观看 | 天堂在线免费观看视频 | 精品一区二区免费视频 | 少妇高潮露脸国语对白 | 国产欧美一区二区精品性色99 | 噜噜噜亚洲色成人网站 | 免费激情视频网站 | 和黑帮大佬的365 | 午夜欧美精品久久久久久久 | 性色tv| 性高潮久久久久久久久久 | 亚洲视频一区在线 | 日韩精品成人一区 | 黄色三级视频 | 亚洲综合成人亚洲 | 国产av无码专区亚洲a∨毛片 | 一区二区三区人妻 | 国产成人av网 | 国产在线精品一区 | 少妇裸体淫交视频免费看高清 | 日韩不卡一二区 | 久久aⅴ国产欧美74aaa | 日韩av手机在线免费观看 | 亚洲欧美自拍另类 | 麻豆av一区二区 | 视色av | 男女涩涩网站 | 免费看污的网站 | 婷婷色吧 | 国产免费黄色网址 | 久久夜夜操妹子 | 午夜精品久久久久久久第一页按摩 | 一本大道久久 | 永久免费未满蜜桃 | 亚洲高潮无码久久 | 黄页网站视频在线观看 | 红杏出墙记 | chinese xxxx videos andvr| 天天久久综合网 | 成av人片在线观看www | 另类小说色 | 久久精品午夜 | 草草在线观看 | 久久久久久1 | 成人午夜影院在线观看 | 欧美黑人做爰爽爽爽 | 一级黄色性生活片 |