学生成绩管理系统(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.mzph.cn/news/698441.shtml

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

相关文章

《论文阅读》通过识别对话中的情绪原因来提高共情回复的产生 EMNLP 2021

《论文阅读》通过识别对话中的情绪原因来提高共情回复的产生 EMNLP 2021 前言简介方法实现Emotion ReasonerResponse Generator实验结果示例总结前言 亲身阅读感受分享,细节画图解释,再也不用担心看不懂论文啦~ 无抄袭,无复制,纯手工敲击键盘~ 今天为大家带来的是《Improv…

chatGPT 使用随想

一年前 chatGPT 刚出的时候&#xff0c;我就火速注册试用了。 因为自己就是 AI 行业的&#xff0c;所以想看看国际上最牛的 AI 到底发展到什么程度了. 自从一年前 chatGPT 火出圈之后&#xff0c;国际上的 AI 就一直被 OpenAI 这家公司引领潮流&#xff0c;一直到现在&#x…

《VitePress 简易速速上手小册》第9章 VitePress 的扩展与插件(2024 最新版)

文章目录 9.1 插件生态系统概述9.1.1 基础知识点解析9.1.2 重点案例:SEO 优化插件9.1.3 拓展案例 1:社交分享插件9.1.4 拓展案例 2:内容搜索插件9.2 常用插件介绍与应用9.2.1 基础知识点解析9.2.2 重点案例:使用 SEO 插件9.2.3 拓展案例 1:集成社交分享功能9.2.4 拓展案例…

RisingWave最佳实践-利用Dynamic filters 和 Temporal filters 实现监控告警

心得的体会 刚过了年刚开工&#xff0c;闲暇之余调研了分布式SQL流处理数据库–RisingWave&#xff0c;本人是Flink&#xff08;包括FlinkSQL和Flink DataStream API&#xff09;的资深用户&#xff0c;但接触到RisingWave令我眼前一亮&#xff0c;并且拿我们生产上的监控告警…

sql server想要小数点后向下取整怎么搞

select FORMAT(3.169, N2) as 四舍五入1, CAST(3.169 AS decimal(9,2)) as 四舍五入2, ROUND(3.169, 2) as 四舍五入3, CAST(FLOOR(3.169 * 100) / 100 AS decimal(9,2)) as 向下取整1, FLOOR(3.169 * 100) / 100 as 向下取整2, ceiling(3.169 * 100) / 100 as 向上取整—…

AI 视频 | Stable Video 开放公测了,免部署,免费使用!谁说 4 秒的 AI 视频不香?!

谁说 4 秒的视频不香&#xff1f;2.21 日&#xff0c;Stable Video 开放公测了&#xff0c;不需要自己部署了&#xff0c;直接在网页上就可以生成视频了。 下面这些视频&#xff0c;都是通过 Stable Video Diffusion 生成的&#xff0c;可以先来感受一下&#xff1a; Stable V…

IPsec、安全关联、网络层安全协议

网络层安全协议 IP 几乎不具备任何安全性&#xff0c;不能保证&#xff1a; 1.数据机密性 2.数据完整性 3.数据来源认证 由于其在设计和实现上存在安全漏洞&#xff0c;使各种攻击有机可乘。例如&#xff1a;攻击者很容易构造一个包含虚假地址的 IP 数据报。 IPsec 提供了标…

nginx服务基础用法(概念、安装、热升级)

目录 一、I/O模型概述 1、I/O概念 1.1 计算机的I/O 1.2 Linux的I/O 2、零拷贝技术 3、同步/异步&#xff08;消息反馈机制&#xff09; 4、阻塞/非阻塞 5、网络I/O模型 5.1 阻塞型 I/O 模型&#xff08;blocking IO&#xff09; 5.2 非阻塞型 I/O 模型 (nonblocking …

外包干了两个月,技术退步明显。。。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;19年通过校招进入广州某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

SD-WAN云专线:优越性能助力企业云上腾飞

随着企业数字化转型的推进&#xff0c;SD-WAN云专线作为一项安全、高速、低延迟、稳定可靠的专属连接通道&#xff0c;正迅速崭露头角。该技术通过连接用户办公点、数据中心以及各类云环境&#xff0c;构建强大的网络基础设施&#xff0c;助力企业轻松实现跨域云网数据互通&…

uniapp微信小程序解决上方刘海屏遮挡

问题 在有刘海屏的手机上&#xff0c;我们的文字和按钮等可能会被遮挡 应该避免这种情况 解决 const SYSTEM_INFO uni.getSystemInfoSync();export const getStatusBarHeight ()> SYSTEM_INFO.statusBarHeight || 15;export const getTitleBarHeight ()>{if(uni.get…

AI副业项目分享

在上一篇文章《这才是大学生该做的副业&#xff0c;别再痴迷于游戏了&#xff01;》中&#xff0c;我分享了一些副业的想法&#xff0c;接着有不少同学问我&#xff1a;具体如何做&#xff1f;这是真把我给整蒙了&#xff0c;这里分享下我可以提供的产品和服务吧&#xff0c;并…

Vant轮播多个div结合二维数组的运用

需求说明 在开发H5的时候&#xff0c;结合Vant组件的轮播组件Swipe实现如下功能。我们查阅vant组件库官方文档可以得知&#xff0c;每个SwipeItem组件代表一个卡片&#xff0c;实现的是每屏展示单张图片或者单个div轮播方式&#xff0c;具体可以查阅&#xff1a;Vant 2 - 轻量、…

Mysql中like %xxx% 模糊查询该如何优化

背景&#xff1a; 实际项目中&#xff0c;like %xxx%的情况其实挺多的&#xff0c;比如某个表单如果支持根据公司名进行搜索&#xff0c;用户一般都是输入湖南xxx有限公司中的xxx进行搜索&#xff0c;所以对于接口而言&#xff0c;就必须使用like %xxx%来支持&#xff0c;从而…

C#,入门教程(05)——Visual Studio 2022源程序(源代码)自动排版的功能动画图示

上一篇&#xff1a; C#&#xff0c;入门教程(04)——Visual Studio 2022 数据编程实例&#xff1a;随机数与组合https://blog.csdn.net/beijinghorn/article/details/123533838 新来的徒弟们交上来的C#代码&#xff0c;可读性往往很差。 今天一问才知道&#xff0c;他们居然不…

MIT6.S081学习——二、相关命令行整理

MIT6.S081学习——二、相关命令行整理 1 添加user代码到xv6中并编译2 git版本管理 1 添加user代码到xv6中并编译 问题&#xff1a;如何让在xv6中运行copy.c 答&#xff1a;在xv6中运行copy.c文件&#xff0c;你需要先将该文件添加到xv6源代码目录中&#xff0c;然后修改Makefil…

笔试题讲解(C语言进阶)

目录 前言 1、题目 2、答案 3、解析 结语 前言 “纸上得来终觉浅&#xff0c;绝知此事要躬行”。本篇通过对指针实际案例的分析&#xff0c;由浅入深&#xff0c;来加强我们对指针的理解。 1、题目 这是一道难题&#xff0c;小心哦。 #include <stdio.h> int main(…

值类型:左值、纯右值、将亡值

值类型是一个古老的概念&#xff0c;早在C98就存在了&#xff0c;但在C11之前这些都无关紧要&#xff0c;随着C11右值引用的产生值类型也被赋予了新的含义。 但问题是C11并未给出清晰的定义&#xff0c;比如在C11的标准文档中&#xff0c;左值的概念只有一句话&#xff1a;“指…

使用向量数据库pinecone构建应用02:检索增强生成RAG

Building Applications with Vector Databases 下面是这门课的学习笔记&#xff1a;https://www.deeplearning.ai/short-courses/building-applications-vector-databases/ Learn to create six exciting applications of vector databases and implement them using Pinecon…

Vue单文件学习项目综合案例Demo,黑马vue教程

文章目录 前言一、小黑记事本二、购物车三、小黑记账清单 前言 bilibili视频地址 一、小黑记事本 效果图 主代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"/><meta http-equiv"X-UA-Compatible&…