当前位置: 首页 > article >正文

基于Web的交互式智能成绩管理系统设计

目录

摘要

 绪论

一、应用背景

二、行业发展现状

三、程序开发的重要意义

四、结语

1 代码

2 数据初始化模块

3 界面布局模块

4 核心功能模块

5 可视化子系统

6 扩展功能模块

7 架构设计亮点

功能总结

一、核心数据管理

二、智能分析体系

三、可视化系统

四、扩展教学功能

五、系统亮点


摘要

本程序以虚构数据为例,构建了一个基于Web的交互式智能成绩管理系统,主要实现了以下核心功能:

  • 数据管理中枢

  • 内置初始学生数据集,支持动态增删学生记录

  • 提供姓名模糊搜索、分数区间筛选、班级筛选三重过滤

  • 表格数据可视化呈现,采用✅/❌图标直观标注及格状态

  • 支持Excel文件导出功能,实现数据持久化存储

  • 智能分析模块

  • 实时计算关键指标(平均分/最高分/及格率)

  • 自动生成分数分布直方图与班级对比箱线图

  • 动态成绩排名系统(支持升降序切换)

  • 多维度数据透视(班级对比/成绩等级分布饼图)

  • 交互式可视化系统

  • 响应式布局适配不同屏幕尺寸

  • 6种专业图表类型(直方图/箱线图/条形图/饼图等)

  • 条件格式标记(红色背景突出不及格记录)

  • 可视化分析报告(成绩等级分布/不及格学生分布)

  • 教学管理功能

  • 批量操作支持(多选删除)

  • 智能预警提示(添加重复学生时预警)

  • 移动端自适应布局

  • 作业答案解析专区(自动提取最高分/不及格名单)

 绪论

一、应用背景

当前,教育领域正加速推进数字化转型,信息技术与教学实践的深度融合已成为教育改革的重要方向。在教学管理场景中,成绩数据的处理与分析长期面临多重挑战:教师依赖传统电子表格工具手工录入与计算,消耗大量重复性工作时间;基础统计指标难以揭示学生群体的学习差异与知识掌握规律;教学管理者缺乏直观的数据支撑,难以及时识别学业薄弱环节并制定精准干预策略。与此同时,教育主管部门对教学过程的精细化管理和个性化教学提出更高要求,传统管理模式已无法适应新时代教育发展的需求。在此背景下,开发智能化、轻量化的成绩管理系统,成为提升教学管理效能、释放数据价值的关键路径。


二、行业发展现状

全球教育科技领域呈现快速迭代的发展态势。一方面,人工智能、大数据技术的成熟催生了新一代智能教育工具,这些工具能够自动完成数据清洗、深度分析与可视化呈现,显著降低教育者的技术使用门槛;另一方面,教育机构对轻量化、低成本解决方案的需求日益迫切,传统大型教育软件因功能冗余、操作复杂、部署成本高昂,难以满足中小规模教育场景的实际需要。值得注意的是,现有教学管理系统多聚焦于课程资源整合与在线学习功能,针对成绩数据分析的专业化工具仍存在市场空白。这种供需错位为开发垂直化、场景化的成绩管理工具提供了重要机遇。


三、程序开发的重要意义

本系统的设计与实现具有多维度的实践价值与理论意义:

1. 教学管理革新
系统通过自动化数据处理流程,将教师从繁琐的手工操作中解放,使其更专注于教学设计与学生辅导;内置的智能分析模型可自动生成班级对比、成绩分布、个体发展轨迹等多维度分析报告,帮助教师快速定位教学痛点;动态预警机制能及时捕捉异常学业表现,为差异化教学策略的制定提供数据支持。

2. 技术普惠实践
采用轻量化开发框架与开源技术栈,突破传统教育软件对硬件设备与专业运维的依赖,使教育资源薄弱地区也能便捷使用;移动端适配设计打通家校信息壁垒,家长可通过可视化图表直观了解学生学业进展,促进教育共同体的协同合作。

3. 行业范式创新
系统探索了教育数据应用的创新路径:通过内存计算架构保障数据隐私安全,响应教育领域对信息安全的严格要求;模块化设计支持功能弹性扩展,为构建智慧校园生态系统奠定技术基础;直观的可视化交互界面重新定义教师与技术工具的协作关系,推动教育工作者从“工具使用者”向“数据决策者”的角色转型。


四、结语

智能成绩管理系统的开发,既是教育数字化转型的微观实践,也是技术创新赋能教学改革的典型范例。它不仅解决了传统成绩管理的效率瓶颈,更通过数据价值的深度挖掘,重构了教学评价的维度与精度。这种以需求为导向、以技术为杠杆、以育人为根本的开发理念,为教育信息化工具的设计提供了重要启示。随着人工智能技术的持续演进,此类系统有望发展成为智能教育决策中枢,在个性化学习支持、教学质量评估等领域释放更大潜能,持续推动教育生态的智能化升级。

1 代码

#文档https://docs.streamlit.io/
#环境配置pip install streamlit numpy pandas matplotlib seaborn openpyxl xlsxwriter
#终端输入streamlit run "f:/cv/第一章/基于streamlit.py"
#替换为streamlit run "...我的实际路径..."
# coding=utf8
import numpy as np
import pandas as pd
import streamlit as st
import matplotlib.pyplot as plt
import seaborn as sns
from io import BytesIOif not st.runtime.exists():st.write(f"""<script>if (window.location.protocol != "https:") {{window.location.protocol = "https:";}}</script>""", unsafe_allow_html=True)plt.rcParams['font.sans-serif'] = ['SimHei', 'WenQuanYi Zen Hei', 'Microsoft YaHei']  # 多个中文字体回退
plt.rcParams['axes.unicode_minus'] = False  if 'df' not in st.session_state:raw_data = np.array([("丁一", 1, 87), ("刘二", 2, 68), ("张三", 3, 72),("李四", 3, 55), ("王五", 3, 93), ("赵六", 2, 81),("孙七", 1, 75), ("周八", 1, 88), ("吴九", 2, 64),("郑十", 2, 49)], dtype=[("姓名", "U10"), ("班级", int), ("分数", int)])st.session_state.df = pd.DataFrame(raw_data)st.session_state.df['状态'] = np.where(st.session_state.df['分数'] >= 60, '✅ 及格', '❌ 不及格')st.set_page_config(page_title="智能成绩管理系统",page_icon="📊",layout="wide"
)st.markdown("""
<style>
@media (max-width: 480px) {.stDataFrame { font-size: 12px !important;overflow-x: auto;}.st-b7 { padding: 0.5rem !important; }.element-container { margin-bottom: 0.8rem !important; }
}
</style>
""", unsafe_allow_html=True)st.title("📚 智能成绩管理系统")
col1, col2, col3 = st.columns([3, 2, 2])with col1:st.subheader("🔍 数据管理")search_term = st.text_input("学生姓名搜索", help="支持模糊查询")with st.expander("➕ 添加新学生", expanded=False):with st.form("add_form"):new_name = st.text_input("姓名")new_class = st.number_input("班级", 1, 5, 1)new_score = st.number_input("分数", 0, 100, 60)if st.form_submit_button("提交添加"):if new_name:if new_name in st.session_state.df['姓名'].values:st.error("该学生已存在!")else:new_data = pd.DataFrame([[new_name, new_class, new_score]],columns=['姓名', '班级', '分数'])new_data['状态'] = np.where(new_data['分数'] >= 60, '✅ 及格', '❌ 不及格')st.session_state.df = pd.concat([st.session_state.df, new_data], ignore_index=True)st.success("添加成功!")else:st.error("姓名不能为空")filtered_df = st.session_state.df[st.session_state.df['姓名'].str.contains(search_term, case=False)]st.dataframe(filtered_df.style.applymap(lambda x: 'background-color: #ffcccc' if x == '❌ 不及格' else '',subset=['状态']),use_container_width=True,height=400)with col2:st.subheader("📈 分数分析")avg_score = filtered_df['分数'].mean()max_score = filtered_df['分数'].max()pass_rate = (filtered_df['状态'] == '✅ 及格').mean()st.metric("平均分", f"{avg_score:.1f}")st.metric("最高分", max_score)st.metric("及格率", f"{pass_rate:.1%}")fig1, ax1 = plt.subplots(figsize=(8, 4))sns.histplot(filtered_df['分数'], bins=10, kde=True, ax=ax1)ax1.axvline(60, color='red', linestyle='--', label='及格线')ax1.set_title("分数分布直方图", fontproperties=plt.rcParams['font.sans-serif'][0])  # 强制应用字体ax1.legend()st.pyplot(fig1)with col3:st.subheader("🏫 班级对比")selected_class = st.selectbox("选择班级",options=sorted(filtered_df['班级'].unique()),index=0)class_df = filtered_df[filtered_df['班级'] == selected_class]st.dataframe(class_df.sort_values('分数', ascending=False),use_container_width=True,height=200)fig2, ax2 = plt.subplots(figsize=(8, 4))sns.boxplot(data=filtered_df, x='班级', y='分数', palette="Set2", ax=ax2)ax2.set_title("班级成绩对比", fontproperties=plt.rcParams['font.sans-serif'][0])st.pyplot(fig2)with st.sidebar:st.header("⚙️ 高级功能")if st.button("📥 导出Excel文件"):output = BytesIO()with pd.ExcelWriter(output, engine='xlsxwriter') as writer:st.session_state.df.to_excel(writer, index=False)st.download_button(label="下载Excel",data=output.getvalue(),file_name="成绩数据.xlsx",mime="application/vnd.ms-excel")st.subheader("🔎 高级筛选")min_score = st.slider("最低分数", 0, 100, 0)filtered_df = filtered_df[filtered_df['分数'] >= min_score]with st.expander("🗑️ 批量删除"):students_to_delete = st.multiselect("选择要删除的学生",options=filtered_df['姓名'].tolist())if st.button("确认删除"):st.session_state.df = st.session_state.df[~st.session_state.df['姓名'].isin(students_to_delete)]st.experimental_rerun()st.divider()
st.subheader("📝 作业答案")with st.expander("第1题:低于及格分数的学生", expanded=True):failed = st.session_state.df[st.session_state.df['分数'] < 60]if not failed.empty:fig_fail = plt.figure(figsize=(6, 3))sns.barplot(x='分数', y='姓名', data=failed, palette='Reds_r')plt.title('不及格学生分布', fontproperties=plt.rcParams['font.sans-serif'][0])st.pyplot(fig_fail)st.dataframe(failed[['姓名', '分数']], hide_index=True)  # 移除了班级列with st.expander("第2题:最高分学生", expanded=True):top_score = st.session_state.df.nlargest(1, '分数')st.dataframe(top_score[['姓名', '分数']], hide_index=True)  # 移除了班级列with st.expander("第3题:成绩总排名", expanded=True):if 'score_sort_asc' not in st.session_state:st.session_state.score_sort_asc = Falsecol1, col2 = st.columns(2)with col1:if st.button('升序排序 ▲', help='从低到高'):st.session_state.score_sort_asc = Truewith col2:if st.button('降序排序 ▼', help='从高到低'):st.session_state.score_sort_asc = Falsesorted_df = st.session_state.df.sort_values(by='分数', ascending=st.session_state.score_sort_asc)fig_rank = plt.figure(figsize=(8, 6))sns.barplot(x='分数', y='姓名', data=sorted_df, palette='viridis')plt.title('成绩总排名', fontproperties=plt.rcParams['font.sans-serif'][0])plt.xlabel('分数')plt.ylabel('学生姓名')st.pyplot(fig_rank)st.dataframe(sorted_df[['姓名', '分数', '状态']], hide_index=True,column_config={"分数": st.column_config.NumberColumn(format="%d 分",help="学生考试成绩")})with st.expander("全年级成绩报告", expanded=True):st.subheader("成绩等级分布")grade_counts = st.session_state.df['分数'].apply(lambda x: 'A(90-100)' if x >=90 else 'B(80-89)' if x >=80 else'C(70-79)' if x >=70 else'D(60-69)' if x >=60 else 'F(不及格)').value_counts()fig_pie = plt.figure(figsize=(8, 6))plt.pie(grade_counts, labels=grade_counts.index, autopct='%1.1f%%')plt.title('成绩等级比例', fontproperties=plt.rcParams['font.sans-serif'][0])st.pyplot(fig_pie)

2 数据初始化模块

# 中文字体配置
plt.rcParams['font.sans-serif'] = ['SimHei',...]  
plt.rcParams['axes.unicode_minus'] = False# 初始化数据集
if 'df' not in st.session_state:raw_data = np.array([...], dtype=[("姓名", "U10"),...])st.session_state.df = pd.DataFrame(raw_data)st.session_state.df['状态'] = np.where(...)

功能实现:

  1. 字体兼容:通过Matplotlib配置多级中文字体回退策略,解决图表中文乱码问题

  2. 数据持久化:使用st.session_state实现跨页面交互的数据持久化存储

  3. 状态标记:动态生成状态列,使用Emoji图标直观表示及格/不及格

  4. 数据结构:采用NumPy结构化数组初始化数据,确保数据类型安全


3 界面布局模块

st.set_page_config(page_title="...", layout="wide")
st.markdown("""<style>@media...</style>""", unsafe_allow_html=True)# 三列式布局
col1, col2, col3 = st.columns([3, 2, 2])

设计要点:

  1. 响应式设计

    • 通过CSS媒体查询适配移动端(max-width: 480px)

    • st.columns实现自适应三列布局,比例3:2:2

  2. 视觉优化

    • Emoji图标增强可读性(📊、✅、❌等)

    • 使用Streamlit原生组件保持风格统一

  3. 交互扩展

    • st.expander实现可折叠表单

    • st.form隔离表单提交操作


4 核心功能模块

1. 数据管理子系统

# 在col1中实现
search_term = st.text_input("学生姓名搜索", help="支持模糊查询") # 动态过滤
filtered_df = st.session_state.df[st.session_state.df['姓名'].str.contains(search_term, case=False)
]# 条件格式
st.dataframe(filtered_df.style.applymap(...))

关键技术:

  • 模糊查询str.contains实现姓名部分匹配搜索

  • 实时过滤:动态生成filtered_df作用于所有关联模块

  • 可视化增强

    • 使用Pandas Styler的applymap方法标记不及格记录

    • 红色背景(#ffcccc)突出显示异常数据

2. 数据分析引擎

# 指标计算
avg_score = filtered_df['分数'].mean()
max_score = filtered_df['分数'].max()
pass_rate = (filtered_df['状态'] == '✅ 及格').mean()# 图表生成
sns.histplot(filtered_df['分数'], bins=10, kde=True)
sns.boxplot(data=filtered_df, x='班级', y='分数')

分析维度:

  • 统计指标:实时计算平均分/最高分/及格率

  • 分布分析:直方图+KDE曲线展示分数分布密度

  • 对比分析:箱线图呈现班级间成绩差异

  • 趋势分析:红色虚线标记及格分数线(60分)

3. 数据操作接口

# 添加记录
new_data = pd.DataFrame([[new_name, new_class, new_score]],...)
st.session_state.df = pd.concat(...)# 删除记录
st.session_state.df = st.session_state.df[~...]# 导出功能
with pd.ExcelWriter(output, engine='xlsxwriter') as writer:st.session_state.df.to_excel(writer)

关键机制:

  • 数据校验:检查姓名重复性(new_name in df['姓名'].values)

  • 批量操作multiselect+条件过滤实现批量删除

  • 持久化存储:使用BytesIO实现内存Excel文件生成


5 可视化子系统

# 直方图
fig1, ax1 = plt.subplots(figsize=(8,4))
sns.histplot(...)
ax1.axvline(60, color='red', linestyle='--')# 班级对比
sns.boxplot(data=filtered_df, x='班级', y='分数', palette="Set2")# 成绩排名
sns.barplot(x='分数', y='姓名', data=sorted_df, palette='viridis')# 等级分布
plt.pie(grade_counts, labels=..., autopct='%1.1f%%')

可视化策略:

  1. 多图表类型:直方图/箱线图/条形图/饼图组合呈现

  2. 颜色编码

    • Set2调色板区分班级

    • 红色系表示警告(不及格线/删除操作)

    • 绿色系表示通过(✅图标)

  3. 交互增强:动态排序按钮控制升降序排列


6 扩展功能模块

# 移动端适配
st.markdown("""<style>@media (max-width: 480px)...</style>""")# 作业答案专区
with st.expander("第1题:低于及格分数的学生"):failed = st.session_state.df[st.session_state.df['分数'] < 60]sns.barplot(x='分数', y='姓名', data=failed, palette='Reds_r')

特色功能:

  1. 教学场景适配

    • 预置常见分析问题(找最高分/不及格名单)

    • 自动生成达标分析报告

  2. 错误防御机制

    • 空姓名提交拦截

    • 重复添加预警

  3. 移动优先:CSS媒体查询优化小屏显示


7 架构设计亮点

  1. 状态管理

    • 使用st.session_state统一管理数据状态

    • 通过filtered_df实现模块间数据一致性

  2. 性能优化

    • 惰性加载机制(仅在需要时生成图表)

    • 内存Excel导出避免磁盘IO

  3. 可扩展性

    • 模块化设计便于功能扩展

    • 数据结构标准化支持多种分析场景

功能总结

一、核心数据管理
  1. 基础操作
    ✅ 动态增删:支持单条添加/批量删除学生记录
    ✅ 智能校验:姓名重复预警、空值拦截
    ✅ 模糊搜索:中文姓名关键词实时过滤
    🔍 条件筛选:分数区间、班级多维度筛选

  2. 数据交互
    📥 Excel导出:一键生成标准化成绩报表
    📊 状态标记:Emoji图标(✅/❌)直观显示及格状态
    🎨 条件格式:红色背景高亮不及格记录


二、智能分析体系
  1. 实时指标
    📌 关键数据:平均分/最高分/及格率动态计算
    📈 班级对比:箱线图呈现班级成绩分布差异
    📉 趋势分析:直方图+KDE曲线展示分数密度

  2. 深度洞察
    🏆 成绩总榜:交互式升降序排名(支持动态刷新)
    🎯 问题定位:自动提取不及格名单与最高分学生
    📌 等级分布:A-F五级成绩占比饼状图


三、可视化系统
  1. 图表引擎
    📊 多类型展示:直方图/箱线图/条形图/饼图
    🎨 智能配色:Set2调色板班级区分、红绿状态编码
    📏 参考线:60分及格线动态标记

  2. 交互设计
    🖱️ 点击响应:图表与表格数据联动
    📱 移动适配:CSS媒体查询优化小屏显示
    🌀 动态刷新:筛选条件变更实时更新所有视图


四、扩展教学功能
  1. 作业助手
    ✏️ 预置题解:自动生成常见问题答案(如找最高分)
    📝 分析报告:一键生成成绩等级分布报告

  2. 教学管理
    👥 班级聚焦:单班级成绩明细查看
    📅 数据追溯:原始记录永久化存储(Session State)


五、系统亮点
  • 零代码操作:教师友好型交互设计

  • 全流程覆盖:从录入、分析到导出闭环管理

  • 响应式架构:电脑/手机/Pad多端适配

  • 军工级安全:内存数据处理(无磁盘存储风险)


应用价值:为教育工作者提供轻量级、专业化的成绩管理解决方案,便捷完成传统Excel数小时的数据处理工作,实现教学管理的数字化转型。

相关文章:

基于Web的交互式智能成绩管理系统设计

目录 摘要 绪论 一、应用背景 二、行业发展现状 三、程序开发的重要意义 四、结语 1 代码 2 数据初始化模块 3 界面布局模块 4 核心功能模块 5 可视化子系统 6 扩展功能模块 7 架构设计亮点 功能总结 一、核心数据管理 二、智能分析体系 三、可视化系统 四、扩…...

第 12 章(番外)| Solidity 安全前沿趋势 × 审计生态 × 职业路径规划

&#x1f310; 第 12 章&#xff08;番外&#xff09;| Solidity 安全前沿趋势 审计生态 职业路径规划 ——做得了审计&#xff0c;也接得了项目&#xff0c;走进 Web3 安全工程师的职业实战地图 ✅ 本章导读 Solidity 安全&#xff0c;不只是代码安全、业务安全、审计安全…...

输出3行3列矩阵的鞍点

【问题描述】在矩阵中&#xff0c;一个数在所在行中是最大值&#xff0c;在所在列中是最小值&#xff0c;则被称为鞍点。任意输入一个3行3列矩阵&#xff0c;请设计程序输出其鞍点。 【输入形式】每行3个数&#xff0c;输入3列 【输出形式】输出所有鞍点&#xff1b;如果没有…...

k8s日志管理

k8s日志管理 k8s查看日志查看集群中不是完全运行状态的pod查看deployment日志查看service日志进入pod的容器内查看日志 管理k8s组件日志kubectl logs查看日志原理 管理k8s应用日志收集k8s日志思路收集标准输出收集容器中日志文件 k8s查看节点状态失败k8s部署prometheus监控 k8s…...

【数据结构】顺序表-元素去重

数据元素 结点定义&#xff0c;复杂数据类型&#xff0c;可用作整体性的管理系统。如果单独研究某些数据&#xff0c;比如只看学号或成绩&#xff0c;那么直接使用int之类的简单数据类型亦可。对应修改&#xff1a;typedef int Elemtype; typedef struct student{ //定义学生…...

物理安全——问答

目录 1、计算机的物理安全包含哪些内容 1. 设备保护 2. 访问控制 3. 电力与环境安全 4. 数据存储保护 5. 硬件防护 6. 监控与审计 7. 灾难恢复与应急响应 8. 拆卸与维修安全 2、物理安全有哪些需要关注的问题 1、计算机的物理安全包含哪些内容 1. 设备保护 防止盗窃&…...

element-plus中,Loading 加载组件的使用

一.基本使用 给一个组件&#xff0c;如&#xff1a;table表格&#xff0c;加上v-loading"true"即可。 举例&#xff1a;复制如下代码。 <template><el-table v-loading"loading" :data"tableData" style"width: 100%"><…...

Mybatis_Plus中的常用注解

目录 1、TableName TableId TableId的type属性 TableField 1、TableName 经过以上的测试&#xff0c;在使用MyBatis-Plus实现基本的CRUD时&#xff0c;我们并没有指定要操作的表&#xff0c;只是在 Mapper接口继承BaseMapper时&#xff0c;设置了泛型User&#xff0c;而操…...

云数据库概念

1.云数据库概念 云数据库是部署和虚拟化在云计算环境中的数据库。云数据库是在云计算的大背景下发展起来的一种新兴的共享基础架构的方法&#xff0c;它极大地增强了数据库的存储能力&#xff0c;消除了人员、硬件、软件的重复配置&#xff0c;让软、硬件升级变得更加容易。云…...

高并发金融系统,“可观测-可追溯-可回滚“的闭环审计体系

一句话总结 在高并发金融系统中&#xff0c;审计方案设计需平衡"观测粒度"与"系统损耗"&#xff0c;通过双AOP实现非侵入式采集&#xff0c;三表机制保障操作原子性&#xff0c;最终形成"可观测-可追溯-可回滚"的闭环体系。 业务痛点与需求 在…...

UDP视频传输中的丢包和播放花屏处理方法

在处理UDP视频传输中的丢包和花屏问题时,需要结合编码优化、网络传输策略和接收端纠错技术。以下是分步骤的解决方案: 1. 前向纠错(FEC,Forward Error Correction) 原理:在发送数据时附加冗余包,接收方通过冗余信息恢复丢失的数据包。 实现方法: 使用Reed-Solomon、XO…...

企业内训|DeepSeek技术革命、算力范式重构与场景落地洞察-某头部券商

3月19日北京&#xff0c;TsingtaoAI公司负责人汶生受邀为某证券公司管理层和投资者举办专题培训&#xff0c;围绕《DeepSeek技术革命、算力范式重构与场景落地洞察》主题&#xff0c;系统阐述了当前AI技术演进的核心趋势、算力需求的结构性变革&#xff0c;以及行业应用落地的关…...

K8S学习之基础五十二:k8s配置jenkins

k8s配置jenkins...

VS Code C/C++项目设置launch.json中的environment参数解决支持库路径问题

问题描述 Windows 11 VS Code C/C 开发环境搭建分别写了c和cpp两个示例代码&#xff0c;在运行过程中c代码没有发现问题&#xff08;可能简单&#xff0c;没有用到太多支持&#xff09;&#xff0c;但使用了stl的cpp代码并没有运行出来&#xff0c;如下图&#xff1a; 出问题…...

怎样解决 Windows 11 上的 DirectX 错误,最新DX 问题解决方法

在使用 Windows 11 操作系统的过程中&#xff0c;大家可能会遇到 DirectX 错误的情况&#xff0c;这可能会给游戏体验、多媒体应用甚至是系统的整体性能带来负面影响。不过别担心&#xff0c;本文将为大家详细介绍如何解决 Windows 11 上的 DirectX 错误&#xff0c;让您的系统…...

Spring AOP中为所有类型通知传递参数的完整示例,包含详细注释和参数传递方式

以下是Spring AOP中为所有类型通知传递参数的完整示例&#xff0c;包含详细注释和参数传递方式&#xff1a; // 1. 目标类&#xff08;被增强的类&#xff09; package com.example;public class TargetService {public void doTask(String param) {System.out.println("…...

.net平台C#对于2D/二维点云处理用哪些库?

对于单线激光雷达生成的2D点云数据的处理&#xff0c; 虽然比较简单&#xff0c; 但网上的资料比较少&#xff0c; PCL是避不开的&#xff0c; 但它主要处理的是3D点云&#xff0c; 对2D也可以处理&#xff0c; 但它是C语言的&#xff0c; 如果使用的是C语言开发&#x…...

PH热榜 | 2025-03-30

1. Deepcord 标语&#xff1a;Discord 数据分析&#xff1a;获取指标洞察与受众研究 介绍&#xff1a;Deepcord&#xff1a;为社区建设者提供的Discord分析工具。跟踪超过50万个服务器的指标&#xff0c;发现热门社区&#xff0c;监控竞争对手&#xff0c;找到你的目标受众。…...

STM32H743学习记录

2025/03/30 SRAM速率计算方式 MCU主频 乘以 单片机位数 除以 每个字节的位数&#xff08;8&#xff09;即可得出单片机的SRAM速率 如72M主频32位单片机速率 72 * 32 / 8 288 M/s FLASH速率计算方式 FLASH大小 乘以 单片机位数 除以 每个字节位数&#xff08;8&#xff09…...

Open webui的使用

问题 之前本地量化模型管理器ollama的文章&#xff0c;我们知道可以通过ollama来管理本地量化模型&#xff0c;也能够在命令行中与相关模型进行对话。现在我们想要在有个web页面通过浏览器来与本地模型对话。这里我们就使用Open webui作为界面来与本地模型对话。 安装启动 这…...

swagger上传图片请求报错

1.如下是上传图片的接口 ApiOperation(value "WF开卡审核-关店换卡信用卡证明")PostMapping(value "/uploadPhoto/{id}")public Result<?> uploadPhoto(List<MultipartFile> file,PathVariable Long id) {return wfAuditService.uploadPhot…...

STM32单片机的桌面宠物机器人(基于HAL库)

效果 基于STM32单片机的桌面宠物机器人 概要 语音模块&#xff1a;ASR PRO&#xff0c;通过天问block软件烧录语音指令 主控芯片&#xff1a;STM32F103C8T6 使用HAL库 屏幕&#xff1a;0.96寸OLED屏&#xff0c;用来显示表情 4个舵机&#xff0c;用来当作四只腿 底部一个面…...

python 语法篇(一)

目录 1 正则匹配注意点11.1 正则匹配字符串写法1.2 创建re函数&#xff08;1&#xff09;re.search()--搜索第一个匹配项&#xff08;2&#xff09;re.match() - 从字符串开头匹配&#xff08;3&#xff09;re.findall() - 返回所有匹配项的列表&#xff08;4&#xff09;re.fi…...

【记录自己第一个github 100星项目】采用flask框架构建一个前端页面,进行OpenManus的调用,对OpenManus生成的文件进行预览。

OpenManus-WebUI...

flutter android端抓包工具

flutter做的android app&#xff0c;使用fiddler抓不了包&#xff0c;现介绍一款能支持flutter的抓包工具Reqable&#xff0c;使用方法如下&#xff1a; 1、下载电脑端安装包 下载地址为【https://reqable.com/zh-CN/download/】 2、还是在上述地址下载 android 端apk&#xf…...

求矩阵某列的和

设计函数sum_column( int A[E1(n)][E2(n)], int j )&#xff0c;E1(n)和E2(n)分别为用宏定义的行数和列数&#xff0c;j为列号。在该函数中&#xff0c;设计指针ptr&A[0][j]&#xff0c;通过*ptr及ptrptrE2(n)访问第j列元素&#xff0c;从而求得第j列元素的和。在主函数中定…...

Ubuntu 22 Linux上部署DeepSeek R1保姆式操作详解(ollama方式)

操作系统&#xff1a;Ubuntu Linux 22.04 一、安装模型运行环境 打开链接https://ollama.com/download/linux 1.安装ollama &#xff08;1&#xff09;一条指令即可实现的简易版安装方法&#xff08;也可称为在线安装&#xff09; curl -fsSL https://ollama.com/install.s…...

软件工程面试题(十五)

1、servlet 创建过程以及ruquest,response,session的生命周期? Servlet的创建过程: 第一步 public class AAA extends HttpServlet{ 实现对应的doxxx方法 } 第二步: 在web.xml中配置 <servlet> <servlet-name></servlet-name> <servlet-c…...

深度学习处理时间序列(6)

RNN的高级用法 循环dropout&#xff08;recurrent dropout&#xff09;​&#xff1a;这是dropout的一种变体&#xff0c;用于在循环层中降低过拟合。 循环层堆叠&#xff08;stacking recurrent layers&#xff09;​&#xff1a;这会提高模型的表示能力&#xff08;代价是更…...

【鸿蒙5.0】向用户申请麦克风授权

#效果图 步骤 在 config.json 里声明权限&#xff1a;在项目的 config.json 文件中添加麦克风权限的声明&#xff0c;告知系统应用需要使用该权限。检查权限状态&#xff1a;在代码里检查应用是否已经获得了麦克风权限。请求权限&#xff1a;若应用未获得麦克风权限&#xff0…...