C语言实现学生成绩管理系统项目

C语言实现学生成绩管理系统项目攻略

1. 需求分析

在开发学生成绩管理系统前,我们需要对系统的功能需求进行分析。在此项目中,我们需要实现以下功能:

  • 添加学生信息
  • 删除学生信息
  • 修改学生信息
  • 查询学生信息
  • 展示所有学生信息

2. 数据结构设计

在此项目中,我们需要定义一个结构体来存储学生的信息,该结构体包含以下信息:

struct Student {
    int id;
    char name[20];
    float score;
};

其中,id为学生的学号,name为学生的姓名,score为学生的成绩。

3. 实现步骤

3.1 添加学生信息

用数组存储学生信息,每次添加学生信息后,数组的长度会加1。

struct Student stu[100];
int len = 0;

void addStudent() {
    struct Student student;
    printf("请输入学生的学号:");
    scanf("%d", &student.id);
    printf("请输入学生的姓名:");
    scanf("%s", student.name);
    printf("请输入学生的成绩:");
    scanf("%f", &student.score);
    stu[len++] = student;
    printf("添加成功!\n");
}

3.2 删除学生信息

通过学生的学号删除学生信息,如果输入的学号不存在,则提示删除失败。

void deleteStudent() {
    int id;
    int index = -1;
    printf("请输入要删除的学生的学号:");
    scanf("%d", &id);
    for (int i = 0; i < len; i++) {
        if (stu[i].id == id) {
            index = i;
            break;
        }
    }
    if (index != -1) {
        for (int i = index; i < len - 1; i++) {
            stu[i] = stu[i + 1];
        }
        len--;
        printf("删除成功!\n");
    } else {
        printf("删除失败,该学号不存在!\n");
    }
}

3.3 修改学生信息

通过学生的学号修改学生信息,如果输入的学号不存在,则提示修改失败。

void updateStudent() {
    int id;
    int index = -1;
    printf("请输入要修改的学生的学号:");
    scanf("%d", &id);
    for (int i = 0; i < len; i++) {
        if (stu[i].id == id) {
            index = i;
            break;
        }
    }
    if (index != -1) {
        struct Student student;
        printf("请输入学生的学号:");
        scanf("%d", &student.id);
        printf("请输入学生的姓名:");
        scanf("%s", student.name);
        printf("请输入学生的成绩:");
        scanf("%f", &student.score);
        stu[index] = student;
        printf("修改成功!\n");
    } else {
        printf("修改失败,该学号不存在!\n");
    }
}

3.4 查询学生信息

通过学生的学号查询学生信息,如果输入的学号不存在,则提示查询失败。

void queryStudent() {
    int id;
    int index = -1;
    printf("请输入要查询的学生的学号:");
    scanf("%d", &id);
    for (int i = 0; i < len; i++) {
        if (stu[i].id == id) {
            index = i;
            break;
        }
    }
    if (index != -1) {
        printf("学号\t姓名\t成绩\n");
        printf("%d\t%s\t%.2f\n", stu[index].id, stu[index].name, stu[index].score);
    } else {
        printf("查询失败,该学号不存在!\n");
    }
}

3.5 展示所有学生信息

展示所有学生信息。

void showAllStudents() {
    printf("学号\t姓名\t成绩\n");
    for (int i = 0; i < len; i++) {
        printf("%d\t%s\t%.2f\n", stu[i].id, stu[i].name, stu[i].score);
    }
}

4. 示例说明

给出两个实现示例。

示例1

int main() {
    int choice;
    while (1) {
        printf("1. 添加学生信息\n");
        printf("2. 删除学生信息\n");
        printf("3. 修改学生信息\n");
        printf("4. 查询学生信息\n");
        printf("5. 展示所有学生信息\n");
        printf("0. 退出\n");
        printf("请选择操作:");
        scanf("%d", &choice);
        switch (choice) {
            case 1:
                addStudent();
                break;
            case 2:
                deleteStudent();
                break;
            case 3:
                updateStudent();
                break;
            case 4:
                queryStudent();
                break;
            case 5:
                showAllStudents();
                break;
            case 0:
                printf("谢谢使用!\n");
                return 0;
            default:
                printf("无效的操作,请重新选择!\n");
                break;
        }
    }
}

示例2

int main() {
    addStudent();
    addStudent();
    addStudent();
    updateStudent();
    showAllStudents();
    deleteStudent();
    showAllStudents();
    queryStudent();
}

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

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

相关文章

  • 学习C++编程的必备软件

    下面我将为您详细讲解“学习C++编程的必备软件”的完整攻略。 学习C++编程的必备软件 1. C++编译器 C++编译器是你学习编程时必备的工具之一。编译器负责将写好的C++程序翻译成机器可以理解的语言,让计算机可以运行它。以下是几个常用的C++编译器: Visual Studio:Visual Studio是一个非常强大的开发环境,附带了C++编译器和许多…

    C 2023年5月23日
    00
  • 一篇文章带你入门C语言:操作符

    一篇文章带你入门C语言:操作符 简介 C语言作为一门被广泛应用的高级编程语言,掌握其基本操作符的使用是进行编程的重要基础。本文将系统介绍C语言中常用的操作符及其用法,通过例子的讲解,帮助初学者快速入门。 算术操作符 算术操作符主要包括加减乘除运算,其中加、减运算符直接用“+”和“-”表示,乘、除运算符则分别用“*”和“/”表示。 示例1:计算两个数的加法和乘…

    C 2023年5月23日
    00
  • C++ Boost Chrono实现计时码表流程详解

    C++ Boost Chrono实现计时码表流程详解 什么是 Boost Chrono Boost Chrono 是 Boost 库中的一个计时库,提供了比标准 C++ 库更加方便和易于使用的时间测量和转换功能。它可以执行时间间隔的测量,并将时间表示为一种时间点,可以进行加,减和其他运算。同时也提供了格式化输出时间和日期的函数。 Boost Chrono 的…

    C 2023年5月23日
    00
  • 逍遥自在学C语言 | 位运算符<<的高级用法

    前言 在上一篇文章中,我们介绍了~运算符的高级用法,本篇文章,我们将介绍<< 运算符的一些高级用法。 一、人物简介 第一位闪亮登场,有请今后会一直教我们C语言的老师 —— 自在。 第二位上场的是和我们一起学习的小白程序猿 —— 逍遥。 二、计算2的整数次幂 代码示例 #include <stdio.h> int main() { in…

    C语言 2023年4月17日
    00
  • C++ 如何实现顺序栈(使用模板类)

    C++如何实现顺序栈(使用模板类) 什么是顺序栈? 顺序栈是一种使用数组存储数据的栈。在顺序栈中,栈顶指针指向存储栈顶元素的位置,栈顶指针的下标为 0 时表示栈为空。 如何实现顺序栈? 1.定义模板类 顺序栈可以通过 C++ 中的模板类来实现,这样可以使其具备更好的可扩展性和复用性。下面是一个使用模板类实现顺序栈的示例代码: template <cla…

    C 2023年5月22日
    00
  • C++11中的变长模板的示例详解

    让我来详细讲解“C++11中的变长模板的示例详解”的完整攻略: 什么是变长模板 在C++标准库中,存在一个叫做std::tuple的工具类,可以用于表示可以持有任意个元素的集合。其中元素的类型可以不相同。这里的“任意个元素”就是指可以持有任意个类型参数。这种由C++模板机制提供的自由组合类型的能力,就是变长模板。 变长模板的语法 变长模板的语法非常简单,就是…

    C 2023年5月23日
    00
  • C语言栈的表示与实现实例详解

    C语言栈的表示与实现实例详解 栈的概念 栈是一种特殊的线性表,它具备后进先出(Last-In-First-Out,LIFO)的特性。栈实现的基本操作有入栈(push)和出栈(pop)两种。 栈的表示 栈可以通过数组或链表两种数据结构进行表示。 数组表示 数组表示的栈是一段连续的内存空间,可以使用数组下标代表每个栈元素的位置。数组的顶部指针用于标识当前栈顶元素…

    C 2023年5月23日
    00
  • C++ Primer Plus 第四章之C++ Primer Plus复合类型学习笔记

    C++ Primer Plus 第四章之C++ Primer Plus复合类型学习笔记 1. 复合类型简介 在C++中有许多复合类型,如数组、结构体、共用体和指针等,它们能够将多个基本类型变量组合成更加复杂的数据结构。在使用复合类型时,需要注意其内存结构和使用方法,以充分发挥其特性。 2. 数组 数组是一种复合类型,可以存储多个同一类型的数据,通过下标访问数…

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