POS系统即销售点系统 文档与数据库设计
POS系统即销售点系统,是一种用于商业交易的软硬件集成系统,主要用于管理销售、库存、客户信息等,以下是其详细介绍:
1. 系统组成
- 硬件部分 :
-
- 收银终端:包括传统的台式收银机、平板电脑、智能手机等设备,用于输入商品信息、计算总价、处理支付等操作。
- 读卡器:用于读取银行卡、信用卡等支付卡片的信息,实现电子支付功能。常见的有磁条读卡器、芯片读卡器和非接触式读卡器等。
- 打印机:打印销售小票、发票、收据等凭证,供顾客和商家留存。
- 扫描枪或条码阅读器:快速扫描商品的条形码或二维码,获取商品的编号、名称、价格等信息,提高结账效率。
- 钱箱:存放现金,与收银终端相连,在收款时自动弹开,方便收银员找零和存放现金。
- 顾客显示屏:向顾客展示商品信息、价格、总价、支付金额等,增加交易的透明度。
- 软件部分:
-
- 前台销售软件:安装在收银终端上,用于处理商品销售、支付、打印小票等基本功能,提供直观的操作界面,方便收银员快速完成交易操作 。
- 库存管理模块:实时跟踪商品的库存数量,当商品销售时自动减少库存,当库存不足时提醒商家补货,帮助商家优化库存水平,减少积压和缺货现象 。
- 销售数据分析模块:收集和分析销售数据,如销售额、销售量、客单价、商品销售排名等,为商家提供销售趋势、顾客购买行为等洞察,支持商家制定营销策略和采购计划 。
- 会员管理模块:用于管理会员信息,包括会员注册、积分管理、会员等级、优惠政策等,帮助商家建立客户忠诚度,提高客户复购率 。
- 员工管理模块:记录员工的工作时间、考勤情况、销售业绩等信息,方便商家进行员工考核和工资结算。
功能特点
- 快速准确的交易处理:能够快速扫描商品条码或手动输入商品信息,自动计算商品总价、折扣、税费等,支持多种支付方式,大大提高了交易速度和准确性,减少顾客排队等待时间 。
- 库存实时更新:与库存管理模块紧密结合,每笔销售交易完成后,系统自动更新库存数量,确保库存数据的实时性和准确性,帮助商家及时掌握库存状况,合理安排补货计划,避免商品缺货或积压 。
- 销售数据分析与报表生成:系统记录了详细的销售数据,通过数据分析模块,商家可以生成各种销售报表,如日报表、月报表、商品销售报表、员工销售报表等,为商家提供决策依据,例如哪些商品畅销、哪些滞销,从而调整商品采购和营销策略 。
- 会员管理与营销:支持会员注册、积分累计、会员等级划分、优惠券发放等功能,商家可以根据会员的消费行为和偏好,进行精准营销,提高会员的忠诚度和消费频次 。
- 员工管理与权限设置:可以设置不同员工的账号和权限,如收银员、店长、管理员等,每个角色具有不同的操作权限,确保系统的安全性和数据的保密性,同时方便商家对员工的工作进行管理和监督 。
应用场景
- 零售业:超市、便利店、百货商场等零售场所广泛使用POS系统来完成商品的销售、库存管理和顾客结算。通过POS系统,零售商可以快速处理大量的交易,提高工作效率,同时准确掌握库存情况,及时补货,满足顾客需求 。
- 餐饮业:餐厅、咖啡馆、酒吧等餐饮场所利用POS系统进行点餐、结账、厨房打印订单等操作。顾客可以通过POS终端浏览菜单、选择菜品、下单并支付,系统会将订单信息自动发送到厨房,提高服务效率和准确性,减少人工传递订单的错误 。
- 酒店业:酒店的前台、餐厅、礼品店等部门都可以使用POS系统。前台用于办理入住和退房手续、收取押金和房费;餐厅用于点餐和结账;礼品店用于商品销售,通过POS系统实现酒店各部门的信息化管理,提升服务质量和运营效率 。
- 娱乐业:电影院、KTV、游乐场等娱乐场所使用POS系统来销售门票、小吃、饮料等商品,以及进行包房预订、计时收费等操作,方便顾客消费,同时提高场所的管理效率和财务管理的准确性 。
- 医疗卫生业:在医院的挂号处、收费处、药房等部门,POS系统可以用于收取挂号费、诊疗费、药费等,提高缴费效率,减少患者排队等待时间,同时也方便医院进行财务管理和数据统计.
2. 数据库表:
以下是带有中文标注的表格形式,方便理解每个字段的含义:
表名 | 字段名 | 数据类型 | 约束/说明 | 中文说明 |
products | product_id | INTEGER | PRIMARY KEY, AUTOINCREMENT | 商品ID(主键,自增) |
product_code | VARCHAR(50) | UNIQUE, NOT NULL | 商品编码(唯一,非空) | |
product_name | VARCHAR(100) | NOT NULL | 商品名称(非空) | |
category_id | INTEGER | 类别ID | ||
unit_price | DECIMAL(10,2) | NOT NULL | 单价(非空) | |
stock_quantity | INTEGER | NOT NULL, DEFAULT 0 | 库存数量(非空,默认0) | |
image_path | TEXT | 图片路径 | ||
created_at | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 创建时间(默认当前时间) | |
updated_at | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 更新时间(默认当前时间) | |
categories | category_id | INTEGER | PRIMARY KEY, AUTOINCREMENT | 类别ID(主键,自增) |
category_name | VARCHAR(50) | NOT NULL | 类别名称(非空) | |
description | TEXT | 类别描述 | ||
orders | order_id | INTEGER | PRIMARY KEY, AUTOINCREMENT | 订单ID(主键,自增) |
order_number | VARCHAR(50) | UNIQUE, NOT NULL | 订单编号(唯一,非空) | |
customer_id | INTEGER | 客户ID | ||
employee_id | INTEGER | NOT NULL | 员工ID(非空) | |
order_date | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 订单日期(默认当前时间) | |
total_amount | DECIMAL(10,2) | NOT NULL | 总金额(非空) | |
payment_method | TEXT | CHECK: IN ('cash', 'card', 'mobile_payment'), NOT NULL | 支付方式(现金/卡/移动支付,非空) | |
status | TEXT | CHECK: IN ('completed', 'cancelled', 'refunded'), DEFAULT 'completed' | 订单状态(完成/取消/退款,默认完成) | |
order_details | order_detail_id | INTEGER | PRIMARY KEY, AUTOINCREMENT | 订单明细ID(主键,自增) |
order_id | INTEGER | NOT NULL, FOREIGN KEY REFERENCES orders(order_id) | 订单ID(外键,非空) | |
product_id | INTEGER | NOT NULL, FOREIGN KEY REFERENCES products(product_id) | 商品ID(外键,非空) | |
quantity | INTEGER | NOT NULL | 数量(非空) | |
unit_price | DECIMAL(10,2) | NOT NULL | 单价(非空) | |
subtotal | DECIMAL(10,2) | NOT NULL | 小计(非空) | |
employees | employee_id | INTEGER | PRIMARY KEY, AUTOINCREMENT | 员工ID(主键,自增) |
username | VARCHAR(50) | UNIQUE, NOT NULL | 用户名(唯一,非空) | |
password_hash | VARCHAR(255) | NOT NULL | 密码哈希值(非空) | |
full_name | VARCHAR(100) | NOT NULL | 姓名(非空) | |
role | TEXT | CHECK: IN ('admin', 'cashier', 'manager'), NOT NULL | 角色(管理员/收银员/经理,非空) | |
contact_number | VARCHAR(20) | 联系电话 | ||
| VARCHAR(100) | 邮箱 | ||
is_active | BOOLEAN | DEFAULT 1 | 是否激活(默认是) | |
customers | customer_id | INTEGER | PRIMARY KEY, AUTOINCREMENT | 客户ID(主键,自增) |
customer_name | VARCHAR(100) | NOT NULL | 客户姓名(非空) | |
phone_number | VARCHAR(20) | 电话号码 | ||
| VARCHAR(100) | 邮箱 | ||
membership_level | TEXT | CHECK: IN ('regular', 'silver', 'gold'), DEFAULT 'regular' | 会员等级(普通/银卡/金卡,默认普通) | |
points | INTEGER | DEFAULT 0 | 积分(默认0) | |
created_at | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 创建时间(默认当前时间) | |
inventory_transactions | transaction_id | INTEGER | PRIMARY KEY, AUTOINCREMENT | 库存记录ID(主键,自增) |
product_id | INTEGER | NOT NULL, FOREIGN KEY REFERENCES products(product_id) | 商品ID(外键,非空) | |
transaction_type | TEXT | CHECK: IN ('in', 'out'), NOT NULL | 交易类型(入库/出库,非空) | |
quantity | INTEGER | NOT NULL | 数量(非空) | |
transaction_date | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 交易日期(默认当前时间) | |
notes | TEXT | 备注 | ||
employee_id | INTEGER | NOT NULL, FOREIGN KEY REFERENCES employees(employee_id) | 员工ID(外键,非空) | |
points_history | history_id | INTEGER | PRIMARY KEY, AUTOINCREMENT | 积分历史ID(主键,自增) |
customer_id | INTEGER | NOT NULL, FOREIGN KEY REFERENCES customers(customer_id) | 客户ID(外键,非空) | |
points_change | INTEGER | NOT NULL | 积分变动(非空) | |
notes | TEXT | 备注 | ||
created_at | TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 创建时间(默认当前时间) |
说明:
- PRIMARY KEY: 主键,唯一标识每一行。
- AUTOINCREMENT: 自动递增,通常用于主键。
- UNIQUE: 唯一约束,确保字段值不重复。
- NOT NULL: 非空约束,确保字段值不能为空。
- FOREIGN KEY: 外键,用于关联其他表。
- CHECK: 检查约束,确保字段值符合指定条件。
- DEFAULT: 默认值,当未提供字段值时使用默认值。
3. SQL 码:
-- 创建商品表
CREATE TABLE products (product_id INTEGER PRIMARY KEY AUTOINCREMENT,product_code VARCHAR(50) UNIQUE NOT NULL,product_name VARCHAR(100) NOT NULL,category_id INTEGER,unit_price DECIMAL(10,2) NOT NULL,stock_quantity INTEGER NOT NULL DEFAULT 0,image_path TEXT,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);-- 创建类别表
CREATE TABLE categories (category_id INTEGER PRIMARY KEY AUTOINCREMENT,category_name VARCHAR(50) NOT NULL,description TEXT
);-- 创建订单主表
CREATE TABLE orders (order_id INTEGER PRIMARY KEY AUTOINCREMENT,order_number VARCHAR(50) UNIQUE NOT NULL,customer_id INTEGER,employee_id INTEGER NOT NULL,order_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,total_amount DECIMAL(10,2) NOT NULL,payment_method TEXT CHECK(payment_method IN ('cash', 'card', 'mobile_payment')) NOT NULL,status TEXT CHECK(status IN ('completed', 'cancelled', 'refunded')) NOT NULL DEFAULT 'completed'
);-- 创建订单明细表
CREATE TABLE order_details (order_detail_id INTEGER PRIMARY KEY AUTOINCREMENT,order_id INTEGER NOT NULL,product_id INTEGER NOT NULL,quantity INTEGER NOT NULL,unit_price DECIMAL(10,2) NOT NULL,subtotal DECIMAL(10,2) NOT NULL,FOREIGN KEY (order_id) REFERENCES orders(order_id),FOREIGN KEY (product_id) REFERENCES products(product_id)
);-- 创建员工表
CREATE TABLE employees (employee_id INTEGER PRIMARY KEY AUTOINCREMENT,username VARCHAR(50) UNIQUE NOT NULL,password_hash VARCHAR(255) NOT NULL,full_name VARCHAR(100) NOT NULL,role TEXT CHECK(role IN ('admin', 'cashier', 'manager')) NOT NULL,contact_number VARCHAR(20),email VARCHAR(100),is_active BOOLEAN DEFAULT 1
);-- 创建客户表
CREATE TABLE customers (customer_id INTEGER PRIMARY KEY AUTOINCREMENT,customer_name VARCHAR(100) NOT NULL,phone_number VARCHAR(20),email VARCHAR(100),membership_level TEXT CHECK(membership_level IN ('regular', 'silver', 'gold')) DEFAULT 'regular',points INTEGER DEFAULT 0,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);-- 创建库存记录表
CREATE TABLE inventory_transactions (transaction_id INTEGER PRIMARY KEY AUTOINCREMENT,product_id INTEGER NOT NULL,transaction_type TEXT CHECK(transaction_type IN ('in', 'out')) NOT NULL,quantity INTEGER NOT NULL,transaction_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,notes TEXT,employee_id INTEGER NOT NULL,FOREIGN KEY (product_id) REFERENCES products(product_id),FOREIGN KEY (employee_id) REFERENCES employees(employee_id)
);-- 创建积分历史表
CREATE TABLE points_history (history_id INTEGER PRIMARY KEY AUTOINCREMENT,customer_id INTEGER NOT NULL,points_change INTEGER NOT NULL,notes TEXT,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);
4. Django Models.py 码:
from django.db import modelsclass Category(models.Model):category_name = models.CharField(max_length=50, verbose_name="类别名称")description = models.TextField(blank=True, null=True, verbose_name="类别描述")def __str__(self):return self.category_nameclass Meta:verbose_name = "类别"verbose_name_plural = "类别"class Product(models.Model):product_code = models.CharField(max_length=50, unique=True, verbose_name="商品编码")product_name = models.CharField(max_length=100, verbose_name="商品名称")category = models.ForeignKey(Category, on_delete=models.SET_NULL, null=True, verbose_name="类别")unit_price = models.DecimalField(max_digits=10, decimal_places=2, verbose_name="单价")stock_quantity = models.IntegerField(default=0, verbose_name="库存数量")image_path = models.TextField(blank=True, null=True, verbose_name="图片路径")created_at = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")updated_at = models.DateTimeField(auto_now=True, verbose_name="更新时间")def __str__(self):return self.product_nameclass Meta:verbose_name = "商品"verbose_name_plural = "商品"class Employee(models.Model):ROLE_CHOICES = [('admin', '管理员'),('cashier', '收银员'),('manager', '经理'),]username = models.CharField(max_length=50, unique=True, verbose_name="用户名")password_hash = models.CharField(max_length=255, verbose_name="密码哈希值")full_name = models.CharField(max_length=100, verbose_name="姓名")role = models.CharField(max_length=10, choices=ROLE_CHOICES, verbose_name="角色")contact_number = models.CharField(max_length=20, blank=True, null=True, verbose_name="联系电话")email = models.EmailField(max_length=100, blank=True, null=True, verbose_name="邮箱")is_active = models.BooleanField(default=True, verbose_name="是否激活")def __str__(self):return self.full_nameclass Meta:verbose_name = "员工"verbose_name_plural = "员工"class Customer(models.Model):MEMBERSHIP_LEVEL_CHOICES = [('regular', '普通会员'),('silver', '银卡会员'),('gold', '金卡会员'),]customer_name = models.CharField(max_length=100, verbose_name="客户姓名")phone_number = models.CharField(max_length=20, blank=True, null=True, verbose_name="电话号码")email = models.EmailField(max_length=100, blank=True, null=True, verbose_name="邮箱")membership_level = models.CharField(max_length=10, choices=MEMBERSHIP_LEVEL_CHOICES, default='regular', verbose_name="会员等级")points = models.IntegerField(default=0, verbose_name="积分")created_at = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")def __str__(self):return self.customer_nameclass Meta:verbose_name = "客户"verbose_name_plural = "客户"class Order(models.Model):PAYMENT_METHOD_CHOICES = [('cash', '现金'),('card', '银行卡'),('mobile_payment', '移动支付'),]STATUS_CHOICES = [('completed', '已完成'),('cancelled', '已取消'),('refunded', '已退款'),]order_number = models.CharField(max_length=50, unique=True, verbose_name="订单编号")customer = models.ForeignKey(Customer, on_delete=models.SET_NULL, null=True, verbose_name="客户")employee = models.ForeignKey(Employee, on_delete=models.CASCADE, verbose_name="员工")order_date = models.DateTimeField(auto_now_add=True, verbose_name="订单日期")total_amount = models.DecimalField(max_digits=10, decimal_places=2, verbose_name="总金额")payment_method = models.CharField(max_length=15, choices=PAYMENT_METHOD_CHOICES, verbose_name="支付方式")status = models.CharField(max_length=10, choices=STATUS_CHOICES, default='completed', verbose_name="订单状态")def __str__(self):return self.order_numberclass Meta:verbose_name = "订单"verbose_name_plural = "订单"class OrderDetail(models.Model):order = models.ForeignKey(Order, on_delete=models.CASCADE, verbose_name="订单")product = models.ForeignKey(Product, on_delete=models.CASCADE, verbose_name="商品")quantity = models.IntegerField(verbose_name="数量")unit_price = models.DecimalField(max_digits=10, decimal_places=2, verbose_name="单价")subtotal = models.DecimalField(max_digits=10, decimal_places=2, verbose_name="小计")def __str__(self):return f"{self.order.order_number} - {self.product.product_name}"class Meta:verbose_name = "订单明细"verbose_name_plural = "订单明细"class InventoryTransaction(models.Model):TRANSACTION_TYPE_CHOICES = [('in', '入库'),('out', '出库'),]product = models.ForeignKey(Product, on_delete=models.CASCADE, verbose_name="商品")transaction_type = models.CharField(max_length=3, choices=TRANSACTION_TYPE_CHOICES, verbose_name="交易类型")quantity = models.IntegerField(verbose_name="数量")transaction_date = models.DateTimeField(auto_now_add=True, verbose_name="交易日期")notes = models.TextField(blank=True, null=True, verbose_name="备注")employee = models.ForeignKey(Employee, on_delete=models.CASCADE, verbose_name="员工")def __str__(self):return f"{self.product.product_name} - {self.get_transaction_type_display()}"class Meta:verbose_name = "库存记录"verbose_name_plural = "库存记录"class PointsHistory(models.Model):customer = models.ForeignKey(Customer, on_delete=models.CASCADE, verbose_name="客户")points_change = models.IntegerField(verbose_name="积分变动")notes = models.TextField(blank=True, null=True, verbose_name="备注")created_at = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")def __str__(self):return f"{self.customer.customer_name} - {self.points_change}"class Meta:verbose_name = "积分历史"verbose_name_plural = "积分历史"
说明:
- 字段类型:
-
CharField
:用于存储短文本(如名称、编码等)。TextField
:用于存储长文本(如描述、备注等)。IntegerField
:用于存储整数(如数量、积分等)。DecimalField
:用于存储小数(如价格、总金额等)。DateTimeField
:用于存储日期时间(如创建时间、订单日期等)。BooleanField
:用于存储布尔值(如是否激活)。ForeignKey
:用于定义外键关系。
- 约束:
-
unique=True
:确保字段值唯一。null=True, blank=True
:允许字段为空。default
:设置字段默认值。choices
:限制字段值为指定选项。
- Meta 类:
-
verbose_name
:设置模型在管理后台的显示名称。verbose_name_plural
:设置模型在管理后台的复数名称。
__str__
方法:
-
- 定义模型的字符串表示形式,便于在管理后台和调试中查看。
- 外键关系:
-
- 使用
ForeignKey
定义表之间的关联关系,on_delete
参数指定删除时的行为。
- 使用
使用方法:
- 将上述代码保存到 Django 项目的
models.py
文件中。 - 运行
python manage.py makemigrations
生成迁移文件。 - 运行
python manage.py migrate
将模型应用到数据库。
相关文章:
POS系统即销售点系统 文档与数据库设计
POS系统即销售点系统,是一种用于商业交易的软硬件集成系统,主要用于管理销售、库存、客户信息等,以下是其详细介绍: 1. 系统组成 硬件部分 : 收银终端:包括传统的台式收银机、平板电脑、智能手机等设备&a…...

安全合规遇 AI 强援:深度驱动行业发展新引擎 | 倍孜网络CEO聂子尧出席ICT深度观察报告会!
12月24日,2025中国信通院深度观察报告会科技伦理与合规发展分论坛在北京举办。本次分论坛主题为“伦理先行,合规致远”,聚焦互联网广告合规治理、移动终端应用生态治理、短视频平台责任限度等前沿话题进行分享与探讨。工业和信息化部领导&…...

算法进阶:贪心算法
贪心算法是一种简单而直观的算法思想,它在每一步选择中都采取在当前状态下最优的选择,以期望最终得到全局最优解。贪心算法通常适用于一些具有最优子结构的问题,即问题的最优解可以通过一系列局部最优解的选择得到。 贪心算法的基本思路是&a…...
C++ 设计模式:工厂方法(Factory Method)
链接:C 设计模式 链接:C 设计模式 - 抽象工厂 链接:C 设计模式 - 原型模式 链接:C 设计模式 - 建造者模式 工厂方法(Factory Method)是创建型设计模式之一,它提供了一种创建对象的接口…...
手机联系人 查询 添加操作
Android——添加联系人_android 添加联系人-CSDN博客 上面连接添加联系人已测试 是可以 Android : 获取、添加、手机联系人-ContentResolver简单应用_contentresolver 添加联系人-CSDN博客...

【LeetCode】2506、统计相似字符串对的数目
【LeetCode】2506、统计相似字符串对的数目 文章目录 一、哈希表位运算1.1 哈希表位运算 二、多语言解法 一、哈希表位运算 1.1 哈希表位运算 每个字符串, 可用一个 int 表示. (每个字符 是 int 的一个位) 哈希表记录各 字符组合 出现的次数 步骤: 遇到一个字符串, 得到 ma…...

金仓数据库对象访问权限的管理
基础知识 对象的分类 数据库的表、索引、视图、缺省值、规则、触发器等等,都称为数据库对象,对象分为如下两类: 模式(SCHEMA)对象:可以理解为一个存储目录,包含视图、索引、数据类型、函数和操作符等。非模式对象:其他的数据库对象&#x…...

Qt 中实现系统主题感知
【写在前面】 在现代桌面应用程序开发中,系统主题感知是一项重要的功能,它使得应用程序能够根据用户的系统主题设置(如深色模式或浅色模式)自动调整其外观。 Qt 作为一个跨平台的C图形用户界面应用程序开发框架,提供…...
Modbus TCP 报文说明
Modbus TCP 报文说明 Modbus TCP 报文结构报文解析功能码说明Modbus 功能码与 PLC 地址的对应关系 Modbus TCP 报文结构 事务标识符(Transaction Identifier,2 字节): 用于匹配请求和响应,通常由客户端生成࿰…...

音视频入门基础:MPEG2-TS专题(24)——FFmpeg源码中,显示TS流每个packet的pts、dts的实现
音视频入门基础:MPEG2-TS专题系列文章: 音视频入门基础:MPEG2-TS专题(1)——MPEG2-TS官方文档下载 音视频入门基础:MPEG2-TS专题(2)——使用FFmpeg命令生成ts文件 音视频入门基础…...
大模型:OneFitsAll、Time - LLM、LLaTA
LLM数据集:ETT、Illness、Weather ETT、Illness、Weather在上述提到的论文中都是用于时间序列预测研究的真实世界数据集,以下是对它们的具体介绍: ETT数据集 内容:ETT是电力变压器温度(Electric Transformer Temperature)数据集,通常包含电力变压器在不同时间点的温度…...

连锁餐饮行业数据可视化分析方案
引言 随着连锁餐饮行业的迅速发展,市场竞争日益激烈。企业需要更加精准地把握运营状况、消费者需求和市场趋势,以制定科学合理的决策,提升竞争力和盈利能力。可视化数据分析可以帮助连锁餐饮企业整合多源数据,通过直观、动态的可…...

Ubuntu 下使用命令行将 U 盘格式化为 ext4、FAT32 和 exFAT 的详细教程
Ubuntu 下使用命令行将 U 盘格式化为 ext4、FAT32 和 exFAT 的详细教程 作者:Witheart更新时间:20241228 本教程将详细介绍如何将 U 盘格式化为 ext4、FAT32 和 exFAT 文件系统,同时包括如何安装必要工具(如 exfat-utils&#x…...
多说话人ASR的衡量指标和有效计算工具包
WER (Word Error Rate) 定义:预测的识别语音序列于groundtruth抄本之间的编辑距离 除以 ground truth抄本的单词数量 编辑距离 (预测的识别语音序列,groundtruth 抄本)/ ground truth抄本的单词数量 英文定义:It is g…...
英伟达(NVIDIA)
本文来自智谱清言 ------------------------------ 英伟达(NVIDIA)是一家成立于1993年的美国跨国科技公司,由黄仁勋、克里斯马拉科夫斯基和柯蒂斯普里姆共同创立。公司总部位于加利福尼亚州圣克拉拉市。英伟达最初专注于图形芯片的设计&…...
【环境配置】Jupyter Notebook切换虚拟环境
在Jupyter Notebook中是可以切换虚拟环境的,以下是几种常见的方法: 方法一:使用nb_conda_kernels扩展(适用于Anaconda环境) 安装 如果你使用的是Anaconda环境,首先确保你已经安装了 nb_conda 包。如果没…...

嵌入式单片机窗口看门狗控制与实现
窗口看门狗 注意:WWDG外设没有独立的时钟源,而是挂载在APB1总线下,APB1总线外设时钟为42MHZ。 了解WWDG外设的使用流程,可以参考stm32f4xx_wwdg.c的开头注释,具体流程如下图所示...

NiChart 多模态神经影像(structural MRI,functional MRI,and diffusion MRI)处理和分析工具包安装
NiChart多模态神经影像部署 NiChart 本地安装Git clone 问题personal access token PAT 问题 NiChart 云端注册AWS验证问题 NiChart 是UPenn大学,Christos Davatzikos教授开发的一个多模态MRI影像,structural (sMRI), diffusion (dMRI), and …...
Es搭建——单节点——Linux
Es搭建——单节点——Linux 一、安装 下载安装包: 官网下载地址:https://www.elastic.co/downloads/elasticsearch 上传包到linux 切换到安装目录下 解压:tar -zxvf elasticsearch-7.17.1-linux-x86_64.tar.gz 重命名安装文件夹 mv elastics…...
Python自动化测试之线上流量回放:录制、打标、压测与平台选择
在自动化测试中,线上流量回放是一项关键技术,可以模拟真实用户的请求并重现线上场景,验证系统的性能和稳定性。本文将介绍Python自动化测试中的线上流量回放技术,并提供实战代码,帮助你了解流量的录制、打标、压测发起…...

【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...

12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
django blank 与 null的区别
1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是,要注意以下几点: Django的表单验证与null无关:null参数控制的是数据库层面字段是否可以为NULL,而blank参数控制的是Django表单验证时字…...

在 Spring Boot 中使用 JSP
jsp? 好多年没用了。重新整一下 还费了点时间,记录一下。 项目结构: pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...

【C++】纯虚函数类外可以写实现吗?
1. 答案 先说答案,可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...