完成学生管理系统
1> 使用菜单完成
2> 有学生的信息录入功能:输入学生个数,并将学生的姓名、分数录入
3> 查看学生信息:输出所有学生姓名以及对应的分数
4> 求出学习最好的学生信息:求最大值
5> 按姓名将所有学生进行升序排序
6> 按成绩将所有学生进行升序排序
要求每个功能使用函数完成
#include<stdio.h>
#include<string.h>
void caidan()
{
printf("——————学生信息管理系统————\n");
printf("——————系统功能菜单——————\n");
printf("1、信息录入\n");
printf("2、查看学生信息\n");
printf("3、查看学习成绩最好的学生信息\n");
printf("4、按姓名进行升序排序\n");
printf("5、按成绩进行升序排序\n");
printf("——————按0退出——————\n");
}
//信息录入
void xinxi(int n,char name[100][20],int fen[])
{
for(int i=0;i<n;i++)
{
printf("请输入第%d个学生的姓名:",i+1);
scanf("%s",name[i]);
printf("请输入第%d个学生的成绩:",i+1);
scanf("%d",&fen[i]);
getchar();
}
printf("录入成功\n");
}
//查看信息
void chakan(int n,char name[100][20],int fen[])
{
for(int i=0;i<n;i++)
{
printf("第%d个学生的姓名为:%s\t成绩为:%d\n",i+1,name[i],fen[i]);
}
printf("\n");
}
//求最大值
void max(int n,char name[100][20],int fen[])
{
int max=fen[0];
int k=0;
for(int i=1;i<n;i++)
{
if(max<fen[i])
{
max=fen[i];
k=i;
}
}
printf("成绩最好的学生是%s,他的分数为:%d\n",name[k],fen[k]);
printf("\n");
}
//按姓名升序排序
void up(int n,char name[100][20],int fen[])
{
char temp[20]="";
int tcmp=0;
for(int i=1;i<n;i++)
{
for(int j=0;j<n-i;j++)
{
if(strcmp(name[j],name[j+1])>0)
{
strcpy(temp,name[j]);
strcpy(name[j],name[j+1]);
strcpy(name[j+1],temp);
tcmp=fen[j];
fen[j]=fen[j+1];
fen[j+1]=tcmp;
}
}
}
printf("按姓名升序排序为:\n");
for(int i=0;i<n;i++)
{
printf("%s\t%d\t\n",name[i],fen[i]);
}
printf("\n");
}
//按成绩升序排序
void down(int n,char name[100][20],int fen[])
{
char temp[20]="";
int tcmp=0;
for(int i=1;i<n;i++)
{
for(int j=0;j<n-i;j++)
{
if(fen[j]>fen[j+1])
{
strcpy(temp,name[j]);
strcpy(name[j],name[j+1]);
strcpy(name[j+1],temp);
tcmp=fen[j];
fen[j]=fen[j+1];
fen[j+1]=tcmp;
}
}
}
printf("按成绩升序排序为:\n");
for(int i=0;i<n;i++)
{
printf("%s\t%d\t\n",name[i],fen[i]);
}
printf("\n");
}
//主函数
int main(int argc, char const *argv[])
{
int x=0; //功能
int n=0; //学生数量
char name[100][20]={0}; //姓名
int fen[100]={0}; //分数
caidan();
while(1)
{
printf("请输入你要使用的功能:");
scanf("%d",&x);
switch(x)
{
case 1:
{
printf("输入学生个数:");
scanf("%d",&n);
xinxi(n,name,fen);
break;
}
case 2:
{
chakan(n,name,fen);
break;
}
case 3:
{
max(n,name,fen);
break;
}
case 4:
{
up(n,name,fen);
break;
}
case 5:
{
down(n,name,fen);
break;
}
case 0:
{
goto END;
}
default: printf("您输入的格式有问题\n");
}
}
END:
return 0;
}