Код IT Загрузка примера кода…

Rust main.rs
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();
}
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();
}