一、完成学生管理系统
#include <stdio.h>
#include <string.h>
void print_menu()
{
printf("======欢迎使用学生管理系统======\n");
printf("========1.学生信息录入==========\n");
printf("========2.学生信息查看==========\n");
printf("========3.成绩最好学生信息======\n");
printf("========4.学生姓名升序排序======\n");
printf("========5.学生成绩升序排序======\n");
printf("========0.退出学生管理系统======\n");
}
void enter(int n, char studentName[][20], int studentAchievement[])
{
for(int i=0; i<n; i++)
{
printf("请输入第%d个学生的姓名:", i+1);
scanf("%s", studentName[i]);
getchar();
printf("请输入第%d个学生的成绩:", i+1);
scanf("%d", &studentAchievement[i]);
getchar();
}
printf("学生信息录入结束\n\n");
}
void select(int n, char studentName[][20], int studentAchievement[])
{
for(int i=0; i<n; i++)
{
{
printf("姓名:%-21s成绩:%d\n", studentName[i], studentAchievement[i]);
}
}
putchar(10);
}
void achievement_max(int n, char studentName[][20], int studentAchievement[])
{
int maxi = 0,
max = studentAchievement[0];
for(int i=1; i<n; i++)
{
if(max < studentAchievement[i])
{
max = studentAchievement[i];
maxi = i;
}
}
printf("成绩最好学生信息:\n姓名:%-21s成绩:%d\n", studentName[maxi], studentAchievement[maxi]);
putchar(10);
}
void sort_name(int n, char studentName[][20], int studentAchievement[])
{
int achievement = 0;
char name[20] = "";
for(int i=1; i<n; i++)
{
for(int j=0; j<n-i; j++)
{
if(strcmp(studentName[j], studentName[j+1])>0)
{
strcpy(name, studentName[j]);
strcpy(studentName[j], studentName[j+1]);
strcpy(studentName[j+1], name);
achievement = studentAchievement[j];
studentAchievement[j] = studentAchievement[j+1];
studentAchievement[j+1] = achievement;
}
}
}
for(int i=0; i<n; i++)
{
printf("姓名:%-21s成绩:%d\n", studentName[i], studentAchievement[i]);
}
putchar(10);
}
void sort_achievement(int n, char studentName[][20], int studentAchievement[])
{
int achievement = 0;
char name[20] = "";
for(int i=1; i<n; i++)
{
for(int j=0; j<n-i; j++)
{
if(studentAchievement[j]>studentAchievement[j+1])
{
strcpy(name, studentName[j]);
strcpy(studentName[j], studentName[j+1]);
strcpy(studentName[j+1], name);
achievement = studentAchievement[j];
studentAchievement[j] = studentAchievement[j+1];
studentAchievement[j+1] = achievement;
}
}
}
for(int i=0; i<n; i++)
{
printf("姓名:%-21s成绩:%d\n", studentName[i], studentAchievement[i]);
}
putchar(10);
}
int main(int argc, const char *argv[])
{
int studentNum = 0,
studentAchievement[20] = {0};
char studentName[10][20] = {""};
while(1)
{
int menu = 0;
print_menu();
printf("请输入>>>>>");
scanf("%d", &menu);
switch(menu)
{
case 1:
{
printf("请输入要录入信息学生人数:");
scanf("%d", &studentNum);
getchar();
enter(studentNum,studentName,studentAchievement);
break;
}
case 2:
{
select(studentNum,studentName,studentAchievement);
break;
}
case 3:
{
achievement_max(studentNum,studentName,studentAchievement);
break;
}
case 4:
{
sort_name(studentNum,studentName,studentAchievement);
break;
}
case 5:
{
sort_achievement(studentNum,studentName,studentAchievement);
break;
}
case 0:
{
goto EXIT;
}
default: printf("您输入的功能有误,请重新输入!\n");
}
}
EXIT:
return 0;
}
![](https://i-blog.csdnimg.cn/direct/693f9c01f8954c05ac1b99f28316bcb5.png)
![](https://i-blog.csdnimg.cn/direct/ab8f804b9c3a4614bf166961f3c3132e.png)
二、思维导图![](https://i-blog.csdnimg.cn/direct/4a397c9692284bcda38cacef8feaf8b7.png)