用c++编写一个学生考勤管理系统
时间: 2023-08-04 18:36:16 浏览: 126
好的,下面是一个简单的学生考勤管理系统的 C++ 代码示例:
```cpp
#include <iostream>
#include <vector>
#include <string>
#include <map>
using namespace std;
class Student {
public:
Student(string name) : name(name) {}
void add_attendance(string status) {
attendance.push_back(status);
}
string get_name() {
return name;
}
vector<string> get_attendance() {
return attendance;
}
private:
string name;
vector<string> attendance;
};
class Attendance {
public:
Attendance(string date) : date(date) {}
void add_student(Student* student) {
students[student->get_name()] = student;
}
void add_attendance(string name, string status) {
students[name]->add_attendance(status);
}
void show_attendance() {
for (auto const& student : students) {
cout << student.first << ": ";
for (auto const& status : student.second->get_attendance()) {
cout << status << " ";
}
cout << endl;
}
}
private:
string date;
map<string, Student*> students;
};
int main() {
// 创建考勤记录
Attendance attendance("2021-07-01");
// 添加学生
Student* student1 = new Student("张三");
attendance.add_student(student1);
Student* student2 = new Student("李四");
attendance.add_student(student2);
// 记录考勤情况
attendance.add_attendance("张三", "出席");
attendance.add_attendance("李四", "缺席");
// 输出考勤记录
attendance.show_attendance();
// 释放内存
delete student1;
delete student2;
return 0;
}
```
这段代码创建了一个 `Student` 类和 `Attendance` 类,其中 `Student` 类表示学生对象,包含学生姓名和考勤记录列表,`Attendance` 类表示考勤对象,包含考勤日期和学生列表。通过调用不同的方法来添加学生和记录考勤情况,并可以输出考勤记录。注意需要手动释放动态分配的内存。
阅读全文