用C语言编一个简单的 学生信息管理系统

img


建立4个学生的信息登记表,每个学生的信息包括:
学号 姓名 3门课的成绩(math c english)程序运行显示简单菜单(要求如图

代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//定义课程数量
#define NMBKC 3
struct Student
{
    int id;        //学号
    char name[20]; //姓名
    float score[NMBKC];//成绩
    float total;   //总分
    float avg;     //平均分
};
//1录入信息
void input(struct Student arr[],int n)
{
    int i,j;
    system("cls");
    for (i = 0;i < n; i++)
    {
        arr[i].total = 0.0;
        printf("请输入第%d名学生的信息(学号、姓名、%d门课程成绩):",i+1,NMBKC);
        scanf("%d %s",&arr[i].id,arr[i].name);
        for (j = 0;j < NMBKC;j++)
        {
            scanf("%f",&arr[i].score[j]);

        }

    }
    printf("录入完毕!\n");
    system("pause");
}

//2.统计总分
void count(struct Student arr[],int n)
{
    int i,j;
    system("cls");
    for(i=0;i<n;i++)
    {
        arr[i].total = 0;
        for(j=0;j<NMBKC;j++)
            arr[i].total += arr[i].score[j];
        arr[i].avg = arr[i].total/NMBKC;
    }
    printf("总分计算完毕!\n");
    printf("学号  姓名  总分  平均分  math   c   english\n");
    //显示
    for (i = 0;i< n;i++)
    {
        printf("%d\t%s\t%.1f\t%.1f\t",arr[i].id,arr[i].name,arr[i].total,arr[i].avg);
        for (j=0;j<NMBKC;j++)
        {
            printf("%f\t",arr[i].score[j]);
        }
        printf("\n");
    }
    system("pause");
}


//排序 按总分降序排序
void sort(struct Student arr[],int n)
{
    int i,j;
    struct Student tmp;
    system("cls");
    for (i = 0; i < n-1;i++)
    {
        for (j = 0;j < n-1-i;j++)
        {
            if(arr[j].total < arr[j+1].total)
            {
                tmp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = tmp;
            }
        }
    }
    //显示
    printf("学号  姓名  总分  平均分  math   c   english\n");
    for (i = 0;i< n;i++)
    {
        printf("%d\t%s\t%.1f\t%.1f\t",arr[i].id,arr[i].name,arr[i].total,arr[i].avg);
        for (j=0;j<NMBKC;j++)
        {
            printf("%f\t",arr[i].score[j]);
        }
        printf("\n");
    }
    system("pause");
}

//查询
void query(struct Student arr[],int n)
{
    int i,j;
    int id;
    system("cls");
    printf("请输入学号:");
    scanf("%d",&id);
    printf("学号  姓名  总分  平均分  math   c   english\n");
    for (i = 0;i < n;i++)
    {
        if( arr[i].id == id )
        {
            printf("%d\t%s\t%.1f\t%.1f\t",arr[i].id,arr[i].name,arr[i].total,arr[i].avg);
            for (j=0;j<NMBKC;j++)
            {
                printf("%f\t",arr[i].score[j]);
            }
            printf("\n");
            break;;
        }
    }
    if(i==n)
        printf("查无此人!\n");
    system("pause");
}


int main()
{
    struct Student stu[10];
    int n=4;
    int opt;
    int bgo = 1;
    float avg[NMBKC]; //课程平均分
    while(bgo)
    {
        system("cls");
        printf("-------学生管理系统-------\n");
        printf("  1.录入学生信息          \n");
        printf("  2.统计学生总分          \n");
        printf("  3.按总分降序排序        \n");
        printf("  4.查询                  \n");
        printf("  9.退出系统              \n");
        printf("--------------------------\n");
        scanf("%d",&opt);

        switch(opt)
        {
        case 1:
            input(stu,n);
            break;
        case 2:
            count(stu,n);
            break;
        case 3:
            sort(stu,n);
            break;
        case 4:
            query(stu,n);
            break;
        case 9:
            return 0;
        }

    }
    return 0;

}




参考
https://blog.csdn.net/weixin_45711556/article/details/112854736

请看👉 :C语言链表实现简单的学生信息管理系统