常见的学生管理系统

#include
#include
struct score
{
    int id;
    int aa;
    int bb;
    int cc;
    float dd;
};
void Help(void);                         //H=显示帮助菜单
void Type(struct score s[50], int *n);   // T=成绩录入
void Average(struct score s[50], int n); // A=计算学生平均分
void List(struct score s[50], int n);    // L=列出成绩表
void Sort(struct score s[50], int n);    //  P=按平均成绩由高到低排序
void Search(struct score s[50], int n);  // S=按学号查询学生成绩
void Help()
{
    printf("**************************************************\n");
    printf("   *          学生成绩管理系统————帮助菜单       *   \n");
    printf("**************************************************\n");
    printf("   *           H=显示帮助菜单                    *\n");
    printf("   *           T=成绩录入                        *\n");
    printf("   *           A=计算学生平均分                  *\n");
    printf("   *           L=列出成绩表                      *\n");
    printf("   *           P=按平均成绩由高到低排序          *\n");
    printf("   *           S=按学号查询学生成绩              *\n");
    printf("   *           C=清屏                            *\n");
    printf("   *           Q=退出系统                        *\n");
    printf("**************************************************\n");
    printf("   *      copyright 2024.8.8  by 111         *\n");
    printf("**************************************************\n");
    printf("请输入命令=");
}
void Type(struct score s[50], int *n) // T=成绩录入
{
    printf("请输入学生人数:");
    scanf("%d", n);
    printf("请输入%d名学生的三门成绩\n", *n);if (n == 0)
    {
        printf("成绩表为空!请先使用命令T录入学生成绩。\n");
        printf("请输入命令=");
    }
    printf("学号  语文  数学  外语\n");
    for (int i = 0; i < *n; i++)
    {
        printf("%d     ", i + 1);
        s[i].id = i + 1;
        s[i].dd = 0;
        scanf(" %d %d %d", &s[i].aa, &s[i].bb, &s[i].cc);
    }
    printf("请输入命令=");
}
void Average(struct score s[50], int n) //  A=计算学生平均分
{
    if (n == 0)
    {
        printf("成绩表为空!请先使用命令T录入学生成绩。\n");
        printf("请输入命令=");
    }
    else
    {
        for (int i = 0; i < n; i++)
            s[i].dd = (s[i].aa + s[i].cc + s[i].bb) / 3;
        printf("平均分已计算。请使用命令L查看");
        printf("请输入命令=");
    }
}
void List(struct score s[50], int n) // L=列出成绩表
{
    if (n == 0)
    {
        printf("成绩表为空!请先使用命令T录入学生成绩。\n");
        printf("请输入命令=");
    }
    else
    {
        printf("学生成绩如下:\n");
        printf("学号 语文 数学 外语 平均分\n");
        for (int i = 0; i < n; i++)
            printf("%d    %d    %d    %d     %.1f\n", s[i].id, s[i].aa, s[i].bb, s[i].cc, s[i].dd);
        printf("请输入命令=");
    }
}
void Sort(struct score s[50], int n) //  P=按平均成绩由高到低排序
{
    if (n == 0)
    {
        printf("成绩表为空!请先使用命令T录入学生成绩。\n");
        printf("请输入命令=");
    }


     
    else
    {
        struct score t;
        for (int i = 0; i < n - 1; i++)
        {
            for (int j = 0; j < n - 1 - i; j++)
            {
                if (s[j].dd < s[j + 1].dd)
                {
                    t = s[j];
                    s[j] = s[j + 1];
                    s[j + 1] = t;
                }
            }
        }
        printf("完成排序,请使用命令L查看\n");
        printf("请输入命令=");
    }
}
void Search(struct score s[50], int n) // S=按学号查询学生成绩
{
    if (n == 0)
    {
        printf("成绩表为空!请先使用命令T录入学生成绩。\n");
        printf("请输入命令=");
    }
    else
    {
        printf("请输入要查询的学生学号:");
        int num;
        scanf("%d", &num);
        for (int i = 0; i < n; i++)
        {
            if (s[i].id == num)
            {
                printf("学号  语文  数学  外语  平均分\n");
                printf("%d     %d     %d     %d     %.1f\n", s[i].id, s[i].aa, s[i].bb, s[i].cc, s[i].dd);
            }
        }
        printf("请输入命令=");
    }
}
int main()
{
    int n;
    struct score s[50];
    char m;
    Help();
    while (1)
    {
        scanf(" %c", &m);
        switch (m)
        {
        case 'H':
            Help();
            break;
        case 'T':
            Type(s, &n);
            break;
        case 'A':
            Average(s, n);
            break;
        case 'L':
            List(s, n);
            break;
        case 'P':
            Sort(s, n);
            break;
        case 'S':
            Search(s, n);
            break;
        case 'C':
            system("clear");
            printf("请输入命令=");
            break;
        case 'Q':
            exit(1);
            printf("Press any key to continue ");
            break;
        default:
            printf("命令不正确请输入=");
            break;
        }
    }
    return 0;
}

你可能感兴趣的:(算法)