编程课小班人数统计怎么写

时间:2025-03-03 20:37:07 明星趣事

要统计编程课小班的人数,你可以使用一个结构体来记录每个学生的信息,并在结构体中添加一个计数器来统计人数。以下是一个示例代码:

```cpp

include

// 定义一个学生结构体

struct Student {

int id; // 学生ID

// 其他学生信息...

};

// 定义一个管理学生的类

class StudentManager {

private:

std::vector students; // 存储学生信息的向量

public:

// 构造函数

StudentManager() {

// 初始化人数计数器

count = 0;

}

// 添加一个学生

void addStudent(int id) {

students.push_back({id});

++count;

}

// 删除一个学生

void removeStudent(int id) {

for (auto it = students.begin(); it != students.end(); ++it) {

if (it->id == id) {

students.erase(it);

--count;

break;

}

}

}

// 获取当前学生人数

int getCount() const {

return count;

}

private:

int count; // 学生人数计数器

};

int main() {

StudentManager manager;

// 添加学生

manager.addStudent(1);

manager.addStudent(2);

manager.addStudent(3);

// 输出当前学生人数

std::cout << "当前学生人数: " << manager.getCount() << std::endl;

// 删除一个学生

manager.removeStudent(2);

// 输出当前学生人数

std::cout << "当前学生人数: " << manager.getCount() << std::endl;

return 0;

}

```

在这个示例中,我们定义了一个`Student`结构体来存储学生信息,并定义了一个`StudentManager`类来管理学生信息。`StudentManager`类中包含一个`std::vector`来存储学生信息,并提供了一个计数器`count`来统计当前学生人数。通过`addStudent`和`removeStudent`方法来添加和删除学生,并通过`getCount`方法来获取当前学生人数。

这种方法的时间复杂度较低,因为`std::vector`的`push_back`和`erase`操作在尾部进行,时间复杂度为O(1)。遍历整个向量来查找和删除学生的时间复杂度为O(n),但在实际应用中,这种操作的频率较低,因此整体性能是高效的。