大一C语言学生管理系统

完成课程设计报告
简单成绩管理系统的设计与实现
学生信息包括:学号、姓名、三门功课(高等数学、大学英语、C语言)。
190350101陈明玉69 72 78
190350102陈辰臣100 96 90
190350103赵昭朝89 90 79
190350104钱千乾86 85 80
190350105孙荪隼79 69 100
试设计一学生成绩管理系统,使之能提供以下功能
1、输入学生信息(包括学号,姓名,高等数学成绩,大学英语成绩,C语言成绩)
2、显示学生信息
3、显示一门课的最高分
4、显示一门课的最低分
5、显示一门课的平均分
6、从高到低显示C语言的成绩
7、按学号查找C语言成绩
8、按姓别查找C语言成绩
9、退出
10、其它可扩充功能

对于你这个问题可以参考如下链接:

#include<stdio.h>
#include<string.h>
#include<math.h>
struct student
    {
        int num;
        char name[20];
        float Math;
        float English;
        float CLanguage;
        
    }stu[5];//定义结构体
void main()
{
    void a();
    void b();
    void c();
    void d();
    void e();
    void f();
    void g();
    void h();
    int n;
    while(n!=9)
    {    printf("\t学生成绩管理系统\n");
        printf("1:输入一个班学生成绩记录\n");
        printf("2:显示所有成绩记录\n");
        printf("3:显示一门课的最高分\n");
        printf("4:显示一门课的最低分\n");
        printf("5:显示一门课的平均成绩\n");
        printf("6:从高到低显示C语言成绩\n");
        printf("7:按学号查找C语言成绩\n");
        printf("8:按姓名查找C语言成绩\n");
        printf("9:退出\n");
        printf("输入选项代码:");
        scanf("%d",&n);
        switch(n)
        {
            case 1:a();break;
            case 2:b();break;
            case 3:c();break;
            case 4:d();break;
            case 5:e();break;
            case 6:f();break;
            case 7:g();break;
            case 8:h();break;
            case 9:printf("\n*******************谢谢使用!*******************\n");break;
            break;    
        }    
    }
getchar();
}
/* 子  函  数*/
void a() /* 输入一个班的学生记录*/
 
{
    int i;
    for(i=0;i<5;i++)
    {   
        printf("请输入学号 姓名 高数成绩 英语成绩 C语言成绩:");
        scanf("%d%s%f%f%f",&stu[i].num,&stu[i].name,&stu[i].Math,&stu[i].English,&stu[i].CLanguage);
    }
}
void b()/* 显示所有记录*/
 
{
    int i;
 
    printf("学号       姓名          高数成绩        英语成绩        C语言成绩\n");
 
    for(i=0;i<5;i++)
 
        printf("%d\t%s\t%f\t%f\t%f\n",stu[i].num,stu[i].name,stu[i].Math,stu[i].English,stu[i].CLanguage);
 
}
 
void c()/* 显示一门课最高分*/
{  
    double max[3]={0,0,0};
    int i,j;
    printf("******查询高数请输入0;查询英语请输入1;查询C语言请输入2\n");
    scanf("%d",&i);

        for(j=0;j<5;j++){
            if(stu[j].Math>max[0])
                max[0]=stu[j].Math;
        }
        for(j=0;j<5;j++){
            if(stu[j].English>max[1])
                max[1]=stu[j].English;
        }
        for(j=0;j<5;j++){
            if(stu[j].CLanguage>max[2])
                max[2]=stu[j].CLanguage;
        }
        printf("******最高分是%f\n",max[i]);    
}
void d()/*显示一门课最低分*/
{
    double min[3]={100,100,100};
    int i,j;
    printf("******查询高数请输入0;查询英语请输入1;查询C语言请输入2\n");
    scanf("%d",&i);
    
        for(j=0;j<5;j++){
            if(stu[j].Math<min[0])
                min[0]=stu[j].Math;
        }
        for(j=0;j<5;j++){
            if(stu[j].English<min[1])
                min[1]=stu[j].English;
        }
        for(j=0;j<5;j++){
            if(stu[j].CLanguage<min[2])
                min[2]=stu[j].CLanguage;
        }
           printf("******最低分是%f\n",min[i]);
}
 
void e()/*显示一门课的平均成绩*/
{
    double ave[3];
    double total[3]={0,0,0};
    int i,j;
    printf("******查询高数请输入0;查询英语请输入1;查询C语言请输入2\n");
    scanf("%d",&j);

    for(i=0;i<5;i++)
    {
        total[0]=total[0]+stu[i].Math;
    }
    ave[0]=total[0]/5.0;
    for(i=0;i<5;i++)
    {
        total[1]=total[1]+stu[i].English;
    }
    ave[1]=total[1]/5.0;
    for(i=0;i<5;i++)
    {
        total[2]=total[2]+stu[i].CLanguage;
    }
    ave[2]=total[2]/5.0;
    printf("******平均成绩是%f\n",ave[j]);
}
void f()/*从高到低显示C语言成绩*/
{ 
    float display[5];//如果直接对stu[i].CLanguage操作,会影响后续调用该数组。这里我使用循环拷贝数组,也可以使用函数。
    for(int i = 0; i<5; i++){
        display[i] =stu[i].CLanguage;
    }
    float temp;
    for(i=0;i<5;i++){
        for(int j=0;j<5-i;j++){
            if( display[j]< display[j+1]){
                temp= display[j];
                display[j]= display[j+1];
                display[j+1]=temp;
            }
        }
    }
    printf("\nC语言从高到低排序如下");
    for(i = 0; i<5; i++){
    printf("%f\n",display[i]);
    }
}
void g()/*按学号查找C语言成绩*/
{
    int input_stuno;
    printf("请输入待查学生的学号:");
    scanf("%d",&input_stuno);
 
    for (int i=0; i<5; i++)
    {
        if (stu[i].num == input_stuno)
        {
            printf("该生C语言成绩:%f\n",stu[i].CLanguage);
            break;
        }
    } 
}
void h()/*按姓名查找C语言成绩*/
{
    char inputname[20];
    printf("输入姓名\n");
    scanf("%s",&inputname);
    for(int i=0;i<5;i++){
        if(strcmp(inputname,stu[i].name) == 0){
        printf("该生C语言成绩:%f\n",stu[i].CLanguage);
        break;
        }
    }
}



如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

https://wenku.baidu.com/view/c47c1d2dcd22bcd126fff705cc17552706225e69.html