基于Python(Django)+SQLite 实现(Web) 点菜管理系统
点菜管理系统
课程设计任务与要求
1、任务
题目:点菜管理信息系统
问题描述: 随着网络的迅速发展,越来越多的人开始接受甚至时依赖了网络营业的这种交易形式,传统的点菜模式不仅浪费时间,效率低下,而且特别耗费成本与人力,因此不少商家开始使用网上点菜系统。网上点菜系统是一种可以自主选择、个性化、便捷化、特色化的点餐模式,它的大力推广使用为餐厅节约了成本,同时也解决了消费者在传统点菜时存在的不少麻烦,这使得网上点菜系统迅速占领市场。
2、设计要求
该系统设计实现时主要从以下三个角色方面入手进行,每个角色具有不同功能:
- 用户端功能:
-
- 顾客进入系统浏览整体菜单;
- 顾客根据菜单进行选菜下单点菜;
- 顾客通过核对订单进行结账。
- 后台管理功能:
-
- 管理员可以进入后台系统;
- 管理员可以查询系统内所有存在订单;
- 管理员有权对所有在职员工信息进行操作。
- 后厨系统功能:
-
- 订单保存在数据库中,并传入后厨系统;
- 后厨界面同步显示所有正在进行的订单;
- 后厨对订单具有查询,接单等操作功能。
三.课程设计说明书
1 需求分析
(1) 数据需求
点菜管理信息系统需要完成功能主要有:
- 餐厅基础信息:餐厅提供基本的菜谱等信息并且能对所有信息进行增、删、改、查等操作;
- 顾客点菜信息:用户登录系统后,在相应的页面浏览菜谱信息,根据自己的用餐需求下单,使得该信息显示在系统订单信息列表中,在结账时通过订单信息进行结账;
- 职工管理信息:管理员可以登录该系统对已经注册的职工个人信息进行增、删、改、查等操作;
(2) 事务需求
- 在餐厅基础信息部分,要求:
-
- 展示整体菜谱,主要由菜品编号、菜名、数量、价格等组成;
- 菜谱上所有信息管理员都有权进行更新修改。
- 在顾客点菜信息部分,要求:
-
- 通过自主选择桌号进入点菜;
- 浏览所有的菜谱信息;
- 通过自主选择菜品,生成订单;
- 核对订单信息及订单状态,完成结账。
- 在职工管理信息部分,要求:
-
- 在职员工通过身份信息注册、登陆系统;
- 职工有权对自己的职工信息进行增、删、改等操作;
- 管理员可以对所有职工信息进行查询及操作。
(3) 关系模式
- 菜品类(菜品编号,菜品名称)
- 菜品(菜品编号,菜品种类编号,菜名,制作时间,数量,价格)
- 订单(订单编号,餐桌编号,菜品总数,消费金额,下单时间,备注信息,支付时间,负责职工编号,支付状态)
- 订单明细(编号,订单编号,菜品编号,菜品数量,消费金额,备注信息,订单状态,接单时间,完成时间)
- 职工(职工编号,个人 ID,姓名,性别,出生日期,联系方式,联系地址)
- 餐桌信息(餐桌编号,餐桌名字,负责职工编号)
(4) 数据字典
- 菜品类表
字段 | 类型 | 可否为 Null | 主外码 | 默认值 | 中文名 |
ID | Int | NotNull | 主码 | 菜品类编号 | |
name | Varchar(20) | NotNull | 菜品类名称 |
- 菜品表
字段 | 类型 | 可否为 Null | 主外码 | 默认值 | 中文名 |
ID | Int | NotNull | 主码 | 菜品编号 | |
foodType_id | Int | 外码 | 菜品种类编号 | ||
title | Varchar(20) | NotNull | 菜名 | ||
cost_time | Int | 制作时间 | |||
amount | Int | NotNull | 大于 0 | 数量 | |
price | Float | NotNull | 大于 0 | 价格 |
- 订单表
字段 | 类型 | 可否为 Null | 主外码 | 默认值 | 中文名 |
ID | Int | 主码 | 订单编号 | ||
table_id | Int | 餐桌编号 | |||
food_amount | Int | 菜品总数 | |||
table_price | Float | 消费金额 | |||
create_time | Varchar(20) | 下单时间 | |||
pay_time | Varchar(20) | 支付时间 | |||
staff_id | Int | 外码 | 负责职工编号 | ||
is-pay | Boolean | 支付状态 | |||
comment | Varchar(50) | 备注 |
- 订单明细表
字段 | 类型 | 可否为 Null | 主外键 | 默认值 | 中文名 |
id | Int | 主码 | 编号 | ||
orderID_id | Int | NotNull | 外码 | 订单编号 | |
foodID_id | Int | NotNull | 外码 | 菜品编号 | |
amount | Int | NotNull | 大于 0 | 菜品数量 | |
sum_price | Float | 消费金额 | |||
comment | Varchar(50) | 备注信息 | |||
status | Varchar(20) | NotNull | 订单状态 | ||
start_cook_time | 接单时间 | ||||
end_cook_time | 完成时间 |
- 职工表
字段 | 类型 | 可否为 Null | 主外键 | 默认值 | 中文名 |
ID | Int | NotNull | 主码 | 职工编号 | |
citizenID | Varchar(20) | NotNull | 个人 ID | ||
name | Varchar(20) | NotNull | 姓名 | ||
gender | Varchar(20) | NotNull | 性别 | ||
born_date | Varchar(20) | 出生日期 | |||
phone | Varchar(20) | NotNull | 联系方式 | ||
address | Varchar(50) | 联系地址 |
- 餐桌信息表
字段 | 类型 | 可否为 Null | 主外键 | 默认值 | 中文名 |
ID | 主码 | 餐桌编号 | |||
name | 餐桌名字 | ||||
staff_id | 外码 | 负责职工编号 |
2 概要设计
(1) 实体图及 E-R 图
(2) 数据流图
3 逻辑设计
4 数据库建立
(1) 创建数据库
Django 中默认使用 SQLite 作为数据库,也可将其换为 MySQL、Oracle 等,仅需提供连接地址、用户名及密码。
(2) 菜品类表建立
CREATE TABLE OrderSystem_foodtype
(ID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,name VARCHAR (20) NOT NULL
);
(3) 菜品表建立
CREATE TABLE OrderSystem_food
(title VARCHAR (20) NOT NULL,amount INTEGER NOT NULL,price REAL NOT NULL,ID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,foodType_id INTEGER NOT NULL REFERENCES OrderSystem_foodtype (ID) DEFERRABLE INITIALLY DEFERRED,cost_time INTEGER NOT NULL
);
(4) 订单表建立
CREATE TABLE OrderSystem_order(ID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,table_id INTEGER NOT NULL,food_amount INTEGER NOT NULL,total_price REAL NOT NULL,staff_id INTEGER NOT NULL REFERENCESOrderSystem_staff (ID) DEFERRABLE INITIALLY DEFERRED,is_pay BOOL NOT NULL,create_time DATETIME NOT NULL,pay_time DATETIME,comment VARCHAR (50) NOT NULL
);
(5) 订单明细表建立
CREATE TABLE OrderSystem_orderitem
(id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,amount INTEGER NOT NULL,sum_price REAL NOT NULL,orderID_id INTEGER NOT NULL REFERENCESOrderSystem_order (ID) DEFERRABLE INITIALLY DEFERRED,end_cook_time TIME,start_cook_time TIME,status INTEGER NOT NULL,comment VARCHAR (50) NOT NULL,foodID_id INTEGER REFERENCES OrderSystem_food (ID) DEFERRABLE INITIALLY DEFERRED
);
(6) 职工信息表建立
CREATE TABLE OrderSystem_staff
(ID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,citizenID VARCHAR (20) NOT NULL,name VARCHAR (10) NOT NULL,gender VARCHAR (5) NOT NULL,born_date DATE,phone VARCHAR (11) NOT NULL,address VARCHAR (50) NOT NULL
);
(7) 餐桌信息表建立
CREATE TABLE OrderSystem_staff_table
(ID INTEGER NOT NULL PRIMARY KEY,name VARCHAR (20) NOT NULL,staff_id INTEGER NOT NULL REFERENCESOrderSystem_staff (ID) DEFERRABLE INITIALLY DEFERRED
);
5 系统实现
(1)系统功能模块图
(2)前台开发平台的选择
- Web 前端使用 jQuery、Bootstrap4 等进行实现;
- 使用 Python + Django 作为后端实现;
- 使用 SQLite 进行数据库实现。
(3)设计与实现
- 展示所有菜品类及菜品,顾客可以自主选择餐桌及菜品来进行下单
- 生成订单明细,顾客可以对自己的订单进行查询核对
- 管理员及职工注册,然后通过登陆进入后台管理系统
- 后台管理系统同步显示订单及当前订单所有状态,后厨完成订单时选择上菜,管理界面自动刷新提示服务员进行上菜服务,餐桌负责人后台可自行切换
- 点击结账时可以先核对订单,然后再进行对订单的批量支付或者全部支付
- 后台管理系统显示所有订单以及订单支付状态,红色为未支付订单,绿色为已支付订单,点击订单号可进入对应订单的详情页
- 管理员对菜品类、菜品、餐桌信息、员工信息等进行更新操作,即增、删、改等
- 进如后厨系统,后厨对订单信息进行选择接单,完成后通知上菜等操作,订单明细显示 4 种状态(等待后厨接单,后厨已接单,等待上菜,上菜完成)
6 编程与调试总结
在前端遇到的最多的问题就是对齐,在 JavaScript 以及 jQuery 的操作中,经常会发生无法绑定的情况,后来知道是因为我们的页面是动态加载,一次绑定无法将新的 HTML 元素也进行绑定,最后统一将绑定的操作放在了动态加载之后,而管理和后厨页面中的一些元素需要隔 10 秒、30 秒刷新餐桌信息和上菜信息的就需要在刷新的函数后面再进行绑定。
用 Django 写后端还是比较容易的,但是因为不是很熟悉这个框架,所以在 url 的路由设置上没有很清晰的分界,将管理与顾客点菜子系统放在了同一个 app 中,虽然便于处理数据,但是导致一个 app 的内容很多,不便于调试时查找,使得代码可读性变低,但好在 Django 框架将后端分为了页面视图 views、页面模板 templates 和数据关系模型 models 等,代码的耦合度不至于很高。
在做管理页面时遇到了数据库关系表中的外键在被参照表中数据被删除时参照表需不需要级联删除的问题,因为一开始将其设计成了 SET_NULL,但是实际调试时发现数据库报错,将 SQL 语句放在数据库中执行发现无法将其设为 NULL,最后查阅了相关问题的资料后将其设计成可以为空。
7 课程设计心得体会
这次的数据库课程设计只有一个星期的时间,而我们需要将在数据库课堂上和实验中学习到的知识运用到实际的管理系统中,还需要设计相应的界面,这着实不是一件容易的事情。
确定选择“点菜管理系统”这个题目后,我们通过查找相关资料以及自己对点菜系统的理解确定了需要做的几个主要功能:点菜、结账、查账等,然后一点一点拓展到现在的所有功能。功能的完善大多是在开发过程中因为实际需要而发现问题并解决的,还有的是为了更人性化更适合用户角度使用而添加的,相应的数据库表单也是在开发过程中逐步完善。
但是这样的开发是有问题的,比如订单的几个数据项前前后后改了很多次,因为生成订单需要前后端沟通,每次修改也就会耗费许多时间来进行调试,而如果一开始就能详细地对订单表进行描述,在后期不需要添加新的主属性,那么一定会减少很多可压缩的调试时间。
在开发技术方面,这次尝试了 Python 的 Web 框架 Django 作为后端的 Web 应用,后端的数据库使用了 Django 推荐的 SQLite ,虽然不适合实际生产环境,但是便于上手,也使得我们能够在系统的其他地方进行一点点细节上的打磨,前端使用了 Bootstrap4 + jQuery 来开发。
在开发前期,许多时间用在了前端的细节优化上,通过 Bootstrap 将界面统一风格,也因此将管理页面中订单和上菜提醒直观表现出来,不需要进入二级菜单就能将上菜信息传达上来。在后期逐渐将数据存储所需的约束与触发操作完善,使得各个关系合理存在。
这次数据库课设对我们来说是一个综合能力的考验,也是将数据库系统与所学知识的结合,通过这次课设,我对数据库设计能力有了很大提高,也学会了在应用中引入数据库、维护数据库,不过所体现的问题也是以后需要不断学习、实践的地方。
8 参考文献
[1] 范长青. 智能点菜系统设计开发与引用[J].微型电脑应用. 2019-06-14
[2] 石爱好. 基于 SQL Server 2012 数据库的应用及研究[J].电脑迷. 2017(03)
[3] 单立娟. 数据库技术在移动点菜系统上的应用[J].数字技术与应用. 2016-08-15
[4] 于卓立,刘沙沙,苏家鹏,宋文苑,邹晓琳. 智能餐桌系统设计与实现[J].电脑编程技术与维护. 2014-12-18
[5] 李源. 餐厅点菜系统的设计与实现[J].电子技术与软件工程. 2015-10-16
[6] 王欣. 智能电子点菜系统的研究[J].北京交通大学. 2017-06-01
[7] 尹亮. 餐厅点菜及后厨系统的设计与实现[J].电子科技大学. 2015-03-15
界面截图
主界面
点菜界面
后厨界面
管理界面
餐桌负责状态表中绿色表示有订单,红色表示后厨已经做好了菜,处于等待上菜阶段。
餐桌和上菜信息每 30 秒和每 10 秒动态刷新,仅刷新指定区域。
点击负责人可切换该桌负责人。
订单管理界面
点击订单号进入订单详情,绿色代表已支付订单,红色代表未支付订单。
订单详情界面
批量结账界面
点击单条订单可进入相应订单详情页。
菜品管理界面
使用
cd FoodOrder
python manage.py runserver
打开 http://127.0.0.1:8000/
相关文章:
基于Python(Django)+SQLite 实现(Web) 点菜管理系统
点菜管理系统 课程设计任务与要求 1、任务 题目:点菜管理信息系统 问题描述: 随着网络的迅速发展,越来越多的人开始接受甚至时依赖了网络营业的这种交易形式,传统的点菜模式不仅浪费时间,效率低下,而且…...
泰鸿万立上市:加强产品规划和前瞻性研发 打造优质汽车零部件制造商
4月9日,浙江泰鸿万立科技股份有限公司(股票简称“泰鸿万立”,股票代码“603210”)正式登陆上交所主板。 招股书显示,泰鸿万立主营业务为汽车结构件、功能件的研发、生产与销售。经过十余年发展,公司拥有了…...
Charles的安装和使用教程
Charles抓包工具与Sniff Master在Windows上的安装与使用指南 1. Charles抓包工具安装 1.1 下载Charles 进入Charles官网(https://www.charlesproxy.com/download/)下载最新版本的安装包 1.2 安装与激活 正常安装后,打开会提示试用版30天限制进入授权码生成页面…...
论文阅读笔记:Adaptive Multi-Modal Cross-Entropy Loss for Stereo Matching
论文阅读笔记:Adaptive Multi-Modal Cross-Entropy Loss for Stereo Matching 1 背景2 创新点3 方法4 模块4.1 基础和问题描述4.2 自适应多模态概率模型4.3 主模态视差估计器 5 效果6 结论 1 背景 尽管深度学习在立体匹配方面取得了巨大成功,但恢复准确…...
JavaScript学习教程,从入门到精通,JavaScript 运算符及语法知识点详解(8)
JavaScript 运算符及语法知识点详解 一、JavaScript 运算符 1. 算术运算符 用于执行数学运算: 加法- 减法* 乘法/ 除法% 取模(余数) 递增-- 递减** 幂运算(ES6) let a 10, b 3; console.log(a b); // 13 conso…...
聊聊Spring AI的ETL Pipeline
序 本文主要研究一下Spring AI的ETL Pipeline DocumentReader org/springframework/ai/document/DocumentReader.java public interface DocumentReader extends Supplier<List<Document>> {default List<Document> read() {return get();}}有TextReader…...
spark架构和RDD相关概念
运行架构: Spark采用master - slave结构,Driver作为master负责作业任务调度,Executor作为slave负责实际执行任务。 核心组件 Driver:执行Spark任务的main方法,将用户程序转化为作业,在Executor间调度任务&…...
Cloud Kernel SIG 季度动态:发布ANCK 6.6-003版本,支持一测多证
Cloud Kernel SIG(Special Interest Group):支撑龙蜥内核版本的研发、发布和服务,提供生产可用的高性价比内核产品。 01 SIG 整体进展 发布 ANCK 6.6-003 版本。 一测多证流程建立。 OOT 驱动基线更新。 海光平台适配进展更新…...
【11】数据结构之基于线性表的查找算法
目录标题 平均查找长度ASL(Average Search Length)顺序表查找法折半查找法索引顺序查找法 平均查找长度ASL(Average Search Length) 定义:为确定元素在列表中的位置,需要和给定值进行比较的关键字个数的期望值,称之为查找算法成功时的平均查…...
铼赛智能Edge mini斩获2025法国设计大奖 | 重新定义数字化齿科美学
铼赛智能(RAYSHAPE)革命性新品——椅旁3D打印机Edge mini荣获2025年法国设计奖(FRENCH DESIGN AWARDS,简称FDA)产品设计类大奖。作为全球工业设计领域最具影响力的奖项之一,这一殊荣不仅是对产品极简美学的…...
成为一种国家战略范畴的新基建的智慧园区开源了
智慧园区场景视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界…...
Codeforces Round 1016 (Div. 3)题解
题目地址 https://codeforces.com/contest/2093 锐评 在所有题意都理解正确的情况下,整体难度不算太难。但是偏偏存在F这么恶心的题意,样例都不带解释一下的,根本看不懂题。D题也恶心,在于递归过程的拆分,需要点数学…...
安全理念和安全产品发展史
从安全理念的发展历史来看,技术与产品的演进始终围绕 “威胁对抗” 与 “业务适配” 两大核心展开。以下从七个关键阶段解析安全技术与产品的发展脉络,并结合最新实践与未来趋势提供深度洞察: 一、密码学奠基阶段(1970s 前) 安全理念:以 “信息保密” 为核心,防御手段…...
【深度学习】Downstream Model:预训练模型的下游应用与微调技术
Downstream Model:预训练模型的下游应用与微调技术 文章目录 Downstream Model:预训练模型的下游应用与微调技术1 什么是Downstream Model(下游模型)2 预训练模型与下游任务的关系3 微调技术与迁移学习微调的必要性高效迁移学习参…...
每日算法-250409
这是我今天的算法学习记录。 2187. 完成旅途的最少时间 题目描述 思路 二分查找 解题过程 为什么可以使用二分查找? 问题的关键在于寻找一个最小的时间 t,使得在时间 t 内所有公交车完成的总旅途次数 sum 大于等于 totalTrips。 我们可以观察到时间的单…...
【CSS 选择器组合规则详解】
基础选择器组合 空格:后代选择器 > 直接子元素选择器 . 类选择器 : 伪类选择器 多类选择器 .class1.class2 :多类组合 .class1 .class2 :类的所有后代 .class1 > .class2 :类的子元素特殊选择器 :nth-child() :nth-of-…...
手机静态ip地址怎么获取?方法与解析
而在某些特定情境下,我们可能需要为手机设置一个静态IP地址。本文将详细介绍手机静态IP地址详解及获取方法 一、什么是静态IP地址? 静态IP:由用户手动设置的固定IP地址,不会因网络重启或设备重连而改变。 动态IP:由路…...
NumPy对二维矩阵中的每个元素进行加减乘除和对数运算
使用NumPy对二维矩阵中的每个元素进行加减乘除和对数运算的方法如下: 1. 加减乘除运算 对每个元素进行标量运算,可直接使用算术运算符。 示例代码: import numpy as nparr np.array([[1, 2], [3, 4]])# 加法 result_add arr 5 print(&…...
基于C8051F340单片机的精确定时1S的C程序
一、前言 C8051F340单片的定时器2 是一个 16 位的计数器/定时器,由两个 8 位的 SFR 组成:TMR2L(低字节)和TMR2H(高字节)。定时器 2 可以工作在 16 位自动重装载方式、8 位自动重装载方式(两个 …...
提升Windows安全的一些措施
由简单到复杂,仅供参考 一、杀毒软件: 1、杀毒能力: https://haokan.hao123.com/v?vid3883775443252827335&pdhaokan_share 2、使用注意: 一台主机只安装一个杀毒软件就可以了 杀毒软件会误报,造成正常文件…...
中科岩创基坑自动化监测解决方案
1.行业现状 城市基坑开挖具有施工风险高、施工难度大等特点。由于地下土体性质、荷载条件、施工环境的复杂性,单根据地质勘察资料和室内土工试验参数来确定设计和施工方案,往往含有许多不确定因素,对在施工过程中引发的土体性状、环境、邻近建…...
Elasticsearch 系列专题 - 第二篇:数据建模与索引管理
在掌握了 Elasticsearch 的基本概念和操作后,本篇将重点介绍如何设计和管理索引,以及如何高效地导入和维护数据。这对于构建一个高效、可扩展的搜索系统至关重要。 1. 索引设计 1.1 如何选择合适的索引结构 索引是 Elasticsearch 的核心,设计时需考虑以下因素: 数据用途:…...
解决缓存穿透的布隆过滤器与布谷鸟过滤器:谁更适合你的应用场景?
目录 一、布隆过滤器:高效的空间节省者 1.1 布隆过滤器是什么? 1.2 工作原理 1.3 优点 1.4 缺点 1.5 适用场景 二、布谷鸟过滤器:解决删除难题的创新者 2.1 布谷鸟过滤器是什么? 2.2 工作原理 2.3 优点 2.4 缺点 2.5 适用场景 三、…...
OpenHarmony子系统开发 - 调测工具(一)
OpenHarmony子系统开发 - 调测工具(一) 一、bytrace使用指导 简介 bytrace是开发人员用于追踪进程轨迹、分析性能的一种工具,主要对内核ftrace进行了封装和扩展,来支持用户态的打点。通过该工具可以打开想要查看的用户态和内核l…...
Qt中的鼠标事件
1.鼠标进入事件和鼠标离开事件 1.1添加新文件 1.2ui界面 拖出一个Label控件,修改frameShape为Box,使边框更明显 1.3代码实现 #ifndef MYLABEL_H #define MYLABEL_H#include <QLabel>class myLabel : public QLabel {Q_OBJECT public:explicit m…...
MySQL JOIN详解:INNER JOIN与LEFT JOIN的选择与应用
在数据库查询中,JOIN操作是最常用也最重要的操作之一。不同的JOIN类型会导致完全不同的查询结果,正确选择JOIN类型是编写高效、准确SQL查询的关键。本文将深入探讨INNER JOIN和LEFT JOIN的区别、应用场景以及常见问题。 一、JOIN基础概念 1. 什么是JOI…...
Flink 反压下的 TCP 流控制
1. 什么是 Flink 反压和 TCP 流控制? 反压(Backpressure)是什么? 反压是分布式流处理系统中一种自我调节机制。当下游处理数据的速度跟不上上游发送数据的速度时,反压会让上游放慢发送速度,以避免系统过载…...
山东大学软件学院项目实训开发日志(7)之测试前后端本地部署
基于队长搭建的springbootvue框架,在本地进行测试搭建。 在运行后端过程中,出现下图错误: 查找后发现这个问题出现在 Maven 项目的 pom.xml 文件中,显示找不到一些依赖项。所以在此进行最简单的重新加载项目得以解决,…...
YOLOv11训练中精准率召回率与mAP@0.5的动态变化分析
目标检测模型的训练过程涉及多个关键性能指标和损失函数的变化,这些数据能够直观反映模型的收敛速度、最终精度以及改进效果。本文旨在通过绘制YOLOv11模型在训练过程中的精准率(Precision)、召回率(Recall)、mAP0.5 、…...
Windows下ElasticSearch8.x的安装步骤
下载ElasticSearch:https://www.elastic.co/downloads/elasticsearch (我下载的是目前最新版8.17.4)解压ElasticSearch 进入到ElasticSearch的bin目录下双击elasticsearch.bat 弹出控制台并开始执行,在这一步会输出初始账号和密码…...
Leetcode hot100 (day 8,9)
爬楼梯 做法一:小斐波那契数列,只要注意记忆化递归即可 class Solution { public:int dp[50];int climbStairs(int n) {if(dp[n])return dp[n];if(n2){return dp[2]2;}if(n1){return dp[1]1;}//if(dp[n])return dp[n];return dp[n]climbStairs(n-1)clim…...
LinuxSocket套接字编程
1.介绍函数使用 1.创建套接字 int socket(int domain, int type, int protocol); domain:指定协议族,如AF_INET(IPv4)或AF_INET6(IPv6)。 type:指定套接字类型,如SOCK_DGRAM&#…...
青少年编程考试 CCF GESP Python五级认证真题 2025年3月
Python 五级 2025 年 03 月 题号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 答案 A A A B D B A D A D C A A D B 1 单选题(每题 2 分,共 30 分) 第 1 题 链表不具备的特点是( )。 A. 可随机访问任何一个元素 B. 插入、删除操作不需要移动元素 C…...
Java-对比两组对象找出发生变化的字段工具-支持枚举映射-支持时间-支持显示对应字段中文描述-嵌套list等场景
实体字段比较器(对比两组对象找出发生变化的字段工具类开发) 支持枚举映射 支持时间 支持显示对应字段中文描述 支持嵌套list等场景 下载地址: Java-对比两组对象找出发生变化的字段工具-支持枚举映射-支持时间-支持显示对应字段中文描述-嵌…...
电影舆情分析可视化平台管理端实现
电影舆情分析可视化平台管理端实现 系统概述 本系统的用户主要有三类,游客、普通用户以及电影从业人员。 面向游客和普通用户的是电影网站,系统提供一个便捷的平台,供普通用户搜索和了解电影的基本信息,支持电影预告片播放&…...
【Linux】进程信号(下)
在上一篇中,我们详细探讨了信号的预备知识和产生方式(如硬件异常、终端输入、kill命令、系统调用等)及其背后的操作系统行为。信号作为进程间异步通信的核心机制,其生命周期远不止“产生”这一环节——信号的保存与处理才是实现可…...
华为数字芯片机考2025合集2已校正
单选 1. 题目内容 关于亚稳态的描述错误的是( )。 1. 解题步骤 1.1 理解亚稳态(Metastability)的核心特性 亚稳态是指触发器无法在指定时间内稳定输出有效逻辑电平(0或1)的状态,其关键特点…...
【大模型微调】如何解决llamaFactory微调效果与vllm部署效果不一致如何解决
以下个人没整理太全 一、生成式语言模型的对话模板介绍 使用Qwen/Qwen1.5-0.5B-Chat训练 对话模板不一样。回答的内容就会不一样。 我们可以看到例如qwen模型的tokenizer_config.json文件,就可以看到对话模板,一般同系列的模型,模板基本都…...
基于视觉语言模型的机器人实时探索系统!ClipRover:移动机器人零样本视觉语言探索和目标发现
作者:Yuxuan Zhang 1 ^{1} 1, Adnan Abdullah 2 ^{2} 2, Sanjeev J. Koppal 3 ^{3} 3, and Md Jahidul Islam 4 ^{4} 4单位: 2 , 4 ^{2,4} 2,4佛罗里达大学电气与计算机工程系RoboPI实验室, 1 , 3 ^{1,3} 1,3佛罗里达大学电气与计算机工程系F…...
Java常用工具算法-6--秘钥托管云服务AWS KMS
前言: 之前我们介绍了一些常用的加密算法(如:对称加密AES,非对称加密RSA,ECC等),不论是哪一种都需要涉及到秘钥的管理。通常的做法都是把秘钥放到配置文件中进行配置,但是对于一些高…...
Shell脚本的学习
编写脚本文件 定义以开头:#!/bin/bash #!用来声明脚本由什么shell解释,否则使用默认shel 第一步:编写脚本文件 #!/bin/bash #注释 echo "这是输出" 第二步:加上执行权限:chmod x 脚本文件名.sh 第三步&…...
Java——pdf增加水印
文章目录 前言方式一 itextpdf项目依赖引入编写PDF添加水印工具类测试效果展示 方式二 pdfbox依赖引入编写实现类效果展示 扩展1、将inputstream流信息添加水印并导出zip2、部署出现找不到指定字体文件 资料参考 前言 近期为了知识库文件导出,文件数据安全处理&…...
Redis过期key处理、内存淘汰策略与缓存一致性策略实践方案
在现代的高性能应用开发中,Redis作为一款极为热门的内存数据库,其快速的读写性能和丰富的数据结构使其在缓存、消息队列等诸多领域得到了广泛应用。然而,在实际使用过程中,处理好Redis过期key、选择合适的内存淘汰策略以及确保缓存…...
深入 C++ 线程库:从创建到同步的探索之旅
C在<thread>中定义了C线程库. 创建多线程 #include <iostream> #include <thread> using namespace std; void show(int id, int count) { //线程函数for (int i 0; i < count; i) {cout << "id:" << id << ",值:&qu…...
LangChain使用大语言模型构建强大的应用程序
LangChain简介 LangChain是一个强大的框架,旨在帮助开发人员使用语言模型构建端到端的应用程序。它提供了一套工具、组件和接口,可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。LangChain 可以轻松管理与语言模型的交互ÿ…...
程序化广告行业(72/89):Tag Manager系统代码操作与行业发展剖析
程序化广告行业(72/89):Tag Manager系统代码操作与行业发展剖析 大家好!在技术领域不断探索的过程中,我深刻体会到知识共享的重要性。写这篇博客,就是希望能和大家一起深入了解程序化广告行业,…...
数据结构实验3.3:求解迷宫路径问题
文章目录 一,问题描述二,基本要求三,算法分析(一)整体思路(二)详细步骤1. 输入迷宫大小并生成迷宫2. 定义走步规则3. 深度优先搜索(DFS)4. 输出结果 (三&…...
基于SpringBoot的线上历史馆藏系统【附源码】
基于SpringBoot的线上历史馆藏系统(源码L文说明文档) 4 系统设计 系统在设计的过程中,必然要遵循一定的原则才可以,胡乱设计是不可取的。首先用户在使用过程中,能够直观感受到功能操作的便利性,符合…...
Mybatis的springboot项目使用
删除数据 & 占位符 一般常用占位符进行数据库操作,也就是预编译sql。 在UserMapper中定义删除接口 /** 根据id删除用户*/ Delete("delete from user where id #{id}") void deleteById(Integer id);若想要获取返回值,声明为Integer (s…...
网站集群批量管理-Ansible剧本与变量
复盘内容:链接指北 查看ansible命令文档 ansible-doc -s systemd一、剧本 何为剧本: playbook 文件,用于长久保存并且实现批量管理,维护,部署的文件. 类似于脚本存放命令和变量 剧本yaml格式,yaml格式的文件:空格,冒号. 剧本未来我们批量管理,运维必会的内容. …...