C语言班级学生成绩管理系统

一个班有N个学生,每个学生有M门课程。每个学生的信息包括学号、姓名、M门课程的成绩。该系统实现对班级成绩的添加、修改、查询、删除、统计输出等功能。
功能要求
(1) 增加数据:用户一次可输入多个学生的基本信息。
(2) 更新数据:用于实现对记录的修改,用户首先输入学生的学号,然后查询该学生的基本信息,最后更新该学生的基本信息。
(3) 查询数据:可选择按学生学号查询,或者按学生姓名进行查询(二级菜单),然后列出满足条件且未作删除标记的学生基本信息。
(4) 删除数据:用于删除指定学号的学生基本信息。
(5) 显示数据:用于以列表的方式显示所有学生的基本信息。
(6) 统计输出:
显示每门课程成绩最高的学生的基本信息。
显示每门课程的平均成绩和每个学生的平均成绩。
显示超过某门课程平均成绩的学生人数。
(7) 排序:按学生的平均成绩由高到低的顺序输出所有学生基本信息。
(8) 系统以菜单方式工作。提示:可选用switch-case语句。

之前写过的例子参考下:
如有帮助请在我的回答上点个【采纳】:

/* Note:Your choice is C IDE */
#include "stdio.h"

struct Student{
    int stuno;//学号
    char stuname[20];//姓名
    char sex[5];//性别
    char classname[10];//班级名称
    int yy;//英语课成绩
    int sx;//数学课成绩
    int yw;//语文课成绩
}stu[50];

int i=0;//记录当前用户数

//1、信息录入
void xxlr(){
    printf("********学生信息录入*******\n");
    printf("请输入学号:");
    scanf("%d",&stu[i].stuno);
    
    printf("请输入学生姓名:");
    scanf("%s",&stu[i].stuname);
    
    printf("请输入性别(男/女):");
    scanf("%s",&stu[i].sex);
    
    printf("请输入班级:");
    scanf("%s",&stu[i].classname);
    
    printf("请输入该学生英语,数学,语文三门成绩,用空格隔开,回车结束:");
    scanf("%d %d %d",&stu[i].yy,&stu[i].sx,&stu[i].yw);
    i++;//用户数加1
    printf("\n录入成功,按回车回到主界面:");
    getch();//暂停
    system("CLS");//清屏
}

//2、信息显示
void xs(){
    int n;
    printf("********显示学生信息*******\n\n");
    printf("\t学号\t姓名\t性别\t班级\t英语\t数学\t语文\n\n");
    for(n=0;n<i;n++){
        printf("\t%d\t%s\t%s\t%s\t%d\t%d\t%d\n\n",stu[n].stuno,stu[n].stuname,stu[n].sex,stu[n].classname,stu[n].yy,stu[n].sx,stu[n].yw);
    }
    printf("\n按回车回到主界面:");
    getch();//暂停
    system("CLS");//清屏
}

//3、按姓名查找
void cz(){
    char sname[20];
    int n;
    int flag=0;//没找到
    printf("********查找学生信息*******\n\n");
    printf("请输入要查找的学生姓名:");
    scanf("%s",&sname);
    for(n=0;n<i;n++){
        if( strcmp(stu[n].stuname,sname)==0){
            printf("\t学号\t姓名\t性别\t班级\t英语\t数学\t语文\n\n");
            printf("\t%d\t%s\t%s\t%s\t%d\t%d\t%d\n\n",stu[n].stuno,stu[n].stuname,stu[n].sex,stu[n].classname,stu[n].yy,stu[n].sx,stu[n].yw);
            flag=1;
            break;
        }
    }
    if(flag==0){
        printf("没有找到相关学生\n");    
    }
    printf("按回车退出:");
    getch();//暂停
    system("CLS");//清屏
}

//4、按性别显示每门课程的平均分
void pjf(){
    int n,na=0,nv=0;//na男生个数 nv女生个数
    float yy1=0,sx1=0,yw1=0;//男生三门课总分数
    float yy2=0,sx2=0,yw2=0;//女生三门课总分数
    printf("********查询每门课程平均分(按性别)*******\n\n");
    for(n=0;n<i;n++){
        if(strcmp(stu[n].sex,"男")==0){
            yy1+=stu[n].yy;
            sx1+=stu[n].sx;
            yw1+=stu[n].yw;
            na++;
        }else if(strcmp(stu[n].sex,"女")==0){
            yy2+=stu[n].yy;
            sx2+=stu[n].sx;
            yw2+=stu[n].yw;
            nv++;
        }
    }
    printf("\t性别\t英语\t数学\t语文\n\n");
    if(na>0){
        printf("\t\t%.2f\t%.2f\t%.2f\n\n",yy1/na,sx1/na,yw1/na);
    }
    if(nv>0){
        printf("\t\t%.2f\t%.2f\t%.2f\n\n",yy2/nv,sx2/nv,yw2/nv);
    }
    printf("按回车退出:");
    getch();//暂停
    system("CLS");//清屏
}

//5、每门课程最高和最低
void zgd(){
    int n;
    int zg1=0,zg2=0,zg3=0;
    int zd1=10000,zd2=10000,zd3=1000;
    printf("********查询每门课程最高和最低分*******\n\n");
    
    for(n=0;n<i;n++){
        //英语最高和最低
        if(stu[n].yy>zg1){
            zg1=stu[n].yy;
        }
        if(stu[n].yy<zd1){
            zd1=stu[n].yy;
        }
        
        //数学最高和最低
        if(stu[n].sx>zg2){
            zg2=stu[n].sx;
        }
        if(stu[n].sx<zd2){
            zd2=stu[n].sx;
        }
        
        //语文最高和最低
        if(stu[n].yw>zg3){
            zg3=stu[n].yw;
        }
        if(stu[n].yw<zd3){
            zd3=stu[n].yw;
        }
        
    }
    printf("\t类别\t英语\t数学\t语文\n\n");
    printf("\t最高\t%d\t%d\t%d\n\n",zg1,zg2,zg3);
    printf("\t最低\t%d\t%d\t%d\n\n",zd1,zd2,zd3);
    
    printf("按回车退出:");
    getch();//暂停
    system("CLS");//清屏
}

//6、删除学生信息
void sc(){
    int n;
    int xh;
    int flag=0;//没找到
    char ss;
    
    int k;
    printf("********删除学生信息*******\n\n");
    printf("请输入要删除的学生学号:");
    scanf("%d",&xh);
    for(n=0;n<i;n++){
        if(stu[n].stuno==xh){
            flag=1;
            break;
        }
    }
    if(flag==0){
        printf("没有找到该学生!\n");
    }else{
        printf("\t学号\t姓名\t性别\t班级\t英语\t数学\t语文\n\n");
        printf("\t%d\t%s\t%s\t%s\t%d\t%d\t%d\n\n",stu[n].stuno,stu[n].stuname,stu[n].sex,stu[n].classname,stu[n].yy,stu[n].sx,stu[n].yw);
        printf("确定要删除(y/n):");
        fflush(stdin);
        scanf("%c",&ss);
        
        if(ss=='y'){
            for(k=n;k<i;k++){
                stu[k]=stu[k+1];
            }
            i--;//人数减一
            printf("删除成功!!\n");
        }
    }
    
    printf("按回车退出:");
    getch();//暂停
    system("CLS");//清屏
    
}

void main()
{
    
    int gn;//接收用户功能输入
    
    printf("\t\t****************************************\n");
    printf("\t\t*                                      *\n");
    printf("\t\t*                                      *\n");
    printf("\t\t*         班级成绩管理系统             *\n");
    printf("\t\t*                                      *\n");
    printf("\t\t*                                      *\n");
    printf("\t\t****************************************\n");
    
    do{
        printf("\n");
        printf("\t\t*        1、学生信息录入               *\n");
        printf("\t\t*        2、显示所有学生信息           *\n");
        printf("\t\t*        3、按姓名查找学生             *\n");
        printf("\t\t*        4、查询课程平均成绩(按性别) *\n");
        printf("\t\t*        5、课程最高和最低成绩查询     *\n");
        printf("\t\t*        6、删除学生信息               *\n");
        printf("\t\t*        7、退出系统                   *\n");
        printf("\n\t\t请选择你要操作的功能:");
        scanf("%d",&gn);
        printf("\n");
        if(gn==1){
            xxlr();//调用信息录入函数
        }else if(gn==2){
            xs();
        }else if(gn==3){
            cz();
        }else if(gn==4){
            pjf();
        }else if(gn==5){
            zgd();
        }else if(gn==6){
            sc();
        }  
       
    }while(gn!=7);
    
}

https://blog.csdn.net/u012345982/article/details/80197365

我的博客里面有个类似的同学录管理系统,你可以参照一下,里面有源码

转载于:
https://wenku.baidu.com/view/bec91fb267ec102de3bd8919.html