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

yizhihongxing

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

操作流程

  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语言? C语言是一门高级程序设计语言,它的发明者是丹尼斯·里奇和肯·汤普逊。C语言广泛应用于操作系统、编译器、网络设备、嵌入式系统、游戏开发等领域。学会C语言对程序员来说具有重要的意义。 C语言的编译和执行过程 C语言的编译和执行过程分为四个阶段,分别是预处理、编译、汇编和链接。 预处理 在预处理阶段,编译器会读取文…

    C 2023年5月23日
    00
  • Win10怎么设置MTU值加快WIFI速度?

    针对“Win10怎么设置MTU值加快WIFI速度?”这个问题,下面是我提供的完整攻略: 1. 了解MTU值 MTU(Maximum Transmission Unit)即最大传输单元,是每个数据包可以传输的最大数据量。通常情况下,MTU值越大,一个数据包就可以携带更多的数据,从而提高网络传输效率。但如果MTU值设置得过大,会增加传输过程中出现网络问题的风险。…

    C 2023年5月22日
    00
  • 原神0xc000007b错误怎么办 0xc000007b错误代码解决方法

    原神0xc000007b错误怎么办 问题描述 在运行原神游戏时,可能会出现0xc000007b错误代码。这个错误提示通常会伴随着“应用程序无法启动”、“无法正常启动该应用程序”等信息。 解决方法一:更新操作系统 你可以尝试更新你的操作系统,以确保安装了最新的操作系统更新和修补程序。这通常可以解决一些已知的问题和错误。 示例:如果你使用的是Windows 10…

    C 2023年5月23日
    00
  • c++中const的使用详解

    下面是“C++中 const 的使用详解”的完整攻略。 一、const 的基本概念 const 是 C++ 中的一个关键字,表示“常量”的意思。具体来说,const 可以用来修饰变量、函数、指针等,表明它们在程序执行过程中不能被修改。使用 const 的好处是可以增强程序的可读性和安全性。 二、const 对变量的修饰 1. const 修饰普通变量 在定义…

    C 2023年5月22日
    00
  • 浅析C语言中堆和栈的区别

    下面是详细讲解“浅析C语言中堆和栈的区别”的完整攻略。 什么是堆和栈? 在计算机内存中,栈和堆都是存储空间。栈是一种后进先出(LIFO)的数据结构,而堆是一种无序的存储结构。 在C语言中,栈是程序自动分配和释放内存的区域,而堆是程序手动分配和释放内存的区域。这就是堆和栈的区别。 堆和栈的内存分配方式 栈的内存分配方式是自动的,它的分配和释放都是由编译器自动完…

    C 2023年5月23日
    00
  • 学习C和C++的9点经验总结

    学习C和C++的9点经验总结 1. 坚持理论和实践相结合 C和C++是一门理论性、实践性极强的编程语言。只有理论和实践相结合,才能够提高编程水平。因此,在学习过程中,需要注重理论和实践相结合,既要阅读相关的理论知识,也要进行实践操作。 示例:学习数据类型的时候,需要先阅读相关知识,再通过编写实例代码来加深理解。 #include<iostream&gt…

    C 2023年5月30日
    00
  • PowerShell时间记录脚本

    关于“PowerShell时间记录脚本”的完整攻略,我可以为您进行详细讲解。 简介 首先,让我们来了解一下“PowerShell时间记录脚本”的简介。该脚本可以帮助用户记录电脑运行的时间,并输出到指定的文本文件中。用户可以使用该脚本来记录自己在电脑上的时间消耗,从而更好地管理时间和提高工作效率。 前置条件 在运行“PowerShell时间记录脚本”之前,用户…

    C 2023年5月22日
    00
  • C++智能指针模板应用详细介绍

    C++智能指针模板应用详细介绍 智能指针的概念 在C++中,当我们使用new创建了一个对象时,需要手动的调用delete来释放内存。但是,如果在某个地方忘记释放内存,就会导致内存泄漏问题。为了避免这个问题,我们可以使用智能指针来管理内存。 一个智能指针是一个类,它行为像一个指针,但它还额外提供了内存管理的功能。智能指针类会通过在构造函数中调用new和在析构函…

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