学籍管理系统
1. 使用菜单完成
2. 有学生的信息录入功能:输入学生个数,并将学生的姓名、分数录入
3. 查看学生信息:输出所有学生姓名以及对应的分数
4. 求出学习最好的学生信息:求最大值
5.按姓名将所有学生进行升序排序
6. 按成绩将所有学生进行升序排序
#include<stdio.h>
#include<string.h>
int score[50]={0};
char name[50][50]={""};
int s=0;
void print_menu()
{
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");
}
void w1()
{
printf("输入学生的数量\n");
scanf("%d",&s);
printf("输入学生的学号\n");
for(int i=0;i<s;i++)
{
printf("请输入第%d个学生的成绩:\n", i+1);
scanf("%d",&score[i]);
}
for(int i=0;i<s;i++)
{
printf("请输入第%d个学生的姓名:\n", i+1);
scanf("%s",name[i]);
}
}
//输出所有学生的成绩
void w2()
{
for(int i=0;i<s;i++)
{
printf("%s同学的成绩为%d分\n",name[i],score[i]);
}
}
//找出学生分数最高的
void w3()
{
int maxi=0;
int max=score[0];
for(int i=0;i<s;i++)
{
if(max<score[i])
{
max=score[i];
maxi=i;
}
}
printf("分数最高的学生是%s,%d分\n",name[maxi],score[maxi]);
}
//按姓名进行排序
void w4(void)
{
int temp=0;
char temp1[50]="";
//排序
for(int i=0;i<s;i++)
{
for(int j=i;j<s;j++)
{
if(strcmp(name[j],name[i])<0)
{
temp=score[j];
score[j]=score[i];
score[i]=temp;
strcpy(temp1,name[j]);
strcpy(name[j],name[i]);
strcpy(name[i],temp1);
}
}
}
for(int i=0;i<s;i++)
{
printf("%s %d\n",name[i],score[i]);
}
}
void w5(void)
{
int temp=0;
char temp1[50]="";
for(int i=0;i<s;i++)
{
for(int j=i;j<s;j++)
{
if(score[j]<score[i])
{
temp=score[j];
score[j]=score[i];
score[i]=temp;
strcpy(temp1,name[j]);
strcpy(name[j],name[i]);
strcpy(name[i],temp1);
}
}
}
for(int i=0;i<s;i++)
{
printf("%s %d\n",name[i],score[i]);
}
}
int main(int argc, char const *argv[])
{
int menu=0;
while(1)
{
print_menu();
printf("要选用的服务\n");
scanf("%d",&menu);
switch (menu)
{
case 1:
{
w1();
}
break;
case 2:
{
w2();
}
break;
case 3:
{
w3();
}
break;
case 4:
{
w4();
}
break;
case 5:
{
w5();
}
break;
case 0: goto end;
default:
{
printf("输入错误\n");
}
break;
}
}
end :
return 0;
}