教程 cpp tutorial

学生管理系统

学生管理系统是一个常见的应用程序,它用于管理学生的基本信息,如学号、姓名、年龄等。这个系统可以实现基本的增删改查(CRUD)操作,帮助管理员进行学生信息的管理。

需求分析

在一个学生管理系统中,我们通常需要管理以下学生信息:

  • 学号(学生唯一标识符)
  • 姓名
  • 年龄
  • 性别
  • 班级

系统需要具备以下功能:

  • 添加学生信息
  • 修改学生信息
  • 删除学生信息
  • 查询学生信息

系统设计

1. 学生类设计

首先,我们可以定义一个 Student 类,包含学生的基本信息。

cpp
#include <string>
using namespace std;

class Student {
public:
    Student(int id, const string& name, int age, const string& gender, const string& class_name)
        : id(id), name(name), age(age), gender(gender), class_name(class_name) {}

    int getId() const { return id; }
    string getName() const { return name; }
    int getAge() const { return age; }
    string getGender() const { return gender; }
    string getClass() const { return class_name; }

    void setName(const string& name) { this->name = name; }
    void setAge(int age) { this->age = age; }
    void setGender(const string& gender) { this->gender = gender; }
    void setClass(const string& class_name) { this->class_name = class_name; }

private:
    int id;
    string name;
    int age;
    string gender;
    string class_name;
};

`

2. 学生管理类设计

接下来,定义一个 StudentManager 类,用于管理学生信息,包括学生的添加、删除、修改和查询。

cpp
#include <vector>
#include <iostream>

class StudentManager {
public:
    void addStudent(const Student& student) {
        students.push_back(student);
    }

    void removeStudent(int id) {
        for (auto it = students.begin(); it != students.end(); ++it) {
            if (it->getId() == id) {
                students.erase(it);
                break;
            }
        }
    }

    void updateStudent(int id, const string& name, int age, const string& gender, const string& class_name) {
        for (auto& student : students) {
            if (student.getId() == id) {
                student.setName(name);
                student.setAge(age);
                student.setGender(gender);
                student.setClass(class_name);
                break;
            }
        }
    }

    void listStudents() const {
        for (const auto& student : students) {
            cout << "ID: " << student.getId() << ", Name: " << student.getName()
                 << ", Age: " << student.getAge() << ", Gender: " << student.getGender()
                 << ", Class: " << student.getClass() << endl;
        }
    }

private:
    vector<Student> students;
};

3. 主函数实现

最后,在 main 函数中,使用 StudentManager 类进行操作,模拟学生信息的增删改查。

cpp
int main() {
    StudentManager manager;

    // 添加学生
    manager.addStudent(Student(1, "Alice", 20, "Female", "Class 1"));
    manager.addStudent(Student(2, "Bob", 21, "Male", "Class 2"));

    // 列出所有学生
    cout << "All Students:" << endl;
    manager.listStudents();

    // 修改学生信息
    manager.updateStudent(1, "Alice", 21, "Female", "Class 2");

    // 删除学生
    manager.removeStudent(2);

    // 列出所有学生
    cout << "\nAfter update and delete:" << endl;
    manager.listStudents();

    return 0;
}

总结

学生管理系统是一个经典的应用,通过设计合适的类和数据结构,能够实现学生信息的管理。通过 Student 类管理学生个人信息,使用 StudentManager 类来管理所有学生信息,系统能够实现增删改查(CRUD)操作。这样设计的系统具有良好的扩展性和可维护性,方便管理员进行学生信息的管理。