#include<stdio.h>
//定义的学生信息结构体
typedef struct student
{
int num;
char name[128];
float Chinese;
float math;
float English;
float Average;
}STU;
int count = 0;//记录学生的数量
void student_add(STU* stu);
void student_sort_math(STU* stu);
void student_sort_chinese(STU* stu);
void student_sort_english(STU* stu);
void student_display(STU* stu);
int main(int argc, char const* argv[])
{
//定义学生信息数组
STU stu[100];
//定义输入选择变量
int input;
while (1)
{
printf("********功能选择***************\n");
printf("*******1.添加学生信息***********\n");
printf("*******2.以语文成绩进行排序*****\n");
printf("*******3.以数学成绩进行排序*****\n");
printf("*******4.以英语成绩进行排序*****\n");
printf("*******5.退出程序**************\n");
printf("请输入要进行的操作>");
scanf("%d", &input);
switch (input)
{
case 1:
student_add(stu);
break;
case 2:
student_sort_chinese(stu);
break;
case 3:
student_sort_math(stu);
break;
case 4:
student_sort_english(stu);
break;
case 5:
printf("程序正常退出\n");
return 0;
break;
default:
printf("输入错误,请重新输入\n");
break;
}
//学生的遍历
student_display(stu);
}
return 0;
}
//添加学员信息
void student_add(STU* stu)
{
int a;
while (1)
{
printf("请输入要添加的学生学号>");
scanf("%d", &stu[count].num);
printf("请输入要添加的学生姓名>");
scanf("%s", stu[count].name);
printf("请输入要添加的学生语文成绩>");
scanf("%f", &stu[count].Chinese);
printf("请输入要添加的学生数学成绩>");
scanf("%f", &stu[count].math);
printf("请输入要添加的学生英语成绩>");
scanf("%f", &stu[count].English);
stu[count].Average = (stu[count].Chinese + stu[count].math + stu[count].English) / 3;
count++;//学生数量+1
printf("学生信息录入完毕,请选择是否继续添加 1:添加 0:返回上一级菜单>");
scanf("%d", &a);
if (a != 1)
break;
}
}
//以数学成绩进行排序
void student_sort_math(STU* stu)
{
int i, j;
STU tmp;
for (i = 0; i < count - 1; i++)
{
for (j = 0; j < count - i - 1; j++)
{
if (stu[j].math < stu[j + 1].math)
{
tmp = stu[j];
stu[j] = stu[j + 1];
stu[j + 1] = tmp;
}
}
}
}
//以语文成绩进行排序
void student_sort_chinese(STU* stu)
{
int i, j;
STU tmp;
for (i = 0; i < count - 1; i++)
{
for (j = 0; j < count - i - 1; j++)
{
if (stu[j].Chinese < stu[j + 1].Chinese)
{
tmp = stu[j];
stu[j] = stu[j + 1];
stu[j + 1] = tmp;
}
}
}
}
//以英语成绩进行排序
void student_sort_english(STU* stu)
{
int i, j;
STU tmp;
for (i = 0; i < count - 1; i++)
{
for (j = 0; j < count - i - 1; j++)
{
if (stu[j].English < stu[j + 1].English)
{
tmp = stu[j];
stu[j] = stu[j + 1];
stu[j + 1] = tmp;
}
}
}
}
//遍历学生信息
void student_display(STU* stu)
{
printf("总共%d个学员:\n", count);
for (int i = 0;i < count;i++)
{
printf("num|%d 姓名|%s 语文成绩|%.2f 数学成绩|%.2f 英语成绩|%.2f 平均成绩|%.2f\n\n", stu[i].num, stu[i].name, stu[i].Chinese, stu[i].math, stu[i].English, stu[i].Average);
}
}
C高级作业day2
最新推荐文章于 2024-07-10 11:04:17 发布