2024年国赛高教杯数学建模C题农作物的种植策略解题全过程文档及程序

2024年国赛高教杯数学建模

C题 农作物的种植策略

原题再现

  根据乡村的实际情况,充分利用有限的耕地资源,因地制宜,发展有机种植产业,对乡村经济的可持续发展具有重要的现实意义。选择适宜的农作物,优化种植策略,有利于方便田间管理,提高生产效益,减少各种不确定因素可能造成的种植风险。
  某乡村地处华北山区,常年温度偏低,大多数耕地每年只能种植一季农作物。该乡村现有露天耕地1201亩,分散为 34 个大小不同的地块,包括平旱地、梯田、山坡地和水浇地4种类型。平旱地、梯田和山坡地适宜每年种植一季粮食类作物;水浇地适宜每年种植一季水稻或两季蔬菜。该乡村另有16个普通大棚和4个智慧大棚,每个大棚耕地面积为0.6亩。普通大棚适宜每年种植一季蔬菜和一季食用菌,智慧大棚适宜每年种植两季蔬菜。同一地块(含大棚)每季可以合种不同的作物。 详见附件 1。
  根据农作物的生长规律,每种作物在同一地块(含大棚)都不能连续重茬种植,否则会减产; 因含有豆类作物根菌的土壤有利于其他作物生长,从 2023 年开始要求每个地块(含大棚)的所有土地三年内至少种植一次豆类作物。同时,种植方案应考虑到方便耕种作业和田间管理,譬如:每种作物每季的种植地不能太分散,每种作物在单个地块(含大棚)种植的面积不宜太小,等等。2023 年的农作物种植和相关统计数据见附件 2。

  请建立数学模型,研究下列问题:
  问题 1 假定各种农作物未来的预期销售量、种植成本、亩产量和销售价格相对于 2023 年保持 稳定,每季种植的农作物在当季销售。如果某种作物每季的总产量超过相应的预期销售量,超过部 分不能正常销售。请针对以下两种情况,分别给出该乡村 2024~2030 年农作物的最优种植方案,将 结果分别填入 result1_1.xlsx 和 result1_2.xlsx 中(模板文件见附件 3)。
  (1) 超过部分滞销,造成浪费;
  (2) 超过部分按 2023 年销售价格的 50%降价出售。
  问题 2 根据经验,小麦和玉米未来的预期销售量有增长的趋势,平均年增长率介于5%~10% 之间,其他农作物未来每年的预期销售量相对于 2023 年大约有±5%的变化。农作物的亩产量往往会 受气候等因素的影响,每年会有±10%的变化。因受市场条件影响,农作物的种植成本平均每年增长 5%左右。粮食类作物的销售价格基本稳定;蔬菜类作物的销售价格有增长的趋势,平均每年增长5% 左右。食用菌的销售价格稳中有降,大约每年可下降1%~5%,特别是羊肚菌的销售价格每年下降幅 度为5%。
  请综合考虑各种农作物的预期销售量、亩产量、种植成本和销售价格的不确定性以及潜在的种 植风险,给出该乡村 2024~2030 年农作物的最优种植方案,将结果填入 result2.xlsx 中(模板文件见 附件 3)。
  问题 3 在现实生活中,各种农作物之间可能存在一定的可替代性和互补性,预期销售量与销 售价格、种植成本之间也存在一定的相关性。请在问题 2 的基础上综合考虑相关因素,给出该乡村 2024~2030 年农作物的最优种植策略,通过模拟数据进行求解,并与问题 2 的结果作比较分析。
  附件 1 乡村现有耕地和农作物的基本情况
  附件 2 2023 年乡村农作物种植和相关统计数据
  附件 3 须提交结果的模板文件(result1_1.xlsx,result1_2.xlsx,result2.xlsx)

整体求解过程概述(摘要)

  本文研究最大化利用土地资源,建立栽种策略优化模型,利用贪心算法、随机扰动、蒙特卡洛、灵敏度检验等方法求解科学土地管理、超额出售、多因素时间波动、农作物替代性、互补性以及相关性等问题。
  针对问题一,定义第 t 年的第 i 季度时,在第 j 块地种植第 k 种作物种植面积为决策变量,构建了以种植经济效益最大化为目标函数,可耕种地面积、实际可售量、连作方式、地块及作物栽种等限制为约束的种植策略线性规划模型。为科学管理土地,满足种植地不宜太分散的目标,传入参数 p、 q,分别约束每块土地最多种植作物数量,每种作物最多可种植块数量。综合考虑 p、q 尽可能小与收益尽可能大。对题目给出的数据进行预处理,统一数据格式便于读取,并统计数据生成成本与产量的三维数据表。最终,使用求解器求解:超出部分滞销结果为40244799.20元,超出部分折价结果为56325297.78元;使用贪心策略求解:超出部分滞销结果为36843378.8元,超出部分折价结果为46724871.84元。这两种求解方法各有优缺点,求解器求解结果更优,但求解慢,而贪心算法则相反,根据具体需求选择方法,两种销售情况会导致结果产生较大差异,原因归结于收益大的作物在降价后仍可保持高收益,会被高频率大面积种植。
  针对问题二,考虑作物亩产量、预计销量和销售价格的波动因素,为增强风险应对能力,以最大化种植经济效益期望为目标函数,设定决策变量为波动场景下的可行策略对应的种植经济效益,增加其余参数的时间维度,在延续上一问的约束条件基础上,构建了随机规划模型。对于超过部分滞销情况,使用蒙特卡洛算法生成100组符合正态分布的随机参数序列,使用求解器在随机序列下求出100组种植策略。将分布函数离散化,可得到每组随机序列对应的概率,接着对每种规划策略进行扰动。最终得到100组随机扰动策略下,种植经济效益均值最高的种植规划策略,其中,抗波动性最强方案的种植经济效益均值为:51667432.02。
  针对问题三,基于问题二模型,目标函数与决策变量保持不变,分析作物相关性及销量-价格-成本相关性对变量的影响。对相关性强且作物类型相同的作物进行替代,比较目标函数对其替换程序的灵敏度检测其替代性,最终选择用小麦替代谷子,青椒替代辣椒,对互补性强的植物进行软约束,使其尽可能协同耕种,提升效率,如豆类轮作可提升总体产量。接着,根据销量-价格-成本关系,根据销量推算合理的成本与价格。综合考虑上述因素后,在模拟数据下求解最优种植方案的种植经济效益均值为:53023389.86,相较于第二问结果更优,符合优化的目标。

模型假设:

  1. 假设当季种植的农作物在当季销售,无库存。
  2. 假设问题一中每种农作物的未来预期销量、种植成本、亩产量和售价相较于2023年保持稳定。
  3. 假设问题二相关销量、售价等变量波动符合正态分布。
  4. 假设问题三中各种农作物预期销售量与销售价格、种植成本之间存在一定相关性。

问题分析:

  问题一的分析
  问题一中,假定后续每一年的策略规划中,其预期销售量、种植成本、亩产量都与2023年相同。基于此分别考虑超过部分滞销和按照50%折价出售的种植策略情况,可以构建线性规划模型,对连种约束和豆类种植等约束进行限制后,使用求解器进行求解或构建贪心策略,依次遍历每块土地,选取对当前土地性价比最高的作物优先进行种植。同时考虑豆类种植约束,要求任何连续三年内豆类作物种植面积大于当前土地面积,则可以保证三年内每亩地都种过一次豆类作物。
  问题二的分析
  问题二中,在问题一构建的优化模型基础上,增加了作物预期销售量、种植成本、销售价格的变化条件。为输出最优的种植方案,需要在各种不确定因素和种植风险中选择一个能够在不同的预期销售量、种植成本、销售价格的变化条件中相对都有较好表现的种植策略。求解过程可以考虑使用蒙特卡洛算法生成多个随机序列,模拟不同的现实情况。
  问题三的分析
  问题三中,基于问题二构建的增加变量扰动的优化模型,进一步考虑农作物之间的可替代性和互补性,并综合考虑预期销售量与销售价格、种植成本之间的相关性,从而使构建的种植策略优化模型更加接近现实情况。首先,可依据农作物对总收入的灵敏度进行分析替代,从而减少农作物种类,优化种植结构。同时,对预期销售量与销售价格、种植成本进行相关性约束,从而构建增加了变量扰动和作物关联因素的种植优化模型。

模型的建立与求解整体论文缩略图

在这里插入图片描述
在这里插入图片描述

全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

部分程序代码:(代码和文档not free)

import pandas as pd
import gurobipy as gp
from gurobipy import GRB
import openpyxl# 读取Excel文件中的地块面积数据
file1 = '附件1.xlsx'
data1 = pd.read_excel(file1, sheet_name='乡村的现有耕地')
data2 = pd.read_excel(file1, sheet_name='乡村种植的农作物')file2 = '附件2.xlsx'
data3 = pd.read_excel(file2, sheet_name='2023年的农作物种植情况')
data4 = pd.read_excel(file2, sheet_name='2023年统计的相关数据')# 已知数据(需根据实际情况初始化)
T = 7  # 年数
I = 2  # 季节数
J = 54  # 地块数
K = 41  # 作物种类数
p = 4M = 100000
S = data1['地块面积/亩'].tolist()
Lk = data2['Ik'].tolist()
Price = [[3.25, 7.5, 8.25, 7, 6.75,3.5, 3, 6.75, 6, 7.5, 40, 1.5,3.25, 5.5, 3.5, 7, 8, 6.75, 6.5,3.75, 6.25, 5.5, 5.75, 5.25, 5.5,6.5, 5, 5.75, 7, 5.25, 7.25, 4.5,4.5, 4, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 9.6, 8.1, 7.8, 4.5, 7.5,6.6, 6.9, 6.8, 6.6, 7.8, 6, 6.9,8.4, 6.3, 8.7, 5.4, 5.4, 4.8, 2.5,2.5, 3.25, 57.5, 19, 16, 100]]
Request = [[15700, 21850, 22400, 33040, 6975,170840, 132750, 71400, 30000, 12500,1500, 35100, 36000, 14000, 10000, 21000,36480, 26880, 6480, 30000, 35400, 43200,0, 1800, 3600, 4050, 4500, 34400, 9000, 1500,1200, 3600, 1800, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 810, 2160, 900, 810, 0, 0,0, 0, 0, 0, 810, 2160, 900, 810, 0, 0]]df1 = pd.read_excel('cost.xlsx', sheet_name='第一季')
df2 = pd.read_excel('cost.xlsx', sheet_name='第二季')
Cost1 = df1.values.transpose()
Cost2 = df2.values.transpose()
Cost = [Cost1, Cost2]df3 = pd.read_excel('Produce.xlsx', sheet_name='第一季')
df4 = pd.read_excel('Produce.xlsx', sheet_name='第二季')
Produce1 = df3.values.transpose()
Produce2 = df4.values.transpose()
Produce = [Produce1, Produce2]model = gp.Model("Crop_Planting")# 决策变量
X = model.addVars(T, I, J, K, vtype=GRB.CONTINUOUS, name="X")
Y = model.addVars(T, I, J, K, vtype=GRB.BINARY, name="Y")
Z = model.addVars(T, I, K, vtype=GRB.CONTINUOUS, name="Z")
Z_rice = model.addVars(T, range(27, 35), vtype=GRB.BINARY, name="Z_Rice")# 定义目标函数
model.setObjective(gp.quicksum(Price[i][k] * Z[t, 1, k] - gp.quicksum(Cost[i][j][k] * X[t, 1, j, k] for j in range(J))for t in range(T) for i in range(I) for k in range(K)),GRB.MAXIMIZE
)# 约束1:销量不超过作物总产量
model.addConstrs((Z[t, 1, k] <= gp.quicksum(Produce[i][j][k] * X[t, i, j, k] for j in range(J))for t in range(T) for i in range(I) for k in range(K)), name="Production_Limit")# 约束2:销量不超过市场需求
model.addConstrs((Z[t, 1, k] <= Request[i][k] for t in range(T) for i in range(I) for k in range(K)), name="Demand_Limit")# 约束3:是否种植该作物
model.addConstrs((X[t, 1, j, k] <= M * Y[t, 1, j, k]for t in range(T) for i in range(I) for j in range(J) for k in range(K)),name="X_UpperBound_Y")model.addConstrs((X[t, 1, j, k] >= 0.01 * Y[t, 1, j, k]for t in range(T) for i in range(I) for j in range(J) for k in range(K)),name="X_LowerBound_Y")# 约束4:每块地每季度种植面积总和不能超过地块总面积
for t in range(T):for i in range(I):for j in range(J):model.addConstr(gp.quicksum(X[t, i, j, k] for k in range(K)) <= S[j], name=f"Area_{t}-{i}-{j}")# 约束5:三年内必须至少种植一次豆类作物
model.addConstrs((gp.quicksum(X[t, i, j, k] * Lk[k] for t in range(2) for i in range(I) for k in range(K)) >= S[j]for j in range(J)),name="Legume_First_Two_Years")for j in range(J):for t in range(T - 2):  # 以3年为单位进行检查model.addConstr(gp.quicksum(X[tt, 1, j, k] * Lk[k] for tt in range(t, t + 3) for i in range(I) for k in range(K)) >= S[j], name=f"Legume_{j}_{t}")# 约束6:同一种作物在同一片土地上不能连续两个季度种植
model.addConstrs((X[t, 1, j, k] * X[t, i + 1, j, k] <= S[j]for t in range(T) for j in range(J) for k in range(K) for i in range(I - 1)),name="No_Consecutive_Planting")
model.addConstrs((X[t, i + 1, j, k] * X[t + 1, i, j, k] <= S[j]for t in range(T - 1) for j in range(J) for k in range(K) for i in range(I - 1)),name="No_Consecutive_Planting")# 约束7:最多种植p种作物
model.addConstrs((gp.quicksum(Y[t, i, j, k] for k in range(K)) <= pfor t in range(T) for i in range(I) for j in range(J)),name="Max_Three_Crops")# 添加约束:每种作物最多种在q块地上
model.addConstrs((gp.quicksum(Y[t, i, j, k] for j in range(J)) <= qfor t in range(T) for i in range(I) for k in range(K)),name="Max_Five_Plots_Per_Crop")# 约束 8:确保粮食作物在连续年份的第一季不能连种
model.addConstrs((X[t, 0, j, k] + X[t + 1, 0, j, k] <= S[j]for t in range(T - 1) for j in range(J) for k in range(1, 16)),name="No_Consecutive_Years_For_Grain")# 约束 9:编号为 1-26 的土地在第二季不种植任何作物
model.addConstrs((X[t, 1, j, k] == 0for t in range(T) for j in range(26) for k in range(K)),name="No_Planting_Second_Season_For_Lands_1_26")
# 约束:编号为 1-26 的土地上只能种植编号为 1-15 的作物
model.addConstrs((X[t, i, j, k] == 0for t in range(T) for i in range(I) for j in range(26) for k in range(15, 41)),name="No_Planting_Crops_16_41_On_Lands_1_26")# 约束:编号为 1-15 的作物只能种植在编号为 1-26 的土地上
model.addConstrs((X[t, i, j, k] == 0for t in range(T) for i in range(I) for j in range(26, J) for k in range(15)),name="No_Planting_Crops_1_15_On_Lands_27_54")# 约束:编号为 27-34 的土地种植水稻
model.addConstrs((gp.quicksum(X[t, i, j, k] for i in range(I) for k in range(K) if k == 15) <= M * Z_rice[t, j]for t in range(T) for j in range(27, 35)),name="Rice_Planting_Only_Once")# 确保水稻只能种植在单季
model.addConstrs((gp.quicksum(X[t, i, j, 15] for i in range(I)) <= S[j]for t in range(T) for j in range(27, 35)),name="Single_Season_Rice")# 添加约束 1:如果种植了水稻,则第二季不种植任何作物
model.addConstrs((gp.quicksum(X[t, i, j, k] for k in range(K)) <= M * (1 - Z_rice[t, j])for t in range(T) for j in range(27, 35)),name="No_Second_Season_If_Rice")# 添加约束 2:第一季只能种植 17-34 号作物
model.addConstrs((gp.quicksum(X[t, 0, j, k] for k in range(16, 35)) == gp.quicksum(X[t, 0, j, k] for k in range(16, 35))for t in range(T) for j in range(27, 35)),name="First_Season_Crops_17_34")# 添加约束 3:第二季只能种植 35-37 号作物
model.addConstrs((gp.quicksum(X[t, 1, j, k] for k in range(34, 38)) == gp.quicksum(X[t, 1, j, k] for k in range(34, 38))for t in range(T) for j in range(27, 35)),name="Second_Season_Crops_35_37")# 添加约束:编号为 35-37 的作物只能种植在编号为 27-34 的土地上
model.addConstrs((X[t, i, j, k] == 0for t in range(T) for i in range(I) for j in range(26) for k in range(34, 37 + 1)),name="No_Planting_Crops_35_37_On_Lands_1_26")# 添加约束 4:编号为 38-41 的作物只能在 35-50 号地的第二季种植
model.addConstrs((X[t, i, j, k] == 0for t in range(T) for j in range(35) for k in range(37, 41)),name="No_Planting_Crops_38_41_On_Lands_1_34")# 添加约束 5:编号为 38-41 的作物只能种植在第二季
model.addConstrs((X[t, 0, j, k] == 0for t in range(T) for j in range(35, 51) for k in range(37, 41)),name="No_Planting_Crops_38_41_First_Season")
# 设置相对Gap
model.setParam('MIPGap', 0.01)# 优化模型
model.optimize()# 输出结果
if model.status == GRB.OPTIMAL:print(f"Optimal solution found with objective value: {model.objVal}")for i in range(I):for j in range(J):for k in range(K):if X[t, i, j, k].x > 0:print(f"Year {t + 1}, Season {i + 1}, Land {j + 1}, Crop {k + 1}: {X[t, i, j, k].x} acres planted")print(f"Optimal solution found with objective value: {model.objVal}(元)")
全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

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

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

相关文章

捷米特 JM - RTU - TCP 网关应用 F - net 协议转 Modbus TCP 实现电脑控制流量计

一、项目背景 在某工业生产园区的供水系统中&#xff0c;为了精确监测和控制各个生产环节的用水流量&#xff0c;需要对分布在不同区域的多个流量计进行集中管理。这些流量计原本采用 F - net 协议进行数据传输&#xff0c;但园区的监控系统基于 Modbus TCP 协议进行数据交互&…

遥感影像目标检测:从CNN(Faster-RCNN)到Transformer(DETR)

我国高分辨率对地观测系统重大专项已全面启动&#xff0c;高空间、高光谱、高时间分辨率和宽地面覆盖于一体的全球天空地一体化立体对地观测网逐步形成&#xff0c;将成为保障国家安全的基础性和战略性资源。未来10年全球每天获取的观测数据将超过10PB&#xff0c;遥感大数据时…

iOS事件传递和响应

背景 对于身处中小公司且业务不怎么复杂的程序员来说&#xff0c;很多技术不常用&#xff0c;你可能看过很多遍也都大致了解&#xff0c;但是实际让你讲&#xff0c;不一定讲的清楚。你可能说&#xff0c;我以独当一面&#xff0c;应对自如了&#xff0c;但是技术的知识甚多&a…

【核心算法篇十三】《DeepSeek自监督学习:图像补全预训练方案》

引言:为什么自监督学习成为AI新宠? 在传统监督学习需要海量标注数据的困境下,自监督学习(Self-Supervised Learning)凭借无需人工标注的特性异军突起。想象一下,如果AI能像人类一样通过观察世界自我学习——这正是DeepSeek图像补全方案的技术哲学。根据,自监督学习通过…

轻松搭建本地大语言模型(二)Open-WebUI安装与使用

文章目录 前置条件目标一、安装 Open-WebUI使用 Docker 部署 二、使用 Open-WebUI&#xff08;一&#xff09;访问Open-WebUI&#xff08;二&#xff09;注册账号&#xff08;三&#xff09;模型选择&#xff08;四&#xff09;交互 四、常见问题&#xff08;一&#xff09;容器…

零基础学QT、C++(一)安装QT

目录 如何快速学习QT、C呢&#xff1f; 一、编译器、项目构建工具 1、编译器&#xff08;介绍2款&#xff09; 2、项目构建工具 二、安装QT 1、下载QT安装包 2、运行安装包 3、运行QT creator 4、导入开源项目 总结 闲谈 如何快速学习QT、C呢&#xff1f; 那就是项目驱动法&…

vue取消全选功能按钮注意事项

这里这个功能是通过各种条件查出数据,但只取一条数据进行后续业务,虽然每一条数据前面都有多选框,但只需要选一个,所以在业务上分析可以把这个全选按钮取消掉 这里不是简单的把多选组件的selection-change"handleSelectionChange"和handleSelectionChange方法去掉,因…

【再读】2501.12948/DeepSeek-R1通过强化学习提升大型语言模型(LLMs)的推理能力

DeepSeek-R1-Zero展示了在没有监督数据的情况下&#xff0c;通过RL可以发展出强大的推理能力。DeepSeek-R1通过引入冷启动数据和多阶段训练&#xff0c;进一步提升了推理性能&#xff0c;达到了与OpenAI-o1-1217相当的水平。此外&#xff0c;通过蒸馏技术&#xff0c;将DeepSee…

校园网架构设计与部署实战

一、学习目标 掌握校园网分层架构设计原则 理解多业务VLAN规划方法 学会部署认证计费系统 实现基础网络安全防护 二、典型校园网场景 需求分析&#xff1a;某中学需建设新型校园网络 覆盖教学楼/宿舍/图书馆三区域 区分教师/学生/访客网络权限 满足2000终端并发接入 …

leetcode:942. 增减字符串匹配(python3解法)

难度&#xff1a;简单 由范围 [0,n] 内所有整数组成的 n 1 个整数的排列序列可以表示为长度为 n 的字符串 s &#xff0c;其中: 如果 perm[i] < perm[i 1] &#xff0c;那么 s[i] I 如果 perm[i] > perm[i 1] &#xff0c;那么 s[i] D 给定一个字符串 s &#xff0…

数仓搭建(hive):DWS层(服务数据层)

DWS层示例: 搭建日主题宽表 需求 维度 步骤 在hive中建数据库dws >>建表 CREATE DATABASE if NOT EXISTS DWS; 建表sql CREATE TABLE yp_dws.dws_sale_daycount( --维度 city_id string COMMENT 城市id, city_name string COMMENT 城市name, trade_area_id string COMME…

网工项目实践2.8 IPv6设计及网络优化需求分析及方案制定

本专栏持续更新&#xff0c;整一个专栏为一个大型复杂网络工程项目。阅读本文章之前务必先看《本专栏必读》。 全网拓扑展示 一.IPV6部署规划 在北京总部&#xff0c;为了迎接未来网络的发展&#xff0c;规划在BJ_G2、BJ_G3、BJ_C1、BJ_C2之间运行IPv6协议&#xff0c;以建立I…

50页PDF|数字化转型成熟度模型与评估(附下载)

一、前言 这份报告依据GBT 43439-2023标准&#xff0c;详细介绍了数字化转型的成熟度模型和评估方法。报告将成熟度分为五个等级&#xff0c;从一级的基础转型意识&#xff0c;到五级的基于数据的生态价值构建与创新&#xff0c;涵盖了组织、技术、数据、资源、数字化运营等多…

DeepSeek 接入PyCharm实现AI编程!(支持本地部署DeepSeek及官方DeepSeek接入)

前言 在当今数字化时代&#xff0c;AI编程助手已成为提升开发效率的利器。DeepSeek作为一款强大的AI模型&#xff0c;凭借其出色的性能和开源免费的优势&#xff0c;成为许多开发者的首选。今天&#xff0c;就让我们一起探索如何将DeepSeek接入PyCharm&#xff0c;实现高效、智…

阐解WiFi信号强度

WiFi信号强度是指无线网络信号的强度&#xff0c;通常以负数dB&#xff08;分贝&#xff09;来表示。信号越强&#xff0c;dB值越接近零。WiFi信号强度直接影响你的网络速度、稳定性和连接的可靠性。简单来说&#xff0c;WiFi信号越强&#xff0c;你的设备与路由器之间的数据传…

MySQL数据类型

目录 1、数据类型分类 2、数值类型 2.1.tinyint类型 2.2.bit类型 2.3.小数类型 2.3.1.float 2.3.2.decimal 3.字符串类型 3.1.char 3.2.varchar 3.3 char和varchar比较 4.日期和时间类型 5.enum和set 语法&#xff1a; 案例&#xff1a; 1、数据类型分类 2、数值…

【Spring+MyBatis】_图书管理系统(下篇)

图书管理系统上篇、中篇如下&#xff1a; 【SpringMyBatis】_图书管理系统&#xff08;上篇&#xff09;-CSDN博客 【SpringMyBatis】_图书管理系统&#xff08;中篇&#xff09;-CSDN博客 目录 功能5&#xff1a;删除图书 6.1 约定前后端交互接口 6.2 后端接口 6.3 前端…

两个实用且热门的 Python 爬虫案例,结合动态/静态网页抓取和反爬策略,附带详细代码和实现说明

在这个瞬息万变的世界里&#xff0c;保持一颗探索的心&#xff0c;永远怀揣梦想前行。即使有时会迷失方向&#xff0c;也不要忘记内心深处那盏指引你前进的明灯。它代表着你的希望、你的信念以及对未来的无限憧憬。每一个不曾起舞的日子&#xff0c;都是对生命的辜负&#xff1…

鸿蒙NEXT开发-网络管理

注意&#xff1a;博主有个鸿蒙专栏&#xff0c;里面从上到下有关于鸿蒙next的教学文档&#xff0c;大家感兴趣可以学习下 如果大家觉得博主文章写的好的话&#xff0c;可以点下关注&#xff0c;博主会一直更新鸿蒙next相关知识 目录 1. 网络管理-应用权限 1.1 概述 1.2 配…

基于springboot 的旧物置换网站

研究背景 近年来&#xff0c;随着网络技术的不断发展&#xff0c;越来越多人喜欢在网络上查找信息&#xff0c;将自己喜欢的信息收藏&#xff0c;方便自己进行查看。旧物置换网站对用户、卖家和管理员都有很大帮助&#xff0c;旧物置换网站通过和数据库管理系软件协作来实现用…