完成学生管理系统
1> 使用菜单完成
2> 有学生的信息录入功能:输入学生个数,并将学生的姓名、分数录入
3> 查看学生信息:输出所有学生姓名以及对应的分数
4> 求出学习最好的学生信息:求最大值
5> 按姓名将所有学生进行升序排序
6> 按成绩将所有学生进行升序排序
要求每个功能使用函数完成
#include <stdio.h>
#include <string.h>
#define MAX 100
int size = 0;
//录入信息
void luru_1(char m[][20], int cj[])
{
printf("输入学生个数:");
scanf("%d", &size);
getchar();
printf("输入学生姓名以及成绩:\n");
for (int i = 0; i < size; i++)
{
scanf("%s %d", m[i], &cj[i]);
}
}
//查看学生成绩
void chakan_1(char m[][20], int cj[])
{
printf("输入学生的成绩为:\n");
for (int i = 0; i < size; i++)
{
printf("%s %d\n", m[i], cj[i]);
}
}
//求成绩最好的学生及成绩
void max_1(char m[][20], int cj[])
{
int maxi = 0;
for (int i = 0; i < size; i++)
{
if (cj[maxi] < cj[i])
{
maxi = i;
}
}
printf("成绩最好的学生及成绩:%s %d\n", m[maxi], cj[maxi]);
}
//按姓名对所有学生进行排序
void xshengxu_1(char m[][20], int cj[])
{
int xi = 0;
char t[20];
for (int i = 1; i < size; i++)
{
for (int j = 0; j < size - 1; j++)
{
if (strcmp(m[j], m[j + 1]) > 0)
{
strcpy(t, m[j]);
strcpy(m[j], m[j + 1]);
strcpy(m[j + 1], t);
xi = cj[j];
cj[j] = cj[j + 1];
cj[j + 1] = xi;
}
}
}
printf("按姓名排序后:\n");
for (int i = 0; i < size; i++)
{
printf("%s %d\n", m[i], cj[i]);
}
}
//按成绩对所有学生进行排序
void cjshengxu_1(char m[][20], int cj[])
{
int xi = 0;
char t[20];
for (int i = 1; i < size; i++)
{
for (int j = 0; j < size - 1; j++)
{
if (cj[j] > cj[j + 1])
{
strcpy(t, m[j]);
strcpy(m[j], m[j + 1]);
strcpy(m[j + 1], t);
xi = cj[j];
cj[j] = cj[j + 1];
cj[j + 1] = xi;
}
}
}
printf("按成绩排序后:\n");
for (int i = 0; i < size; i++)
{
printf("%s %d\n", m[i], cj[i]);
}
}
/********主函数********/
int main()
{
char m[MAX][100] = {""};
int cj[MAX] = {0};
int menu = 0;
while (1)
{
printf("\t\t======1.录入学生信息=====\n");
printf("\t\t======2.查看学生信息=====\n");
printf("\t\t======3.求最好成绩的学生及成绩=====\n");
printf("\t\t======4.将所有学生按姓名升序排列=====\n");
printf("\t\t======5.将所有学生按成绩升序排列=====\n");
printf("\t\t======0.退出=====\n");
printf("请输入>>>");
scanf("%d", &menu);
getchar();
switch (menu)
{
case 1:
{
luru_1(m, cj);
}
break;
case 2:
{
chakan_1(m, cj);
}
break;
case 3:
{
max_1(m, cj);
}
break;
case 4:
{
xshengxu_1(m, cj);
}
break;
case 5:
{
cjshengxu_1(m, cj);
}
break;
case 0:
goto end;
default:
printf("输入错误,重新输入:\n");
}
}
end:
return 0;
}
运行截图: