博客
关于我
6-10 按等级统计学生成绩 (20分)
阅读量:772 次
发布时间:2019-03-24

本文共 2225 字,大约阅读时间需要 7 分钟。

学生成绩管理系统

函数介绍

set_grade函数旨在根据学生的考试成绩自动评定等级,并统计不及格(成绩低于60分)的学生人数。这个简单的函数可以帮助教师或自动化系统快速处理学生成绩数据,方便后续统计和分析。

函数接口定义

int set_grade(struct student *p, int n);

输入参数

  • p:指向学生信息的结构体数组的指针
  • n:学生数组的元素个数

结构体定义

struct student {    int num;  // 学号    char name[20];  // 姓名    int score;  // 成绩    char grade;  // 等级};

功能说明

  • 设置等级

    • 成绩在85分及以上(不含85):评定为A等级
    • 成绩在70分及以上,但低于85:评定为B等级
    • 成绩在60分及以上,但低于70:评定为C等级
    • 成绩低于60:评定为D等级
  • 统计不及格人数

    • 每当学生的成绩低于60时,函数会将相应的学生标记为不及格,并增加不及格人数计数器
  • 返回值

    • 函数返回不及格的学生人数
  • 功能实现

    int set_grade(struct student *p, int n) {    int count = 0;    for (int i = 0; i < n; i++) {        if (p[i].score >= 85) {            p[i].grade = 'A';        } else if (p[i].score >= 70) {            p[i].grade = 'B';        } else if (p[i].score >= 60) {            p[i].grade = 'C';        } else {            p[i].grade = 'D';            count++;        }    }    return count;}

    测试程序

    #include 
    #define MAXN 10struct student { int num; char name[20]; int score; char grade;};int set_grade(struct student *p, int n);int main() { struct student stu[MAXN]; char *ptr = stu; int n, i, count; scanf("%d\n", &n); for (i = 0; i < n; i++) { scanf("%d%s%d", &stu[i].num, stu[i].name, &stu[i].score); stu[i].grade = '\0'; // 初始化为非空字符,避免未赋值问题 } count = set_grade(ptr, n); printf("The count for failed (<60): %d\n", count); printf("The grades:\n"); for (i = 0; i < n; i++) { printf("%d %s %c\n", stu[i].num, stu[i].name, stu[i].grade); } return 0;}

    输入示例

    1031001 annie 8531002 bonny 7531003 carol 7031004 dan 8431005 susan 9031006 paul 6931007 pam 6031008 apple 5031009 nancy 10031010 bob 78

    预期输出

    The count for failed (<60): 1The grades:31001 annie A31002 bonny B31003 carol B31004 dan B31005 susan A31006 paul C31007 pam C31008 apple D31009 nancy A31010 bob B

    解释

    • 输入与输出解析

      • 10:学生数量
      • 接下来10行分别为每个学生的信息:学号、姓名、成绩
      • 输出中的第一个行显示有1名学生未及格
      • 接下来的10行显示每个学生的评级信息,其中:
        • A:成绩为85分及以上
        • B:成绩为70到84分
        • C:成绩为60到69分
        • D:成绩为59分及以下
    • 函数核心逻辑

      • 使用四个条件判断分数区间,并根据结果设置等级
      • 每当评为D等级时,计数器count自增,最后返回该计数器值

    注意事项

    • 确保PFMT字符串为非空字符,避免未初始化导致的潜在错误
    • 调用函数前确保所有学生对象已正确初始化
    • 如果需要调整评分标准,可在条件判断中进行相应修改

    性能优化

    • 预先清零:在循环开始前,初始化学生结构体中的相关字段为0,避免内存泄漏或无效输出
    • 避免多余判断:确保条件判断逻辑正确,避免超链接式判断会导致的潜在错误
    • 循环优化:尽量减少循环内部的操作,提高更新效率

    通过上述实现,您可以轻松地根据学生成绩自动评定等级并统计不及格人数,方便后续的数据分析与管理。

    转载地址:http://xwgkk.baihongyu.com/

    你可能感兴趣的文章
    NIFI大数据进阶_FlowFile生成器_GenerateFlowFile处理器_ReplaceText处理器_处理器介绍_处理过程说明---大数据之Nifi工作笔记0019
    查看>>
    NIFI大数据进阶_Json内容转换为Hive支持的文本格式_操作方法说明_01_EvaluteJsonPath处理器---大数据之Nifi工作笔记0031
    查看>>
    NIFI大数据进阶_Kafka使用相关说明_实际操作Kafka消费者处理器_来消费kafka数据---大数据之Nifi工作笔记0037
    查看>>
    NIFI大数据进阶_Kafka使用相关说明_实际操作Kafka生产者---大数据之Nifi工作笔记0036
    查看>>
    NIFI大数据进阶_NIFI的模板和组的使用-介绍和实际操作_创建组_嵌套组_模板创建下载_导入---大数据之Nifi工作笔记0022
    查看>>
    NIFI大数据进阶_NIFI监控功能实际操作_Summary查看系统和处理器运行情况_viewDataProvenance查看_---大数据之Nifi工作笔记0026
    查看>>
    NIFI大数据进阶_NIFI监控的强大功能介绍_处理器面板_进程组面板_summary监控_data_provenance事件源---大数据之Nifi工作笔记0025
    查看>>
    NIFI大数据进阶_NIFI集群知识点_认识NIFI集群以及集群的组成部分---大数据之Nifi工作笔记0014
    查看>>
    NIFI大数据进阶_NIFI集群知识点_集群的断开_重连_退役_卸载_总结---大数据之Nifi工作笔记0018
    查看>>
    NIFI大数据进阶_内嵌ZK模式集群1_搭建过程说明---大数据之Nifi工作笔记0015
    查看>>
    NIFI大数据进阶_外部ZK模式集群1_实际操作搭建NIFI外部ZK模式集群---大数据之Nifi工作笔记0017
    查看>>
    NIFI大数据进阶_实时同步MySql的数据到Hive中去_可增量同步_实时监控MySql数据库变化_操作方法说明_01---大数据之Nifi工作笔记0033
    查看>>
    NIFI大数据进阶_离线同步MySql数据到HDFS_01_实际操作---大数据之Nifi工作笔记0029
    查看>>
    NIFI大数据进阶_离线同步MySql数据到HDFS_02_实际操作_splitjson处理器_puthdfs处理器_querydatabasetable处理器---大数据之Nifi工作笔记0030
    查看>>
    NIFI大数据进阶_离线同步MySql数据到HDFS_说明操作步骤---大数据之Nifi工作笔记0028
    查看>>
    NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
    查看>>
    NIFI数据库同步_多表_特定表同时同步_实际操作_MySqlToMysql_可推广到其他数据库_Postgresql_Hbase_SqlServer等----大数据之Nifi工作笔记0053
    查看>>
    NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001---大数据之Nifi工作笔记0068
    查看>>
    NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南002---大数据之Nifi工作笔记0069
    查看>>
    NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
    查看>>