`
hongbochen1223
  • 浏览: 43582 次
文章分类
社区版块
存档分类
最新评论

使用“结构”统计学生成绩

阅读更多

设学生信息包括学号,姓名和五门功课的成绩,要求编写输入输出
学生信息的函数。在输入一组学生信息后,以学生成绩的总分从高
到低顺序输出学生信息。

这个相对来说比较简单,可以创建一个学生的结构体,结构体里面有三个成员:学号,姓名和五门功课的成绩。下面请看一下我的整体代码。这个思路也比较简单,主要是为了练习使用结构体。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define N 200
#define SCORES 5
#define NUMLEN 10

/**
 * 设学生信息包括学号,姓名和五门功课的成绩,要求编写输入输出
 * 学生信息的函数。在输入一组学生信息后,以学生成绩的总分从高
 * 到低顺序输出学生信息。
 */

struct student{
    char number[NUMLEN]; /* 学号 */
    char *name; /* 学生姓名 */
    int scores[SCORES]; /* 学生五门功课的成绩 */
};

struct student stus[N];
int order[N];
int total[N];

int readstu(struct student *stu){
    int len,j;
    char buf[120]; //缓冲区

    printf("Number    : ");
    if(scanf("%s",buf) == 1){
        strncpy(stu->number,buf,NUMLEN-1);
    }else{
        return 0; //ctrl+z退出
    }

    printf("Name    : ");
    if(scanf("%s",buf) == 1){
        len = strlen(buf);
        stu->name = (char *)malloc(len+1);
        strcpy(stu->name,buf);
    }else{
        return 0;
    }

    printf("Scores    : ");
    for(j = 0;j < SCORES;j++)
        if(scanf("%d",stu->scores+j) != 1)
            break;

        if(j == 0){  //一个成绩也没有录入,清空name所占有的内存
            free(stu->name);
            return 0;
        }

        for(;j<SCORES;j++)
            stu->scores[j] = 0;

    return 1;
}

/* 输出学生信息 */
void writeStu(struct student *stu){
    int i;

    printf("Number    : %s\n",stu->number);
    printf("Name    : %s\n",stu->name);

    printf("Scores    : ");
    for(i = 0;i < SCORES;i++)
        printf("%4d ",stu->scores[i]);
    printf("\n\n");
}


int main()
{
    int n,i,j,t;

    //获取学生信息
    for(n = 0; readstu(stus+n); n++);

    for(i = 0;i < n;i++){
        order[i] = i;

        for(t = 0,j = 0;j < SCORES;j++){
            t += stus[i].scores[j];
        }

        total[i] = t;
    }

    //冒泡排序输出
    for(i = 0;i < n;i++){
        for(j = 0;j < n-1;j++){
            if(total[order[j]] < total[order[j+1]]){
                //交换
                t = order[j];
                order[j] = order[j+1];
                order[j+1] = t;
            }
        }
    }

    for(j = 0;j <n;j++){
        writeStu(stus+order[j]);
    }

    return 0;
}

下面是我的输出的结果:

这里写图片描述

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    数据结构 学生成绩统计 实验报告附源代码.doc

    一个班同学的学号为1-n,输入n位同学的学号、姓名、语文、数学、英语等3门课程成绩,实现成绩表的录入、总分统计、总分排序和输出。 2.需求分析。(10分) 三、概要设计 四、模块设计 五、详细设计 六、测试分析 七...

    学生数据结构成绩管理系统

    1.输入功能:可以一次完成5条记录的输入。 2.显示信息:完成全部学生记录的显示。 3.查询功能:完成按学号查找学生记录,并显示。...5.统计功能:统计出各分数段学生人数(60分以下,60~70,71~80,...)

    学生成绩统计程序设计

    基本功能:设学生姓名及成绩已分别存入指定数据存储单元,统计成绩分布的人数:A级(90~100),B级(80~89),C级(70~79),D级(60~69),E级(0~59)。并按顺序显示全班成绩,及统计信息。要求界面友好。 增强...

    数据结构课程设计——学生成绩管理系统

    学生成绩管理系统 功能需求:1、提供身份验证,和使用系统的权限设置、判定。 2、(教师用户)能实现本班同学各学期各科成绩的录入、编辑,数据必须保存在文件中,以便反复使用。 3、(学生用户或游客)提供对...

    学生成绩管理系统(数据结构课程设计)

    学生成绩管理系统,功能包括: 1、提供身份验证,和使用系统的权限设置、判定。 2、(教师用户)能实现09信管1班同学各学期各科成绩的录入、编辑,数据必须保存在文件中,以便反复使用。 3、(学生用户或游客)提供...

    学生成绩管理系统 数据结构 C++

    数据结构 顺序 C++ 学生成绩输入,查找,删除

    用汇编语言实现学生成绩统计分析

    用汇编语言实现学生成绩统计分析,实验内容:编制一个程序,统计低于60分,60~69分,70~79分,80~89分,90~99分和100分的人数,并输出显示统计结果...2、统计学生成绩和显示统计结果两部分内容用子程序结构来完成。

    数据结构课程设计学生成绩管理系统方案.doc

    课程设计任务容 " "设计一个简易的学生成绩管理系统,能够完成学生成绩的增加、删除、查找、 " "修改、统计等操作,数据信息保存文件保存。要求系统具有菜单和提示,界面 " "友好。 " "2.课程设计要求 " "实现学生...

    数据结构课设-C语言实现的学生成绩管理系统

    学生成绩管理是高等学校教务管理的重要组成部分,主要包括学生注册、考试成绩的录入及修改、成绩的统计分析等等。设计一个系统实现对学生成绩的管理。要求系统应具有以下基本功能: (1)学生注册登记; (2)增加...

    034 用“结构”统计学生成绩C语言

    034 用“结构”统计学生成绩C语言

    学生成绩管理系统 数据结构

    学生成绩管理是高等学校教务管理的重要组成部分,主要包括学生注册、考试成绩的录入及修改、成绩的统计分析等等。设计一个系统实现对学生成绩的管理。 要求系统应具有以下基本功能: (1)学生注册登记; (2)增加...

    学生成绩管理系统的设计与实现(顺序表)

    适用于刚刚学会使用C语言的初学者人群,内容较为详细,用顺序表实现该系统的...8.统计学生成绩信息的功能:选出数据结构的学生成绩和统计人数,求出平均成绩,然后在数据结构学生成绩的条件下统计不及格人数并输出。

    课程设计学生成绩管理系统设学生成绩已以一个学生一个记录的形式存储在文件中,

    编制一个统计学生考试分数的管理程序。 设学生成绩已以一个学生一个记录的形式存储在文件中, 每位学生记录包含的信息有:姓名,学号和各门功课的成绩。 程序具有以下几项功能:求出各门课程的总分,平均分,按姓名...

    学生成绩管理系统的代码

    数据结构课程设计——学生成绩信息管理系统 实现的主要功能是: ...8.统计学生成绩信息的功能:选出数据结构的学生成绩和统计人数,求出平均成绩,然后在数据结构学生成绩的条件下统计不及格人数并输出。

    学生成绩管理系统课程设计报告

    学生成绩管理:(结构体数组、函数、指针、算法、流程结构及文件等的综合应用) 程序说明:有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统,使之能提供以下...

    成绩统计 数据结构课程设计

    (1)学生的分数高低次序问题描述:给出n个学生的考试成绩表,每条信息由姓名和分数组成,并且打印出每个学生在考试中所获得的名次,当学生的分数相同时为同一名次; (2)按照学生排列名次列出每个学生的姓名与分数。 ...

    数据结构课程设计-统计成绩

    数据结构课程设计--统计学生成绩 C++编写

    链表结构(学生成绩)

    这是c的链表很全的 可以帮我们做很多事情

    统计一个班(最多有50人)的学生成绩

    1.1设计一个程序,统计一个班(最多有50人)的学生成绩,要求能实现如下四个功能: (1) 由键盘或文件输入每个学生的学号和四门课程的成绩; (2) 计算每个学生的平均成绩和总成绩; (3) 按总成绩从高到低排名,并...

    数据结构程序设计学生成绩管理系统

    数据结构课程设计,用c语言设计学生成绩管管理系统,功能完善。能准确的从文本中读入学生信息,并且能对学生信息经行标记和统计等等

Global site tag (gtag.js) - Google Analytics