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

Python项目源码63:病历管理系统1.0(tkinter+sqlite3+matplotlib)

1.病历管理系统包含以下主要功能:

核心功能:病历信息录入(患者姓名、年龄、性别、诊断结果、主治医生),自动记录就诊时间,病历信息展示(使用Treeview表格),病历信息查询(按姓名搜索),数据sqlite3存储。
主要组件:输入表单:包含患者基本信息输入字段,功能按钮:添加、查询、保存、加载、清空,病历列表:以表格形式展示所有病历记录,双击支持:双击记录可自动填充到输入框。
数据库存储:使用SQLite3替代JSON文件存储,自动创建数据库表结构,使用参数化查询防止SQL注入。

2.使用说明:运行程序后会生成medical_records.db文件用于存储数据,输入患者信息后点击"添加病历"按钮保存,输入姓名等条件进行高级搜索,双击表格记录可将数据填充到输入框。
在这里插入图片描述
高级查询
在这里插入图片描述
数据可视化
在这里插入图片描述

# -*- coding: utf-8 -*-
# @Author : 小红牛
# 微信公众号:WdPython
import tkinter as tk
from tkinter import ttk, messagebox
import sqlite3
from datetime import datetime
from matplotlib import rcParams
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAggclass MedicalRecordSystem:def __init__(self, root):self.root = rootself.root.title("病历管理系统1.0")self.root.geometry("1000x800")# 初始化数据库self.conn = sqlite3.connect('medical_records.db')self.create_table()# 创建界面组件self.create_widgets()self.load_data()def create_table(self):cursor = self.conn.cursor()cursor.execute('''CREATE TABLE IF NOT EXISTS records (id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT NOT NULL,age INTEGER,gender TEXT,diagnosis TEXT,doctor TEXT,date TEXT)''')self.conn.commit()def create_widgets(self):# 输入区域input_frame = ttk.LabelFrame(self.root, text="病历信息输入")input_frame.pack(pady=10, padx=10, fill="x")labels = ["患者姓名:", "年龄:", "性别:", "诊断结果:", "主治医生:"]self.entries = {}for i, text in enumerate(labels):label = ttk.Label(input_frame, text=text)label.grid(row=i, column=0, padx=5, pady=5, sticky="e")entry = ttk.Entry(input_frame, width=40)entry.grid(row=i, column=1, padx=5, pady=5, sticky="w")self.entries[text.strip(":")] = entry# 按钮区域btn_frame = ttk.Frame(self.root)btn_frame.pack(pady=10)buttons = [("添加病历", self.add_record),("修改病历", self.update_record),("删除病历", self.delete_record),("高级搜索", self.advanced_search),("数据可视化", self.show_statistics),("清空输入", self.clear_entries)]for i, (text, command) in enumerate(buttons):btn = ttk.Button(btn_frame, text=text, command=command)btn.grid(row=0, column=i, padx=5)# 病历列表list_frame = ttk.LabelFrame(self.root, text="病历列表")list_frame.pack(pady=10, padx=10, fill="both", expand=True)columns = ("id", "name", "age", "gender", "diagnosis", "doctor", "date")self.tree = ttk.Treeview(list_frame, columns=columns, show="headings")headings = [("id", "ID"),("name", "患者姓名"),("age", "年龄"),("gender", "性别"),("diagnosis", "诊断结果"),("doctor", "主治医生"),("date", "就诊日期")]for col_id, col_text in headings:self.tree.heading(col_id, text=col_text)self.tree.column(col_id, width=100, anchor="center")vsb = ttk.Scrollbar(list_frame, orient="vertical", command=self.tree.yview)hsb = ttk.Scrollbar(list_frame, orient="horizontal", command=self.tree.xview)self.tree.configure(yscrollcommand=vsb.set, xscrollcommand=hsb.set)self.tree.grid(row=0, column=0, sticky="nsew")vsb.grid(row=0, column=1, sticky="ns")hsb.grid(row=1, column=0, sticky="ew")list_frame.grid_rowconfigure(0, weight=1)list_frame.grid_columnconfigure(0, weight=1)self.tree.bind("<Double-1>", self.on_item_double_click)# 数据库操作方法def execute_query(self, query, parameters=()):cursor = self.conn.cursor()try:cursor.execute(query, parameters)self.conn.commit()return cursorexcept Exception as e:self.conn.rollback()messagebox.showerror("数据库错误", str(e))return None# 核心功能实现def add_record(self):record = (self.entries["患者姓名"].get(),self.entries["年龄"].get(),self.entries["性别"].get(),self.entries["诊断结果"].get(),self.entries["主治医生"].get(),datetime.now().strftime("%Y-%m-%d %H:%M:%S"))if not record[0] or not record[3]:messagebox.showwarning("输入错误", "患者姓名和诊断结果不能为空!")returntry:self.execute_query('''INSERT INTO records (name, age, gender, diagnosis, doctor, date)VALUES (?,?,?,?,?,?)''', record)self.load_data()self.clear_entries()messagebox.showinfo("成功", "病历添加成功!")except Exception as e:messagebox.showerror("错误", f"添加失败:{str(e)}")def update_record(self):selected = self.tree.selection()if not selected:messagebox.showwarning("警告", "请先选择要修改的记录")returnrecord_id = self.tree.item(selected[0], 'values')[0]new_data = (self.entries["患者姓名"].get(),self.entries["年龄"].get(),self.entries["性别"].get(),self.entries["诊断结果"].get(),self.entries["主治医生"].get(),record_id)try:self.execute_query('''UPDATE records SETname=?, age=?, gender=?, diagnosis=?, doctor=?WHERE id=?''', new_data)self.load_data()messagebox.showinfo("成功", "病历修改成功!")except Exception as e:messagebox.showerror("错误", f"修改失败:{str(e)}")def delete_record(self):selected = self.tree.selection()if not selected:messagebox.showwarning("警告", "请先选择要删除的记录")returnif messagebox.askyesno("确认", "确定要删除这条记录吗?"):record_id = self.tree.item(selected[0], 'values')[0]try:self.execute_query('DELETE FROM records WHERE id=?', (record_id,))self.load_data()messagebox.showinfo("成功", "记录已删除")except Exception as e:messagebox.showerror("错误", f"删除失败:{str(e)}")def advanced_search(self):search_window = tk.Toplevel(self.root)search_window.title("高级搜索")criteria = [("患者姓名", "name"),("最小年龄", "min_age"),("最大年龄", "max_age"),("性别", "gender"),("诊断结果", "diagnosis"),("主治医生", "doctor")]entries = {}for i, (label, key) in enumerate(criteria):ttk.Label(search_window, text=label + ":").grid(row=i, column=0, padx=5, pady=5)entry = ttk.Entry(search_window)entry.grid(row=i, column=1, padx=5, pady=5)entries[key] = entrydef perform_search():conditions = []params = []if entries['name'].get():conditions.append("name LIKE ?")params.append(f"%{entries['name'].get()}%")if entries['min_age'].get():conditions.append("age >= ?")params.append(int(entries['min_age'].get()))if entries['max_age'].get():conditions.append("age <= ?")params.append(int(entries['max_age'].get()))if entries['gender'].get():conditions.append("gender = ?")params.append(entries['gender'].get())if entries['diagnosis'].get():conditions.append("diagnosis LIKE ?")params.append(f"%{entries['diagnosis'].get()}%")if entries['doctor'].get():conditions.append("doctor LIKE ?")params.append(f"%{entries['doctor'].get()}%")query = "SELECT * FROM records"if conditions:query += " WHERE " + " AND ".join(conditions)cursor = self.execute_query(query, params)if cursor:results = cursor.fetchall()self.show_search_results(results)search_window.destroy()ttk.Button(search_window, text="搜索", command=perform_search).grid(row=len(criteria), columnspan=2)def show_search_results(self, results):result_window = tk.Toplevel(self.root)result_window.title("搜索结果")tree = ttk.Treeview(result_window, columns=("id", "name", "age", "gender", "diagnosis", "doctor", "date"),show="headings")headings = [("id", "ID"), ("name", "姓名"), ("age", "年龄"),("gender", "性别"), ("diagnosis", "诊断"),("doctor", "医生"), ("date", "日期")]for col_id, col_text in headings:tree.heading(col_id, text=col_text)tree.column(col_id, width=100)for record in results:tree.insert("", "end", values=record)tree.pack(fill="both", expand=True)def show_statistics(self):# 设置全局中文字体(解决中文显示问题)rcParams['font.sans-serif'] = ['SimHei']rcParams['axes.unicode_minus'] = False  # 解决负号显示问题stat_window = tk.Toplevel(self.root)stat_window.title("数据统计")# 年龄分布统计age_ranges = ["0-18", "19-30", "31-45", "46-60", "61+"]queries = [("0-18岁", "age BETWEEN 0 AND 18"),("19-30岁", "age BETWEEN 19 AND 30"),("31-45岁", "age BETWEEN 31 AND 45"),("46-60岁", "age BETWEEN 46 AND 60"),("61岁及以上", "age >= 61")]age_data = {}for label, condition in queries:cursor = self.execute_query(f"SELECT COUNT(*) FROM records WHERE {condition}")age_data[label] = cursor.fetchone()[0]# 常见疾病统计cursor = self.execute_query("SELECT diagnosis, COUNT(*) FROM records GROUP BY diagnosis ORDER BY COUNT(*) DESC LIMIT 10")disease_data = cursor.fetchall()# 创建统计图表fig = plt.Figure(figsize=(10, 6))# 年龄分布饼图ax1 = fig.add_subplot(121)ax1.pie(age_data.values(), labels=age_data.keys(), autopct='%1.1f%%')ax1.set_title('年龄分布')# 常见疾病柱状图ax2 = fig.add_subplot(122)diagnoses = [item[0] for item in disease_data]counts = [item[1] for item in disease_data]ax2.barh(diagnoses, counts)ax2.set_title('常见疾病TOP10')ax2.invert_yaxis()canvas = FigureCanvasTkAgg(fig, master=stat_window)canvas.draw()canvas.get_tk_widget().pack(fill=tk.BOTH, expand=True)def load_data(self):cursor = self.execute_query("SELECT * FROM records ORDER BY date DESC")if cursor:self.tree.delete(*self.tree.get_children())for row in cursor.fetchall():self.tree.insert("", "end", values=row)def clear_entries(self):for entry in self.entries.values():entry.delete(0, "end")def on_item_double_click(self, event):selected = self.tree.selection()if selected:values = self.tree.item(selected[0], 'values')self.clear_entries()self.entries["患者姓名"].insert(0, values[1])self.entries["年龄"].insert(0, values[2])self.entries["性别"].insert(0, values[3])self.entries["诊断结果"].insert(0, values[4])self.entries["主治医生"].insert(0, values[5])def __del__(self):self.conn.close()if __name__ == "__main__":root = tk.Tk()app = MedicalRecordSystem(root)root.mainloop()

完毕!!感谢您的收看

----------★★跳转到历史博文集合★★----------
我的零基础Python教程,Python入门篇 进阶篇 视频教程 Py安装py项目 Python模块 Python爬虫 Json Xpath 正则表达式 Selenium Etree CssGui程序开发 Tkinter Pyqt5 列表元组字典数据可视化 matplotlib 词云图 Pyecharts 海龟画图 Pandas Bug处理 电脑小知识office自动化办公 编程工具 NumPy Pygame

相关文章:

Python项目源码63:病历管理系统1.0(tkinter+sqlite3+matplotlib)

1.病历管理系统包含以下主要功能&#xff1a; 核心功能&#xff1a;病历信息录入&#xff08;患者姓名、年龄、性别、诊断结果、主治医生&#xff09;&#xff0c;自动记录就诊时间&#xff0c;病历信息展示&#xff08;使用Treeview表格&#xff09;&#xff0c;病历信息查询…...

Unity 与 Lua 交互详解

Unity 与 Lua 的交互是热更新实现的核心技术&#xff0c;下面我将从底层原理到实际应用全面解析交互机制。 一、交互基础原理 1. 通信架构 Unity (C#) 原生层↑↓ 通过P/Invoke调用 Lua虚拟机层 (C/C实现)↑↓ Lua脚本解释执行 业务逻辑层 (Lua脚本) 2. 数据类型映射表 Lu…...

【Vue】Vue与UI框架(Element Plus、Ant Design Vue、Vant)

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Vue 文章目录 1. Vue UI 框架概述1.1 主流Vue UI框架简介1.2 选择UI框架的考虑因素 2. Element Plus详解2.1 Element Plus基础使用2.1.1 安装与引入2.1.2 基础组件示例 2.2 Element Plus主题定制2.3 Element Plus的优缺点分析 3…...

期刊、出版社、索引数据库

image 1、研究人员向期刊或者会议投稿&#xff0c;交注册费和相应的审稿费等相关费用[1]&#xff1b; 2、会议组织者和期刊联系出版社&#xff0c;交出版费用&#xff1b; 3、出版社将论文更新到自己的数据库中&#xff0c;然后将数据库卖给全世界各大高校或企业&#xff1b; 4…...

btrace2.0使用方法

2022 年我研究安卓性能优化的时候&#xff0c;写过一篇&#xff1a;btrace1.0使用方法 - Wesley’s Blog&#xff0c;现在 brace 进化到 2.0 了&#xff0c;让我们一起来看看如何使用。 具体的接入流程可以看官方文档&#xff1a; bytedance/btrace: &#x1f525;&#x1f5…...

【计算机视觉】三维视觉:Instant-NGP:实时神经辐射场的革命性突破

深度解析Instant-NGP&#xff1a;实时神经辐射场的革命性突破 技术架构与核心创新哈希编码&#xff08;Hash Encoding&#xff09;性能对比 环境配置与安装指南硬件要求全平台安装流程 实战全流程解析1. 数据准备2. 训练与重建3. 结果导出与应用 核心技术深度解析哈希编码实现混…...

组件通信-provide、inject

概述&#xff1a;实现祖孙组件直接通信 具体使用&#xff1a; 在祖先组件中通过provide配置向后代组件提供数据 在后代组件中通过inject配置来声明接收数据 具体编码&#xff1a; 【第一步】父组件中&#xff0c;使用provide提供数据 父组件&#xff1a; <template&g…...

定制开发开源AI智能名片S2B2C商城小程序驱动的无界零售基础设施变革研究——基于京东模式的技术解构与商业重构

摘要&#xff1a;本文以京东无界零售战略为参照&#xff0c;探讨定制开发开源AI智能名片S2B2C商城小程序如何通过“技术赋能生态重构”双轮驱动&#xff0c;重塑零售基础设施的可塑化、智能化与协同化。研究显示&#xff0c;该模式通过“AI名片智能中枢S2B2C分布式网络开源技术…...

基于STM32的带恒温系统智能外卖柜设计

标题:基于STM32的带恒温系统智能外卖柜设计 内容:1.摘要 随着外卖行业的迅速发展&#xff0c;对外卖存放设备的智能化和功能性要求日益提高。本设计的目的是开发一种基于STM32的带恒温系统智能外卖柜。方法上&#xff0c;以STM32微控制器为核心&#xff0c;结合温度传感器、加…...

ARM架构详解:定义、应用及特点

一、ARM架构的定义 ARM&#xff08;Advanced RISC Machine&#xff09; 是一种基于精简指令集&#xff08;RISC&#xff09;的处理器架构&#xff0c;由ARM公司&#xff08;现属英伟达&#xff09;设计&#xff0c;以低功耗、高能效为核心目标。其商业模式为IP授权&#xff0c…...

Spring Boot 集成 Elasticsearch 的详细步骤

以下是 Spring Boot 集成 Elasticsearch 的详细步骤&#xff1a; 环境安装 安装 Java &#xff1a;Elasticsearch 基于 Java&#xff0c;需先安装 JDK 11 或更高版本。从官 方网站下载安装包&#xff0c;按教程安装配置&#xff0c;安装后通过命令行输入java -version验证。 …...

提示词版本化管理:AI开发中被忽视的关键环节

当我的提示词"消失"在团队协作中 上周五下午&#xff0c;我经历了一场小型"灾难"。作为一名AI产品经理&#xff0c;我花了整整三天精心打磨的客服机器人提示词&#xff0c;在周末更新后突然"失效"了。机器人不再能够准确识别用户意图&#xff0…...

专题二十二:DHCP协议

一、DHCP简介 HCP是Dynamic Host Configuration Protocol的缩写&#xff0c;即动态主机配置协议。DHCP是一个很重要的局域网的网络协议&#xff0c;DHCP使用UDP封装的67和68端口&#xff0c;DHCP客户端使用68端口&#xff0c;DHCP服务器使用67端口进行回应。 DHCP可以提供两种…...

轻量级在线Excel预览工具

轻量级在线Excel预览工具 简介 在日常工作中&#xff0c;我们经常需要快速查看Excel文件的内容&#xff0c;但不一定总是需要打开完整的Excel软件。为了解决这个问题&#xff0c;我开发了一个轻量级的在线Excel预览工具&#xff0c;让您可以通过浏览器快速查看Excel文件内容。…...

【OFDM过程中正交子载波特性的应用及全面解析】

OFDM过程中正交子载波特性的应用及全面解析 一、正交子载波的核心作用 正交子载波是OFDM技术的基石&#xff0c;其特性贯穿整个发送和接收流程&#xff1a; 正交性定义 子载波频率间隔为符号速率的倒数&#xff08; Δ f 1 T \Delta f \frac{1}{T} ΔfT1​&#xff09;&…...

旧版本NotionNext图片失效最小改动解决思路

旧版本NotionNext图片失效最小改动解决思路 契机 好久没写博客了&#xff0c;最近在notion写博客的时候发现用notionNext同步到个人网站时&#xff0c;图片无法预览。猜测是notion加了防盗链措施&#xff0c;去notionNext官方github上寻找解决方案&#xff0c;需要升级到4.8.…...

4.5 使用busybox制作根文件系统

4.1. 使用busybox制作文件系统 4.1.1 busybox源码下载&#xff1a; 下载地址&#xff1a;Index of /downloads 4.1.2. busybox源码中修改Makefile ARCH arm CROSS_COMPILE /usr/local/arm/arm-2009q3/bin//arm-none-linux-gnueabi-4.1.3. make menuconfig配置busybox &…...

LeetCode[102]二叉树的层序遍历

思路&#xff1a; 题目描述从左到右一层一层的进行遍历&#xff0c;就遍历二叉树的这种题我更喜欢用递归来做&#xff0c; 我使用java来做的&#xff0c;结果集是两个List集合&#xff0c;那么我们是不是应该每到新的一层就给这个结果集添加一个内部的List&#xff0c;那么怎么…...

【C到Java的深度跃迁:从指针到对象,从过程到生态】第五模块·生态征服篇 —— 第二十章 项目实战:从C系统到Java架构的蜕变

一、跨语言重构&#xff1a;用Java重写Redis核心模块 1.1 Redis的C语言基因解析 Redis 6.0源码核心结构&#xff1a; // redis.h typedef struct redisObject { unsigned type:4; // 数据类型&#xff08;String/List等&#xff09; unsigned encoding:4; // …...

implement the “pixel-wise difference“

根据在处理图像数据的来源和格式的不同&#xff0c;在具体实现“两幅图像残差比较”的时候&#xff0c;分为两类方法。 类型一&#xff1a;PyTorch 的 Tensor 图像格式 imgs_pil_o [transforms.ToPILImage()(img_o) for img_o in imgs_o] imgs_pil_w [transforms.ToPILImag…...

GoogleTest:TEST_F

GoogleTest:简单示例及ASSERT/EXPECT说明-CSDN博客 介绍了写一个简单的测试用例 如果某些测试用例在开始测试前需要先做一些准备工作,那么如果每次都需要先准备,那么会比较的麻烦,基于这种情况可以使用GoogleTest的TEST_F方法。 简单点说,就是需要先定义一个继承于testin…...

【优选算法 | 位运算】位运算基础:深入理解二进制操作

算法相关知识点可以通过点击以下链接进行学习一起加油&#xff01;双指针滑动窗口二分查找前缀和 在本篇文章中&#xff0c;我们将全面解析位运算的基本原理与实际应用。位运算通过直接操作数字的二进制表示&#xff0c;能够在许多计算中提供极大的效率提升。无论是用于加速数学…...

推荐免费的RVC模型下载网站

前沿 近年来&#xff0c;随着人工智能与计算机生成内容&#xff08;AICG&#xff09;技术的飞速发展&#xff0c;众多人才纷纷投身于这一领域。从ChatGPT到Stable Diffusion&#xff0c;再到RVC&#xff0c;这些广为人知的AI技术正逐步改变我们的生产方式。众所周知&#xff0c…...

写了个脚本将pdf转markdown

看到有人需要将扫描pdf文档转markdown&#xff0c;想起之前写的一个小工具。 这个脚本是为了将pdf转成markdown&#xff0c;只需要申请一个智谱的api key&#xff0c;并填到config里&#xff0c;使用的模型是4v flash&#xff0c;免费的&#xff0c;所以可以放心使用。 效果如下…...

Expected SARSA算法详解:python 从零实现

&#x1f9e0; 向所有学习者致敬&#xff01; “学习不是装满一桶水&#xff0c;而是点燃一把火。” —— 叶芝 我的博客主页&#xff1a; https://lizheng.blog.csdn.net &#x1f310; 欢迎点击加入AI人工智能社区&#xff01; &#x1f680; 让我们一起努力&#xff0c;共创…...

SALOME源码分析: JobManager

本文分析SALOME中的JobManager模块。 注1&#xff1a;限于研究水平&#xff0c;分析难免不当&#xff0c;欢迎批评指正。注2&#xff1a;文章内容会不定期更新。 一、核心组件 二、关键流程 三、FAQs 网络资料 Introduction: What is the JOBMANAGER ?...

冯·诺依曼体系:现代计算机的底层逻辑与百年传承

在智能手机流畅运行复杂游戏、超级计算机模拟气候变化的今天&#xff0c;很少有人会想到&#xff0c;驱动这些神奇机器运转的核心架构&#xff0c;依然遵循着70多年前提出的设计理念。这就是由匈牙利裔美国科学家约翰冯诺依曼&#xff08;John von Neumann&#xff09;奠定的冯…...

10 种微服务设计模式

微服务的优势与挑战 在详细介绍设计模式之前&#xff0c;我觉得有必要先重申下微服务的概念以及它带来的挑战。 微服务是大型应用程序的一个小型、可独立部署的组件&#xff0c;专注于特定功能。每个微服务都运行自己的进程&#xff0c;通常通过 API 与其他服务进行通信&…...

深入拆解 MinerU 解析处理流程

概述 MinerU更新频率也相当频繁,在短短一个月内,更新了10个小版本。 本文结合最新版本v1.3.10,深入拆解下它进行文档解析时的内部操作细节。 MinerU仓库地址:https://github.com/opendatalab/MinerU 环境准备 在之前的文章中,已经安装了magic-pdf(MinerU的解析包名),…...

Nginx部署Vue+ElementPlus应用案例(基于腾讯云)

案例代码链接&#xff1a;https://download.csdn.net/download/ly1h1/90735035 1.参考链接&#xff1a; 基于以下两个链接的参考&#xff0c;创建项目 1.1.基于Vue3前端项目创建-CSDN博客 1.2.基于Vue3引入ElementPlus_vue如何引入elementplus-CSDN博客 2.修改main.js&#…...

设计模式简述(十六)门面模式

门面模式 描述基本组件 描述 门面模式是一种概念相对简单的设计模式。 其核心思想就是&#xff1a;封装内部子系统的复杂调用&#xff0c;提供一个门面对象供外部调用。 基本组件 定义子系统对象&#xff08;这里做了简化&#xff0c;没有声明抽象&#xff09; public clas…...

云原生后端:构建高效、可扩展的现代后端架构

📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 随着云计算技术的迅猛发展,云原生(Cloud Native)架构已经成为现代软件开发的核心趋势。云原生后端指的是在云环境中构建和部署的后端系统,这些系统具有弹性、可扩展性、自动化运维等特性,能够更…...

基于bert的情感分析程序

文章目录 任务介绍数据概览注意事项数据处理代码准备模型构建与训练模型类构建数据集构建数据批处理模型参数查看模型训练结果推理与评估模型推理准确率评估附录任务介绍 在当今信息爆炸的时代,互联网上充斥着海量的文本数据,如社交媒体评论、产品评价、新闻报道等。这些文本…...

情境领导理论——AI与思维模型【89】

一、定义 情境领导理论思维模型是一种强调领导者应根据下属的成熟度&#xff08;包括工作能力和工作意愿两个方面&#xff09;来调整领导风格&#xff0c;以实现有效领导的动态理论。该模型认为&#xff0c;没有一种放之四海而皆准的领导方式&#xff0c;领导者的行为要与下属…...

WPF之ProgressBar控件详解

文章目录 1. ProgressBar控件简介2. ProgressBar的基本属性和用法2.1 基本属性2.2 基本用法2.3 代码中修改进度 3. 确定与不确定模式3.1 确定模式&#xff08;Determinate&#xff09;3.2 不确定模式&#xff08;Indeterminate&#xff09; 4. 在多线程环境中更新ProgressBar4.…...

计算机网络01-网站数据传输过程

局域网&#xff1a; 覆盖范围小&#xff0c;自己花钱买设备&#xff0c;宽带固定&#xff0c;自己维护&#xff0c;&#xff0c;一般长度不超过100米&#xff0c;&#xff0c;&#xff0c;带宽也比较固定&#xff0c;&#xff0c;&#xff0c;10M&#xff0c;&#xff0c;&…...

泰迪杯特等奖案例学习资料:基于边缘计算与多模态融合的温室传感器故障自诊断系统设计

(第十四届泰迪杯数据挖掘挑战赛A题特等奖案例解析) 一、案例背景与核心挑战 1.1 应用场景与行业痛点 在现代智能温室中,传感器网络是环境调控的核心依据,但其长期运行面临以下挑战: 数据异常频发: 传感器老化:温湿度传感器SHT35的精度在连续使用2年后可能漂移1℃。 环…...

力扣面试150题--分隔链表

day 39 题目描述 思路 遍历链表&#xff0c;每一个点与值比较&#xff0c;比值小就继续&#xff0c;比值大就放到链表尾部即可 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int…...

Shell 脚本基础

一、Shell 简介 1.Shell 的定义与作用 Shell&#xff0c;通常被称为命令行解释器 (Command Line Interpreter)&#xff0c;是用户 &#x1f464; 与 Linux/Unix 操作系统内核进行交互 ↔️ 的“桥梁” &#x1f309;。它扮演着翻译官 &#x1f5e3;️ 的角色&#xff1a; 接…...

【AI面试准备】元宇宙测试:AI+低代码构建虚拟场景压力测试

介绍元宇宙测试&#xff1a;AI低代码构建虚拟场景压力测试&#xff08;如数字孪生工厂&#xff09;。如何快速掌握&#xff0c;以及在实际工作中如何运用。 目录 **元宇宙测试&#xff1a;AI低代码构建虚拟场景压力测试****一、元宇宙测试的核心挑战与需求**1. **元宇宙测试的独…...

【网络层】之IP协议

网络层之IP协议 网络层的作用IP地址不足的问题私网IP和公网IP网段划分传统的网段划分的方法CIDR网段划分路由器的角色理解运营商的角色子网划分的过程 路由表IP协议介绍报文如何分离、交付 网络层的作用 IP协议是网络层的一种典型协议&#xff0c;只要弄清楚了IP协议的作用&…...

AI编译器对比:TVM vs MLIR vs Triton在大模型部署中的工程选择

引言&#xff1a;大模型部署的编译器博弈 随着千亿参数大模型成为常态&#xff0c;推理延迟优化成为系统工程的核心挑战。本文基于NVIDIA A100与Google TPUv4平台&#xff0c;通过BERT-base&#xff08;110M&#xff09;和GPT-2&#xff08;1.5B&#xff09;的实测数据&#x…...

【dify—10】工作流实战——文生图工具

目录 一、创建工作流 应用 二、安装硅基流动 三、配置硅基流动 四、API测试 &#xff08;1&#xff09;进入API文档 &#xff08;2&#xff09;复制curl代码 &#xff08;3&#xff09;Postman测试API 五、 建立文生图工作流 &#xff08;1&#xff09;建立http请求 &…...

企业级分布式 MCP 方案

飞书原文档链接地址&#xff1a;https://ik3te1knhq.feishu.cn/wiki/D8kSwC9tFi61CMkRdd8cMxNTnpg 企业级分布式 MCP 方案 [!TIP] 背景&#xff1a;现阶段 MCP Client 和 MCP Server 是一对一的连接方式&#xff0c;若当前 MCP Server 挂掉了&#xff0c;那么 MCP Client 便不…...

玩转Docker(一):基本概念

容器技术是继大数据和云计算之后又一炙手可热的技术&#xff0c;而且未来相当一段时间内都会非常流行。 本文将对其基本概念和基本使用做出介绍。包括容器生态系统、容器的原理、怎样运行第一个容器、容器技术的概念与实践、Docker镜像等等 目录 一. 鸟瞰容器生态系统 1. 容器…...

Linux系统安装方式+适合初学者的发行版本

Linux系统安装方式适合初学者发行版—目录 一、Linux系统的安装方式1. 物理机直接安装2. 虚拟机安装3. 双系统安装4. Live USB试用5. 云服务器安装 二、适合初学者的Linux发行版1. Ubuntu2. Linux Mint3. Zorin OS4. Pop!_OS5. Elementary OS6. Fedora7. Manjaro 三、选择建议场…...

开启 Spring AI 之旅:从入门到实战

开启 Spring AI 之旅&#xff1a;从入门到实战 引言 在当今人工智能飞速发展的时代&#xff0c;Spring AI 为开发者们提供了一个强大而便捷的工具&#xff0c;用于在 Spring 生态系统中构建 AI 应用程序。本文将为你提供如何开始使用 Spring AI 的详细指南&#xff0c;帮助你…...

python数据分析(七):Pandas 数据变形与重塑

Pandas 数据变形与重塑全面指南 1. 引言 在数据分析过程中&#xff0c;我们经常需要将数据从一种结构转换为另一种结构&#xff0c;以适应不同的分析需求。Pandas 提供了丰富的数据变形与重塑功能&#xff0c;包括旋转(pivot)、堆叠(stack)、融合(melt)等多种操作。本文将详细…...

SX24C01.UG-PXI程控电阻桥板卡

PXI程控电阻桥板卡 概述 简介 程控电阻桥板卡采用4 个可程控精密调节的电阻臂组成桥式电路&#xff0c;通过计算机PXI总线控制继电器通断进行电阻调节&#xff1b;可根据具体情况&#xff0c;方便地选择不同桥路的连接&#xff1b;程控电阻桥板卡支持“1/4 桥”、“半桥”和…...

Python项目源码69:一键解析+csv保存通达信日线数据3.0

Python项目源码39&#xff1a;学生积分管理系统1.0&#xff08;命令行界面Json&#xff09; Python项目源码38&#xff1a;模拟炒股系统2.0&#xff08;tkinterJson&#xff09; Python项目源码35&#xff1a;音乐播放器2.0&#xff08;Tkintermutagen&#xff09; Python项…...