c語言學生管理系統(tǒng)

#include <stdio.h>
#include <stdlib.h>
typedef struct a
{
??int id;
??float chinese;
??float math;
??float english;
??float pingjun;
} stu;
stu a[99];
void mianban()
{
??printf("************************************\n");
??printf("?*??學生成績管理系統(tǒng)————幫助菜單???\n");
??printf("************************************\n");
??printf("?*???H = 顯示幫助菜單???????\n");
??printf("?*???T = 成績錄入????????\n");
??printf("?*???A = 計算學生平均分??????\n");
??printf("?*???L = 列出成績表????????\n");
??printf("?*???P = 按平均成績由高到低排序???\n");
??printf("?*???S = 按學號查詢學生成績?????\n");
??printf("?*???M = 按學號修改學生成績?????\n");
??printf("?*???N = 按學號刪除學生成績?????\n");
??printf("?*???C = 請屏??????????\n");
??printf("?*???Q = 退出系統(tǒng)?????????\n");
??printf("************************************\n");
??printf("?* Copyright <c> 2023.07.24 By 姓名 \n");
??printf("************************************\n");
}
void A_T()
{
??int n;
??printf("請輸入學生人數(shù):");
??scanf("%d", &n);
??printf("請輸入%d名學生的學號和三門課成績\n", n);
??printf("學號 語文 數(shù)學 英語\n");
??for (int i = 0; i < n; i++)
??{
????// a[i].id = i + 1;
????// printf("%d ", a[i].id);
????scanf("%d %f %f %f", &a[i].id, &a[i].chinese, &a[i].math, &a[i].english);
??}
}
void A_A()
{
??int n = 0;
??for (int i = 0; i < 99; i++)
????if (a[i].chinese != '\0')
??????n++;
??for (int i = 0; i < n; i++)
??{
????a[i].pingjun = (a[i].chinese + a[i].math + a[i].english) / 3.0;
??}
??printf("平均分已計算。請使用命令L查看\n");
}
void A_L()
{
??int n = 0;
??for (int i = 0; i < 99; i++)
????if (a[i].chinese != '\0')
??????n++;
??printf("學生成績如下:\n");
??printf("學號??語文??數(shù)學??外語??平均分\n");
??for (int i = 0; i < n; i++)
??{
????printf("%d\t%0.1f\t%0.1f\t%0.1f\t%0.1f\t\n", a[i].id, a[i].chinese, a[i].math, a[i].english, a[i].pingjun);
??}
}
void A_P()
{
??int n = 0;
??for (int i = 0; i < 99; i++)
????if (a[i].chinese != '\0')
??????n++;
??stu temp;
??for (int i = 0; i < n - 1; i++)
??{
????for (int j = 0; j < n - 1 - i; j++)
????{
??????if (a[j].pingjun < a[j + 1].pingjun)
??????{
????????temp = a[j];
????????a[j] = a[j + 1];
????????a[j + 1] = temp;
??????}
????}
??}
??printf("完成排序。請使用命令L查看。\n");
}
void A_S()
{
??int n;
??printf("請輸入要查詢學生的學號:");
??scanf("%d", &n);
??for (int i = 0; i < 3; i++)
??{
????if (a[i].id == n)
????{
??????printf("學號??語文??數(shù)學??外語??平均分\n");
??????printf("%d\t%0.1f\t%0.1f\t%0.1f\t%0.1f\t\n", a[i].id, a[i].chinese, a[i].math, a[i].english, a[i].pingjun);
????}
??}
}
void A_M()
{
??int m = 0;
??for (int i = 0; i < 99; i++)
????if (a[i].chinese != '\0')
??????m++;
??int n;
??printf("請輸入要修改學生的學號:");
??scanf("%d", &n);
??printf("語文??數(shù)學??外語\n");
??for (int i = 0; i < m; i++)
??{
????if (a[i].id == n)
??????scanf("%f %f %f", &a[i].chinese, &a[i].math, &a[i].english);
??}
??printf("完成修改。請使用命令L查看。\n");
}
void A_N()
{
??int m = 0;
??for (int i = 0; i < 99; i++)
????if (a[i].chinese != '\0')
??????m++;
??int n;
??printf("請輸入要刪除學生的學號:");
??scanf("%d", &n);
??for (int i = 0; i < m; i++)
??{
????if (a[i].id == n)
????{
??????for (int j = i; j < m; j++)
????????a[j] = a[j + 1];
??????break;
????}
??}
??printf("完成刪除。請使用命令L查看。\n");
}
int main(int argc, char const *argv[])
{
??mianban();
??while (1)
??{
????printf("請輸入命令= ");
????char ch;
????scanf(" %c", &ch);
????if (ch != 'T')
??????printf("成績表為空!請先使用命令T 錄入學生成績。\n");
????else
????{
??????while (1)
??????{
????????switch (ch)
????????{
????????case 'H':
??????????mianban();
??????????break;
????????case 'T':
??????????A_T();
??????????break;
????????case 'A':
??????????A_A();
??????????break;
????????case 'L':
??????????A_L();
??????????break;
????????case 'P':
??????????A_P();
??????????break;
????????case 'S':
??????????A_S();
??????????break;
????????case 'M':
??????????A_M();
??????????break;
????????case 'N':
??????????A_N();
??????????break;
????????case 'C':
??????????system("clear");
??????????break;
????????case 'Q':
??????????exit(0);
??????????break;
????????}
????????printf("請輸入命令= ");
????????scanf(" %c", &ch);
????????while (getchar() != '\n')
??????????;
??????}
????}
??}
??return 0;
}