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程序 检查字符串是否为Pangram

    下面就为您详细讲解“C程序 检查字符串是否为Pangram”的完整使用攻略: 什么是Pangram Pangram是一个包含所有字母的字符串。 这意味着,很多时候我们需要检查某个字符串是否为Pangram。 接下来我们就来学习如何使用C程序来检查字符串是否为Pangram。 程序代码 以下是C语言程序来检查字符串是否为Pangram的代码: #include…

    C 2023年5月9日
    00
  • C 标准库 errno.h

    让我们来详细讲解一下 C 标准库 errno.h 的使用攻略。 什么是 errno? errno 是 C 标准库中的一个全局变量,其类型为 int,用于表达函数或操作的错误码(错误编号)。如果一个函数或操作执行出错,其返回值可能无法明显地反映错误的信息,此时可以通过 errno 变量获取更详细的错误信息。errno 的具体取值由库函数或系统调用设置。 系统调…

    C 2023年5月10日
    00
  • C语言程序环境编译+链接理论

    C语言程序的编译与链接是程序开发的重要环节之一,理解这一过程对于程序员来说是至关重要的。下面是一个完整攻略,分为以下几个步骤: 步骤一:编辑程序 在开始编译和链接之前,我们需要先编写C语言程序。这一步通常通过文本编辑器,如vscode、sublime等完成。我们以Hello World程序为例,来说明这一步。 #include <stdio.h>…

    C 2023年5月30日
    00
  • 用C语言实现圣诞树(简易版+进阶版)

    用C语言实现圣诞树(简易版) 1. 简介 该项目是使用C语言编写的简易版圣诞树,主要运用了printf函数的格式控制符,实现了树干和树叶的绘制,以及使用循环控制结构来控制树叶的数量。 2. 实现过程 2.1 绘制树干 树干的绘制使用printf函数实现,主要通过使用空格和竖线符(“|”)来实现。具体实现代码如下: printf(" |\n&quot…

    C 2023年5月23日
    00
  • C语言程序设计之指针的应用详解

    C语言程序设计之指针的应用详解攻略 理解指针的概念 指针是C语言中比较重要但也比较难掌握的一部分。在C语言中,指针是一种数据类型,它存储了另一个变量的地址。指针变量可以通过解引用操作来访问存储在它所指向的地址上的值。 例如,我们定义一个整型变量a,然后对a取地址,即可得到a的地址: int a = 5; int *pa = &a; // pa 存储了…

    C 2023年5月23日
    00
  • Java程序与C语言的区别浅析

    Java程序与C语言的区别浅析 相同点 Java程序和C语言程序都是计算机程序。两者都需要编译成计算机能够识别的二进制代码后才能执行。Java程序和C语言程序都需要按照指定的语法规则书写程序,并且它们都需要语言自带的IDE或编译器进行编写语法检查、编译等操作。 不同点 语法 Java程序与C语言的基本语法有较大差异。C语言程序中常用的指针操作、预处理器等在J…

    C 2023年5月30日
    00
  • C++使用宏函数实现单例模板详解

    下面就为你详细讲解“C++使用宏函数实现单例模板详解”的完整攻略。 1. 单例模式简介 单例模式是一种创建型设计模式,它确保某个类只有一个实例,并提供一个全局访问点,使得该实例能够被访问。单例模式在很多场景下都有非常重要的作用,例如线程池、配置文件读取等。 2. 使用宏函数实现单例模板 C++中使用宏函数可以方便地实现单例模板。具体实现步骤如下: 定义一个模…

    C 2023年5月23日
    00
  • C语言实现简单计算器功能(2)

    当我们实现一个简单的计算器功能时,需要考虑以下几个方面: 用户输入的合法性检查 进行算术运算的函数实现 错误处理和提示信息输出 第一步,我们需要先获取用户输入的表达式,并对其进行合法性检查。用户输入的表达式应该是一个合法的算术表达式,不能含有非法字符,比如字母等。我们可以使用正则表达式来判断用户输入的内容是否合法。 示例1: #include <reg…

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