/
spirzen
/
it-code-examples
Обзор
Документация
Войти
/
spirzen
/
it-code-examples
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
scripts/oop-practice-sources/cpp/student.cpp
50 строк
1 KB
Spirzen
OOP
09 июн 2026, 20:58
09 июн 2026, 20:58
1dca232
Код
Авторство
О чём код?
#include <iostream> #include <string> #include <vector> #include <numeric> #include <iomanip> class Student { public: static const int PASSING_SCORE = 60; std::string name; std::vector<int> grades; explicit Student(const std::string& name) : name(name) {} void add_grade(int grade) { grades.push_back(grade); std::cout << "Оценка " << grade << " добавлена для " << name << std::endl; } double average_score() const { if (grades.empty()) return 0; return static_cast<double>(std::accumulate(grades.begin(), grades.end(), 0)) / grades.size(); } bool is_passing() const { return average_score() >= PASSING_SCORE; } void info() const { std::cout << "Студент: " << name << std::endl; std::cout << "Оценки: ["; for (size_t i = 0; i < grades.size(); ++i) { if (i > 0) std::cout << ", "; std::cout << grades[i]; } std::cout << "]" << std::endl; std::cout << std::fixed << std::setprecision(1); std::cout << "Средний балл: " << average_score() << std::endl; std::cout << (is_passing() ? "Зачёт получен" : "Зачёт не получен") << std::endl; } }; int main() { Student student("Анна"); student.add_grade(70); student.add_grade(85); student.add_grade(55); student.info(); return 0; }