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语言用函数指针支持回调

    C语言中,函数指针被广泛应用用于回调函数的实现。回调函数指的是,一个函数作为参数传给另一个函数,并在后者的内部被调用的函数。 下面详细讲解“C语言用函数指针支持回调”的完整使用攻略,包括以下内容: 函数指针的定义和使用方法 回调函数的实现原理和使用方法 两个示例说明 1. 函数指针的定义和使用方法 函数指针是指向函数的指针变量,可以用于调用函数。函数指针的定…

    C 2023年5月10日
    00
  • html网页中使用希腊字母的方法

    要在HTML网页中使用希腊字母,可以使用HTML实体或Unicode字符。 使用HTML实体: 打开HTML编辑器或文本编辑器,并开始编写HTML文件。 需要使用希腊字母的地方,使用以下形式的HTML实体:&entity_name;,其中entity_name是预定义的实体名称。 接下来是几个常见的希腊字母实体: α: α β: &bet…

    C 2023年5月22日
    00
  • VC6.0常用快捷键大全

    VC6.0常用快捷键大全 为什么需要快捷键? 在编程的过程中,我们需要频繁地进行复制、粘贴、撤销等操作。如果每次都使用鼠标进行操作,效率会非常低下。而快捷键的存在,可以极大地提高我们的工作效率。以下是VC6.0中的一些常用快捷键。 快捷键列表 常用快捷键 Ctrl + S 保存当前文件 Ctrl + C 复制选中内容 Ctrl + V 粘贴剪贴板内容 Ctr…

    C 2023年5月23日
    00
  • 基于javascript实现按圆形排列DIV元素(二)

    基于JavaScript实现按圆形排列DIV元素的完整攻略如下: 步骤1:构建HTML结构 首先,我们需要构建一个HTML页面,并在其中添加一个父级div元素和一些子级的div元素。父级div元素用于容纳所有子级div元素,并设置其宽度和高度为固定值,例如600px。子级div元素用于显示实际内容,我们只需要设置它们的宽度和高度即可。 <div id=…

    C 2023年5月22日
    00
  • 详解C语言中的fopen()函数和fdopen()函数

    下面就详细讲解一下“详解C语言中的fopen()函数和fdopen()函数”。 fopen()函数 fopen()函数的基本介绍 fopen()是C语言中用于打开文件的库函数,通过它可以打开一个文件并返回一个文件指针。其函数原型为: FILE *fopen(const char *filename, const char *mode); 其中,filenam…

    C 2023年5月23日
    00
  • C语言 循环详解及简单代码示例

    C语言循环详解 循环语句是程序中经常使用的一种结构,对于重复性工作的处理起到非常重要的作用。本篇文章将详细讲解C语言中循环语句的各种类型,以及在实际编程中的使用方法和注意事项。 执行顺序 在介绍C语言中的循环语句之前,需要了解一下程序的执行顺序,通常程序是按照从上到下的顺序依次执行的,而且一旦程序执行到某个循环语句会跳转到循环体执行完后再返回继续执行下一条语…

    C 2023年5月23日
    00
  • 30个常见的电脑蓝屏代码分析及解决方法

    下面是详细讲解“30个常见的电脑蓝屏代码分析及解决方法”的完整攻略。 1. 什么是蓝屏代码 在使用电脑的过程中,有时候我们会突然遇到一个蓝色的错误屏幕,这就是电脑的蓝屏。蓝屏代码是出现蓝屏时显示在屏幕上的错误代码,是指出错的十六进制数字和英文字母的组合。通过分析蓝屏代码,我们可以快速定位问题并解决。 2. 常见的蓝屏代码 接下来,我们介绍一些常见的蓝屏代码及…

    C 2023年5月30日
    00
  • 使用C语言中的time函数获取系统时间

    使用C语言中的time函数获取系统时间,可以通过以下步骤操作: 1. 头文件引用 在使用time函数之前,需要引入头文件time.h。 #include <time.h> // 引入time.h头文件 2. 获取系统时间 time函数的原型如下: time_t time(time_t *tloc); time函数返回系统从1970年1月1日0时0…

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