Programación General > C/C++

 Buenas!!

<< < (2/2)

Lregrey:
Aquí ando de nuevo! =) La verdad que pasarme por aquí me ha servido para dar comienzo con el proyecto y ya me queda poco =)

Aquí pego mi codigo... solo me falta dos opciones una de echas no dificil... la dificil y la que me gustaría que me ayudaran si fuera posible es la de ordenar de mejor a peor el resultado de la prueba... :S
Este es el main.c:

--- Código: C --- #include "opositores.h" #include <stdio.h> #include <stdlib.h> #include <string.h>  main(){   int repetir,seleccion, contador, posicion;   contador=0;   repetir=1;   char  dni[10];   opositor opositores[100];   //Mostramos el menu mientras repetir sea igula a true o 1 ;-)   while (repetir==1)   {               printf("n1. Dar de alta un opositorn");              printf("n2. Dar de baja un opositorn");              printf("n3. Listado completo de los opositoresn");              printf("n4. Consultar para un opositor el resultado de sus pruebasn");              printf("n5. Realizar la prueba para un opositorn");              printf("n6. Listar el resultado de una prueba de mejor a peor resultadon");              printf("n7. Salirn");                printf("n¨Que desea hacer?n");              scanf("%d",&seleccion);//Capturando la seleccion                 switch(seleccion)              {                  case 1: printf("Haz elegido dar de altan");                          altaopositor(opositores,contador);                          contador++;                          break;                  case 2: printf("Haz elegido dar de bajan");                          printf("nDame el DNI del opositorn");                          scanf("%s",dni);                          posicion=buscar(opositores,contador,dni);                          dardebaja(opositores,contador,posicion);                          contador--;                          break;                  case 3: printf("Haz elegido ver el listado completon");                          listar(opositores, contador);                  break;                  case 4: printf("Haz elegido consultar las pruebas de un opositorn");break;                  case 5: printf("Haz elegido realizar prueban");                          printf("nDame el DNI del opositorn");                          scanf("%s",dni);                          posicion=buscar(opositores,contador,dni);                          dardebaja(opositores,contador,posicion);                          realizar(opositores,posicion);                          break;                  case 6: printf("Haz elegido listar el las pruebas de mejor a peorn");break;                  case 7: repetir=0;break;//se indica que debe salir                  //Si la opcion es incorrecta, entra aqui                  default: printf("Opcion Invalida");                                                      }          }      }  
Este es oposiores.c:

--- Código: C --- #include "opositores.h"  #include <stdio.h> #include <string.h> #include <stdlib.h>  void altaopositor(opositor opositores[],int contador){      char nombre[20], apellidos[40], dni[10];      printf("nDame el nombre del opositorn");      scanf("%s",opositores[contador].nombre);      printf("nDame el primer apellido del opositorn");      scanf("%s",opositores[contador].apellidos);      printf("nDame el DNI del opositorn");      scanf("%s",opositores[contador].dni);                            }              int buscar(opositor opositores[],int contador, char dni[]){    int c, op, pOp;    c=0;    op=0;    pOp=-1;    while(c<contador && !op) {                     int  comparar=strcmp(opositores[c].dni,dni);                     if (comparar==0) {                                      op=1;                                      pOp=c;                                      }                     else {                          c++;                               }                               }                               return pOp;                               }                               void dardebaja(opositor opositores[],int contador, int posicion){     while  (posicion<contador-1&&posicion!=-1){            opositores[posicion]=opositores[posicion+1];            posicion++;     }     }     void listar(opositor opositores[],int contador){     int c=0;     printf("nListado de opositores.n");     while(c<contador){         printf("n%s, %s, DNI:%sn",opositores[c].apellidos, opositores[c].nombre, opositores[c].dni);         c++;     }} void realizar(opositor opositores[],int posicion){     int s, salver, milm, cienm ;int SALTOV=60;int CIENMETROS=12;int MILMETROS=180;                                                                     printf("nIntroduce la distancia saltada en cm del participanten");                                      fflush (stdin);                                      scanf("%d",&salver);                                      opositores[posicion].prueba1[0]=salver;                                      printf("nIntroduce el tiempo que ha tardado en recorrer los 100 metros en segundos del participanten");                                      fflush (stdin);                                      scanf("%d",&cienm);                                      opositores[posicion].prueba2[0]=cienm;                                      printf("nIntroduce el tiempo que ha tardado en recorrer los 1000 metros en segundos del participanten");                                      fflush (stdin);                                      scanf("%d",&milm);                                      opositores[posicion].prueba3[0]=milm;                                                                                     for(s=1;s<3;s++){                                                  if (salver<SALTOV&&cienm<=CIENMETROS&&milm<=MILMETROS) {                                                                                                    printf("nEl participante debe repertir la prueba de salto.(Tiene %d intentos mas)n", 3-s);                                                                                                   printf("nIntroduce la distancia saltada en cm del participanten");                                                                                                   fflush (stdin);                                                                                                   scanf("%d",&salver);                                                                                                                                                                                                                                                                                                       opositores[posicion].prueba1[s]=salver;                                                                                                                                                                                                 }//Fin cuarto else if                             else if (salver>=SALTOV&&cienm>CIENMETROS&&milm<=MILMETROS) {                                                                                                    printf("nEl participante debe repertir la prueba de 100 m.(Tiene %d intentos mas)n", 3-s);                                                                                                   printf("nIntroduce el tiempo nuevo que ha tardado en recorrer los 100 metros en segundos del participanten");                                                                                                   fflush (stdin);                                                                                                   scanf("%d",&cienm);                                                                                                   opositores[posicion].prueba2[s]=cienm;                                                                                                                                                                                                            }//Fin quinto else if                              else if (salver>=SALTOV&&cienm<=CIENMETROS&&milm>MILMETROS) {                                                                                                    printf("nEl participante debe repertir la prueba de 1000 m.(Tiene %d intentos mas)n", 3-s);                                                                                                   printf("nIntroduce el tiempo nuevo que ha tardado en recorrer los 1000 metros en segundos del participanten");                                                                                                   fflush (stdin);                                                                                                   scanf("%d",&milm);                                                                                                          opositores[posicion].prueba3[s]=milm;                                                                                                                                                                                                                                                                                                                     }//Fin sexto else if probable                                                                                                                                                  else if (salver>=SALTOV&&cienm>CIENMETROS&&milm>MILMETROS) {                                                                                                    printf("nEl participante debe repertir las prueba de 100 m. y 1000 m. (Tiene %d intentos mas)n", 3-s);                                                                                                   printf("nIntroduce el tiempo nuevo que ha tardado en recorrer los 100 metros en segundos del participanten");                                                                                                   fflush (stdin);                                                                                                   scanf("%d",&cienm);                                                                                                   opositores[posicion].prueba2[s]=cienm;                                                                                                   printf("nIntroduce el tiempo nuevo que ha tardado en recorrer los 1000 metros en segundos del participanten");                                                                                                   fflush (stdin);                                                                                                   scanf("%d",&milm);                                                                                                   opositores[posicion].prueba3[s]=milm;                                                                                                                                                                                                                                                                                                   }//Fin del primer else if probable                                else if (salver<SALTOV&&cienm>CIENMETROS&&milm<=MILMETROS) {                                                                                                   printf("nEl participante debe repertir las prueba de salto y 100 m.(Tiene %d intentos mas)n", 3-s);                                                                                                   printf("nIntroduce la distancia saltada en cm del participanten");                                                                                                   fflush (stdin);                                                                                                   scanf("%d",&salver);                                                                                                   opositores[posicion].prueba1[s]=salver;                                                                                                   printf("nIntroduce el tiempo nuevo que ha tardado en recorrer los 100 metros en segundos del participante:n");                                                                                                   fflush (stdin);                                                                                                   scanf("%d",&cienm);                                                                                                   opositores[posicion].prueba2[s]=cienm;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }//Fin del segundo else if probable                                else if (salver<SALTOV&&cienm<=CIENMETROS&&milm>MILMETROS) {                                                                                                    printf("nEl participante debe repertir las prueba de salto y 1000 m.(Tiene %d intentos mas)n", 3-s);                                                                                                   printf("nIntroduce la distancia saltada en cm del participante:n");                                                                                                   fflush (stdin);                                                                                                   scanf("%d",&salver);                                                                                                   opositores[posicion].prueba1[s]=salver;                                                                                                   printf("nIntroduce el tiempo nuevo que ha tardado en recorrer los 1000 metros en segundos del participante:n");                                                                                                   fflush (stdin);                                                                                                   scanf("%d",&milm);                                                                                                            opositores[posicion].prueba3[s]=milm;                                                                                                                                                                                                                                                                                                                                         }//Fin del tercer else if probable                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 else if (salver<SALTOV&&cienm>CIENMETROS&&milm>MILMETROS){                                                                                                             printf("nEl participante debe repertir todas las prueba de nuevo.(Tiene %d intentos mas)n", 3-s);                                                                                                      printf("nIntroduce la nueva distancia saltada en cm del participante:n");                                                                                                   fflush (stdin);                                                                                                   scanf("%d",&salver);                                                                                                   opositores[posicion].prueba1[s]=salver;                                                                                                   printf("nIntroduce el tiempo nuevo que ha tardado en recorrer los 100 metros en segundos del participante:n");                                                                                                   fflush (stdin);                                                                                                   scanf("%d",&cienm);                                                                                                    opositores[posicion].prueba2[s]=cienm;                                                                                                   printf("nIntroduce el tiempo nuevo que ha tardado en recorrer los 1000 metros en segundos del participante:n");                                                                                                   fflush (stdin);                                                                                                   scanf("%d",&milm);                                                                                                                                                                                             opositores[posicion].prueba3[s]=milm;                                                                                                    }//Fin septimo probable                                                                                                                                                                   }//fin else for sif (salver>=SALTOV&&cienm<=CIENMETROS&&milm<=MILMETROS) printf("nEl participante numero ha superado la prueba.n");else printf("nEl participante no ha superado la prueba.n"); }       
Aquí opositores.h

--- Código: C ---#include <stdio.h>#include <stdlib.h>#include <string.h> typedef struct opositor{        char apellidos[40];        char nombre[20];        char dni[10];        int edad;        float prueba1[3];        float prueba2[3];        float prueba3[3];        }opositor;        void altaopositor(opositor opositores[],int contador);int buscar(opositor opositores[],int contador, char dni[]);void dardebaja(opositor opositores[],int contador, int posicion);void listar(opositor opositores[],int contador);void realizar(opositor opositores[],int posicion);  

Lregrey:
Niguna idea para ordenar las pruebas de mejor a peor?? :S

m0skit0:
Burbuja.

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa