elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [C] Ordenar Array de STRUCT
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [C] Ordenar Array de STRUCT  (Leído 5,613 veces)
n-utz

Desconectado Desconectado

Mensajes: 165

Babylon es el vampiro!


Ver Perfil
[C] Ordenar Array de STRUCT
« en: 24 Septiembre 2016, 00:22 am »

Buenas, ahora estoy perdido enserio.

Me pidieron que haga un array de estructuras con los campos NombreyApellido, DNI, Sueldo, FechaFinDeContrato, tengo que cargarlo desordenadamente, luego ordenarlo y pasarlo a un archivo ordenado.

Lo tengo que ordenar por el campo clave DNI, y utilizar alguno de los metodos conocidos, shell, quicksort, burbuja, etc...

No tengo idea como hacerlo, es decir se como comparar los DNIs entre si, pero despues no se como acomodar en orden la estructura o si pasarla directamente a medida que voy encontrando los primeros elementos al archivo.


« Última modificación: 24 Septiembre 2016, 20:24 pm por n-utz » En línea

crack81

Desconectado Desconectado

Mensajes: 222



Ver Perfil
Re: [C] Ordenar Array de STRUCT
« Respuesta #1 en: 24 Septiembre 2016, 01:24 am »

Hola te dejo un ejemplo usando el método de ordenamiento bubleSort

Código
  1. #include <iostream>
  2. #include<cstring>
  3. using namespace std;
  4.  
  5. struct Empleado
  6. {
  7.    string nombre;
  8.    string apellido;
  9.    string DNI;
  10.    float sueldo;
  11.    string fechaFinContrato;
  12. };
  13.  
  14. void bubbleSort(Empleado empleados[],int TAM){
  15.  
  16.    for(int i=1; i<TAM; i++){
  17.        for(int j=0; j<TAM-1; j++){
  18.            if(strcmp(empleados[j].DNI.c_str(),empleados[j+1].DNI.c_str())>0){
  19.                swap(empleados[j],empleados[j+1]);
  20.            }
  21.        }
  22.    }
  23. }
  24.  
  25.  
  26. int main()
  27. {
  28.    Empleado empleados[4]={{"pedro ","martinez","13AX001",1000,"15-02-2010"},
  29.                          {"juan ","perez","12BX002",1000,"13-02-2012"},
  30.                          {"raul ","garcia","13CC111",1000,"20-10-2013"},
  31.                          {"rosa ","lomeli","13IZ234",1000,"01-02-2014"}};
  32.  
  33.  
  34.    //Ordenamos a los empleados
  35.    bubbleSort(empleados,4);
  36.  
  37.    //Mostramos los empleados ordenados por DNI
  38.    for(Empleado e:empleados){
  39.        cout<<"DNI"<<e.DNI<<" Nombre "<<e.nombre<<endl;
  40.    }
  41.  
  42.    return 0;
  43. }
  44.  

Si tienes dudas comentalo.
Saludos... :laugh:


En línea

Si C/C++ es el padre de los lenguajes entonces ASM es dios.
HardForo

Desconectado Desconectado

Mensajes: 219


HardForo.com


Ver Perfil WWW
Re: [C] Ordenar Array de STRUCT
« Respuesta #2 en: 24 Septiembre 2016, 01:58 am »

Un código de ejemplo muy limpio @crack81   ;-)
En línea

HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *
n-utz

Desconectado Desconectado

Mensajes: 165

Babylon es el vampiro!


Ver Perfil
Re: [C] Ordenar Array de STRUCT
« Respuesta #3 en: 24 Septiembre 2016, 19:08 pm »

Alucinante, solo una duda con respecto a mi pregunta. Swap simula ser una funcion de intercambio no? o es una funcion agregada a una libreria?. (lo que me interesaria es el contenido de que pasa adentro de swap)
Usaste un par de librerias que no son de mi conocimiento, generalmente me manejo con stdio, stdlib, string.h y bool.

Supongo que mi desentendimiento del cout<< tiene que ver con esto, igual que con el using namespace std.

Y una duda importante: en la comparacion con el strcmp, que surge? Es decir, cuando devuelve mayor que 0? Difiere si es mayor o menor a 0? Yo la manejaba solamente con igualdad a 0, para comparar strings. Usando DNI como string y no como entero, es confuso, pero me gustaria saberlo.
« Última modificación: 24 Septiembre 2016, 19:27 pm por n-utz » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ordenar en Array¡ « 1 2 »
Java
Meg 10 9,807 Último mensaje 31 Enero 2010, 23:13 pm
por tripled
consulta sobre Struct Array[] en C++
Programación C/C++
xkiz ™ 4 6,559 Último mensaje 1 Julio 2011, 00:02 am
por xkiz ™
[Ayuda] Ordenar por edad y por nombre, datos de un struct.
Programación C/C++
darking664 4 17,286 Último mensaje 7 Octubre 2013, 03:36 am
por darking664
Ordenar alfabeticamente Nombres (Struct)
Programación C/C++
Ja_90 6 9,970 Último mensaje 22 Octubre 2014, 19:10 pm
por Ja_90
como ocultar un array o un dato de un struct
Programación C/C++
joshua_rock 1 2,403 Último mensaje 23 Noviembre 2014, 01:00 am
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines