C语言成绩管理系统

吃客声声 2021-09-18 16:36 168 次浏览 赞 155

最新问答

  • winnietang1

    #include "stdio.h"
    struct stu{
    int sid,score;
    char g;
    };
    void scorein(struct stu *p,int n){
    int i,t;
    for(i=0;i scanf("%d%d",&p[i].sid,&p[i].score);
    p[i].g = (t=p[i].score)>89 && t<101 ? 'A' : t>79 && t<90 ? 'B' : t>69 && t<80 ? 'C' : t>59 && t<70 ? 'D' : 'E';
    }
    }
    int sum(struct stu *p,int n){
    int s=0;
    while(n--)
    s+=p++->score;
    return s;
    }
    void dssort(struct stu *p,int n){
    int i,j,k;
    struct stu t;
    printf(" STUID SCORE CLASS ===================== ");
    for(i=0;i for(k=i,j=k+1;j if(p[k].score k=j;
    if(k!=i)
    t=p[k],p[k]=p[i],p[i]=t;
    printf("%d %d %c ",p[i].sid,p[i].score,p[i].g);
    }
    }
    void idsort(struct stu *p,int n){
    int i,j,k;
    struct stu t;
    printf(" STUID SCORE CLASS ===================== ");
    for(i=0;i for(k=i,j=k+1;j if(p[k].sid>p[j].sid)
    k=j;
    if(k!=i)
    t=p[k],p[k]=p[i],p[i]=t;
    printf("%d %d %c ",p[i].sid,p[i].score,p[i].g);
    }
    }
    void query(struct stu *p,int n){
    int id;
    printf(" Please enter ID(int)... ");
    scanf("%d",&id);
    while(id-p->sid && n)
    p++,n--;
    if(n>=0){
    printf("STUID SCORE CLASS ===================== ");
    printf("%d %d %c ",p->sid,p->score,p->g);
    }
    else
    printf("No find! ");
    }
    void level(struct stu *p,int n){
    int d[5],i;
    char s[5][7]={"优秀","良好","中等","及格","不及格"};
    printf("统计信息如下: ");
    for(i=0;i<5;d[i++]=0);
    for(i=0;ig-'A']++);
    for(i=0;i<5;i++)
    printf("%6s: %d %.2f%% ",s[i],d[i],d[i]/(n+0.0)*100);
    }
    void outinfo(struct stu *p,int n){
    int i;
    printf(" STUID SCORE ============= ");
    for(i=0;i printf("%d %d ",p[i].sid,p[i].score);
    }
    int main(int argc,char *argv[]){
    int n,s;
    struct stu a[30];
    printf("Please enter n(int 0 if(scanf("%d",&n)!=1 || n<1 || n>30){
    printf("Input error, exit... ");
    return 0;
    }
    scorein(a,n);//输入
    dssort(a,n);//分数降序
    idsort(a,n);//学号升序
    query(a,n);//查询
    level(a,n);//等级和百分比
    outinfo(a,n);//输出各位信息
    printf("总分: %d",s=sum(a,n));
    printf(" 平均分: %.2f ",s/(n+0.0));
    return 0;
    }

    运行样例:

    浏览 447赞 53时间 2022-09-12

C语言成绩管理系统