python公司企业编码条形码二维码生成系统

news2024/11/15 15:44:25

wx供重浩:创享日记
对话框发送:python编码
免费获取完整源码源文件+配置说明教程等


在PyCharm中运行《企业编码生成系统》即可进入如图1所示的系统主界面。在该界面中可以选择要使用功能对应的菜单进行不同的操作。在选择功能菜单时,只需要输入对应的数字即可。

在这里插入图片描述
具体的操作步骤如下:
(1)生成6位数字防伪编码。当用户在主程序界面中输入数字“1”菜单项时,将进入“生成6位数字防伪编码 (213563型)”的功能执行任务。此时要求输入生成防伪码的数量,可以根据需要输入生成防伪码的数量,如图2所示。按下Enter键,开始批量生成防伪码,生成后系统将提示用户生成了多少个注册码和生成文件的位置信息等,如图3所示。单击“确定”按钮,关闭提示信息。在屏幕上可以看到生成的防伪码信息,如图4所示。生成的文件在程序所在目录下的“codepath”文件夹下,名称为“scode1.txt”,如图5所示。

在这里插入图片描述
(2)生成9位系列产品数字防伪编码。在主程序界面中输入数字“2”菜单项时,将进入“生成9位系列产品数字防伪编码”的功能执行。在产品系列其实编码输入中输入235,在系列产品数量中输入5,在每个系列生成数量中输入10000,如图6所示,按下Enter键,开始生成防伪码。生成后系统将提示用户生成防伪码信息,如图7所示。同时弹出如图8所示的提示对话框,单击“确定”按钮,关闭提示对话框。

在这里插入图片描述
在这里插入图片描述
(3)生成25位混合产品序列号。在主程序界面中输入数字“3”菜单项时,将进入“生成25位混合产品序列码”的功能执行。在输入要生成的数量中输入30000,如图9所示,并且按下Enter键,将生成30000个如图10所示的25位防伪码。生成的文件名称如图11所示。

在这里插入图片描述
(4)生成含数据分析功能的防伪编码。在主程序界面中输入数字“4”菜单项时,将进入“生成含数据分析功能的防伪编码”的功能执行。在输入要生成的带数据分析功能的验证码数量中输入300,并且按下Enter键;在输入数据分析编号(3位字母)中输入ABS,并按下Enter键,将生成30000个如图9所示的25位防伪码,如图12所示。

在这里插入图片描述
(5)智能批量生成带数据分析功能的防伪码。当用户在功能选择界面中输入数字“5”时,进入智能批量生成带数据分析功能的防伪码功能选项,在弹出的对话框中,选择保存批量生成防伪码信息的文件(扩展名为.mri的文件,文件内容如图13所示,其中前面的3位字母是数据分析码,后面的数值是防伪码的个数),如图14所示,单击“打开”按钮,将批量生成防伪码信息,并把不同类别的防伪码文件保存在不同的文件中,如图15所示。

在这里插入图片描述
(6)后续补加生成防伪码。在功能选择界面中输入数字“6”时,将进入补充防伪码生成功能选项。首先在打开的对话框中选择已经生成的防伪码的文件(需要使用前4步中生成的防伪码文件),如图16所示。系统将自动分析已经生成的防伪码数量,并给出提示对话框,如图17所示。接下来要求用户输入补充防伪码的数量,根据要求的防伪码数量循环生成新防伪码,如图18所示。完成后将提醒防伪码已经完成,并提示新生成的防伪码文件的保存位置,如图19所示。

在这里插入图片描述
(7)EAN-13条形码批量生成。在功能选择界面中输入数字“7”时,将进入EAN-13条形码批量生成功能选项。在请输入EN13的国家代码(3位)中输入692;在请输入EAN13的企业代码(4位)中输入1000;在请输入要生成的条形码数量中输入条形码的数量,这里输入2,并按下Enter键,将自动生成条形码,如图20所示。生成后的文件保存在项目根目录下的barcode目录中,效果如图21所示。

在这里插入图片描述
(8)二维码批量输出。在功能选择界面中输入数字“8”时,将进入二维码批量输出功能选项。在请输入要生成的12位数字二维码数量中输入二维码的数量,这里输入5,并按下Enter键,将自动生成二维码,如图22所示。生成后的文件保存在项目根目录下的barcode目录中,效果如图23所示。

在这里插入图片描述
(9)企业粉丝防伪码抽奖。在功能选择界面中输入数字“9”时,将进入企业粉丝防伪码抽奖功能选项。将弹出文件选择对话框,如图2.52所示。选择抽奖信息文件后,输入抽取中奖用户数量,如图24所示,并且按下Enter键,将显示抽取的中奖号码,如图25所示。

在这里插入图片描述
(10)退出系统。在功能选择界面中输入数字“0”,并且按下Enter键即可退出系统,如图26所示。

在这里插入图片描述

部分代码如下,其余完整详见下载。

# 创建文件夹函数
def mkdir(path):
    isexists = os.path.exists(path)  # 判断文件夹路径是否存在
    if not isexists:      # 如果文件夹路径不存在
        os.mkdir(path)     # 创建要创建的文件夹


# 读取文件内容函数
def openfile(filename):
    f = open(filename)  # 打开指定文件
    fllist = f.read()   # 读取文件内容
    f.close()           # 关闭文件
    return fllist      # 返回读取的文件内容


# 输入验证函数,showstr为input函数提供动态输入提示文字,showorder提供验证方式,length提供要求输入数据的长度
def inputbox(showstr,showorder,length):
    instr = input(showstr)  # 使用input函数要求用户输入信息,showstr为输入提示文字
    if len(instr) != 0:     # 输入数据的长度不为零
        # 根据输入数据的要求,分成三种验证方式验证,1:数字,不限位数;2:字母;3:数字且有位数要求
        if showorder == 1:  # 验证方式 ,数字格式,不限位数,大于零的整数
            if str.isdigit(instr):    # 验证是否为数字
                if instr == 0:        # 验证数字是否为0,如果是,要求重新输入,返回值为0
                    print("\033[1;31;40m 输入为零,请重新输入!!\033[0m") # 要求重新输入,返回值为“0”
                    return "0"   # 函数返回值为“0”,为什么返回值为“0”呢?读者思考一下
                else:  # 如果输入正确,返回输入的数据给返回值
                    return instr   #将输入的数据传给函数返回值
            else:      # 如果输入不是数字,要求用户重新输入,函数返回值为“0”
                print("\033[1;31;40m输入非法,请重新输入!!\033[0m")  # 要求用户重新输入
                return "0"  # 函数返回值为“0”
        if showorder == 2:  # 验证方式2 ,要求字母格式,且是三个字母
            if str.isalpha(instr): # 判断输入是否为字母
                if len(instr) != length:   # 判断输入的是否为三个字母,如果不是,则要求重新输入,返回值为“0”
                    print("\033[1;31;40m必须输入三个字母,请重新输入!!\033[0m")  # 要求重新输入
                    return "0"  # 返回值为“0”
                else:  # 如果输入是三个字母,返回输入的字母
                    return instr  # 将函数返回值设置为输入的字母
            else:  # 如果输入不是字母
                print("\033[1;31;40m输入非法,请重新输入!!\033[0m")   # 要求重新输入
                return "0"    # 返回值为“0”
        if showorder == 3:   # 验证方式3 ,要求数字格式,且输入数字位数有要求
            if str.isdigit(instr):  # 验证是否为数字
                if len(instr) != length:   # 验证输入数字是否为要求长度位数,如果不是3位数字,则要求重新输入
                    print("\033[1;31;40m必须输入" + str(length) + "个数字,请重新输入!!\033[0m") # 要求重新输入
                    return "0"  # 返回值为“0”
                else:           # 输入数字满足要求,设置函数返回值为输入信息
                    return instr  #设置函数返回值为输入信息
            else:  # 如果输入不是数字
                print("\033[1;31;40m输入非法,请重新输入!!\033[0m")  # 提示输入非法,要求重新输入
                return "0"  # 函数返回值为“0”
    else:   # 如果没有输入任何内容,即输入为空
        print("\033[1;31;40m输入为空,请重新输入!!\033[0m")   # 提示输入为空,要求重新输入
        return "0"    # 函数返回值为“0”

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

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

相关文章

Javascript的API基本内容(四)

一、日期对象 获取时间戳的方法,分别为 getTime 和 Date.now 和 new Date() // 1. 实例化const date new Date()// 2. 获取时间戳console.log(date.getTime()) // 还有一种获取时间戳的方法console.log(new Date())// 还有一种获取时间戳的方法console.log(Date.n…

maven进阶总结

maven进阶总结1. maven之间可以互相导包2. maven的依赖是具有传递性的3. 可选依赖和排除依赖:4. 继承与聚合4.1聚合4.2 继承5. 属性的配置与使用6. 版本管理8. 多环境开发和跳过测试(了解)1. maven之间可以互相导包 从当前maven的pom文件中&…

DNS服务器部署的详细操作(图文版)

DNS服务器的部署 打开虚拟机后查看已经开放的端口,可以看到没有TCP53、UDP53,说明DNS服务端口没有打开 打开我的电脑—双击CD驱动器— 选择安装可选的Windows组件 选择网络服务—域名系统(DNS)— 点击下一步后会弹出如下弹…

Kubernetes08:Controller (有状态应用)

Kubernetes08:Controller 1、无状态和有状态的区别 1)无状态: 认为Pod都是相同的没有顺序要求不用考虑我在哪个node上运行随意进行伸缩和扩展 有状态: 上面的因素都需要考虑到让每个Pod都是独立的,保持Pod启动顺序…

mysql去重查询的三种方法

文章目录前言一、插入测试数据二、剔除重复数据方法1.方法一:使用distinct2.方法二:使用group by3.方法三:使用开窗函数总结前言 数据库生成环境中经常会遇到表中有重复的数据,或者进行关联过程中产生重复数据,下面介…

【API网关】Kong安装和基本操作

文章目录前言一、API网关选型和Kong的安装1. 什么是API网关2. API网关技术选型3. 安装postgresql和migrations4. 安装kong5. 安装konga二、基本的路由转发配置1. kong的8001、8000和1337端口号的关系2. 基本的路由转发配置3. kong集成consul实现服务发现和负载均衡4. kong配置j…

程序员推荐的良心网站合集!

今天来给大家推荐几个程序员必看的国外良心网站合集。 IBM developer 技术性很强的博客网站,网站自带真实示例代码和架构解决方案,大家可以在上面找到适合自己的语言方向开始学习交流。 https://developer.ibm.com/ infoq 技术论坛社区,内…

【JavaScript】根据元素内容遍历元素的方案

▒ 目录 ▒🛫 导读需求1️⃣ jQuery2️⃣ XPATH(document.evaluate)3️⃣ 原生js(querySelectorAll & Array)🛬 文章小结📖 参考资料🛫 导读 需求 因业务需要,根据元…

文献阅读笔记 # 面向大规模多版本软件系统的代码克隆检测加速技术

面向大规模多版本软件系统的代码克隆检测加速技术,方维康 吴毅坚 赵文耘,《计算机应用与软件》复旦大学软件学院、复旦大学上海市数据科学重点实验室2022 April 面向大规模多版本软件系统的代码克隆检测加速技术 摘要 很多代码克隆检测方法主要针对软…

_Linux (网络版计算器简易实现)

文章目录1. 协议2. 网络版计算器简易实现代码链接3. 网络版计算器2-1. 约定的协议方案有两种2-3. 协议代码框架1. 自定义的协议方案2. json(库里的完整协议方案)2-4. send和recv单独使用不安全2-5. 剩余代码写法讲解参考如下:2-6. 代码运行结果示意图&am…

9.5 PIM-SM

实验目的 熟悉PIM-SM的应用场景掌握PIM-SM的配置方法 实验拓扑 实验拓扑如图9-40所示: 图9-40:PIM-SM 实验步骤 (1)配置IP地址 MCS1的配置 MCS1的配置如图9-41所示: 图9-41:配置MCS1的IP地址 R1的配置 …

VMware安装FreeBSD虚拟机

1. 下载FreeBSD镜像地址 国内阿里云下载地址: freebsd-releases-ISO-IMAGES安装包下载_开源镜像站-阿里云 选择自己需要的版本下载。 2. 创建FreeBSD虚拟机 2.1. 选择操作系统类型 2.2. 导入FreeBSD镜像 3. 安装FreeBSD 第1步:保持默认让其自动进入…

复习知识点十之方法的重载

目录 方法的重载 练习1: 练习1: 数组遍历 练习2: 数组的最大值 练习3: 练习4: 复制数组 基本数据类型和引用数据类型 方法的重载 Java虚拟机会通过参数的不同来区分同名的方法 练习1: public class Test4 {public static void main(String[] args) {//调用方法 // …

grid宫格布局新手快捷上手-f

前言 grid 网上有很多,但都是大而全的,感觉新人上手很吃力,本文仅以最快捷的方式进行介绍,如何使用grid宫格布局 本文是新人上手,若想了解更多grid布局,请阅读其他文章 使用 声明布局 display: grid;声…

springboot+pgbouncer+postgres数据库连接池集成方案及问题解决

期望通过每一次分享,让技术的门槛变低,落地更容易。 —— around 前言 旨在解决微服务项目全是连接池并影响数据库并发连接,作者的环境是基于sprongboot微服务连接postgres数据库,每个微服务的DAO层配置都使用了连接池技术。后续…

一个线程两次调用start()方法会出现什么情况?

第17讲 | 一个线程两次调用start()方法会出现什么情况? 今天我们来深入聊聊线程,相信大家对于线程这个概念都不陌生,它是 Java 并发的基础元素,理解、操纵、诊断线程是 Java 工程师的必修课,但是你真的掌握线程了吗&am…

如何编程实现从多数据库操作数据

对于数据量很大的复杂系统,有时候会采用分库或者分表的减轻单台数据库服务器压力,截止目前有一些工具直接支持读写分离等,例如ShardingSphere,如果不采用工具框架,从编码出发,如何实现从多个数据库读写数据…

FFmpeg 中的多线程解码

1.共享变量的互斥互斥锁(mutex-lock)是一种信号量,用来防止两个线程在同一时刻访问相同的共享资源,它有锁定状态和非锁定状态。在任意时刻,一个线程要想存取共享数据,线程必须首先获得mutex-lock&#xff0…

一种全新的图像变换理论的实验(四)——研究目的替代DCT和小波

一、前言 2023年02月28日凌晨1点 以前我定义为这个算法是滤波算法,实则上应该算是一种新变换算法,比如傅里叶变换(FFT)、离散余弦变换(DCT),以及小波变换。所以就把所有的标题改变了一下。 本次…

MySQL的InnoDB 三种行锁,SQL 语句加了哪些锁?

InnoDB 三种行锁: Record Lock(记录锁):锁住某一行记录 Gap Lock(间隙锁):锁住一段左开右开的区间 Next-key Lock(临键锁):锁住一段左开右闭的区间 哪些语句…