C语言结构体版学生成绩管理系统

下面就结构体版学生成绩管理系统的完整攻略进行详细讲解,包括操作流程、代码实现和两个实例说明。

操作流程

  1. 首先要定义一个结构体,用于存储学生成绩相关的信息,比如学号、姓名、数学成绩、语文成绩、英语成绩等。

  2. 接着,需要定义一个数组,用于存储这些结构体,数组的长度可以自行设定。

  3. 然后,编写函数实现添加学生、查询学生、修改学生、删除学生、显示全部学生成绩等基本操作。

  4. 最后,设计界面,让用户可以在命令行上输入相应指令,实现对学生信息的管理。

代码实现

下面是一个简单的结构体版学生成绩管理系统的代码实现示例:

#include <stdio.h>

struct student{
    int id;
    char name[20];
    float math;
    float chinese;
    float english;
};

typedef struct student student;

int main(){
    student stu[100];
    int n = 0;
    int i, id, choice;
    char c;

    while (1){
        printf("1: add 2: delete 3: modify 4: query 5: show all\n");
        printf("please input your choice:\n");

        scanf("%d", &choice);

        switch (choice){
            case 1:
                printf("input id, name, math score, chinese score, english score:\n");
                scanf("%d %s %f %f %f", &stu[n].id, stu[n].name, &stu[n].math, &stu[n].chinese, &stu[n].english);
                n++;
                break;
            case 2:
                printf("input delete id:\n");
                scanf("%d", &id);
                for (i = 0; i < n; i++){
                    if (stu[i].id == id){
                        for (; i < n - 1; i++){
                            stu[i] = stu[i + 1];
                        }
                        n--;
                        break;
                    }
                }
                break;
            case 3:
                printf("input modify id:\n");
                scanf("%d", &id);
                for (i = 0; i < n; i++){
                    if (stu[i].id == id){
                        printf("input name, math score, chinese score, english score:\n");
                        scanf("%s %f %f %f", stu[i].name, &stu[i].math, &stu[i].chinese, &stu[i].english);
                        break;
                    }
                }
                break;
            case 4:
                printf("input query id:\n");
                scanf("%d", &id);
                for (i = 0; i < n; i++){
                    if (stu[i].id == id){
                        printf("id: %d, name: %s, math: %.2f, chinese: %.2f, english: %.2f\n", stu[i].id, stu[i].name, stu[i].math, stu[i].chinese, stu[i].english);
                        break;
                    }
                }
                break;
            case 5:
                printf("all students:\n");
                for (i = 0; i < n; i++){
                    printf("id: %d, name: %s, math: %.2f, chinese: %.2f, english: %.2f\n", stu[i].id, stu[i].name, stu[i].math, stu[i].chinese, stu[i].english);
                }
                break;
            default:
                printf("please input a correct number!\n");
                break;
        }

        printf("continue?(y/n)\n");
        scanf("%s", &c);
        if(c != 'y' && c != 'Y'){
            break;
        }
    }
    return 0;
}

上述代码的实现是基于结构体的代码实现,通过结构体将一名学生的各项信息存储为一个数据类型,再通过数组存储多名学生的信息。各个操作的实现可以根据对于结构体数组的操作进行,具体参照代码实现。

示例说明

假设有一位学生,学号为1001,姓名为张三,数学成绩为78分,语文成绩为85分,英语成绩为92分。根据上述代码,我们可以输入“1”,然后输入这个学生的具体信息,进行添加操作。这样就成功将这位学生的信息存储到了数组中。

另外一个示例是,如果需要查询学生信息,可以输入“4”,再输入需要查询的学生的学号,程序便会找到该学生对应在数组中的位置,输出该学生的全部信息,从而实现查询操作。

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

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

相关文章

  • C++实现简易反弹小球游戏的示例代码

    好的。首先,让我们来讲解如何使用C++实现简易反弹小球游戏的完整攻略。 准备工作 在开始编写代码之前,我们需要准备一些工具和环境: C++编译器(建议使用Visual Studio等集成开发环境) 游戏引擎或者相关库(例如SDL2等) 在本篇攻略中,我们将使用SDL2库来实现我们的游戏。因此,在开始之前,我们需要安装SDL2库及其所需的依赖项。 编写代码 接…

    C 2023年5月24日
    00
  • C++简单又轻松的讲解类和对象中友元函数

    C++中类和对象中的友元函数是一个非常重要的概念,下面我将为大家详细讲解,包括什么是友元函数、如何使用友元函数以及友元函数的作用。 什么是友元函数? 友元函数是在类的外部定义的,但是它能够访问类的私有数据成员。例如,一个类中的成员函数可以访问该类的私有数据成员,而友元函数也可以访问该类的私有数据成员,因此它就被称为友元函数。 在C++中,友元函数有两种类型:…

    C 2023年5月23日
    00
  • C语言创建和使用不透明指针

    C语言创建和使用不透明指针 什么是不透明指针 不透明指针是一种指针类型,在定义时不指定指向的数据类型,编译器无法确定指针所指向的数据的内存大小和类型,从而使得指向的数据对用户来说是不可见的,只有通过特定的函数接口才能访问到对应的数据。 不透明指针的常见应用场景是在某些库中,对外部提供一些数据类型,但是不希望把具体的实现细节暴露给外部使用者。 不透明指针的创建…

    C 2023年5月10日
    00
  • C++ vector的简单实现

    C++ vector的简单实现 在C++中,vector是一种非常常用的容器,它能够动态地保存一组元素(比如整数、浮点数以及自定义类型等)。在本文中,我们将分步讲解如何实现一个简单的vector。 步骤1:定义类和变量 我们首先要定义一个vector类,它可以保存任意类型的元素,使用template<typename T>来定义: templat…

    C 2023年5月23日
    00
  • 算法详解之分治法具体实现

    算法详解之分治法具体实现 分治法是一种经典的算法思想,通常应用于一些问题规模较大、难以直接解决的情况下。该算法思想的核心是把问题划分成一些小的子问题,然后递归求解这些子问题,最后将子问题的结果合并起来得到原始问题的解。这种算法思想在计算机智能、信息检索、图像识别等领域有广泛应用。 分治法具体实现的步骤 下面详细讲解分治法的具体实现步骤: 将原始问题划分成若干…

    C 2023年5月23日
    00
  • 带你理解C语言中的汉诺塔公式

    下面是 “带你理解C语言中的汉诺塔公式” 的完整攻略: 1. 汉诺塔问题简介 汉诺塔问题是著名的递归问题。汉诺塔的玩具包括三个柱子和一些大小不同的盘子,开始时所有的盘子都按大小顺序堆叠在一个柱子上,目标是把它们移动到另一个柱子上,移动过程中要遵循以下规则: 每次只能移动一个盘子。 移动盘子时,只能把较小的盘子放在较大的盘子上面。 拿“汉诺塔问题”来说,假如有…

    C 2023年5月22日
    00
  • C语言分支和循环详解

    C语言分支和循环详解 本文将详细讲解C语言中的分支和循环结构,并提供两个实例说明。 分支结构 C语言中的分支结构有两种:if…else语句和switch…case语句。 if…else语句 if…else语句用于根据条件执行不同的代码块。其语法如下: if (condition) { // 如果condition为true,则执行这里的代码 …

    C 2023年5月23日
    00
  • mingw编译的windows命令行贪吃蛇示例

    让我为大家详细讲解一下“mingw编译的windows命令行贪吃蛇示例”的完整攻略: 1. 前置要求 安装 mingw 工具包(建议使用 MinGW-w64 ) 安装 git 客户端 熟悉 C 语言编程并了解基本的 Windows 命令行编程知识 2. 下载代码 打开命令行终端(cmd),输入以下命令,进入合适的目录: $ cd /d D:\code 然后输…

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