C++实现简单的学生管理系统

C++实现学生管理系统攻略

1. 确定系统功能

学生管理系统有很多功能,有录入学生信息、显示学生信息、修改学生信息、删除学生信息等。确定系统功能是实现该系统的第一步。本系统以录入、显示、修改、删除学生信息为功能点展开。

2. 设计学生类

学生信息的属性有:学号、姓名、性别、出生年月、成绩。因此,我们可以设计一个学生类 Student,并在其中定义相应的属性和方法。

class Student
{
public:
    string id;      // 学号
    string name;    // 姓名
    string sex;     // 性别
    string birth;   // 生日
    float score;    // 成绩

    void input();   // 录入
    void output();  // 显示
    void modify();  // 修改
};

在类中定义了五个属性,以及三个方法:录入、显示和修改。

3. 实现学生类的方法

3.1 录入

void Student::input()
{
    cout << "请输入学号:" << endl;
    cin >> id;
    cout << "请输入姓名:" << endl;
    cin >> name;
    cout << "请输入性别:" << endl;
    cin >> sex;
    cout << "请输入出生年月:" << endl;
    cin >> birth;
    cout << "请输入成绩:" << endl;
    cin >> score;
}

3.2 显示

void Student::output()
{
    cout << "学号:" << id << endl;
    cout << "姓名:" << name << endl;
    cout << "性别:" << sex << endl;
    cout << "出生年月:" << birth << endl;
    cout << "成绩:" << score << endl;
}

3.3 修改

void Student::modify()
{
    cout << "请选择要修改的属性:" << endl;
    cout << "1.学号" << endl;
    cout << "2.姓名" << endl;
    cout << "3.性别" << endl;
    cout << "4.出生年月" << endl;
    cout << "5.成绩" << endl;
    int op;
    cin >> op;
    switch (op)
    {
        case 1: // 修改学号
            cout << "请输入新的学号:" << endl;
            cin >> id;
            break;
        case 2: // 修改姓名
            cout << "请输入新的姓名:" << endl;
            cin >> name;
            break;
        case 3: // 修改性别
            cout << "请输入新的性别:" << endl;
            cin >> sex;
            break;
        case 4: // 修改出生年月
            cout << "请输入新的出生年月:" << endl;
            cin >> birth;
            break;
        case 5: // 修改成绩
            cout << "请输入新的成绩:" << endl;
            cin >> score;
            break;
        default:
            cout << "输入有误,请重新输入" << endl;
            break;
    }
}

4. 构建学生管理系统

在实现完学生类的方法后,我们可以通过 main() 函数来构建学生管理系统。在系统中,我们可以通过按键选择执行不同的操作。

int main()
{
    vector<Student> stuVec;
    bool flag = true;
    while (flag)
    {
        cout << "请选择要执行的操作:" << endl;
        cout << "1.录入学生信息" << endl;
        cout << "2.显示学生信息" << endl;
        cout << "3.修改学生信息" << endl;
        cout << "4.删除学生信息" << endl;
        cout << "5.退出" << endl;
        int op;
        cin >> op;
        switch (op)
        {
            case 1: // 录入学生信息
                {
                    Student stu;
                    stu.input();
                    stuVec.push_back(stu);
                }
                break;
            case 2: // 显示学生信息
                for (unsigned int i = 0; i < stuVec.size(); i++)
                {
                    stuVec[i].output();
                }
                break;
            case 3: // 修改学生信息
                {
                    string id;
                    cout << "请输入要修改的学生学号:" << endl;
                    cin >> id;
                    bool modified = false;
                    for (unsigned int i = 0; i < stuVec.size(); i++)
                    {
                        if (stuVec[i].id == id)
                        {
                            stuVec[i].modify();
                            modified = true;
                            break;
                        }
                    }
                    if (!modified)
                    {
                        cout << "未找到该学生信息" << endl;
                    }
                }
                break;
            case 4: // 删除学生信息
                {
                    string id;
                    cout << "请输入要删除的学生学号:" << endl;
                    cin >> id;
                    bool deleted = false;
                    for (vector<Student>::iterator iter = stuVec.begin(); iter != stuVec.end(); iter++)
                    {
                        if (iter->id == id)
                        {
                            stuVec.erase(iter);
                            deleted = true;
                            break;
                        }
                    }
                    if (!deleted)
                    {
                        cout << "未找到该学生信息" << endl;
                    }
                }
                break;
            case 5: // 退出
                flag = false;
                break;
            default:
                cout << "输入有误,请重新输入" << endl;
                break;
        }
    }
    return 0;
}

在主函数中,我们定义了一个 vector 存储所有录入的学生信息,并且在不同的按键操作下执行相应的功能。

5. 示例说明

5.1 录入学生信息

运行程序,在主菜单选择“1.录入学生信息”,在按照提示输入信息后,将会把信息读入系统,并且返回主菜单。

请选择要执行的操作:
1.录入学生信息
2.显示学生信息
3.修改学生信息
4.删除学生信息
5.退出
1

请输入学号:
1001
请输入姓名:
Tom
请输入性别:
男
请输入出生年月:
1998-01-01
请输入成绩:
98

请选择要执行的操作:
1.录入学生信息
2.显示学生信息
3.修改学生信息
4.删除学生信息
5.退出
5

5.2 显示学生信息

运行程序,在主菜单选择“1.录入学生信息”,然后再在主菜单选择“2.显示学生信息”。系统会遍历 vector,将所有学生信息全部显示出来。

请选择要执行的操作:
1.录入学生信息
2.显示学生信息
3.修改学生信息
4.删除学生信息
5.退出
1

请输入学号:
1001
请输入姓名:
Tom
请输入性别:
男
请输入出生年月:
1998-01-01
请输入成绩:
98

请选择要执行的操作:
1.录入学生信息
2.显示学生信息
3.修改学生信息
4.删除学生信息
5.退出
2

学号:1001
姓名:Tom
性别:男
出生年月:1998-01-01
成绩:98

请选择要执行的操作:
1.录入学生信息
2.显示学生信息
3.修改学生信息
4.删除学生信息
5.退出
5

5.3 修改学生信息

运行程序,在主菜单选择“1.录入学生信息”,然后再在主菜单选择“3.修改学生信息”。在给定学生学号进行修改时,会提示要修改的属性,我们可以输入数字1-5选择要修改的属性。修改完成后会返回主菜单,而且能在“2.显示学生信息”中看到修改后的结果。

请选择要执行的操作:
1.录入学生信息
2.显示学生信息
3.修改学生信息
4.删除学生信息
5.退出
1

请输入学号:
1001
请输入姓名:
Tom
请输入性别:
男
请输入出生年月:
1998-01-01
请输入成绩:
98

请选择要执行的操作:
1.录入学生信息
2.显示学生信息
3.修改学生信息
4.删除学生信息
5.退出
3

请输入要修改的学生学号:
1001
请选择要修改的属性:
1.学号
2.姓名
3.性别
4.出生年月
5.成绩
5
请输入新的成绩:
99

请选择要执行的操作:
1.录入学生信息
2.显示学生信息
3.修改学生信息
4.删除学生信息
5.退出
2

学号:1001
姓名:Tom
性别:男
出生年月:1998-01-01
成绩:99

请选择要执行的操作:
1.录入学生信息
2.显示学生信息
3.修改学生信息
4.删除学生信息
5.退出
5

6. 总结

通过该攻略,我们了解到如何在 C++ 中实现一个简单的学生管理系统。该系统包含了学生类的设计、类方法的实现以及主函数的构建。我们还通过简单的示例说明了如何使用该系统实现录入、显示和修改学生信息等功能。

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

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

相关文章

  • c++调用windows键盘代码详情

    简介 c++语言可以通过Win32 API调用Windows键盘代码,以实现对Windows系统的键盘控制。本文将详细介绍c++调用Windows键盘代码的实现方法,并给出两个示例说明。 实现方法 c++调用Windows键盘代码主要基于以下两个Win32 API: keybd_event:模拟按下或释放一个键,且可以模拟组合键 SendInput:将输入事…

    C 2023年5月24日
    00
  • C 程序 递归函数反转给定的数字

    下面是 “C 程序 递归函数反转给定的数字” 的完整使用攻略。 什么是递归函数? 递归函数是一种在函数体内调用自身的函数,这个过程被称为递归。使用递归函数可以编写简洁而优美的代码。 程序简介 此程序旨在使用递归函数反转给定的数字。例如,如果给定数字为 12345,程序将返回 54321。 使用方法 以下是使用此程序的步骤。 1. 确保您已经安装了 C 语言编…

    C 2023年5月9日
    00
  • VS Code如何编写C/C++程序的实现步骤

    VS Code如何编写C/C++程序的实现步骤 简介 VS Code是一款跨平台的轻量级集成开发环境,通过安装C/C++扩展,可以便捷地进行C/C++代码的编写、调试和编译。 实现步骤 步骤1:安装VS Code和C/C++扩展 首先,需要在官网(https://code.visualstudio.com/)下载并安装VS Code。然后,在VS Code中…

    C 2023年5月23日
    00
  • C语言 内存分区

    C语言对内存的使用划分为以下区域: 栈区(stack)、堆区(heap)、全局区(静态区)、常量区、代码区。 栈区: 由编译器自动分配释放,按内存地址从高(地址)到低(地址)存储; 栈区内容的作用域为其所定义的函数内,生命周期为函数执行期间,函数结束自动释放; 存放局部变量、const局部变量、函数调用时的入口参数和返回值; 栈区内容先进后出; 堆区: 堆区…

    C语言 2023年4月18日
    00
  • 谷歌Pixel C怎么样?谷歌Pixel C对比微软Surface 3,各有不同

    谷歌Pixel C怎么样? 谷歌Pixel C是一款由Google公司推出的平板电脑,采用了10.2英寸的屏幕,拥有高达2560×1800像素的分辨率,内置4GB RAM和32GB/64GB的闪存。平板电脑采用了NVIDIA Tegra X1处理器,运行Android 7.0操作系统,支持Google Play商店和Google应用。Pixel C拥有一款精…

    C 2023年5月23日
    00
  • C语言的10大基础算法

    C语言的10大基础算法 简介 C语言是一门非常古老并且非常流行的编程语言。C语言强大的功能和丰富的软件库致使它成为了许多程序员和企业的首选开发语言。不仅如此,C语言中还有一些非常重要而基础的算法,这些算法也是程序员必须掌握的一部分。这篇文章将介绍C语言中的10个最基础的算法。 算法介绍 1. 排序算法 排序算法是所有程序员必须掌握的一部分,因为数据处理与排序…

    C 2023年5月23日
    00
  • 荣耀畅玩7c怎么开启热点?荣耀畅玩7c开启热点教程

    下面给您详细讲解荣耀畅玩7c如何开启热点的完整攻略: 一、前置条件 在进行热点开启之前,请确保您的荣耀畅玩7c已经连接到移动网络,并且您已经知道热点开启会消耗您的移动网络流量。 二、开启热点 从荣耀畅玩7c的系统设置进入到 “更多连接方式” 页面。 在更多连接方式页面中,点击 “个人热点”。如果您没有在荣耀畅玩7c上设置过热点,第一次点击个人热点会提示您开启…

    C 2023年5月23日
    00
  • 关于C++的重载运算符和重载函数

    关于C++的重载运算符和重载函数 什么是重载运算符和重载函数 在C++中,重载指的是在一个类中定义多个同名但是参数列表不同的成员函数或全局函数。当编译器遇到这些同名的函数时,会根据传入的参数类型和数量来确定具体要调用哪个函数,从而实现了多态性。 重载运算符指的是对C++中一个或多个运算符进行重新定义,让该运算符能够在自定义类型上进行操作。例如,我们可以通过重…

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