Untitled
user_4005203546
rust
3 years ago
3.0 kB
9
Indexable
use std::collections::{HashMap, BTreeMap};
use std::io;
fn main() {
println!("Bienvenue dans le programme de gestion");
let mut table: HashMap<String, Vec<String>> = HashMap::new();
loop {
println!("Quelle action souhaitez vous faire ?");
println!("1: Listez tout les employée");
println!("2: Ajoutez un employés à un département");
println!("3: Listez tout les employée d'un département");
let mut choice = String::new();
io::stdin()
.read_line(&mut choice)
.expect("Erreur");
println!("Number {}", &choice);
let choice: u32 = match choice.trim().parse() {
Ok(number) => number,
Err(_) => {
println!("Veuillez spécifier un numéro");
continue;
}
};
match choice {
1 => {
list_employee(&table);
},
2 => {
add_employee(&mut table);
},
3 => {
list_employee_by_departement(&table)
},
_ => {
println!("Veuillez spécifier un numéro entre 1 et 3");
continue;
}
};
}
}
fn list_employee_by_departement(table: &HashMap<String, Vec<String>>) {
println!("Veuillez spécifier le département");
let mut departement = String::new();
io::stdin()
.read_line(&mut departement)
.expect("Erreur");
let departement = String::from(departement.trim());
match table.get(&departement) {
Some(vec) => {
println!("Voici la liste des employee pour le departement {}", departement);
for i in vec {
println!("{}", i);
}
},
None => {
println!("Departement innconnue");
}
};
}
fn list_employee(table: &HashMap<String, Vec<String>>) {
println!("Voici la liste de tout les employée:");
let ordered: BTreeMap<&String, &Vec<String>> = table.iter().collect();
for (departement, vector) in ordered {
println!("Département {} :", departement);
for i in vector {
println!("{}", i);
}
}
println!();
}
fn add_employee(table: &mut HashMap<String, Vec<String>>) {
let mut departement = String::new();
println!("Veuillez spécifier un département: ");
io::stdin()
.read_line(&mut departement)
.expect("Erreur");
let departement = String::from(departement.trim());
let vec = table.entry(departement).or_insert(Vec::<String>::new());
let mut employee_name = String::new();
println!("Veuillez spécifier le nom de l'employée a ajouter");
io::stdin()
.read_line(&mut employee_name)
.expect("Erreur");
let employee_name = String::from(employee_name.trim());
(*vec).push(employee_name);
(*vec).sort();
}
Editor is loading...