Advertisement
AntonioVillanueva

Ejercicio Rust

Jan 23rd, 2025
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rust 2.30 KB | None | 0 0
  1. #[warn(unused_variables)]
  2. use std::io::Write;
  3. use std::fs::OpenOptions;
  4. //use struct_iterable::Iterable;
  5.  
  6. //Enumeracion especialidad
  7. enum Especialidad{
  8.     IT,RecursosHumanos,Marketing
  9. }
  10.  
  11.  
  12. //Enumeracion de los meses
  13. #[derive(Copy, Clone)]
  14. enum Meses{
  15.     Enero,Febrero,Marzo,Abril,Mayo,Junio,
  16.     Julio,Agosto,Septiembre,Octubre,Noviembre,Diciembre
  17. }
  18.  
  19. //Estructura Empleado
  20. struct Empleado {
  21.     nombre:String,
  22.     apellido:String,
  23.     edad:u8,
  24.     especialidad:Especialidad,
  25.     mes:Meses
  26. }
  27.  
  28. //Devuelve un String con los datos del empleado
  29. fn dato_empleado(empleado:&Empleado)->String{
  30.     let mut tmp:String=Default::default();
  31.     tmp += &empleado.nombre ;
  32.     tmp +=" , ";
  33.     tmp += &empleado.apellido;
  34.     tmp +=" , ";
  35.     tmp += &empleado.edad.to_string();
  36.     tmp += " , ";
  37.     //tmp += &empleado.especialidad.to_string();
  38.     match &empleado.especialidad  {
  39.         Especialidad::IT=>{
  40.             tmp+=" It ";
  41.         },
  42.         Especialidad::RecursosHumanos=>{
  43.             tmp+=" Recursos Humanos "
  44.         },
  45.         Especialidad::Marketing =>{
  46.             tmp+= " Marketing ";
  47.         }
  48.  
  49.     }
  50.     tmp += " , ";
  51.  
  52.     tmp += (((empleado.mes)as u8).to_string()).as_str() ;
  53.     tmp +="\n";
  54.     tmp
  55. }
  56.  
  57. //Escribe en un fichero "nombre" los datos del empleado
  58. fn escribe_fichero(nombre: &String,datos :&String) ->std::io::Result<()>{
  59.     let mut fichero= OpenOptions::new()
  60.         .write(true)
  61.         .append(true)
  62.         .create(true)
  63.         .open(nombre)?;
  64.     fichero.write_all(datos.as_bytes())?;
  65.     Ok(())
  66. }
  67.  
  68. fn main (){
  69.     //Nombre del fichero a escribir
  70.     let nombre_fichero:String ="ejemplo.txt".to_string();
  71.    
  72.     //Crea 3 empleados
  73.     let empleado= Empleado{
  74.         nombre:String::from ("Tony"),
  75.         apellido:String::from ("Villa"),
  76.         edad:55,
  77.         especialidad:Especialidad::RecursosHumanos,
  78.         mes:Meses::Julio
  79.     };
  80.  
  81.     let empleado2= Empleado{
  82.         nombre:String::from ("Gilles"),
  83.         apellido:String::from ("Pignatta"),
  84.         edad:56,
  85.         especialidad:Especialidad::Marketing,
  86.         mes:Meses::Abril
  87.     };
  88.  
  89.     let empleado3=Empleado{
  90.         nombre:String::from ("Frank"),
  91.         apellido:String::from ("Clerissi"),
  92.         edad:57,
  93.         especialidad:Especialidad::IT,
  94.         mes:Meses::Febrero
  95.     }; 
  96.  
  97.     //Escribe en el fichero los datos del empleado
  98.     let _= escribe_fichero(&nombre_fichero,& dato_empleado(&empleado));
  99.     let _= escribe_fichero(&nombre_fichero,& dato_empleado(&empleado2));
  100.     let _= escribe_fichero(&nombre_fichero,& dato_empleado(&empleado3));
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement