C语言代码实现学生成绩管理系统

C语言代码实现学生成绩管理系统的完整攻略

一、需求分析

学生成绩管理系统需要完成以下需求:

  1. 录入学生信息、成绩;
  2. 查询学生成绩;
  3. 修改学生成绩;
  4. 输出学生成绩列表;
  5. 统计学生成绩情况,如平均成绩、最高分、最低分等。

二、系统设计

  1. 学生信息和成绩的数据结构:
struct student {
    char name[20];  // 姓名
    int age;  // 年龄
    int id;  // 学号
    float score[3];  // 三门课程成绩
    float avgscore;  // 平均成绩
};
  1. 各个功能模块的设计:
  2. 录入学生信息:从键盘读取输入,将学生信息存入数组中。
  3. 查询学生成绩:输入要查询学生的姓名或学号,遍历数组,输出相关信息。
  4. 修改学生成绩:同样输入需求,查找到指定学生后,输入新的成绩覆盖原有成绩。
  5. 输出学生成绩列表:遍历数组,输出所有学生的姓名、学号和三门成绩。
  6. 统计学生成绩情况:对成绩进行遍历、计算即可。

示例一

以下是录入学生信息模块的代码实现:

#include <stdio.h>

#define TOTAL_NUM 100   // 最大学生数

struct student {
    char name[20];
    int age;
    int id;
    float score[3];
    float avgscore;
};

int main()
{
    struct student stu[TOTAL_NUM];  // 定义学生数组
    int count = 0;

    printf("请输入学生信息,输入0退出:\n");
    while (1) {
        if (count >= TOTAL_NUM) {
            printf("学生数已满,无法新增数据\n");
            break;
        }
        printf("请输入第%d个学生的姓名,输入0退出:", count+1);
        scanf("%s", stu[count].name);
        if (stu[count].name[0] == '0')
            break;

        printf("请输入第%d个学生的年龄:", count+1);
        scanf("%d", &stu[count].age);

        printf("请输入第%d个学生的学号:", count+1);
        scanf("%d", &stu[count].id);

        printf("请输入第%d个学生的三门课程成绩:", count+1);
        scanf("%f %f %f", &stu[count].score[0], &stu[count].score[1], &stu[count].score[2]);
        stu[count].avgscore = (stu[count].score[0] + stu[count].score[1] + stu[count].score[2]) / 3.0f;

        count++;
    }

    printf("录入的学生信息如下:\n");
    for (int i = 0; i < count; i++) {
        printf("%s %d %d %.2f %.2f %.2f\n", stu[i].name, stu[i].age, stu[i].id, 
               stu[i].score[0], stu[i].score[1], stu[i].score[2], stu[i].avgscore);
    }

    return 0;
}

示例二

以下是修改学生成绩模块的代码实现:

#include <stdio.h>

#define TOTAL_NUM 100   // 最大学生数

struct student {
    char name[20];
    int age;
    int id;
    float score[3];
    float avgscore;
};

int main()
{
    struct student stu[TOTAL_NUM];  // 定义学生数组
    int count = 0, modify_id, modify_index = -1;

    printf("请输入学生信息,输入0退出:\n");
    while (1) {
        if (count >= TOTAL_NUM) {
            printf("学生数已满,无法新增数据\n");
            break;
        }
        printf("请输入第%d个学生的姓名,输入0退出:", count+1);
        scanf("%s", stu[count].name);
        if (stu[count].name[0] == '0')
            break;

        printf("请输入第%d个学生的年龄:", count+1);
        scanf("%d", &stu[count].age);

        printf("请输入第%d个学生的学号:", count+1);
        scanf("%d", &stu[count].id);

        printf("请输入第%d个学生的三门课程成绩:", count+1);
        scanf("%f %f %f", &stu[count].score[0], &stu[count].score[1], &stu[count].score[2]);
        stu[count].avgscore = (stu[count].score[0] + stu[count].score[1] + stu[count].score[2]) / 3.0f;

        count++;
    }

    printf("请输入修改学生的学号:");
    scanf("%d", &modify_id);
    for (int i = 0; i < count; i++) {
        if (modify_id == stu[i].id) {
            modify_index = i;
            break;
        }
    }

    if (modify_index != -1) {
        printf("请输入新的三门成绩:");
        scanf("%f %f %f", &stu[modify_index].score[0], &stu[modify_index].score[1], &stu[modify_index].score[2]);
        stu[modify_index].avgscore = (stu[modify_index].score[0] + stu[modify_index].score[1] + stu[modify_index].score[2]) / 3.0f;
        printf("修改成功!\n");
        printf("学生 %s 的成绩信息如下:\n", stu[modify_index].name);
        printf("%.2f %.2f %.2f %.2f\n", stu[modify_index].score[0], stu[modify_index].score[1], stu[modify_index].score[2], stu[modify_index].avgscore);
    } else {
        printf("未找到该学生的信息!\n");
    }

    return 0;
}

三、系统实现

将各个模块的设计转化为代码实现即可。购买本公众号后台回复“成绩管理系统”获取完整源代码。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言代码实现学生成绩管理系统 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • C++实现学生考勤信息管理系统

    C++实现学生考勤信息管理系统 系统需求 首先,我们需要定义考勤信息管理系统的需求: 能够添加新学生记录; 能够删除指定学生记录; 能够显示所有学生记录; 能够修改指定学生记录; 能够查询指定学生记录。 数据结构设计 为了实现学生考勤信息管理系统,我们需要定义数据结构来存储学生记录。这里我们选择使用结构体来表示一个学生记录,包括以下字段: struct St…

    C 2023年5月23日
    00
  • C++中的对象指针总结

    C++中的对象指针总结 在C++中,指针是非常常见的数据类型,而对象指针就是指向一个对象的指针。本文将讲解C++中的对象指针的使用以及注意事项。 声明对象指针 在C++中声明一个对象指针非常简单,如下所示: ClassName *pObject; 其中,ClassName是要指向的对象的类名,pObject是指向这个对象的指针。需要注意的是,指针声明时必须要…

    C 2023年5月22日
    00
  • C语言实现大学生考勤管理系统

    C语言实现大学生考勤管理系统攻略 1. 确认需求 在开始开发大学生考勤管理系统之前,我们需要明确该系统的需求和功能。简单列举出以下几个方面: 学生信息录入功能 签到功能 课程信息管理功能 学生考勤数据统计分析 系统管理员的权限控制 2. 创建数据表 在开发大学生考勤管理系统之前,我们需要创建数据库以存储学生信息和考勤数据。我们可以使用 MySQL 等关系型数…

    C 2023年5月23日
    00
  • 邻接表无向图的Java语言实现完整源码

    如果要实现一个邻接表无向图的Java程序,需要进行以下几个步骤: 1. 定义节点类 首先定义一个节点类来存储图中的每个节点以及它们之间的关系(边): class Node { int label; // 节点编号 List<Node> edges = new LinkedList<>(); // 存储与该节点相连的边 Node(int…

    C 2023年5月22日
    00
  • 上古卷轴5传奇难度炼金师怎么开局好 传奇难度炼金师开局攻略

    上古卷轴5传奇难度炼金师开局攻略 炼金师角色建议 种族:阿尔高(Altaic)或暗精灵(Dark Elf),他们有更好的炼金术技能和魔法属性。 技能:炼金术、修补和瞄准。 石头:史前之石(The Steed),加快行走速度和背包容量。 装备:轻甲,弓箭和炮台制造材料。 开局攻略 步骤一:获得合适的装备 到河岸城镇(Riverwood)和白兰地(Whiteru…

    C 2023年5月22日
    00
  • jQuery解析Json实例详解

    下面是《jQuery解析Json实例详解》的完整攻略。 1. 什么是JSON JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript语言的一个子集。 2. jQuery解析JSON数据的方法 jQuery提供了专门的方法用于解析JSON数据,这个方法叫做$.parseJSON(),它能将符合JS…

    C 2023年5月23日
    00
  • C 语言简单加减乘除运算

    以下是关于C语言简单加减乘除运算的攻略: 标题 1. 加减乘除运算 C语言中,加减乘除运算的符号分别是: 运算符 含义 + 加 – 减 * 乘 / 除 2. 基本语法 C语言中的加减乘除运算的基本语法如下: int a = 10, b = 5; int r = a + b; // 加法运算 r = a – b; // 减法运算 r = a * b; // 乘…

    C 2023年5月23日
    00
  • JSON在ASP.NET中使用方法

    当我们需要在ASP.NET中使用JSON时,我们通常使用Newtonsoft.Json库来进行JSON的序列化和反序列化。 序列化JSON 我们可以通过以下代码将对象序列化为JSON字符串: using Newtonsoft.Json; // 创建一个对象 var person = new { Name = "张三", Age = 25,…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部