c语言利用显示二级菜单

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

img

img

![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/579254644936155.jpg "#left"
#include <stdio.h>
#include <conio.h>
#define N 5
char name[];
int score[N+1];
float average ;
int rank[N+1] ; //全局数组,保存名次。
int total , max , min ;
int inputed = 0 ;
int sorted = 0 ;
int processed = 0 ;
void ListMenu( )
{
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问答也鼓励用户通过举报功能来对这些行为进行监督反馈,共建问答频道良好的风气。