school_library 1.0.3

This Rust library provides structures to manage school-related data, including students, classes, and schools.
Documentation
# Хз зачем, просто по приколу написал


Это, что-то вроде представления базы данных об учебных заведениях для начального и средного образований.

Я написал данный код для тренировки всех своих знаний в языке Rust.

# School Rust Library


This Rust library provides structures to manage school-related data, including students, classes, and schools.

## Usage


To use this library, add the following to your `Cargo.toml`:

```toml
[dependencies]
school_library = "1.0.0"
```

Then, in your Rust code:

```rust
use school_library::{School, Class, Student, Grades};
```

### Grades


Represents grades for different subjects.

```rust
let grades = Grades::new(90, 85, 88, 92, 78, 87, 91, 95, 89);
let random_grades = Grades::gen();
```

### Student


Represents a student with an ID, name, age, and grades.

```rust
let student = Student::new(1, String::from("John Doe"), 16, &grades);
```

### Class


Represents a class with a name and a list of students.

```rust
let class = Class::new(String::from("Math Class"), vec![student1, student2]);
class.add_student(&new_student);
```

### School


Represents a school with a name, a number of students, and a list of classes.

```rust
let mut school = School::new(String::from("High School"), vec![class1, class2]);
school.add_class(&new_class);
let average_grades = school.average_grades();
let best_class = school.get_best();
```

## API Reference


### Grades


Represents grades for different subjects.

| Method Signature        | Description                                                |
| ----------------------- | ---------------------------------------------------------- |
| `fn new(...) -> Grades` | Creates a new `Grades` instance with given subject grades. |
| `fn gen() -> Grades`    | Generates random grades.                                   |

### Student


Represents a student with an ID, name, age, and grades.

| Method Signature         | Description                       |
| ------------------------ | --------------------------------- |
| `fn new(...) -> Student` | Creates a new `Student` instance. |

### Class


Represents a class with a name and a list of students.

| Method Signature                               | Description                                  |
| ---------------------------------------------- | -------------------------------------------- |
| `fn new(...) -> Class`                         | Creates a new `Class` instance.              |
| `fn get_average() -> f32`                      | Calculates the average grades for the class. |
| `fn add_student(&mut self, student: &Student)` | Adds a student to the class.                 |

### School


Represents a school with a name, a number of students, and a list of classes.

| Method Signature                         | Description                                                 |
| ---------------------------------------- | ----------------------------------------------------------- |
| `fn new(...) -> School`                  | Creates a new `School` instance.                            |
| `fn average_grades() -> f32`             | Calculates the average grades for the entire school.        |
| `fn add_class(&mut self, class: &Class)` | Adds a class to the school.                                 |
| `fn get_best() -> Class`                 | Finds the class with the best average grades in the school. |