完成学生管理系统
1> 使用菜单完成
2> 有学生的信息录入功能:输入学生个数,并将学生的姓名、分数录入
3> 查看学生信息:输出所有学生姓名以及对应的分数
4> 求出学习最好的学生信息:求最大值
5> 按姓名将所有学生进行升序排序
6> 按成绩将所有学生进行升序排序
要求每个功能使用函数完成
#include <stdio.h>
#include <string.h>void enter(char arr[][20],int brr[],int n,int m) //录入函数
{
for(int i=n;i<=m;i++)
{
printf("输入第%d个学生姓名:",i+1);
scanf("%s",arr[i]);
printf("输入第%d个学生成绩:",i+1);
scanf("%d",&brr[i]);
}
}void query(char arr[][20],int brr[],int n) //查询所以学生信息函数
{
for(int i=0;i<n;i++)
{
printf("学生%s的成绩是%d\n",arr[i],brr[i]);
}
}void MAX(char arr[][20],int brr[],int n) //求成绩最好学生信息函数
{
int max=brr[0],maxi=0;
for(int i=1;i<n;i++)
{
if(brr[i]>max)
{
max=brr[i];
maxi=i;
}
}
printf("学习最好的是%s,成绩是%d\n",arr[maxi],brr[maxi]);}
void name_sort(char arr[][20],int brr[],int n) //按名字升序排列函数
{
char crr[20]={0};
for(int i=1;i<n;i++)
{
for(int j=0;j<n-i;j++)
{
if(strcmp(arr[j],arr[j+1])>0)
{
strcpy(crr,arr[j]);
strcpy(arr[j],arr[j+1]);
strcpy(arr[j+1],crr);
int temp=brr[j];
brr[j]=brr[j+1];
brr[j+1]=temp;}
}
}
for(int i=0;i<n;i++)
{
printf("学生%s的成绩是%d\n",arr[i],brr[i]);
}
}void grade_sort(char arr[][20],int brr[],int n) //按成绩升序排列函数
{
char crr[20]={0};
for(int i=1;i<n;i++)
{
for(int j=0;j<n-i;j++)
{
if(brr[j]>brr[j+1])
{
strcpy(crr,arr[j]);
strcpy(arr[j],arr[j+1]);
strcpy(arr[j+1],crr);
int temp=brr[j];
brr[j]=brr[j+1];
brr[j+1]=temp;}
}
}
for(int i=0;i<n;i++)
{
printf("学生%s的成绩是%d\n",arr[i],brr[i]);
}
}
int main(int argc,const char *argv[])
{
int menu=0; //存放菜单选项
int n=0; //存放学生个数
char name[100][20]={0}; //存放学生姓名
int grade[100]={0}; //存放学生成绩
while(1)
{
printf("\t\t========学生管理系统==========\n");
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========6.退出==========\n");
printf("请输入>>>");
scanf("%d",&menu);
getchar();
switch(menu)
{
case 1:
{
int m;
printf("请输入录入学生个数:");
scanf("%d",&m);
enter(name,grade,n,n+m-1);
n=n+m;
}
break;
case 2:
query(name,grade,n);
break;
case 3:
MAX(name,grade,n);
break;
case 4:
name_sort(name,grade,n);
break;
case 5:
grade_sort(name,grade,n);
break;
case 6:
goto END;}
}
END:
return 0;
}