写一些复杂的cpp程序代码
时间: 2023-02-07 07:42:39 浏览: 58
很高兴为您写一些 cpp 程序代码!这里是一个稍微复杂一点的 cpp 程序,它实现了一个简单的学生成绩管理系统。
```cpp
#include <iostream>
#include <string>
#include <vector>
struct Student {
std::string name;
int age;
std::vector<int> grades;
};
class StudentDatabase {
public:
void AddStudent(const Student& student) {
students_.push_back(student);
}
double GetAverageGrade(const std::string& student_name) {
for (const auto& student : students_) {
if (student.name == student_name) {
int total_grade = 0;
for (const auto& grade : student.grades) {
total_grade += grade;
}
return static_cast<double>(total_grade) / student.grades.size();
}
}
return 0;
}
void PrintReportCard(const std::string& student_name) {
for (const auto& student : students_) {
if (student.name == student_name) {
std::cout << "Report card for student " << student_name << ":\n";
for (const auto& grade : student.grades) {
std::cout << grade << " ";
}
std::cout << "\n";
return;
}
}
std::cout << "Student not found.\n";
}
private:
std::vector<Student> students_;
};
int main() {
StudentDatabase database;
// Add some students to the database.
Student student1;
student1.name = "Alice";
student1.age = 20;
student1.grades = {90, 95, 100};
database.AddStudent(student1);
Student student2;
student2.name = "Bob";
student2.age = 21;
student2.grades = {80, 82, 85};
database.AddStudent(student2);
// Print report card for Alice.
database.PrintReportCard("Alice");
// Print average grade for Bob.
std::cout << "Average grade for Bob: " << database.GetAverageGrade("Bob") << "\n";
return 0;
}
```
这段代码定义了一个 `Student` 结构体来表示学生的信息,包括姓名、年龄和成绩。然后,它定义了一个 `StudentDatabase` 类来管理学生信息。这个类有三个函数: