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

学生成绩管理系统(C语言)

 系统分析

1. 主菜单的实现
2. 增加人员功能的实现
3. 删除数据功能的实现
4. 编辑人员功能的实现
5. 排序功能的实现
6. 输出功能
7. 查找信息功能

具体代码

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define SIZE 100000typedef struct  tagStudent
{int n;                    /*顺序号*/int nNum;                 /*学号*/char name[10];            /*姓名*/int iCn;                  /*语文成绩*/int iMaths;               /*数学成绩*/int iEn;                  /*英语成绩*/int iPhy;                 /*物理成绩*/int iCom;                 /*计算机成绩*/float fAvage;             /*平均成绩*/
} Student;Student stu[SIZE];
/*录入数据*/
void Student_Input()
{ int i,p;  FILE *fp;fp=fopen("studentfile.dat","wb");                      for(i=0;i<SIZE;i++){ printf("\n\r请输入序号i(当输入i=-1时,返回),i=",i++);scanf("%d",&i);if(i==-1|| i ==0)               {fclose(fp);       return;}else                                      { printf("\n\r请输入学号(数字型):");scanf("%d",&stu[i].nNum);printf("\n\r请输入姓名(字符型):");scanf("%s",stu[i].name);printf("\n\r请输入语文成绩(0~100):");scanf("%d",&stu[i].iCn);printf("\n\r请输入数学成绩(0~100):");scanf("%d",&stu[i].iMaths);printf("\n\r请输入英语成绩:(0~100)");scanf("%d",&stu[i].iEn);printf("\n\r请输入物理成绩:(0~100)");scanf("%d",&stu[i].iPhy);printf("\n\r请输入计算机成绩(0~100):");scanf("%d",&stu[i].iCom);stu[i].fAvage=(stu[i].iCn+stu[i].iMaths+stu[i].iEn+stu[i].iPhy+stu[i].iCom)/5.0;stu[i].n=i+1;fwrite(&stu[i],sizeof(Student),1,fp);}}fclose(fp);
}/*输出数据*/
void Student_ListOut()
{FILE *fp;int i;fp=fopen("studentfile.dat","rb");                       printf("***********************************************************************\n");printf("    成绩列表\n");printf("-----------------------------------------------------------------------\n");printf("序号  学号     姓名    语文    数学    英语    物理    计算机    平均\n");printf("-----------------------------------------------------------------------\n");for(i=0;fread(&stu[i],sizeof(Student),1,fp)==1;i++){printf("%d%8d%8s%8d%8d%8d%8d%8d%10.2f\n",stu[i].n,stu[i].nNum,stu[i].name,stu[i].iCn,stu[i].iMaths,stu[i].iEn,stu[i].iPhy,stu[i].iCom,stu[i].fAvage);}printf("-----------------------------------------------------------------------\n");fclose(fp);
}/*查找数据*/
void Student_Search()
{FILE *fp;int i,num;fp=fopen("studentfile.dat","rb");    rewind(fp);printf("请输入要查找的学号:");scanf("%d",&num);printf("***********************************************************************\n");printf("    查询结果\n");printf("-----------------------------------------------------------------------\n");printf("序号  学号     姓名    语文    数学    英语    物理    计算机    平均\n");printf("-----------------------------------------------------------------------\n");for(i=0;i<=SIZE;i++)if(stu[i].nNum==num){printf("%d%8d%8s%8d%8d%8d%8d%8d%10.2f\n",stu[i].n,stu[i].nNum,stu[i].name,stu[i].iCn,stu[i].iMaths,stu[i].iEn,stu[i].iPhy,stu[i].iCom,stu[i].fAvage);}printf("-----------------------------------------------------------------------\n");printf("***********************************************************************\n");fclose(fp);
}/*增加数据*/
void Student_Add()
{int i,s;FILE *fp;fp=fopen("studentfile.dat","ab+");    rewind(fp);printf("***********************************************************************\n");printf("      成绩列表\n");printf("-----------------------------------------------------------------------\n");printf("序号  学号     姓名    语文    数学    英语    物理    计算机    平均\n");printf("-----------------------------------------------------------------------\n");for(i=0;fread(&stu[i],sizeof(Student),1,fp)==1;i++){printf("%d%8d%8s%8d%8d%8d%8d%8d%10.2f\n",stu[i].n,stu[i].nNum,stu[i].name,stu[i].iCn,stu[i].iMaths,stu[i].iEn,stu[i].iPhy,stu[i].iCom,stu[i].fAvage);}printf("***********************************************************************\n");s=i;for(i=s;i<SIZE;i++){printf("输入序号i(当输入i=-1时,返回),i=",i);scanf("%d",&i);if(i==-1|| i ==0)                                  {fclose(fp);return;}else{printf("\n\r请输入学号(数字型):");scanf("%d",&stu[i].nNum);printf("\n\r请输入姓名(字符型):");scanf("%s",stu[i].name);printf("\n\r请输入语文成绩(0~100):");scanf("%d",&stu[i].iCn);printf("\n\r请输入数学成绩(0~100):");scanf("%d",&stu[i].iMaths);printf("\n\r请输入英语成绩:(0~100)");scanf("%d",&stu[i].iEn);printf("\n\r请输入物理成绩:(0~100)");scanf("%d",&stu[i].iPhy);printf("\n\r请输入计算机成绩(0~100):");scanf("%d",&stu[i].iCom);stu[i].fAvage=(stu[i].iCn+stu[i].iMaths+stu[i].iEn+stu[i].iPhy+stu[i].iCom)/5.0;stu[i].n=i+1;fwrite(&stu[i],sizeof(Student),1,fp);printf("%d%8d%8s%8d%8d%8d%8d%8d%10.2f\n",stu[i].n,stu[i].nNum,stu[i].name,stu[i].iCn,stu[i].iMaths,stu[i].iEn,stu[i].iPhy,stu[i].iCom,stu[i].fAvage);}}fclose(fp);
}
/*删除数据*/
void Student_Delete()
{ FILE *fp;int i,num,n;int total =0;int flag=0;    fp=fopen("studentfile.dat","rb");printf("***********************************************************************\n");printf("      成绩列表\n");printf("-----------------------------------------------------------------------\n");printf("序号  学号     姓名    语文    数学    英语    物理    计算机    平均\n");printf("-----------------------------------------------------------------------\n");for(i=0;fread(&stu[i],sizeof(Student),1,fp)==1;i++){printf("%d%8d%8s%8d%8d%8d%8d%8d%10.2f\n",stu[i].n,stu[i].nNum,stu[i].name,stu[i].iCn,stu[i].iMaths,stu[i].iEn,stu[i].iPhy,stu[i].iCom,stu[i].fAvage);}printf("-----------------------------------------------------------------------\n");printf("***********************************************************************\n");fclose(fp);total = i-1;printf("请输入要删除学生的学号:");scanf("%d",&num);for(i=0;i<=SIZE;i++)if(stu[i].nNum==num){printf("***********************************************************************\n");printf("要删除的学生信息\n");printf("-----------------------------------------------------------------------\n");printf("序号  学号     姓名    语文    数学    英语    物理    计算机    平均\n");printf("-----------------------------------------------------------------------\n");printf("%d%8d%8s%8d%8d%8d%8d%8d%10.2f\n",stu[i].n,stu[i].nNum,stu[i].name,stu[i].iCn,stu[i].iMaths,stu[i].iEn,stu[i].iPhy,stu[i].iCom,stu[i].fAvage);printf("-----------------------------------------------------------------------\n");printf("***********************************************************************\n");n=i+1;flag=1;break;}if(flag==0){printf("***********************************************************************\n");printf("    输入错误!\n");printf("    请返回!\n");printf("***********************************************************************\n");return;}printf("\n\n\n");  for(i=n;i<=total;i++){memcpy(&stu[i-1],&stu[i],sizeof(Student));}memset(&stu[total],0,sizeof(Student));fp=fopen("studentfile.dat","wb+");for(i=0;i<total;i++){fwrite(&stu[i],sizeof(Student),1,fp);}    fclose(fp);fp=fopen("studentfile.dat","rb");printf("***********************************************************************\n");printf("当前成绩列表\n");printf("-----------------------------------------------------------------------\n");printf("序号  学号     姓名    语文    数学    英语    物理    计算机    平均\n");printf("-----------------------------------------------------------------------\n");for(i=0;fread(&stu[i],sizeof(Student),1,fp)==1;i++){printf("%d%8d%8s%8d%8d%8d%8d%8d%10.2f\n",stu[i].n,stu[i].nNum,stu[i].name,stu[i].iCn,stu[i].iMaths,stu[i].iEn,stu[i].iPhy,stu[i].iCom,stu[i].fAvage);}printf("-----------------------------------------------------------------------\n");printf("***********************************************************************\n");fclose(fp);
}
/*修改数据*/
void Student_Change()
{ FILE *fp;int i,num,n;int flag=0;    printf("请输入要修改学生的学号:");scanf("%d",&num);for(i=0;i<=SIZE;i++)if(stu[i].nNum==num){printf("***********************************************************************\n");printf("      成绩列表\n");printf("-----------------------------------------------------------------------\n");printf("序号  学号     姓名    语文    数学    英语    物理    计算机    平均\n");printf("-----------------------------------------------------------------------\n");printf("%d%8d%8s%8d%8d%8d%8d%8d%10.2f\n",stu[i].n,stu[i].nNum,stu[i].name,stu[i].iCn,stu[i].iMaths,stu[i].iEn,stu[i].iPhy,stu[i].iCom,stu[i].fAvage);printf("-----------------------------------------------------------------------\n");printf("***********************************************************************\n");n=i+1;flag=1;break;}if(flag==0){printf("***********************************************************************\n");printf("    输入错误!\n");printf("    请返回!\n");printf("***********************************************************************\n");return;}printf("\n\n\n");  fp=fopen("studentfile.dat","rb+");fseek(fp,n*sizeof(Student),0);printf("\n\r请输入学号(数字型):");scanf("%d",&stu[i].nNum);printf("\n\r请输入姓名(字符型):");scanf("%s",stu[i].name);printf("\n\r请输入语文成绩(0~100):");scanf("%d",&stu[i].iCn);printf("\n\r请输入数学成绩(0~100):");scanf("%d",&stu[i].iMaths);printf("\n\r请输入英语成绩:(0~100)");scanf("%d",&stu[i].iEn);printf("\n\r请输入物理成绩:(0~100)");scanf("%d",&stu[i].iPhy);printf("\n\r请输入计算机成绩(0~100):");scanf("%d",&stu[i].iCom);stu[i].fAvage=(stu[i].iCn+stu[i].iMaths+stu[i].iEn+stu[i].iPhy+stu[i].iCom)/5.0;stu[i].n=i+1;fwrite(&stu[i],sizeof(Student),1,fp);fclose(fp);fp=fopen("studentfile.dat","rb");printf("***********************************************************************\n");printf("      成绩列表\n");printf("-----------------------------------------------------------------------\n");printf("序号  学号     姓名    语文    数学    英语    物理    计算机    平均\n");printf("-----------------------------------------------------------------------\n");for(i=0;fread(&stu[i],sizeof(Student),1,fp)==1;i++){printf("%d%8d%8s%8d%8d%8d%8d%8d%10.2f\n",stu[i].n,stu[i].nNum,stu[i].name,stu[i].iCn,stu[i].iMaths,stu[i].iEn,stu[i].iPhy,stu[i].iCom,stu[i].fAvage);}printf("-----------------------------------------------------------------------\n");printf("***********************************************************************\n");fclose(fp);
}/*成绩排序*/
void Student_Order()
{int i,j,n;FILE *fp;Student t;fp=fopen("studentfile.dat","rb");printf("***********************************************************************\n");printf("      成绩列表\n");printf("-----------------------------------------------------------------------\n");printf("序号  学号     姓名    语文    数学    英语    物理    计算机    平均\n");printf("-----------------------------------------------------------------------\n");for(i=0;fread(&stu[i],sizeof(Student),1,fp)==1;i++){printf("%d%8d%8s%8d%8d%8d%8d%8d%10.2f\n",stu[i].n,stu[i].nNum,stu[i].name,stu[i].iCn,stu[i].iMaths,stu[i].iEn,stu[i].iPhy,stu[i].iCom,stu[i].fAvage);}printf("-----------------------------------------------------------------------\n");printf("***********************************************************************\n");fclose(fp);n=i;for(i=0;i<n;i++)for(j=i+1;j<n;j++)if(stu[i].fAvage<stu[j].fAvage){t=stu[i];stu[i]=stu[j];stu[j]=t;}fp=fopen("studentfile.dats","wb");printf("\n\n\n");printf("***********************************************************************\n");printf("      成绩列表\n");printf("-----------------------------------------------------------------------\n");printf("序号  学号     姓名    语文    数学    英语    物理    计算机    平均\n");printf("-----------------------------------------------------------------------\n");for(i=0;i<n;i++){printf("%d%8d%8s%8d%8d%8d%8d%8d%10.2f\n",stu[i].n,stu[i].nNum,stu[i].name,stu[i].iCn,stu[i].iMaths,stu[i].iEn,stu[i].iPhy,stu[i].iCom,stu[i].fAvage);fwrite(&stu[i],sizeof(Student),1,fp);}printf("***********************************************************************\n");fclose(fp);
}
/*主函数*/
main()
{int n;for(;;){printf("\n");printf("/******************************************\\\n");printf("*                                          *\n");printf("*             学生信息管理系统             *\n");printf("*                  主菜单                  *\n");printf("*                                          *\n");printf("*                1.录入数据                *\n");printf("*                2.删除数据                *\n");printf("*                3.输出数据                *\n");printf("*                4.查找数据                *\n");printf("*                5.增加数据                *\n");printf("*                6.修改数据                *\n");printf("*                7.成绩排序                *\n");  printf("*                8.退出系统                *\n"); printf("*                                          *\n");printf("\\******************************************/\n\n");printf("请输入选择项(1-8):");scanf("%d",&n);printf("\n\n\n\n");if(n>0&&n<=8){switch(n){case 1:Student_Input();break;case 2:Student_Delete();break;case 3:Student_ListOut();break;case 4:Student_Search();break;case 5:Student_Add();break;case 6:Student_Change();break;case 7:Student_Order();break;  case 8:exit(0);  }}else {printf("***********************************************************************\n");printf("*                                                                      *\n");printf("*                             按任意键                                *\n");printf("*                               退出!                                 *\n");printf("*                                                                      *\n");printf("***********************************************************************\n");break;}}
}

相关文章:

学生成绩管理系统(C语言)

系统分析 1. 主菜单的实现 2. 增加人员功能的实现 3. 删除数据功能的实现 4. 编辑人员功能的实现 5. 排序功能的实现 6. 输出功能 7. 查找信息功能 具体代码 #include <stdio.h> #include <string.h> #include <stdlib.h> #define SIZE 100000typedef struc…...

C语言 通讯录管理 完整代码

这份代码&#xff0c;是我从网上找的。目前是能运行。我正在读。有些不懂的地方&#xff0c;等下再记录下来。 有些地方的命名&#xff0c;还需要重新写一下。 比如: PersonInfo* info &address_book->all_address[address_book->size]; 应该改为&#xff1a; Perso…...

2024北京国际智能工厂及自动化展览会亮点前瞻

随着“工业创新&#xff0c;智造未来”的浪潮席卷而来&#xff0c;2024年度北京国际智能工厂及自动化与工业装配展览会定于8月1日至3日在中国国际展览中心&#xff08;顺义新馆&#xff09;盛大开幕。本次展会汇聚了智能制造与自动化技术的最新成果&#xff0c;通过三展联动的创…...

《网络安全等级保护制度详解》

网络安全等级保护制度是我国网络安全领域的一项重要制度&#xff0c;旨在保障网络安全&#xff0c;维护国家安全、社会秩序和公共利益。 网络安全等级保护制度主要包含以下几个关键方面&#xff1a; 等级划分 根据信息系统在国家安全、经济建设、社会生活中的重要程度&#xff…...

使用Wanderboat AI 来规划到巴黎的旅行计划

​ Wanderboat AI 平台是一个由 GPT-4 驱动的智能旅行规划工具&#xff0c;旨在通过自然对话和多模式互动&#xff0c;为用户提供个性化的旅行行程。以下是该平台的架构和使用方法&#xff1a; 平台架构 GPT-4 驱动&#xff1a;平台利用 GPT-4 的强大自然语言处理能力&#x…...

基于YOLO8的目标检测系统:开启智能视觉识别之旅

文章目录 在线体验快速开始一、项目介绍篇1.1 YOLO81.2 ultralytics1.3 模块介绍1.3.1 scan_task1.3.2 scan_taskflow.py1.3.3 target_dec_app.py 二、核心代码介绍篇2.1 target_dec_app.py2.2 scan_taskflow.py 三、结语 在线体验 基于YOLO8的目标检测系统 基于opencv的摄像头…...

实验07 接口测试postman

目录 知识点 1 接口测试概念 1.1为什么要做接口测试 1.2接口测试的优点 1.3接口测试概念 1.4接口测试原理和目的 2 接口测试内容 2.1测什么 2.1.1单一接口 2.1.2组合接口 2.1.3结构检查 2.1.4调用方式 2.1.5参数格式校验 2.1.6返回结果 2.2四大块 2.2.1功能逻辑…...

C++常用但难记的语法

模板函数的声明和定义必须在同一个文件中。 C中每一个对象所占用的空间大小&#xff0c;是在编译的时候就确定的&#xff0c;在模板类没有真正的被使用之前&#xff0c;编译器是无法知道&#xff0c;模板类中使用模板类型的对象的所占用的空间的大小的。只有模板被真正使用的时…...

Qt 快速保存配置的方法

Qt 快速保存配置的方法 一、概述二、代码1. QFileHelper.cpp2. QSettingHelper.cpp 三、使用 一、概述 这里分享一下&#xff0c;Qt界面开发时&#xff0c;快速保存界面上一些参数配置的方法。 因为我在做实验的时候&#xff0c;界面上可能涉及到很多参数的配置&#xff0c;我…...

RKE部署k8s

移除docker&#xff08;非必要&#xff09; rm -rf /etc/docker rm -rf /run/docker rm -rf /var/lib/dockershim rm -rf /var/lib/docker yum list installed | grep docker yum remove ***rke部署k8s集群 cat > /etc/sysctl.conf << EFO net.ipv4.ip_forward 1 n…...

从0开始的STM32HAL库学习8

PWM控制舵机 配置环境 1. 选择TIM2时钟 2.选择内部时钟模式&#xff0c;打开通道二 3.分频系数PSC:72-1 自动重装寄存器ARR:20000-1 输出比较寄存器 CCR:500~2500( 后面可调整 ) 脉冲选择500后期可以改 编辑代码 调用启动函数 HAL_TIM_PWM_Start(&htim2,TIM_CHANN…...

微信小程序数组绑定使用案例(一)

微信小程序数组绑定案例&#xff0c;修改数组中的值 1.Wxml 代码 <view class"list"><view class"item {{item.ischeck?active:}}" wx:for"{{list}}"><view class"title">{{item.name}} <text>({{item.id}…...

Kudu节点数规划

作者&#xff1a;南墨 一、概述 由于Kudu是Hadoop生态的一部分&#xff08;虽然它不依赖于Hadoop生态系统&#xff09;&#xff0c;因此大多数实际应用场景需要的不仅仅是Kudu&#xff1b;为了输入数据&#xff0c;可能需要Kafka、StreamSets或Spark Streaming&#xff1b;对…...

flutter 充电气泡

前言&#xff1a; 之前一直看到 有手机充电的时候 有气泡从Type-C 的位置冒泡上来 慢慢上移&#xff0c; 然后和上面的圆圈 会和&#xff0c;感觉还是挺好看的。今天试了下用 Flutter 实现了一版本。大致效果如下&#xff0c;而且气泡 和 气泡直接还可以粘黏 实现原理&#xff…...

【C++】deque以及优先级队列

容器适配器 deque的介绍deque的原理介绍 priority_queue的介绍与使用priority_queue的介绍priority_queue的使用constructor&#xff08;构造函数&#xff09;emptypushpoptopsize priority_queue的模拟实现 仿函数何为适配器容器适配器deque的缺陷选择deque作为适配器的理由ST…...

手机如何播放电脑的声音?

准备工具&#xff1a; 有线耳机&#xff0c;手机&#xff0c;电脑&#xff0c;远控软件 1.有线耳机插电脑上 2.电脑安装pc版远控软件&#xff0c;手机安装手机端控制版远控软件 3.手机控制电脑开启声音控制 用手机控制电脑后&#xff0c;打开声音控制&#xff0c;电脑播放视频…...

系统架构设计师教程 第3章 信息系统基础知识-3.6 办公自动化系统(OAS)-解读

系统架构设计师教程 第3章 信息系统基础知识-3.6 办公自动化系统&#xff08;OAS&#xff09; 3.6.1 办公自动化系统的概念3.6.1.1 办公活动3.6.1.1 办公自动化的概念 3.6.2 办公自动化系统的功能3.6.2.1 事务处理3.6.2.1.1 单机系统3.6.2.1.2 多机系统 3.6.2.2 信息管理3.6.2.…...

解决Element UI 表格组件懒加载数据刷新问题

一、问题描述 element ui的table组件设置成懒加载时&#xff0c;遇到数据表格需要更新、删除等操作&#xff0c;子节点不会自动更新。 二、解决思路 刷新数据&#xff0c;就是重新调用load&#xff08;&#xff09;&#xff0c;通过map记录已展开的节点&#xff0c;需要刷新…...

【系统架构设计 每日一问】二 MySql主从复制延迟可能是什么原因,怎么解决

主从复制的架构设计如下图所示&#xff1a; 同步原理 具体到数据库之间是通过binlog和复制线程操作的&#xff1a; Master的更新事件(update、insert、delete)会按照顺序写入bin-log中。当Slave连接到Master的后,Master机器会为Slave开启&#xff0c;binlog dump线程,该线程…...

Ubuntu Grub引导优化

配置文件 sudo vim /etc/default/grub修改参数 引导菜单等待时间 GRUB_TIMEOUT3自动引导上次选择的系统 如果安装了双系统或多系统&#xff0c;可以考虑配置此参数。 # 此参数默认值为0&#xff0c;引导第一个引导项 GRUB_DEFAULTsaved# 此参数默认没有&#xff0c;需要手…...

浅谈 React Hooks

React Hooks 是 React 16.8 引入的一组 API&#xff0c;用于在函数组件中使用 state 和其他 React 特性&#xff08;例如生命周期方法、context 等&#xff09;。Hooks 通过简洁的函数接口&#xff0c;解决了状态与 UI 的高度解耦&#xff0c;通过函数式编程范式实现更灵活 Rea…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...

Netty从入门到进阶(二)

二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架&#xff0c;用于…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)

macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 &#x1f37a; 最新版brew安装慢到怀疑人生&#xff1f;别怕&#xff0c;教你轻松起飞&#xff01; 最近Homebrew更新至最新版&#xff0c;每次执行 brew 命令时都会自动从官方地址 https://formulae.…...

深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏

一、引言 在深度学习中&#xff0c;我们训练出的神经网络往往非常庞大&#xff08;比如像 ResNet、YOLOv8、Vision Transformer&#xff09;&#xff0c;虽然精度很高&#xff0c;但“太重”了&#xff0c;运行起来很慢&#xff0c;占用内存大&#xff0c;不适合部署到手机、摄…...

水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关

在水泥厂的生产流程中&#xff0c;工业自动化网关起着至关重要的作用&#xff0c;尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关&#xff0c;为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多&#xff0c;其中不少设备采用Devicenet协议。Devicen…...

【Kafka】Kafka从入门到实战:构建高吞吐量分布式消息系统

Kafka从入门到实战:构建高吞吐量分布式消息系统 一、Kafka概述 Apache Kafka是一个分布式流处理平台,最初由LinkedIn开发,后成为Apache顶级项目。它被设计用于高吞吐量、低延迟的消息处理,能够处理来自多个生产者的海量数据,并将这些数据实时传递给消费者。 Kafka核心特…...