希望用C语言做,谢谢

 

代码如下,如有帮助,请采纳一下,谢谢。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct Student
{
	int id;        //学号
	char name[20]; //姓名
	int score;     //成绩
};
//录入信息
void InputInfo(struct Student arr[],int n)
{
	int i,j;
	for (i = 0;i < n; i++)
	{
		printf("请输入第%d名学生的信息(学号、姓名、课程成绩):",i+1);
		scanf("%d %s %d",&arr[i].id,arr[i].name,&arr[i].score);
	}
}


//排序
void SortByTotal(struct Student arr[],int n)
{
	int i,j;
	struct Student tmp;
	for (i = 0; i < n-1;i++)
	{
		for (j = 0;j < n-1-j;j++)
		{
			if(arr[j].score < arr[j+1].score)
			{
				tmp = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = tmp;
			}
		}
	}
	//显示
	for (i = 0;i< n;i++)
	{
		printf("%d\t%s\t%d\n",arr[i].id,arr[i].name,arr[i].score);
	}
}

//查询
void Find(struct Student arr[],int n)
{
	int i,j;
	int id;

	printf("请输入学号:");
	scanf("%d",id);

	for (i = 0;i < n;i++)
	{
		if( arr[i].id == id )
		{
			printf("%d\t%s\t%d\t%d\n",arr[i].id,arr[i].name,arr[i].score,i+1);
			break;;
		}
	}
}
//统计占比
void Tongji(struct Student arr[],int n)
{
	int i,j;
	int you = 0;
	int liang = 0;
	int zhong = 0;
	int jige = 0;
	int bujig = 0;
	for (i = 0; i< n;i++)
	{
		if (arr[i].score >= 90)
		{
			you++;
		}else if (arr[i].score >= 80 && arr[i].score <= 89)
		{
			liang++;
		}else if (arr[i].score >= 70 && arr[i].score <= 79)
		{
			zhong++;
		}else if (arr[i].score >= 60 && arr[i].score <= 69)
		{
			jige++;
		}else
			bujig++;
	}
	//显示
	printf("优秀人数%d,占比%f\n",you,1.0*you/n);
	printf("良好人数%d,占比%f\n",liang,1.0*liang/n);
	printf("中等人数%d,占比%f\n",zhong,1.0*zhong/n);
	printf("及格人数%d,占比%f\n",jige,1.0*jige/n);
	printf("不及格人数%d,占比%f\n",bujig,1.0*bujig/n);

}

int main()
{
	struct Student stu[30];
	int n;
	int opt;
	int bgo = 1;
	
	while(bgo)
	{
		printf("-------学生管理系统-------\n");
		printf("  1.录入学生信息          \n");
		printf("  2.按成绩排名            \n");
		printf("  3.查询学生信息          \n");
		printf("  4.统计各段成绩占比      \n");
		printf("  9.退出系统              \n");
		printf("--------------------------\n");
		scanf("%d",&opt);
		switch(opt)
		{
		case 1:
			printf("请输入学生人数:");
			scanf("%d",&n);
			InputInfo(stu,n);
			getchar();
			getchar();
			system("cls");
			break;
		case 2:
			SortByTotal(stu,n);
			getchar();
			getchar();
			system("cls");
			break;
		case 3:
			Find(stu,n);
			getchar();
			getchar();
			system("cls");
			break;
		case 4:
			Tongji(stu,n);
			getchar();
			getchar();
			system("cls");
			break;
		case 9:
			bgo = 0;
			break;
		}
	}
	return 0;

}