/
spirzen
/
it-code-examples
Обзор
Документация
Войти
/
spirzen
/
it-code-examples
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
scripts/oop-practice-sources/rust/student.rs
51 строка
1 KB
Spirzen
OOP
09 июн 2026, 20:58
09 июн 2026, 20:58
1dca232
Код
Авторство
О чём код?
struct Student { name: String, grades: Vec<i32>, } impl Student { const PASSING_SCORE: i32 = 60; fn new(name: &str) -> Self { Self { name: name.to_string(), grades: Vec::new(), } } fn add_grade(&mut self, grade: i32) { self.grades.push(grade); println!("Оценка {} добавлена для {}", grade, self.name); } fn average_score(&self) -> f64 { if self.grades.is_empty() { return 0.0; } let sum: i32 = self.grades.iter().sum(); sum as f64 / self.grades.len() as f64 } fn is_passing(&self) -> bool { self.average_score() >= Self::PASSING_SCORE as f64 } fn info(&self) { println!("Студент: {}", self.name); println!("Оценки: {:?}", self.grades); println!("Средний балл: {:.1}", self.average_score()); if self.is_passing() { println!("Зачёт получен"); } else { println!("Зачёт не получен"); } } } fn main() { let mut student = Student::new("Анна"); student.add_grade(70); student.add_grade(85); student.add_grade(55); student.info(); }