成绩管理系统

/*win-tc*/
/*在VC++无法运行,有些涵数VC++不支持*/
/*基本功能实现成绩的输入、输出、求最大值、最小值、排序等操作*/

#include"stdio.h"
#include"ctype.h"
#define Esc 27        /*定义退出的键位*/
#define SIZE 10       /*定义学生的大小*/
#define MAXdigit 20   /*定义输入成绩的最大位数*/
int input_all_score(int iscore[],int isize);
void output_all_score(int iscore[],int isize);
void count_for_max(int iscore[],int isize);
void count_for_min(int iscore[],int isize);
void count_for_total(int iscore[],int isize);
void count_for_average(int iscore[],int isize);
void count_above_60_brown_100_score(int iscore[],int isize);
void count_brown_60_score(int iscore[],int isize);
void count_from_min_to_max(int iscore[],int isize);
void count_from_max_to_min(int iscore[],int isize);
int getdigi(int icount);
void main()
{
    int iscore[SIZE]={0};
    char ckey='a';
    int istate=0;
    do
    {
        clrscr();
        printf("*****************************************************************************/n");
        printf("/tThe is a management system about scores./n/t/t/tWELCOME/n");
        printf("*****************************************************************************/n");
        printf("*| 1=Input scores |  | 2=output scores |  | 3=max |          | 4=min |      */n");
        printf("*| 5=total |         | 6=average |      | 7=60<score<100 |   | 8=score<60 | */n");
        printf("*| 9=min to max |    | Esc=Exit system |  | 0=max to min |                  */n");
        printf("*****************************************************************************/n");
        printf("please input your choose(0-9):/n");
        ckey=getch();
        if(ckey=='1')   /*输入成绩*/
            istate=input_all_score(iscore,SIZE);
        else if((istate==0)&&(ckey!=Esc))
        {
            printf("/nERROR:you must input scores first!");
            printf("/npress a key to continue.");
            getch();
        }
        else if(ckey=='2')  /*输出成绩*/
            output_all_score(iscore,SIZE);
        else if(ckey=='3')  /*最大值*/
            count_for_max(iscore,SIZE);
        else if(ckey=='4')   /*最小值*/
            count_for_min(iscore,SIZE);
        else if(ckey=='5')   /*总分*/
            count_for_total(iscore,SIZE);
        else if(ckey=='6')   /*平均分*/
            count_for_average(iscore,SIZE);
        else if(ckey=='7')   /*60<成绩<100*/
            count_above_60_brown_100_score(iscore,SIZE);
        else if(ckey=='8')   /*成绩>60*/
            count_brown_60_score(iscore,SIZE);
        else if(ckey=='9')   /*从小到大排序*/
            count_from_min_to_max(iscore,SIZE);
        else if(ckey=='0')   /*从大到小排序*/
            count_from_max_to_min(iscore,SIZE);
    }
    while(ckey!=Esc);  /*当你按键盘上的Esc键时退出程序*/
}

/*输入成绩*/
int input_all_score(int iscore[],int isize)
{
    int iindex=0;
    printf("please input %d scores:/n",isize);
    for(iindex=0;iindex<isize;iindex++)
    {
        printf("please input the %d scores:",iindex);
        iscore[iindex]=getdigi(3);
    }
    return 1;
}

/*输出成绩*/
void output_all_score(int iscore[],int isize)
{
    int iindex=0;
    for(iindex=0;iindex<isize;iindex++)
    {
        printf("iscore[%2d]=%3d/n",iindex,iscore[iindex]);
    }
    getch();
}

/*查找最大值*/
void count_for_max(int iscore[],int isize)
{
    int imax=iscore[0];
    int iindex=0;
    for(iindex=0;iindex<isize;iindex++)
    {
        if(imax<iscore[iindex])
            imax=iscore[iindex];
    }
    printf("/nthe max score is %d",imax);
    getch();
}

/*查找最小值*/
void count_for_min(int iscore[],int isize)
{
    int imin=iscore[0];
    int iindex=0;
    for(iindex=0;iindex<isize;iindex++)
    {
        if(imin>iscore[iindex])
            imin=iscore[iindex];
    }
    printf("/nthe min score is %d",imin);
    getch();
}

/*计算总分*/
void count_for_total(int iscore[],int isize)
{
    int iindex=0;
    int isum=0;
    for(iindex=0;iindex<isize;iindex++)
    {
        isum=isum+iscore[iindex];
    }
    printf("/nthe total score is %d",isum);
    getch();
}

/*计算平均分*/
void count_for_average(int iscore[],int isize)
{
    int iindex=0;
    float faverage=0;
    for(iindex=0;iindex<isize;iindex++)
    {
        faverage=faverage+iscore[iindex];
    }
    faverage=faverage/isize;
    printf("/nthe average score is %.2f",faverage);
    getch();
}

/*查找大于60小于100的人数及分数*/
void count_above_60_brown_100_score(int iscore[],int isize)
{
    int icount=0;
    int iindex=0;
    for(iindex=0;iindex<isize;iindex++)
    {
        if((iscore[iindex]>60)&&(iscore[iindex]<=100))
        {
            printf("the score is %d/n",iscore[iindex]);
            icount++;
        }
    }
    printf("the score from 60 to 100 number is %d/n",icount);
    getch();
}

/*查找小于60的人数及分数*/
void count_brown_60_score(int iscore[],int isize)
{
    int icount=0;
    int iindex=0;
    for(iindex=0;iindex<isize;iindex++)
    {
        if(iscore[iindex]<60)
        {
            printf("the score is %d/n",iscore[iindex]);
            icount++;
        }
    }
    printf("the score browm 60 number is %d/n",icount);
    getch();
}

/*从最小到最大排序*/
void count_from_min_to_max(int iscore[],int isize)
{
    int ivar=0,jindex=0;
    int iindex=0;
    for(ivar=0;ivar<isize-1;ivar++)
    {
        for(iindex=ivar+1;iindex<isize;iindex++)
        {
            if(iscore[ivar]>iscore[iindex])
            {
                jindex=iscore[iindex];
                iscore[iindex]=iscore[ivar];
                iscore[ivar]=jindex;
            }
        }
    }
    for(iindex=0;iindex<isize;iindex++)
    {
        printf("%5d/n",iscore[iindex]);
    }
    getch();
}

/*从最大到最小排序*/
void count_from_max_to_min(int iscore[],int isize)
{
    int ivar=0,jindex=0;
    int iindex=0;
    for(ivar=0;ivar<isize-1;ivar++)
    {
        for(iindex=ivar+1;iindex<isize;iindex++)
        {
            if(iscore[ivar]<iscore[iindex])
            {
                jindex=iscore[iindex];
                iscore[iindex]=iscore[ivar];
                iscore[ivar]=jindex;
            }
        }
    }
    for(iindex=0;iindex<isize;iindex++)
    {
        printf("%5d/n",iscore[iindex]);
    }
    getch();
}

/*判断输入的成绩是否为数字*/
int getdigi(int icount)
{
    int iloop=0;
    char digit_str[MAXdigit]={'0'};
    iloop=0;
    do
    {
        digit_str[iloop]=getch();
        if(isdigit(digit_str[iloop]))
        {
            putch(digit_str[iloop]);
            iloop++;
        }
    }
    while(iloop<icount);
    return atoi(digit_str);
}
结果如下:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学生成绩管理系统是一个学校不可缺少的重要部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该为用户提供充足的信息和快捷的查询手段。当前成教学院没有一个完善的成绩信息管理平台,计算机使用主要基于Microsoft Office,不能发挥有效的作用。而且随着我国教育改革的不断深入以及自学教育的不断扩招,参加考试的人越来越多,考试科目的多样化,使得成教学院对自学考试成绩的管理越趋繁琐、复杂,工作业务繁杂,工作量大,这种传统的学生管理模式已经暴露出种种弊端:难以统一调配和处理,效率极低,缺乏科学性以及合理性。随着计算机应用的普及与深入,利用计算机能够对所有自学考试成绩进行统一管理,并进行分析,大大减少教学秘书的工作量,提高工作效率,为教学办公带来了极大的方便。通过操作手册,使用者可以了解本软件的基本工作原理及使用说明。操作人员只需输入一些简单的汉字、数字,就可以存储、查找、修改、打印学生成绩信息等。本系统开发的总体任务是实现学生成绩管理的系统化、规范化、自动化、达到提高学生成绩管理效率的目的,本系统本着实用性、通用、开放和安全的原则,使数据库开发软件开发制作,实现了学生信息管理、课程信息管理、学生成绩管理、成绩查询等功能。该设计方法易于推广至其它信息化管理系统的设计,充分利用计算机作为辅助工具,实现学生考试成绩从传统的手工管理到计算机管理,对提高管理效率和节约大量的人力、物力有一定的推动作用。本系统一切从实际出发,充分考虑了成绩的内部管理、信息交流等方面的复杂需求,实现成绩的有效管理,真正为学生成绩管理提供一个电子平台。 因此为了充分利用成教学院现有的计算机硬件资源,做好 学生成绩管理工作,提高办事效率,实现全面的、相对集中的办公自动化,开发本系统就成了当务之急,其目的主要为了彻底改变这种繁杂的管理模式,实现全面的、相对集中的、智能化的信息综合管理,为成教学院的教学管理工作带来方便。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值