c语言学生管理系统

#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(" * 学生成绩管理系统————帮助菜单 \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 = 退出系统 \n");
printf("************************************\n");
printf(" * Copyright <c> 2023.07.24 By 姓名 \n");
printf("************************************\n");
}
void A_T()
{
int n;
printf("请输入学生人数:");
scanf("%d", &n);
printf("请输入%d名学生的學號和三门课成绩\n", n);
printf("学号 语文 数学 英语\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("学号 语文 数学 外语 平均分\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("学号 语文 数学 外语 平均分\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("语文 数学 外语\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;
}