频道澳门葡京手机版网址
登录注册
澳门葡京手机版网址 > 澳门葡京手机版网址 > App开发 > C语言 > 正文
C语言--学生成绩管理系统
2016-11-03 09:12:00         来源:林世广  
收藏   我要投稿

某班最多有不超过30人(具体人数由键盘输入)参加某门课程的澳门新莆京娱乐。用一维数组作函数参数编程实现如下学生成绩管理系统
(1)录入每个学生学号和澳门新莆京娱乐成绩;
(2)计算课程的总分和平均分;
(3)按成绩由高到低排出名次表;
(4)按学号由小大排出成绩表;
(5)按学号查询学生排名及其澳门新莆京娱乐成绩;
按优秀(90~100分)、良好(80~89分)、中等(70~79分)、及格(60~69分)、不及格(0~59分)5个类别,统计每个类别的人数及所占的百分比。

1、源代码

#include
#include
#define STU_NUM 30            /*最多的学生人数*/
int Menu(void);               /*Menu()函数原型,功能是显示菜单*/
void ReadScore(long num[],float score [],int n);
void AverSumofScore(float score[],int n);
void DeSortbyScore(long num[],float [],int n);
void AsSortbyNum(long num[],float score[],int n);
void SearchbyNum(long num[],float score[],int n);
void StatisticAnalysis(float score[],int n);
void PrintScore(long num[],float score[],int n);
int main()
{
    char itemSelected;         /*字符型变量itemSelected为菜单选项*/
    int n=0;                   /*n为实际学生数,由用户输入*/
    float score[STU_NUM];      /*一组数组score,长度为STU_NUM,用于存放学生成绩*/
    long num[STU_NUM];         /*一组数组num,长度为STU_NUM,用于存放学生成绩*/
    while(1)     
    {
        itemSelected=Menu();   /*显示菜单,并读取用户输入*/
        switch(itemSelected)   /*根据菜单选项实行相应的程序*/
        {
            /*输入学生人数,向数组num和score顺序输入n个学生的学号和某门课的成绩*/
            case 1:printf("Input student number(n<%d):",STU_NUM);
                    scanf("%d",&n);
                    ReadScore(num,score,n);
                    break;
            /*计算全班总分和平均分*/
            case 2:AverSumofScore(score,n);
                   break;
            /*按选择法将数组score的元素按从高到低排序*/
            case 3:DeSortbyScore(num,score,n);
                   printf("\nSort in descending order by score:\n");
                   PrintScore(num,score,n);
                   break;
            /* 按选择法将数组num的元素按从大到小排序*/
            case 4:AsSortbyNum(num,score,n);
                   printf("\nSort in ascending order by score:\n");
                   PrintScore(num,score,n);
                   break;

            /*按学号查找学生成绩并显示查找成绩*/
            case 5:SearchbyNum(num,score,n);

                   break;
            /*统计各分数段的学生人数及所占百分比*/
            case 6:StatisticAnalysis(score,n);
                   break;
            /*打印学生分数*/
            case 7:PrintScore(num,score,n);
                   break;
            /*退出程序*/
            case 0:printf("退出程序!\n");
                   exit(0);
            default:printf("输入选项错误!");
        }
    }
    return 0;
}
/*函数功能:显示菜单并读得用户键盘输入的选项*/
int Menu(void)
{
    int itemSelected;/*整型变量itemSelected为菜单选项*/
    printf("\n学生成绩管理系统你\n");
    printf("1.输入学生成绩\n");
    printf("2.计算全班课程总分和平均分\n");
    printf("3.将成绩按从高到低排序\n");
    printf("4.将学号按从大到小排序\n");
    printf("5.按学号查询学生成绩\n");
    printf("6.统计分数\n");
    printf("7.成绩列表\n");
    printf("0.退出\n");
    printf("请输入你的选择:");
    scanf("%d",&itemSelected); /*读取用户输入*/
    return itemSelected;
}
/*函数功能:输入n个学生的某门课成绩*/
void ReadScore(long num[],float score [],int n)
{
    int i;
    printf("Input student's ID,name and score:\n");
    for(i=0;i0?sum/n:0);
}
/*函数功能:按选择法将数组score的元素值按从高到低排序*/
void DeSortbyScore(long num[],float score[],int n)
{
    int i,j,k;
    float temp1;
    long temp2;
    for(i=0;iscore[k])k=j;
        }
        if(k!=i)
        {
            /*交换成绩*/
            temp1=score[k];score[k]=score[i];score[i]=temp1;
            /*交换学好*/
            temp2=num[k];num[k]=num[i];num[i]=temp2;
        }
    }
}
/*函数功能:按选择法将数组num的元素值按从小到大排序*/
void AsSortbyNum(long num[],float score[],int n)
{
    int i,j,k;
    float temp1;
    long temp2;
    for(i=0;i=0 && score[i]<60)t[0]++;
        else if (score[i]<70)         t[1]++; 
        else if (score[i]<80)         t[2]++; 
        else if (score[i]<90)         t[3]++; 
        else if (score[i]<100)        t[4]++; 
        else if (score[i]==100)       t[5]++; 

    }
    for(total=0,i=0;i<5;i++)
    {
        total=total+t[i];
    }
    for(i=0;i<5;i++)
    {
        if(i==0)
        {
            printf("<60\t%d\t%.2f%%\n",t[i],(float)t[i]/n*100);
        }
        else if(i==5)
        {
            printf("%d\t%d\t%.2f%%\n",(i+5)*10,t[i],(float)t[i]/n*100);
        }
        else
        {
            printf("%d-%d\t%d\t.2f%%\n",(i+5)*10,(i+5)*10+9,t[i],(float)t[i]/n*100);
        }
    }
}
/*函数功能:打印学生成绩*/
void PrintScore(long num[],float score[],int n)
{
    int i;
    for(i=0;i

2、运行结果

这里写图片描述

这里写图片描述

这里写图片描述

**这里写图片描述**

点击复制链接 与好友分享!回澳门葡京手机版网址澳门葡京手机版网址
上一篇:linux下C语言之BMP图片操作编程(中)
下一篇:C语言基础常识汇总
相关文章
图文推荐
点击排行

关于大家 | 联系大家 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 澳门葡京手机版网址_澳门新莆京娱乐_www.88807.com - 点此进入--致力于做实用的IT技术学习网站

XML 地图 | Sitemap 地图