Untitled
user_4005203546
rust
2 years ago
3.0 kB
1
Indexable
Never
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(); }