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

news2024/12/24 8:52:53

这个学生成绩管理系统使用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.coloradmin.cn/o/1465875.html

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

相关文章

如何解决服务器之间大量数据文件传输交换慢的问题?

在信息化时代&#xff0c;企业运营的核心之一便是服务器间的数据交换效率。数据流通的速度直接关系到业务的响应速度和企业的整体表现。然而&#xff0c;数据传输速度缓慢的问题时常成为企业发展的绊脚石&#xff0c;可能导致严重的业务损失。本文将深入探讨造成服务器数据传输…

【MySQL】如何理解索引(高频面试点)

一、前言 首先这个博客会介绍一些关于MySQL中索引的基本内容以及一些基本的语法&#xff0c;当然里面也会有些常见的面试题的解答。 二、关于索引 1、概念 索引是一种能够帮助MySQL高效的去磁盘检索数据的一种数据结构。在MySQL的Innodb存储引擎中呢&#xff0c;采用的是B树的…

software framwork

software framwork软件架构 软件架构&#xff0c;之前图没找到&#xff0c;随手画了一个啦&#xff0c;了解架构细分职能和工作任务&#xff1a; 下图&#xff0c;第一是客户端架构包项目&#xff0c;第二是服务端架构包项目 -----------------------------------------------…

Thymeleaf无法显示模板视图,加载页面显示404状态问题的解决方法

本篇文章主要讲解&#xff1a;Thymeleaf无法显示模板视图&#xff0c;加载页面显示404状态问题的解决方法 日期&#xff1a;2024年2月23日 作者&#xff1a;任聪聪 现象说明&#xff1a; 1.只返回输出模板的名称&#xff0c;如图&#xff1a; 2.显示报错信息&#xff1a; Whi…

数字化转型导师坚鹏:县域数字化转型案例研究

县域数字化转型案例研究 课程背景&#xff1a; 很多县级政府存在以下问题&#xff1a; 不清楚县域数字化转型的发展模式 不清楚县域数字化转型的成功案例 课程特色&#xff1a; 针对性强 实用性强 创新性强 学员收获: 学习县域数字化转型的发展模式。 学习县…

129.乐理基础-曾音程、减音程、等音程

内容参考于&#xff1a;三分钟音乐社 上一个内容&#xff1a;128.乐理基础-五线谱-纯四度、纯五度-CSDN博客 上一个内容里练习的答案&#xff1a; 首先c1-重降e1&#xff0c;c1-升e1的时候&#xff0c;也都是三度&#xff0c;但距离肯定不一样这时该叫什么&#xff1f;如下图…

【Ucore 操作系统】3. 多道程序与分时多任务

文章目录 【 0. 引言 】0.1 上章回顾0.2 背景0.3 协作式操作系统0.4 抢占式操作系统0.3 进程小述0.3 本章任务 【 1. 多道程序放置与加载 】1.1 多道程序的放置1.2 多道程序的加载 【 2. 进程基础结构 】2.1 进程的概念2.2 进程的基本管理2.3 进程的分配 【 3. 多道程序与协作式…

开发个IDEA插件

开发IDEA一个插件&#xff0c;但是这个插件的功能是个大杂烩吧&#xff0c; 主要完成以下几个功能&#xff0c;方便组内开发人员提高效率。 1 网关会传过来登录人员的 一些核心字段&#xff0c;公司编码/用户编号/主岗。 因为存在多租户&#xff0c;所以经常要切换任务&…

【PostgreSQL】Windows安装PostgreSQL数据库图文详细教程

Windows安装PostgreSQL数据库图文详细教程 一、前言二、PostgreSQL简介三、软件下载四、安装步骤4.1 安装向导4.2 选择安装目录4.3 选择组件4.4 选择数据存放目录4.5 选择密码4.6 选择端口号4.7 等待安装完成4.8 取消勾选&#xff0c;安装完成 五、启动教程5.1 搜索pgAdmin4&am…

ChatGPT 4 教你完成学生表,教师表,课程表,选课表之间的SQL学习

数据源准备&#xff1a; # 学生表 create table student( sno varchar(10) primary key, #学号sname varchar(20), #姓名sage int(2), #年龄ssex varchar(5) #性别 ); #教师表 create table teacher( tno varchar(10) primary …

思维模型整合

思维模型整合 4P--- 4C思考模型能力圈模型 4P— 4C思考模型 在竞争激烈的今天&#xff0c;每个赛道都有众多可以为客户提供相同价值的对手&#xff0c;而赛道中的佼佼者之所以能打败大部分人&#xff0c;可能并不是他们能比别人更能讨好大众&#xff0c;而是因为在这个赛道它有…

windows11安装VMware----创建多虚拟机教程

一、centOS下载 1、官网地址&#xff1a;https://www.centos.org/ 2、阿里镜像站&#xff1a;https://mirrors.aliyun.com/centos 3、清华镜像源&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/centos/ 3.、CentOS搜狐镜像&#xff1a;http://mirrors.sohu.com/centos/…

Chat With RTX 安装、使用问题记录

1.安装包运行检测环境失败 安装适合的的CUDA&#xff1a;https://developer.nvidia.com/cuda-downloads?target_osWindows&target_archx86_64&target_version11 2.安装Chat With RTX 和 模型 Mistral 7B 失败 科学上网&#xff0c;可以单独装Chat With RTX 先&…

element ui 安装 简易过程 已解决

我之所以将Element归类为Vue.js&#xff0c;其主要原因是Element是&#xff08;饿了么团队&#xff09;基于MVVM框架Vue开源出来的一套前端ui组件。我最爱的就是它的布局容器&#xff01;&#xff01;&#xff01; 下面进入正题&#xff1a; 1、Element的安装 首先你需要创建…

面试时,被问到频繁跳槽该如何回应?

有数据显示&#xff0c;现在的职场人&#xff0c;跳槽越来越频繁&#xff0c;95后平均7个月就离职。 对于面试官来说&#xff0c;一个跳槽过于频繁的人总是存在潜在风险&#xff0c;比如抗压力差、稳定性不好、心不定这山望着那山高、职业规划不清晰等等。 我一直强调一个观点…

TYPE-C接口桌面显示器:视频与充电的双重革新

在现代科技的浪潮中&#xff0c;TYPE-C接口桌面显示器崭露头角&#xff0c;它不仅仅是一台显示器&#xff0c;更是充电与视频传输的完美融合。这种新型的显示器&#xff0c;凭借其TYPE-C接口&#xff0c;实现了从DC电源到PD协议充电的华丽转身&#xff0c;为众多设备如笔记本电…

二、基本语法

一、变量声明 1、语法 <变量名称>: <变量类型> <变量值> 2、变量类型 字符串&#xff1a;string 数值&#xff0c;整数、浮点数都可以&#xff1a;number 布尔&#xff1a;boolean 任意类型&#xff1a;any 联合类型&#xff0c;指定的多个类型中的…

SQL字符集

目标:了解字符集的概念&#xff0c;掌握MySQL数据库存储数据的字符集逻辑以及设置方式 字符集概念 MySQL字符集关系 解决乱码问题 字符集设置原理 1、字符集概念 目标:了解字符集概念&#xff0c;掌握字符集存储和读取的实现原理 概念 字符集:charset或者character set&am…

Microsoft 365自定义安装软件

如图&#xff0c;在安装类型的步骤的时候&#xff0c;可以勾选自己想要的软件&#xff08;而非一股脑儿的安装一大堆自己不需要的&#xff09;。

冒泡排序法的名字由来,排序步骤是什么,最坏情况下的排序次数如何计算得来的呢?

问题描述&#xff1a;冒泡排序法的名字由来&#xff0c;排序步骤是什么&#xff0c;最坏情况下的排序次数如何计算得来的呢&#xff1f; 问题解答&#xff1a; 冒泡排序法的名字来源于排序过程中较大的元素会像气泡一样逐渐“冒”到序列的顶端&#xff0c;而较小的元素则会逐…