【Python】Python仓储管理系统(源码)【独一无二】

请添加图片描述


👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化【获取源码+商业合作】
👉荣__誉👈:阿里云博客专家博主、51CTO技术博主
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。


Python仓储管理系统(源码)


目录

  • Python仓储管理系统(源码)
  • 1. 具体要求
  • 代码实现
  • 代码截图
    • 【管理员】模式登录
    • 【管理员】查看库存
    • 【管理员】新增仓储货物信息
    • 【入库员】模式登录
    • 【入库员】修改修改货物信息
    • 【出库员】出库货物
    • 【出库员】入库货物


1. 具体要求

使用面相对象设计方法设计一个仓储管理系统。

操作的核心实体有:

  • 货物包含(id、货物名称、货物种类、长度、宽度…)
  • 仓库 (id 、名称、长度、宽度、类别…)
  • 用户 (id、名称、类别、用户名、密码…)
  • 用户分为管理员、入库员、出库员、业务员。

对货物的操作管理包含:

  • 新建货物

  • 入库 (货物需要根据自己的种类入库到对应类别的仓库,如食品如食品库仓库可以预先程序数据设置好)

  • 出库

  • 查询货信息

  • 查询出入库记录

  • 修改货物信息。

登录功能
系统运行后需要需要按照用户名密码来登录,管理员有最高权限,他可以给指定用户赋予特定的权限,如给入库员入库、查询的操作权限、给出库员出库、查询的权限、业务员查看的权限。

菜单
设计出便于用户操作的交互菜单例如下面示例(根据自己的需求进行修改)欢迎使用仓库管理系统,请选择您要进入的功能
1、新增仓储货物信息
2、货物入库3、货物出库
4、修改货物信息
5、查询库存
6、查询出入库记录
7、退出

👇👇👇 关注公众号,回复 “仓储管理系统” 获取源码👇👇👇


代码实现

本系统中有4种角色,管理员、入库员、出库员、业务员,分别对应不同的操作权限,代码如下:

👇👇👇 关注公众号,回复 “仓储管理系统” 获取源码👇👇👇

    # ......略.....# 初始化用户users = [User(id=1, name="张三", category="管理员", username="admin", password="admin123"),User(id=2, name="李四", category="入库员", username="stocker", password="stocker123"),User(id=3, name="王五", category="出库员", username="dispatcher", password="dispatcher123"),User(id=4, name="赵六", category="业务员", username="sales", password="sales123")]for user in users:system.add_user(user)# 初始化货物goods = [Goods(id=1, name="苹果", category="食品", length=10, width=10),Goods(id=2, name="椅子", category="家具", length=50, width=50)]for item in goods:system.add_goods(item)# 初始化仓库warehouses = [Warehouse(id=1, name="食品仓库", length=100, width=100, category="食品"),Warehouse(id=2, name="家具仓库", length=200, width=200, category="家具")]for warehouse in warehouses:system.add_warehouse(warehouse)while True:print("欢迎使用仓库管理系统,请选择您要进入的功能:")print("========================================")print("1、用户登录")print("2、新增仓储货物信息")print("3、货物入库")print("4、货物出库")print("5、修改货物信息")print("6、查询库存")print("7、查看仓库状态")print("8、退出")print("========================================")choice = input("请选择: ")if choice == '1':username = input("请输入用户名: ")password = input("请输入密码: ")if system.login(username, password):print("登录成功!")else:print("登录失败,用户名或密码错误。")elif choice == '2':if not system.logged_in_user or system.logged_in_user.category != "管理员":print("只有管理员才能添加货物。")continue# ......略.....

代码截图

👇👇👇 关注公众号,回复 “仓储管理系统” 获取源码👇👇👇

在这里插入图片描述

【管理员】模式登录

在这里插入图片描述

👇👇👇 关注公众号,回复 “仓储管理系统” 获取源码👇👇👇

【管理员】查看库存

在这里插入图片描述

【管理员】新增仓储货物信息

在这里插入图片描述

【入库员】模式登录

在这里插入图片描述

👇👇👇 关注公众号,回复 “仓储管理系统” 获取源码👇👇👇

【入库员】修改修改货物信息

无法修改

在这里插入图片描述

【出库员】出库货物

在这里插入图片描述

【出库员】入库货物

无法入库

在这里插入图片描述

其他截图略….

👇👇👇 关注公众号,回复 “仓储管理系统” 获取源码👇👇👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/205691.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uni-app 微信小程序之好看的ui登录页面(二)

文章目录 1. 页面效果2. 页面样式代码 更多登录ui页面 uni-app 微信小程序之好看的ui登录页面(一) uni-app 微信小程序之好看的ui登录页面(二) uni-app 微信小程序之好看的ui登录页面(三) uni-app 微信小程…

vivado时序方法检查6

TIMING-19 &#xff1a; ODDR 上的生成时钟波形反相 生成时钟 <clock_name> 的波形与传入时钟 <clock_name> 的波形相比呈反相。 描述 前向时钟端口上的生成时钟应定义为与传入时钟相关。 DRC 警告报告称 &#xff0c; 通过对比传入源时钟发现 &#xff0…

【Android Audio Focus 音频焦点】

介绍 Android 中的音频焦点&#xff08;Audio Focus&#xff09;是一种机制&#xff0c;用于管理应用程序之间的音频资源竞争。当多个应用程序同时请求使用音频设备时&#xff0c;通过音频焦点机制可以确保最终用户的体验不受影响。 两个或两个以上的 Android 应用可同时向同…

go的两大测试方法- 官网推荐

go的两大测试方法- 官网推荐 go的两大测试方法- 官网推荐常见的不正规测试方法main方法个例测试验证 - 不正规1. 提供一个函数&#xff1a;Reverse(input string)进行测试2. 直接在函数下创建main函数下进行个例测试3. 测试发现&#xff0c;Reverse方法不支持某些汉字&#xff…

【SQL开发实战技巧】系列(四十九):Oracle12C常用新特性☞表分区部分索引(Partial Indexes)

系列文章目录 【SQL开发实战技巧】系列&#xff08;一&#xff09;:关于SQL不得不说的那些事 【SQL开发实战技巧】系列&#xff08;二&#xff09;&#xff1a;简单单表查询 【SQL开发实战技巧】系列&#xff08;三&#xff09;&#xff1a;SQL排序的那些事 【SQL开发实战技巧…

树莓派学习:socket获取客户端IP地址

定义 int s_fd;//服务器套接字描述符int c_fd;//客户端套接字描述符int clensizeof(struct sockaddr_in);//地址结构体的大小struct sockaddr_in s_addr;//服务端socket地址结构体memset(&s_addr,0,clen);struct sockaddr_in c_addr;//客户端socket地址结构体memset(&c…

数据分析基础之《matplotlib(4)—柱状图》

一、柱状图绘制 1、柱状图要素 有类别 2、需求&#xff1a;对比每部电影的票房收入 电影数据如下图所示&#xff1a; 3、matplotlib.pyplot.bar(x, height, width0.8, bottomNone, *, aligncenter, dataNone, **kwargs) 说明&#xff1a; x&#xff1a;有几个类别 height&am…

玩转Sass:掌握数据类型!

当我们在进行前端开发的时候&#xff0c;有时候需要使用一些不同的数据类型来处理样式&#xff0c;Sass 提供的这些数据类型可以帮助我们更高效地进行样式开发&#xff0c;本篇文章将为您详细介绍 Sass 中的数据类型。 布尔类型 在 Sass 中&#xff0c;布尔数据类型可以表示逻…

十一.图像处理与光学之图像缩放方式

十一.图像处理与光学之图像缩放方式(sensor binning模式/ skipping 模式/SOC resize) 文章目录 十一.图像处理与光学之图像缩放方式(sensor binning模式/ skipping 模式/SOC resize)11.1 sensor binning模式11.1.1 2:2 Binning模式11.1.2 Binning用途---**在环境光照低的情况下…

生信数据分析高效Python代码

1. Pandas glob获取指定目录下的文件列表 import pandas as pd import globdata_dir "/public/data/" # 获取文件后缀为.txt的文件列表 df_all pd.concat([pd.read_csv(f, sep\t) for f in glob.glob(data_dir *.txt)]) print(df_all)2. 使用 enumerate 函数获取…

基于Spring Boot和微信小程序开发的点餐系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于Spring Boot和微信小程序开发的点餐…

每日一练:插入排序

1. 概念及原理 插入排序是一种简单直观的排序算法&#xff0c;其基本思想是将一个元素插入到已经排序好的部分&#xff0c;然后不断地重复这个过程&#xff0c;直到整个数组有序。下面是插入排序的算法原理&#xff1a; 初始状态&#xff1a; 数组被分为已排序和未排序两个部分…

GORM 自定义数据类型json-切片(数组)

文章目录 自定义数据类型自定义json结构体定义Scaner和Valuer接口的实现插入数据&查询数据 自定义切片存储切片json形式存储字符串存储 创建&查询数据 gorm官方文档&#xff1a;自定义数据类型 自定义数据类型 数据空中很多情况下数据是多变的&#xff0c;我们这篇文章…

Qt::UniqueConnection和lambda一块用无效

如果槽函数是lambda。 那么用了Qt::UniqueConnection也会出现槽函数被多次调用的问题。 原因&#xff1a; 参考官方文档&#xff1a; QObject Class | Qt Core 5.15.16https://doc.qt.io/qt-5/qobject.html#connect

在Go中导入软件包

引言 对于任何广泛使用的编程语言,乃至整个开源社区来说,在不同项目之间借用和共享代码的能力都是基础。借用代码使程序员能够将大部分时间花在针对自己的需求编写代码上,而且通常他们的一些新代码最终会对其他人有用。然后他们可能决定将这些可重用的部分组织成一个单元,…

在c和c++中‘->‘是什么意思?

1.->是什么 箭头符号 -> 通常用于 C、C 和类似的编程语言中&#xff0c;表示指向结构体或类的指针成员的访问。这个符号是一个简写形式&#xff0c;可以看作是两个操作的组合&#xff1a; 解引用&#xff08;dereferencing&#xff09;&#xff1a;通过一个指针来访问它…

k8s-service 7

由控制器来完成集群的工作负载&#xff0c;service&#xff08;微服务&#xff09;是将工作负载的应用暴露出去&#xff0c;从而解决访问问题 作用&#xff1a;无论是在集群内还是集群外&#xff0c;都可以访问pod上的应用&#xff0c;其实现对集群内的应用pod自动发现和负载均…

jQuery ajax读取本地json文件 三级联动下拉框

步骤 1&#xff1a;创建本地JSON文件 {"departments": [{"name": "会计学院","code": "052"},{"name": "金融学院","code": "053"},{"name": "财税学院",&qu…

【c】小红的漂亮串

#include<stdio.h> #include<string.h> int main() {char arr[1000];int count0;gets(arr);//在数组中输入字符串int lenstrlen(arr);//求字符串长度printf("%d\n",len);for(int i0;i<len;i){if(arr[i]r){if(arr[i1]e){if(arr[i2]d){countcount1;}}}}…

关于如何实现图片懒加载

图片懒加载的原理&#xff1a; 通过延迟加载图片&#xff0c;只有当图片即将进入可视区域时再进行加载&#xff0c;以优化网页加载速度和性能。 具体的实现步骤如下&#xff1a; 将待加载的图片的 src 属性设置为空或者一个占位符&#xff0c;而不是真实的图片链接。监…