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

这个学生成绩管理系统使用C语言编写,具有多项功能以方便管理学生信息和成绩。首先从文件中读取数据到系统中,并提供了多种功能(增删改查等)选项以满足不同的需求。

学生成绩管理系统功能:

  1. 显示学生信息
  2. 增加学生信息
  3. 删除学生信息
  4. 修改学生信息
  5. 查询学生信息
  6. 总分降序排序学生成绩
  7. 统计学生平均成绩
  8. 统计每科平均成绩
  9. 统计信息录入系统中人数
  10. 输出总成绩最高的学生信息
  11. 退出

运行示例:
请添加图片描述运行之后要自己先往系统里面增加学生数据哦

请添加图片描述

注意:因为设涉及到文件操作,需要把下面文件读取和保存函数中的文件位置修改为自己所要保存的文件位置或者按照如下操作建立文件:

  1. 打开D盘新建一个文件夹名字叫 学生成绩管理系统 (名字要一模一样哦)
    请添加图片描述

  2. 在该文件夹中新建文本文档命名为 xscjglxt (如下图:)
    在这里插入图片描述

目录

  • 1.函数声明
  • 2.结构体和全局变量定义
  • 3.主函数和主菜单函数
  • 4.显示学生信息
  • 5.增加学生信息
  • 6.删除学生信息
  • 7.修改学生信息
  • 8.查询学生信息
  • 9.总分降序排序学生成绩
  • 10.统计学生平均成绩
  • 11.统计每科平均成绩
  • 12.统计信息录入系统中人数
  • 13.输出总成绩最高的学生信息
  • 14.从文件中读取数据(*==注意这里的文件位置要改为自己的==)
  • 15.将数据保存至文件(*==注意这里的文件位置要改为自己的==)
  • 16.源代码

1.函数声明

void regist();//登录界面
void findid();//按照学号索引查询
void show();//查看所有的学生成绩信息
void del();//删除学生信息
void edit();//修改学生信息
void add();//添加学生信息
void mysort();//总分降序排序
void avegxs();//查询学生成绩平均值大于90的学生成绩
void avegkm();//查询学生成绩平均值小于60的学生成绩
void save();//保存学生信息到文件
void load();//从文件读取学生信息到内存
void menu();//菜单总录入人数
void maxn();//输出系统中总成绩最大的学生信息

2.结构体和全局变量定义

typedef struct student
{char id[15];//学生学号char name[50];//学生姓名char sex[10];//学生性别char great[50];//学生班级int E,M,Y;//学生的英语、数学、语文成绩float ave;//学生的平均成绩int all;//学生的总成绩
}student;student students[100];
static int length;//保存当前系统中的人数

3.主函数和主菜单函数

主函数运行之后首先从文件中读取学生信息到系统当中,然后显示系统菜单提供多种功能让用户选择。

//主函数
int main()
{printf("登陆成功!");load();//从文件中读取信息到内测menu();//菜单
}
void menu()//菜单
{while(1){regist();int n;scanf("%d",&n);switch(n){case 1:show();break;case 2:add();break;case 3:del();break;case 4:edit();break;case 5:findid();break;case 6:mysort();break;case 7:avegxs();break;case 8:avegkm();break;case 9:cens();break;case 10:maxn();break;case 11:exit(0);}save();printf("按任意键继续\n");getchar();getchar();system("cls");}}
void regist()//登录界面
{printf("\n\n\t*****************************学生信息管理系统******************************\n");printf("\t*                              1.显示学生信息                             *|\n");printf("\t*                              2.增加学生信息                             *|\n");printf("\t*                              3.删除学生信息                             *|\n");printf("\t*                              4.修改学生信息                             *|\n");printf("\t*                              5.查询学生信息                             *|\n");printf("\t*                              6.总分降序排序学生成绩                     *|\n");printf("\t*                              7.统计学生平均成绩                         *|\n");printf("\t*                              8.统计每科平均成绩                         *|\n");printf("\t*                              9.统计信息录入系统中人数                   *|\n");printf("\t*                              10.输出总成绩最高的学生信息                *|\n");printf("\t*                              11.退出                                    *|\n");printf("\t***************************************************************************\n");printf("请输入你要进行的操作:\n");
}

4.显示学生信息

这里会将系统中所有的学生信息显示到屏幕上

void show()//查看所有的学生成绩信息
{printf("------------------------------------------------------------------------------------------------------------------------\n");printf("学生姓名|\t学号\t|\t班级\t| 性别 | 语文成绩 | 数学成绩 | 英语成绩 | 总成绩 \n");printf("------------------------------------------------------------------------------------------------------------------------\n");for(int i =0;i<length;i++){printf("\n%s\t|  %s\t|  %s\t|  %s  |    %d    |    %d    |    %d    |    %d    \n",students[i].name,students[i].id,students[i].great,students[i].sex,students[i].Y,students[i].M,students[i].E,students[i].all);printf("------------------------------------------------------------------------------------------------------------------------\n");}
}

5.增加学生信息

增加学生信息时会进行判定是否系统当中内存已满或者该学号已存在则不可以添加该学生信息(学号唯一)。

void add()//添加学生信息
{int flag=0;if(length>=100){printf("该班级人数已满!!!");}else{printf("请输入学生信息:\n");printf("学生姓名:");char op[50];scanf("%s",op);printf("学生学号:");char opp[50];scanf("%s",opp);for(int i=0;i<length;i++){if(strcmp(opp,students[i].id)==0)flag=1;}if(flag==1){printf("警告!!!该学号已存在!!!请返回修改!!!");return;}strcpy(students[length].name,op);strcpy(students[length].id,opp);printf("学生班级:");scanf("%s",students[length].great);printf("请输入学生性别:");scanf("%s",students[length].sex);printf("语文成绩:");scanf("%d",&students[length].Y);printf("数学成绩:");scanf("%d",&students[length].M);printf("英语成绩:");scanf("%d",&students[length].E);students[length].all=students[length].Y+students[length].M+students[length].E;students[length].ave=((float)(students[length].Y+students[length].M+students[length].E)/3);length++;}
}

6.删除学生信息

根据学生学号对学生信息进行删除

void del()//删除学生信息
{printf("请输入该学生的学号:\n");char op[50];int flag=0;scanf("%s",op);for(int i=0;i<length;i++){if(strcmp(students[i].id,op)==0){for(int j=i;j<length-1;j++)students[j]=students[j+1];flag=1;length--;break;}}if(!flag)printf("不存在该学号学生!!!请重新输入!!!\n");
}

7.修改学生信息

void edit()//修改学生信息
{printf("请输入该学生学号:\n");char op[50];char opp[50];int flag=0;scanf("%s",op);for(int i=0;i<length;i++){if(strcmp(students[i].id,op)==0){printf("请输入该学生新的信息:\n");strcpy(students[i].id,opp);printf("班级:");scanf("%s",students[i].great);printf("性别:");scanf("%s",students[i].sex);printf("语文成绩:");scanf("%d",&students[i].Y);printf("数学成绩:");scanf("%d",&students[i].M);printf("英语成绩:");scanf("%d",&students[i].E);students[i].ave=(students[i].Y+students[i].E+students[i].M)/3;students[i].all=students[i].Y+students[i].E+students[i].M;flag=1;break;}}if(flag==0)printf("该学生不存在\n");
}

8.查询学生信息

根据学号对学生信息进行查询

void findid()//按照学号索引查询
{printf("请输入学生学号:\n");char op[15];int flag=0;scanf("%s",op);for(int i=0;i<length;i++){if(strcmp(students[i].id,op)==0){printf("------------------------------------------------------------------------------------------------------------------------\n");printf("学生姓名|\t学号\t|\t班级\t| 性别 | 语文成绩 | 数学成绩 | 英语成绩 | 总成绩 \n");printf("\n%s\t|  %s\t|  %s\t|  %s  |    %d    |    %d    |    %d    |    %d\n",students[i].name,students[i].id,students[i].great,students[i].sex,students[i].Y,students[i].M,students[i].E,students[i].all);printf("------------------------------------------------------------------------------------------------------------------------\n");flag=1;}}if(!flag){printf("不存在该学号的学生\n");}
}

9.总分降序排序学生成绩

通过冒泡排序对学生信息按照学生总成绩从高到低进行排序

void mysort()//总分降序排序
{student vis;for(int i=0;i<length;i++)for(int j=0;j<length-i-1;j++){if(students[j].all<students[j+1].all){vis=students[j];students[j]=students[j+1];students[j+1]=vis;}}show();
}

10.统计学生平均成绩

void avegxs()//查询学生成绩平均值
{printf("------------------------------------------------------------------------------------------------------------------------\n");printf("学生姓名|\t学号\t|\t班级\t| 性别 | 语文成绩 | 数学成绩 | 英语成绩 | 平均成绩 \n");printf("------------------------------------------------------------------------------------------------------------------------\n");for(int i=0;i<length;i++){//if(students[i].ave>90)//{printf("\n%s\t|  %s\t|  %s\t|  %s  |    %d    |    %d    |    %d    |    %.2lf    \n",students[i].name,students[i].id,students[i].great,students[i].sex,students[i].Y,students[i].M,students[i].E,students[i].all*1.0/length);printf("------------------------------------------------------------------------------------------------------------------------\n");//}}
}

11.统计每科平均成绩

void avegkm()//查询各门平均值
{printf("------------------------------------------------------------------------------------------------------------------------\n");printf("语文成绩 | 数学成绩 | 英语成绩 \n");printf("------------------------------------------------------------------------------------------------------------------------\n");double ans1=0,ans2=0,ans3=0;for(int i=0;i<length;i++){ans1+=students[i].Y;ans2+=students[i].M;ans3+=students[i].E;}ans1=ans1*1.0/length;ans2=ans2*1.0/length;ans3=ans3*1.0/length;printf("\n%.2lf    |    %.2lf    |    %.2lf    \n",ans1,ans2,ans3);printf("------------------------------------------------------------------------------------------------------------------------\n");}

12.统计信息录入系统中人数

void cens()
{printf("系统中共有%d个人的信息\n",length);
}

13.输出总成绩最高的学生信息

void maxn()//查询学生成绩最高的学生信息
{int vis=students[0].all;for(int i=1;i<length;i++){if(students[i].all>vis)vis=students[i].all;}for(int i=0;i<length;i++){if(students[i].all==vis){printf("------------------------------------------------------------------------------------------------------------------------\n");printf("学生姓名|\t学号\t|\t班级\t| 性别 | 语文成绩 | 数学成绩 | 英语成绩 | 总成绩 \n");printf("------------------------------------------------------------------------------------------------------------------------\n");printf("\n%s\t|  %s\t|  %s\t|  %s  |    %d    |    %d    |    %d    |    %d    \n",students[i].name,students[i].id,students[i].great,students[i].sex,students[i].Y,students[i].M,students[i].E,students[i].all);printf("------------------------------------------------------------------------------------------------------------------------\n");}}
}

14.从文件中读取数据(*注意这里的文件位置要改为自己的)

void load()//从文件读取学生信息到内存
{FILE *fp=fopen("D:\\学生成绩管理系统\\xscjglxt.txt","r");if(fp==NULL){printf("文件打开失败\n");}int i=0;while(fscanf(fp,"%s %s %s %s %d %d %d %f %d\n",students[i].id,students[i].name,students[i].great,students[i].sex,&students[i].Y,&students[i].M,&students[i].E,&students[i].ave,&students[i].all)==9){i++;}length=i;fclose(fp);
}

15.将数据保存至文件(*注意这里的文件位置要改为自己的)

void save()//保存学生信息到文件
{FILE *fp=fopen("D:\\学生成绩管理系统\\xscjglxt.txt","w");for(int i=0;i<length;i++){fprintf(fp,"%s %s %s %s %d %d %d %f %d\n",students[i].id,students[i].name,students[i].great,students[i].sex,students[i].Y,students[i].M,students[i].E,students[i].ave,students[i].all);}fclose(fp);
}

16.源代码

这是博主在两年前大一时写的内容,代码中还有许多不足的地方可以优化,请大佬们谅解。
有问题欢迎联系博主QQ:1187574742

#include<stdio.h>
#include<string.h>
void regist();//登录界面
void findid();//按照学号索引查询
void show();//查看所有的学生成绩信息
void del();//删除学生信息
void edit();//修改学生信息
void add();//添加学生信息
void mysort();//总分降序排序
void avegxs();//查询学生成绩平均值大于90的学生成绩
void avegkm();//查询学生成绩平均值小于60的学生成绩
void save();//保存学生信息到文件
void load();//从文件读取学生信息到内存
void menu();//菜单总录入人数
void maxn();//输出系统中总成绩最大的学生信息
typedef struct student
{char id[15];char name[50];char sex[10];char great[50];int E,M,Y;float ave;int all;
}student;student students[100];
static int length;int main()
{printf("登陆成功!");load();//从文件中读取信息到内侧menu();//菜单
}void regist()//登录界面
{printf("\n\n\t*****************************学生信息管理系统******************************\n");printf("\t*                              1.显示学生信息                             *|\n");printf("\t*                              2.增加学生信息                             *|\n");printf("\t*                              3.删除学生信息                             *|\n");printf("\t*                              4.修改学生信息                             *|\n");printf("\t*                              5.查询学生信息                             *|\n");printf("\t*                              6.总分降序排序学生成绩                     *|\n");printf("\t*                              7.统计学生平均成绩                         *|\n");printf("\t*                              8.统计每科平均成绩                         *|\n");printf("\t*                              9.统计信息录入系统中人数                   *|\n");printf("\t*                              10.输出总成绩最高的学生信息                *|\n");printf("\t*                              11.退出                                    *|\n");printf("\t***************************************************************************\n");printf("请输入你要进行的操作:\n");
}
void findid()//按照学号索引查询
{printf("请输入学生学号:\n");char op[15];int flag=0;scanf("%s",op);for(int i=0;i<length;i++){if(strcmp(students[i].id,op)==0){printf("------------------------------------------------------------------------------------------------------------------------\n");printf("学生姓名|\t学号\t|\t班级\t| 性别 | 语文成绩 | 数学成绩 | 英语成绩 | 总成绩 \n");printf("\n%s\t|  %s\t|  %s\t|  %s  |    %d    |    %d    |    %d    |    %d\n",students[i].name,students[i].id,students[i].great,students[i].sex,students[i].Y,students[i].M,students[i].E,students[i].all);printf("------------------------------------------------------------------------------------------------------------------------\n");flag=1;}}if(!flag){printf("不存在该学号的学生\n");}
}
void show()//查看所有的学生成绩信息
{printf("------------------------------------------------------------------------------------------------------------------------\n");printf("学生姓名|\t学号\t|\t班级\t| 性别 | 语文成绩 | 数学成绩 | 英语成绩 | 总成绩 \n");printf("------------------------------------------------------------------------------------------------------------------------\n");for(int i =0;i<length;i++){printf("\n%s\t|  %s\t|  %s\t|  %s  |    %d    |    %d    |    %d    |    %d    \n",students[i].name,students[i].id,students[i].great,students[i].sex,students[i].Y,students[i].M,students[i].E,students[i].all);printf("------------------------------------------------------------------------------------------------------------------------\n");}
}
void del()//删除学生信息
{printf("请输入该学生的学号:\n");char op[50];int flag=0;scanf("%s",op);for(int i=0;i<length;i++){if(strcmp(students[i].id,op)==0){for(int j=i;j<length-1;j++)students[j]=students[j+1];flag=1;length--;break;}}if(!flag)printf("不存在该学号学生!!!请重新输入!!!\n");
}
void edit()//修改学生信息
{printf("请输入该学生学号:\n");char op[50];char opp[50];int flag=0;scanf("%s",op);for(int i=0;i<length;i++){if(strcmp(students[i].id,op)==0){printf("请输入该学生新的信息:\n");strcpy(students[i].id,opp);printf("班级:");scanf("%s",students[i].great);printf("性别:");scanf("%s",students[i].sex);printf("语文成绩:");scanf("%d",&students[i].Y);printf("数学成绩:");scanf("%d",&students[i].M);printf("英语成绩:");scanf("%d",&students[i].E);students[i].ave=(students[i].Y+students[i].E+students[i].M)/3;students[i].all=students[i].Y+students[i].E+students[i].M;flag=1;break;}}if(flag==0)printf("该学生不存在\n");
}
void add()//添加学生信息
{int flag=0;if(length>=100){printf("该班级人数已满!!!");}else{printf("请输入学生信息:\n");printf("学生姓名:");char op[50];scanf("%s",op);printf("学生学号:");char opp[50];scanf("%s",opp);for(int i=0;i<length;i++){if(strcmp(opp,students[i].id)==0)flag=1;}if(flag==1){printf("警告!!!该学号已存在!!!请返回修改!!!");return;}strcpy(students[length].name,op);strcpy(students[length].id,opp);printf("学生班级:");scanf("%s",students[length].great);printf("请输入学生性别:");scanf("%s",students[length].sex);printf("语文成绩:");scanf("%d",&students[length].Y);printf("数学成绩:");scanf("%d",&students[length].M);printf("英语成绩:");scanf("%d",&students[length].E);students[length].all=students[length].Y+students[length].M+students[length].E;students[length].ave=((float)(students[length].Y+students[length].M+students[length].E)/3);length++;}
}
void mysort()//总分降序排序
{student vis;for(int i=0;i<length;i++)for(int j=0;j<length-i-1;j++){if(students[j].all<students[j+1].all){vis=students[j];students[j]=students[j+1];students[j+1]=vis;}}show();
}
void maxn()//查询学生成绩最高的学生信息
{int vis=students[0].all;for(int i=1;i<length;i++){if(students[i].all>vis)vis=students[i].all;}for(int i=0;i<length;i++){if(students[i].all==vis){printf("------------------------------------------------------------------------------------------------------------------------\n");printf("学生姓名|\t学号\t|\t班级\t| 性别 | 语文成绩 | 数学成绩 | 英语成绩 | 总成绩 \n");printf("------------------------------------------------------------------------------------------------------------------------\n");printf("\n%s\t|  %s\t|  %s\t|  %s  |    %d    |    %d    |    %d    |    %d    \n",students[i].name,students[i].id,students[i].great,students[i].sex,students[i].Y,students[i].M,students[i].E,students[i].all);printf("------------------------------------------------------------------------------------------------------------------------\n");}}
}
void avegxs()//查询学生成绩平均值
{printf("------------------------------------------------------------------------------------------------------------------------\n");printf("学生姓名|\t学号\t|\t班级\t| 性别 | 语文成绩 | 数学成绩 | 英语成绩 | 平均成绩 \n");printf("------------------------------------------------------------------------------------------------------------------------\n");for(int i=0;i<length;i++){//if(students[i].ave>90)//{printf("\n%s\t|  %s\t|  %s\t|  %s  |    %d    |    %d    |    %d    |    %.2lf    \n",students[i].name,students[i].id,students[i].great,students[i].sex,students[i].Y,students[i].M,students[i].E,students[i].all*1.0/length);printf("------------------------------------------------------------------------------------------------------------------------\n");//}}
}
void avegkm()//查询各门平均值
{printf("------------------------------------------------------------------------------------------------------------------------\n");printf("语文成绩 | 数学成绩 | 英语成绩 \n");printf("------------------------------------------------------------------------------------------------------------------------\n");double ans1=0,ans2=0,ans3=0;for(int i=0;i<length;i++){ans1+=students[i].Y;ans2+=students[i].M;ans3+=students[i].E;}ans1=ans1*1.0/length;ans2=ans2*1.0/length;ans3=ans3*1.0/length;printf("\n%.2lf    |    %.2lf    |    %.2lf    \n",ans1,ans2,ans3);printf("------------------------------------------------------------------------------------------------------------------------\n");}
void save()//保存学生信息到文件
{FILE *fp=fopen("D:\\学生成绩管理系统\\xscjglxt.txt","w");for(int i=0;i<length;i++){fprintf(fp,"%s %s %s %s %d %d %d %f %d\n",students[i].id,students[i].name,students[i].great,students[i].sex,students[i].Y,students[i].M,students[i].E,students[i].ave,students[i].all);}fclose(fp);
}
void load()//从文件读取学生信息到内存
{FILE *fp=fopen("D:\\学生成绩管理系统\\xscjglxt.txt","r");if(fp==NULL){printf("文件打开失败\n");}int i=0;while(fscanf(fp,"%s %s %s %s %d %d %d %f %d\n",students[i].id,students[i].name,students[i].great,students[i].sex,&students[i].Y,&students[i].M,&students[i].E,&students[i].ave,&students[i].all)==9){i++;}length=i;fclose(fp);
}
void cens()
{printf("系统中共有%d个人的信息\n",length);
}
void menu()//菜单
{while(1){regist();int n;scanf("%d",&n);switch(n){case 1:show();break;case 2:add();break;case 3:del();break;case 4:edit();break;case 5:findid();break;case 6:mysort();break;case 7:avegxs();break;case 8:avegkm();break;case 9:cens();break;case 10:maxn();break;case 11:exit(0);}save();printf("按任意键继续\n");getchar();getchar();system("cls");}}

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

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

相关文章

使用 C++23 协程实现第一个 co_await 同步风格调用接口--Qt计算文件哈希值

C加入了协程 coroutine的特性&#xff0c;一直没有动手实现过。看了网上很多文章&#xff0c;已经了解了协程作为“可被中断和恢复的函数”的一系列特点。在学习过程中&#xff0c;我发现大多数网上的例子&#xff0c;要不就是在main()函数的控制台程序里演示yeild,await, resu…

Jmeter基础(2) 目录介绍

目录 Jmeter目录介绍bin目录docsextrasliblicensesprintable_docs Jmeter目录介绍 在学习Jmeter之前&#xff0c;需要先对工具的目录有些了解&#xff0c;也会方便后续的学习 bin目录 examplesCSV目录中有CSV样例jmeter.batwindow 启动文件jmeter.shMac/linux的启动文件jmete…

《最新出炉》系列初窥篇-Python+Playwright自动化测试-19-处理鼠标拖拽-中篇

1.简介 上一篇中&#xff0c;主要是介绍了拖拽的各种方法的理论知识以及实践&#xff0c;今天宏哥讲解和分享一下划取字段操作。例如&#xff1a;需要在一堆log字符中随机划取一段文字&#xff0c;然后右键选择摘取功能。 2.划取字段操作 划取字段操作就是在一段文字中随机选…

分布式id实战

目录 常用方式 特征 潜在问题 信息安全 高性能 UUID 雪花算法 数据库生成 美团Leaf方案 Leaf-segment 数据库方案 Leaf-snowflake 方案 常用方式 uuid雪花算法数据库主键 特征 全局唯一趋势递增信息安全 潜在问题 信息安全 如果id连续递增, 容易被爬虫, 批量下…

记录 使用FFMPEG 笔记本摄像头推流

一、使用 FFMPEG 测试摄像头拉流显示 # 获取摄像头名称 ffmpeg -list_devices true -f dshow -i dummy# 我笔记本上的摄像头名称如下 device_pnp_\\?\usb#vid_0408&pid_1020&mi_00#6&199e90f7&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global# 使…

蓝桥杯DP算法——区间DP(C++)

根据题意要求的是将石子合并的最小权值&#xff0c;我们可以根据DP思想使用二维数组f[i,j]来存放所有从第i堆石子到第j堆石子合并成一堆石子的合并方式。 然后由第二个图所示&#xff0c;我们可以将i到j区间分成两个区间&#xff0c;因为将i到j合并成一个区间的前一步一定是合…

戏曲文化苑|戏曲文化苑小程序|基于微信小程序的戏曲文化苑系统设计与实现(源码+数据库+文档)

戏曲文化苑小程序目录 目录 基于微信小程序的戏曲文化苑系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、微信小程序前台 2、管理员后台 &#xff08;1&#xff09;戏曲管理 &#xff08;2&#xff09;公告信息管理 &#xff08;3&#xff09;公告类型管理…

京东前端笔试(附答案解答)

引言 我目前本科大四&#xff0c;正在春招找前端&#xff0c;有大厂内推的友友可以聊一聊&#xff0c;球球给孩子的机会吧。 我整理了一份10w字的前端技术文档&#xff1a;https://qx8wba2yxsl.feishu.cn/docx/Vb5Zdq7CGoPAsZxMLztc53E1n0k?fromfrom_copylink &#xff0c;对…

RabbitMQ监控方法以及核心指标

RabbitMQ监控方法以及核心指标 1. 监控指标采集2. 使用rabbimq插件采集指标2.1 3.8.0之前版本&#xff0c;使用外部插件暴露2.2 3.8.0之后版本&#xff0c;使用内置插件暴露 3. 使用rabbitmq_exporter采集指标3.1 部署rabbitmq_exporter3.2 prometheus采集rabbitmq_exporter的暴…

MacBook的nginx出现13: Permission denied 的问题分析和解决办法

同样的项目代码&#xff0c;电脑从Windows更换到了MacBook&#xff0c;发现网站的样式都没有了&#xff0c;直接访问CSS文件 http://crm.ms-test.cc/toolstatic/css/bootstrap.min.css 发现无法访问。查看Nginx错误日志&#xff1a; 说明是nginx没有权限访问这个CSS文件&#…

LeetCode--代码详解 59. 螺旋矩阵 II

59. 螺旋矩阵 II 题目 给你一个正整数 n &#xff0c;生成一个包含 1 到 n2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;[[1,2,3],[8,9,4],[7,6,5]]示例 2&#xff1a; 输入&a…

Stable Diffusion 模型分享:Indigo Furry mix(人类与野兽的混合)

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十

Recorder 实现语音录制并上传到后端(兼容PC和移动端)

Recorder 首页&#xff1a;https://github.com/xiangyuecn/Recorder 一、安装 npm install recorder-core二、代码部分 1. HTML页面 <template><div><el-inputv-model"ttsText"type"textarea"placeholder"请输入内容"><…

C#写的一个计算DCI-P3色域和SRGB的小工具

文章最后附带分享链接与提取码 方便需要测试屏幕的小伙伴&#xff0c;只需要输入RGB就能得到覆盖率与比率&#xff0c;W计算色温&#xff0c;不测也要写上&#xff0c;不然会报错 链接&#xff1a;https://pan.baidu.com/s/1wdmAwmwiXjNvn1tGsvy0HA 提取码&#xff1a;1234

基于SpringBoot的在线拍卖系统设计与实现(源码+调试+LW+PPT)

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。今天给大家介绍一篇基于SpringBoot的在线拍…

HarmonyOS—使用预览器查看应用/服务效果

DevEco Studio为开发者提供了UI界面预览功能&#xff0c;可以查看应用/服务的UI界面效果&#xff0c;方便开发者随时调整界面UI布局。预览器支持布局代码的实时预览&#xff0c;只需要将开发的源代码进行保存&#xff0c;就可以通过预览器实时查看应用/服务运行效果&#xff0c…

Kotlin filterIsInstance filterNotNull forEach

Kotlin filterIsInstance filterNotNull forEach fun main(args: Array<String>) {val i1 MyItem(1, 1)val i2: MyItem? nullval i3: Int 3val i4 "4"val i5 nullval i6 MyItem(6, 6)val list mutableListOf<Any?>(i1, i2, i3, i4, i5, i6)lis…

学习Markdown

https://shadows.brumm.af 欢迎使用Markdown编辑器 你好&#xff01; 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章&#xff0c;了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些…

Flink中的双流Join

1. Flink中双流Join介绍 Flink版本Join支持类型Join API1.4innerTable/SQL1.5inner,left,right,fullTable/SQL1.6inner,left,right,fullTable/SQL/DataStream Join大体分为两种&#xff1a;Window Join 和 Interval Join 两种。 Window Join又可以根据Window的类型细分为3种…

Video generation models as world simulators-视频生成模型作为世界模拟器

原文地址&#xff1a;Video generation models as world simulators 我们探索在视频数据上进行大规模生成模型的训练。具体来说&#xff0c;我们联合训练文本条件扩散模型&#xff0c;同时处理不同持续时间、分辨率和长宽比的视频和图像。我们利用一个在视频和图像潜在编码的时…