#include "string.h"
#include "stdio.h"
#include <stdlib.h>
int xss = 0;
char ml;
//界面
void jm()
{
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(版权)<C> 2024.4.12 By lzy*\n");
printf("**************************************\n");
printf("\n");
}
//结构体变量,全局变量
struct student
{
int id;
float chinese;
float math;
float english;
float pjf;
} su[100] = {};
void cj()
{
printf("请输入学生数:");
scanf("%d", &xss);
printf("请输入%d名学生的三门成绩:\n学号: 语文: 数学: 英语:\n", xss);
for (int i = 0; i < xss; i++)
{
scanf("%d%f%f%f", &su[i].id, &su[i].chinese, &su[i].math, &su[i].english);
}
}
///查看学生信息
void L()
{
printf("学生成绩如下:\n");
printf("学号\t语文\t数学\t英语\t平均分\n");
for (int i = 0; i < xss; i++)
{
printf("%d\t%.1f\t%.1f\t%.1f\t%.1f\n", su[i].id, su[i].chinese, su[i].math, su[i].english, su[i].pjf);
}
}
//计算平均分
void A()
{
for (int i = 0; i < xss; i++)
{
su[i].pjf = (su[i].chinese + su[i].english + su[i].math) / 3;
}
printf("平均分已计算,请输入L查看\n");
}
//以平均分按低到高排序
void P()
{
for (int i = 0; i < xss - 1; i++)
{
for (int j = 0; j < xss - 1 - i; j++)
{
if (su[j].pjf < su[j + 1].pjf)
{
struct student jh = su[j];
su[j] = su[j + 1];
su[j + 1] = jh;
}
printf("平均分由高到低排序,请用命令L查看");
}
}
}
//按学号查询
void S()
{
int n;
printf("请输入需要查询的学号:");
scanf("%d", &n);
printf("所查询的学生信息如下");
for (int i = 0; i < xss; i++)
{
if (n == su[i].id)
{
printf("学号\t语文\t数学\t英语\t平均分\n");
printf("%d\t%.1f\t%.1f\t%.1f\t%.1f\n", su[i].id, su[i].chinese, su[i].math, su[i].english, su[i].pjf);
}
}
}
//清屏系统
void C()
{
system("clear");
}
//返回界面
void H()
{
jm();
}
//主函数
int main(int argc, char const *argv[])
{
jm();
while (1)
{
printf("请输入命令:");
scanf("%c", &ml);
switch (ml)
{
case 'T':
cj();
break;
case 'L':
if (xss == 0)
{
printf("成绩为空!请先使用命令T录入学生成绩");
break;
}
else
{
L();
break;
}
case 'A':
if (xss == 0)
{
printf("成绩为空!请先使用命令T录入学生成绩");
break;
}
else
{
A();
break;
}
case 'P':
if (xss == 0)
{
printf("成绩为空!请先使用命令T录入学生成绩");
break;
}
else
{
P();
break;
}
case 'S':
if (xss == 0)
{
printf("成绩为空!请先使用命令T录入学生成绩");
break;
}
else
{
S();
break;
}
case 'C':
C();
break;
case 'H':
H();
break;
///退出系统
case 'Q':
exit(1);
break;
default:
printf("输入错误,将自动退出界面,请按界面正确输入命令\n");
exit(1);
break;
}
getchar();//垃圾回收字符,不然会出现多出的命令,放的位置不对会吞下其对应功能,
}
}
字母对应其功能