1、完成一个班级一门课学生成绩的输入、修改;
2、实现总分、平均分统计,成绩查询、输出等功能;
3、按单科成绩在班级进行排序;
4、按功能模块写出各个函数。

{
printf(" 成绩管理菜单 \n");
printf("=================\n");
printf(" 1. 输入成绩 \n");
printf(" 2. 统计处理 \n");
printf(" 3. 名次排序 \n");
printf(" 4. 求总分、平均分\n");
printf(" 5. 输出 \n");
printf(" 0. 退出 \n");
printf("=================\n");
}
void inputmenu()
{
printf(" 输入二级菜单 \n");
printf("=================\n");
printf("0. 返回主菜单 \n");
printf("=================\n");
}
void outputmenu( )
{
printf(" 输出二级菜单 \n");
printf("=================\n");
printf(" 1. 按学号输出成绩\n");
printf(" 2. 按名次输出成绩\n");
printf(" 3. 按名次输出Topn\n");
printf(" 4. 输出不及格名单\n");
printf(" 0. 返回主菜单 \n");
printf("=================\n");
}
//按学号输出成绩
void outputbyno()
{
int i ;
printf("\n\n按学号输出成绩\n");
printf("\n学号\t成绩\t名次\n");
printf("=================\n");
for(i = 1 ; i <= N ; i++)
{
printf("%d\t%d\t%d\n" , i , score[i], rank[i]);
}
printf("=================\n");
printf("\n平均分:%.2f\n" , average);
printf("最高分:%d\n" , max);
printf("最低分:%d\n" , min);
}//end of outputbyn
//统计各科、各个同学的总分
void process()
{
int i ;
for (i = 1 ; i <= N ; i ++)
score[i] = 0 ;//各个同学的总分清0
printf("已经完成统计!\n");
}
//可以按照单科或者总分对名次排序
void sortfun()
{
int i , j ;
for (i = 1 ; i <= N ; i++)
rank[i] = 1 ;
for(i = 1 ; i < N ; i++)
{
for ( j = i+1 ; j <= N ; j++)//名次排序,成绩低的名次后移
if (score[i] > score[j])
rank[j]++ ;
else if (score[i] < score[j])
rank[i]++ ;
}
sorted = 1 ;
printf("名次已经排序\n");
}
//按名次输出成绩前几名
void outputbyrank(int n)
{
int i , r = 1 , same ;
printf("\n\n按名次输出前%d名单\n\n" ,n);
printf("名次\t学号\t成绩\n");
printf("======================\n");
while ( r <= n) //r代表名次,从1开始递增
{
same = 0 ;
for (i = 1 ; i <= N ; i++)
{
if (rank[i] == r)
{
printf("%d\t%d\t%d\n" , rank[i] , i , score[i]);
same ++;
}
}//end of for
r += same ;
}//end
你的思路是什么?我能为你干什么
亲爱的提问者您好,我们很乐意您在CSDN找到问题的答案。
但是问答频道谢绝一切直接提问作业、求源代码等的行为,在此对您发出正式警告。
请您在思考后提出问题,后续如果继续不加思考,直接提出作业问题,我们会限制您在问答频道的提问权益。
CSDN问答也鼓励用户通过举报功能来对这些行为进行监督反馈,共建问答频道良好的风气。