Autor
|
Tema: [C] Ordenar Array de STRUCT (Leído 5,596 veces)
|
n-utz
Desconectado
Mensajes: 165
Babylon es el vampiro!
|
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
Mensajes: 222
|
Hola te dejo un ejemplo usando el método de ordenamiento bubleSort #include <iostream> #include<cstring> using namespace std; struct Empleado { string nombre; string apellido; string DNI; float sueldo; string fechaFinContrato; }; void bubbleSort(Empleado empleados[],int TAM){ for(int i=1; i<TAM; i++){ for(int j=0; j<TAM-1; j++){ if(strcmp(empleados[j].DNI.c_str(),empleados[j+1].DNI.c_str())>0){ swap(empleados[j],empleados[j+1]); } } } } int main() { Empleado empleados[4]={{"pedro ","martinez","13AX001",1000,"15-02-2010"}, {"juan ","perez","12BX002",1000,"13-02-2012"}, {"raul ","garcia","13CC111",1000,"20-10-2013"}, {"rosa ","lomeli","13IZ234",1000,"01-02-2014"}}; //Ordenamos a los empleados bubbleSort(empleados,4); //Mostramos los empleados ordenados por DNI for(Empleado e:empleados){ cout<<"DNI"<<e.DNI<<" Nombre "<<e.nombre<<endl; } return 0; }
Si tienes dudas comentalo. Saludos...
|
|
|
En línea
|
Si C/C++ es el padre de los lenguajes entonces ASM es dios.
|
|
|
HardForo
Desconectado
Mensajes: 219
HardForo.com
|
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
Mensajes: 165
Babylon es el vampiro!
|
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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ordenar en Array¡
« 1 2 »
Java
|
Meg
|
10
|
9,784
|
31 Enero 2010, 23:13 pm
por tripled
|
|
|
consulta sobre Struct Array[] en C++
Programación C/C++
|
xkiz ™
|
4
|
6,538
|
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,273
|
7 Octubre 2013, 03:36 am
por darking664
|
|
|
Ordenar alfabeticamente Nombres (Struct)
Programación C/C++
|
Ja_90
|
6
|
9,951
|
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,397
|
23 Noviembre 2014, 01:00 am
por engel lex
|
|