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

下面我来为大家详细讲解“学生成绩管理系统C++实现代码”的完整攻略。

1. 程序设计思路

这个程序的主要功能是对学生成绩的管理,具体来说包括以下功能:
- 添加学生信息
- 修改学生信息
- 删除学生信息
- 查找学生信息
- 以各种方式展示学生信息列表

接下来,我将会详细介绍这些功能各自的实现。

2. 添加学生信息

要实现添加学生信息的功能,我们需要定义一个结构体来保存学生信息,如下所示:

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

然后,我们需要定义一个用于存储学生信息的数组:

struct student stu[100];
int num = 0;

定义好结构体和数组之后,我们就可以愉快地开始添加学生信息了:

cout << "请输入学生的学号:";
cin >> stu[num].id;
cout << "请输入学生的姓名:";
cin >> stu[num].name;
cout << "请输入学生的成绩:";
cin >> stu[num].score;
num++;
cout << "添加成功!" << endl;

3. 修改学生信息

要实现修改学生信息的功能,我们需要先查找到需要修改的学生信息,然后再进行修改。

查找学生信息的方法有很多种,这里介绍一种基于学号进行查找的方法。

int search(int id)
{
    for (int i = 0; i < num; i++)
    {
        if (stu[i].id == id)
        {
            return i;
        }
    }
    return -1;
}

使用上面的函数来查找需要修改的学生信息,然后再进行修改:

int id;
cout << "请输入需要修改信息的学生学号:";
cin >> id;
int index = search(id);
if (index == -1)
{
    cout << "找不到该学生的信息!" << endl;
}
else
{
    cout << "修改前的学生信息:" << endl;
    cout << "学号\t姓名\t成绩" << endl;
    cout << stu[index].id << "\t" << stu[index].name << "\t" << stu[index].score << endl;
    cout << "请输入新的学生姓名:";
    cin >> stu[index].name;
    cout << "请输入新的学生成绩:";
    cin >> stu[index].score;
    cout << "修改成功!" << endl;
}

4. 删除学生信息

要实现删除学生信息的功能,我们需要先查找到需要删除的学生信息,然后再进行删除。

同样的,在这里介绍一种基于学号进行查找的方法。

int search(int id)
{
    for (int i = 0; i < num; i++)
    {
        if (stu[i].id == id)
        {
            return i;
        }
    }
    return -1;
}

然后,我们可以像下面这样进行删除操作:

int id;
cout << "请输入需要删除信息的学生学号:";
cin >> id;
int index = search(id);
if (index == -1)
{
    cout << "找不到该学生的信息!" << endl;
}
else
{
    for (int i = index; i < num - 1; i++)
    {
        stu[i] = stu[i + 1];
    }
    num--;
    cout << "删除成功!" << endl;
}

5. 查找学生信息

前面已经介绍了一种基于学号进行查找的方法,这里再介绍一种基于姓名进行查找的方法。

void search(const char* name)
{
    int found = 0;
    cout << "学号\t姓名\t成绩" << endl;
    for (int i = 0; i < num; i++)
    {
        if (strcmp(name, stu[i].name) == 0)
        {
            found = 1;
            cout << stu[i].id << "\t" << stu[i].name << "\t" << stu[i].score << endl;
        }
    }
    if (found == 0)
    {
        cout << "找不到该学生的信息!" << endl;
    }
}

使用上面的函数,我们可以通过输入学生姓名来查找学生信息。

char name[20];
cout << "请输入需要查找的学生姓名:";
cin >> name;
search(name);

6. 展示学生信息列表

展示学生信息列表可以采用多种方式,例如按学号排序、按成绩排序、按姓名排序等等。

下面以按学号排序为例:

void sort_by_id()
{
    for (int i = 0; i < num - 1; i++)
    {
        for (int j = 0; j < num - i - 1; j++)
        {
            if (stu[j].id > stu[j + 1].id)
            {
                struct student temp = stu[j];
                stu[j] = stu[j + 1];
                stu[j + 1] = temp;
            }
        }
    }
    cout << "学号\t姓名\t成绩" << endl;
    for (int i = 0; i < num; i++)
    {
        cout << stu[i].id << "\t" << stu[i].name << "\t" << stu[i].score << endl;
    }
}

使用上面的函数,我们可以按学号进行排序,并输出排序后的学生信息列表。

sort_by_id();

7. 示例说明

下面给出两个示例说明,一个是添加学生信息的示例,一个是按学号排序并展示学生信息列表的示例。

示例1:添加学生信息

请输入学生的学号:10001
请输入学生的姓名:张三
请输入学生的成绩:95
添加成功!

示例2:按学号排序并展示学生信息列表

学号    姓名    成绩
10001   张三     95
10002   李四     80
10003   王五     70

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

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

相关文章

  • c++ vector(向量)使用方法详解(顺序访问vector的多种方式)

    C++ vector(向量)使用方法详解 简介 vector 是 C++ STL 中的一个重要数据结构,用于实现动态数组。它具有许多优点,包括支持尾部插入、常量时间访问、动态分配内存等。 基本操作 创建 vector 创建一个空的 vector 和一个具有初始值的 vector 的方式如下: #include <vector> using nam…

    C 2023年5月22日
    00
  • c语言之如何求e的近似值

    C语言如何求e的近似值 简介 e是数学中一个常用的数,它的值约为2.71828。如何用C语言求e的近似值是一个常见的问题。其中,众所周知的方法之一是用泰勒级数来求解。本文将详细介绍如何使用泰勒级数来计算e的近似值并提供两个示例。 泰勒级数 泰勒级数是一种数学方法,用于将一个函数表示成多项式的形式。基于e^x的泰勒级数公式: e^x = 1 + x + x^2…

    C 2023年5月23日
    00
  • 荣耀畅玩8c怎么关闭后台?荣耀畅玩8c关闭后台应用教程

    下面我来详细讲解“荣耀畅玩8c怎么关闭后台?荣耀畅玩8c关闭后台应用教程”。 前言 荣耀畅玩8c 是一款性价比很高的手机,但是由于部分用户不了解如何关闭后台应用,在使用过程中会导致手机运行变慢、耗电等问题。因此,本文将详细介绍关闭荣耀畅玩8c 后台应用的方法。 步骤 方法一:手动清理后台应用 打开手机界面,找到 物理按键 或者 导航栏 。 双击 物理按键 或…

    C 2023年5月23日
    00
  • Atlas维他命C怎么获得 全材料来源及用途介绍

    Atlas维他命C怎么获得 全材料来源及用途介绍 什么是Atlas维他命C? Atlas维他命C是游戏《Atlas》中的一种资源,是一种无法在生物体内生成的维生素C。它用于合成具有不同作用的物品,如治疗剂和高级补给品。 如何获得Atlas维他命C? 获得方法一:利用维生素C粉末制作 Atlas维他命C可以通过合成维生素C粉末来获得: 5 x 蜂蜜 10 x …

    C 2023年5月23日
    00
  • C语言 文件的随机读写详解及示例代码

    C语言文件的随机读写是一项重要的编程技巧,可以帮助你在处理大型文件时准确地定位和读取其中特定的数据。下面,我将为您提供完整的攻略,涉及的内容包括: 打开文件并定义文件指针; 利用fread()函数进行随机读取文件; 利用fwrite()函数进行随机写入文件; 通过fclose()函数关闭文件。 打开文件并定义文件指针 在C语言中,打开文件需要使用fopen(…

    C 2023年5月24日
    00
  • 如何在C++中实现一个正确的时间循环器详解

    如何在C++中实现一个正确的时间循环器 什么是时间循环器 时间循环器是一种计时器,它按照一定的时间间隔来触发事件。在游戏编程中,时间循环器经常被用来控制游戏的逻辑,例如更新游戏物体的位置、判断游戏事件是否发生等。 实现思路 实现一个时间循环器的关键在于利用计时器并按照一定的时间间隔来触发事件。这个过程可以通过以下步骤来完成。 获取时间戳,记录当前时间。 使用…

    C 2023年5月23日
    00
  • C语言深入讲解栈与堆和静态存储区的使用

    C语言深入讲解栈与堆和静态存储区的使用 什么是栈 栈是一种数据结构,具有先进后出的特点。在C语言中,栈通常用来存储函数调用的相关信息,例如函数的参数和局部变量等。C语言栈的大小是有限制的,当栈的使用超出其大小时,就会导致栈溢出。 栈的使用 C语言中的栈是由操作系统在运行时进行分配的。当函数被调用时,操作系统会分配一段连续的内存空间,用于存储该函数的参数和局部…

    C 2023年5月23日
    00
  • Java深入讲解异常处理try catch的使用

    Java深入讲解异常处理try catch的使用 在Java中,异常处理是非常重要的一部分。通过异常处理,我们可以及时发现并解决程序中的错误,保证程序的正常运行。其中,try catch语句是最常用的异常处理方式之一。本文将详细讲解Java中异常处理try catch的使用,帮助读者更好地理解和掌握异常处理的方法。 try catch语句的基本用法 Java…

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