SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: Lregrey en Miércoles 12 de Enero de 2011, 20:53

Título: Buenas!!
Publicado por: Lregrey en Miércoles 12 de Enero de 2011, 20:53
Bueno ante todo me presento: Soy un joven estudiante interesado en la programación y le he echado un vistazo a esta página y parece muy interesante.

Me han encargado el siguiente programa y no tengo ni idea de como empezarlo ni de que hacer... sería posible algo de ayuda?

Aquí el programa:

Designing a C program to manage the opposition to fire a
city. The program must submit the following menu:

1. Register an opponent
2. Derecognition of an opponent
3. Complete list of opponents
4. Refer to an opponent of your test results
5. Testing for an opponent
6. List the result of a test result from best to worst
7. Exit

PRACTICE REQUIREMENTS
Practice requirements are:

1. Arrays should be used to store the list of opponents
2. Using a modular design making each task by a module
3. It must deliver the source code listing
4. Module Flowchart list of opponents
5. The main flowchart
6. CD with documentation and program

Lo pongo en inglés para que si mi profe busca por google no lo encuentre xD

Gracias!
Título: Re: Buenas!!
Publicado por: Thanatos-chan en Miércoles 12 de Enero de 2011, 22:31
Cita de: "Lregrey"
Lo pongo en inglés para que si mi profe busca por google no lo encuentre xD

 :rolleyes:  una respuesta honesta...merece otra.

si estas en la universidad o en la escuela, no es tu culpa... tienes un "mal requerimiento".

ya sea quien te lo dio, o como lo describes,

"program to manage the opposition to fire a city"  :rolleyes:  es lo mismo que decir "Programa que maneje un avion".

deberia decir algo como:

Requerimiento: Crear un programa que simule una competición entre 2 equipos, los cuales pueden aumentar o disminuir sus miembros dinamicamente,dado que es una competicion, la misma sera por "turnos", durante el turno de un jugador, el mismo podra,"buscar a un oponente" (Testing for an opponent).

con lo cual te encuentras que, para listar los resultados(List the result of a test). tienes que saber que es la prueba.

si el oponente 1 del equipo A. "prueba" al oponente 3 del equipo B, que se supone debe pasar?

offtopic.

1-debes seguir las normas del foro
2-lo que tu quieres es que te ayuden a hacer un "algoritmo" para luego usar ese algoritmo para hacer un programa.
un favor vale, pero 2?
Título: Re: Buenas!!
Publicado por: Lregrey en Jueves 13 de Enero de 2011, 16:39
Lo siento... Simplemente quiero ayuda para saber ha hacer la cabesera y como introducirla al algoritmo del programa... Tengo el algoritmo del programa lo tengo echo pero solo para ver si pasa las pruebas o no... fue un trabajo anterior el que nos mandaron..
O si fuera posible algun algoritmo que tengais que me pueda servir de ejemplo o ayuda en lo k consiste trabajar con arrays...

Muchas Gracias.
Título: Re: Buenas!!
Publicado por: LapizTolita en Jueves 13 de Enero de 2011, 17:08
Bueno primero que nada el primer lenguaje que deberías aprender antes que C++ es el español, que por lo que veo te cuesta bastante expresarte. Y tené en cuenta que el foro es SoloCodigo no SoloTareas.
Ejemplos de Arrays en c++ hay por toda la web, Google no muerde
Título: Re: Buenas!!
Publicado por: Thanatos-chan en Viernes 14 de Enero de 2011, 01:47
Cita de: "Lregrey"
quiero ayuda para saber ha hacer la cabesera y como introducirla al algoritmo del programa

osea, un menu?  

Buenas!! =quiero que me ayuden a hacer un menu para mi aplicacion.

:brickwall:


click aqui para ver tema del menu->http://foros.solocodigo.com/viewtopic.php?f=18&t=42070&p=151985&hilit=menu#p151985
Título: Re: Buenas!!
Publicado por: Lregrey en Miércoles 19 de Enero de 2011, 18:36
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
  1.  #include "opositores.h"
  2.  #include <stdio.h>
  3.  #include <stdlib.h>
  4.  #include <string.h>
  5.  
  6.  main(){
  7.    int repetir,seleccion, contador, posicion;
  8.    contador=0;
  9.    repetir=1;
  10.    char  dni[10];
  11.    opositor opositores[100];
  12.    //Mostramos el menu mientras repetir sea igula a true o 1 ;-)
  13.    while (repetir==1)   {
  14.  
  15.               printf("n1. Dar de alta un opositorn");
  16.               printf("n2. Dar de baja un opositorn");
  17.               printf("n3. Listado completo de los opositoresn");
  18.               printf("n4. Consultar para un opositor el resultado de sus pruebasn");
  19.               printf("n5. Realizar la prueba para un opositorn");
  20.               printf("n6. Listar el resultado de una prueba de mejor a peor resultadon");
  21.               printf("n7. Salirn");  
  22.               printf("n¨Que desea hacer?n");
  23.               scanf("%d",&seleccion);//Capturando la seleccion
  24.    
  25.               switch(seleccion)
  26.               {
  27.                   case 1: printf("Haz elegido dar de altan");
  28.                           altaopositor(opositores,contador);
  29.                           contador++;
  30.                           break;
  31.                   case 2: printf("Haz elegido dar de bajan");
  32.                           printf("nDame el DNI del opositorn");
  33.                           scanf("%s",dni);
  34.                           posicion=buscar(opositores,contador,dni);
  35.                           dardebaja(opositores,contador,posicion);
  36.                           contador--;
  37.                           break;
  38.                   case 3: printf("Haz elegido ver el listado completon");
  39.                           listar(opositores, contador);
  40.                   break;
  41.                   case 4: printf("Haz elegido consultar las pruebas de un opositorn");break;
  42.                   case 5: printf("Haz elegido realizar prueban");
  43.                           printf("nDame el DNI del opositorn");
  44.                           scanf("%s",dni);
  45.                           posicion=buscar(opositores,contador,dni);
  46.                           dardebaja(opositores,contador,posicion);
  47.                           realizar(opositores,posicion);
  48.                           break;
  49.                   case 6: printf("Haz elegido listar el las pruebas de mejor a peorn");break;
  50.                   case 7: repetir=0;break;//se indica que debe salir
  51.                   //Si la opcion es incorrecta, entra aqui
  52.                   default: printf("Opcion Invalida");
  53.                                        
  54.               }
  55.           }
  56.       }
  57.  
  58.  

Este es oposiores.c:
Código: C
  1.  #include "opositores.h"
  2.  #include <stdio.h>
  3.  #include <string.h>
  4.  #include <stdlib.h>
  5.  
  6.  void altaopositor(opositor opositores[],int contador){
  7.       char nombre[20], apellidos[40], dni[10];
  8.       printf("nDame el nombre del opositorn");
  9.       scanf("%s",opositores[contador].nombre);
  10.       printf("nDame el primer apellido del opositorn");
  11.       scanf("%s",opositores[contador].apellidos);
  12.       printf("nDame el DNI del opositorn");
  13.       scanf("%s",opositores[contador].dni);
  14.                             }  
  15.      
  16.      
  17. int buscar(opositor opositores[],int contador, char dni[]){
  18.     int c, op, pOp;
  19.     c=0;
  20.     op=0;
  21.     pOp=-1;
  22.     while(c<contador && !op) {
  23.                      int  comparar=strcmp(opositores[c].dni,dni);
  24.                      if (comparar==0) {
  25.                                       op=1;
  26.                                       pOp=c;
  27.                                       }
  28.                      else {
  29.                           c++;
  30.                                }
  31.                                }
  32.                                return pOp;
  33.                                }
  34.                                
  35. void dardebaja(opositor opositores[],int contador, int posicion){
  36.      while  (posicion<contador-1&&posicion!=-1){
  37.             opositores[posicion]=opositores[posicion+1];
  38.             posicion++;
  39.      }
  40.      }
  41.      
  42. void listar(opositor opositores[],int contador){
  43.      int c=0;
  44.      printf("nListado de opositores.n");
  45.      while(c<contador){
  46.          printf("n%s, %s, DNI:%sn",opositores[c].apellidos, opositores[c].nombre, opositores[c].dni);
  47.          c++;
  48.      }
  49. }
  50.  
  51. void realizar(opositor opositores[],int posicion){
  52.      
  53. int s, salver, milm, cienm ;
  54. int SALTOV=60;
  55. int CIENMETROS=12;
  56. int MILMETROS=180;
  57.  
  58.  
  59.                              
  60.                                       printf("nIntroduce la distancia saltada en cm del participanten");
  61.                                       fflush (stdin);
  62.                                       scanf("%d",&salver);
  63.                                       opositores[posicion].prueba1[0]=salver;
  64.                                       printf("nIntroduce el tiempo que ha tardado en recorrer los 100 metros en segundos del participanten");
  65.                                       fflush (stdin);
  66.                                       scanf("%d",&cienm);
  67.                                       opositores[posicion].prueba2[0]=cienm;
  68.                                       printf("nIntroduce el tiempo que ha tardado en recorrer los 1000 metros en segundos del participanten");
  69.                                       fflush (stdin);
  70.                                       scanf("%d",&milm);
  71.                                       opositores[posicion].prueba3[0]=milm;
  72.                                      
  73.          
  74.                                       for(s=1;s<3;s++){    
  75.                                               if (salver<SALTOV&&cienm<=CIENMETROS&&milm<=MILMETROS) {
  76.                                                                                                    printf("nEl participante debe repertir la prueba de salto.(Tiene %d intentos mas)n", 3-s);
  77.                                                                                                    printf("nIntroduce la distancia saltada en cm del participanten");
  78.                                                                                                    fflush (stdin);
  79.                                                                                                    scanf("%d",&salver);                                                                                                                                                                                                    
  80.                                                                                                    opositores[posicion].prueba1[s]=salver;                                                                                              
  81.                                                                                                    }//Fin cuarto else if
  82.                              else if (salver>=SALTOV&&cienm>CIENMETROS&&milm<=MILMETROS) {
  83.                                                                                                    printf("nEl participante debe repertir la prueba de 100 m.(Tiene %d intentos mas)n", 3-s);
  84.                                                                                                    printf("nIntroduce el tiempo nuevo que ha tardado en recorrer los 100 metros en segundos del participanten");
  85.                                                                                                    fflush (stdin);
  86.                                                                                                    scanf("%d",&cienm);
  87.                                                                                                    opositores[posicion].prueba2[s]=cienm;
  88.                                                                                                                  
  89.                                                                                            }//Fin quinto else if
  90.                               else if (salver>=SALTOV&&cienm<=CIENMETROS&&milm>MILMETROS) {
  91.                                                                                                    printf("nEl participante debe repertir la prueba de 1000 m.(Tiene %d intentos mas)n", 3-s);
  92.                                                                                                    printf("nIntroduce el tiempo nuevo que ha tardado en recorrer los 1000 metros en segundos del participanten");
  93.                                                                                                    fflush (stdin);
  94.                                                                                                    scanf("%d",&milm);      
  95.                                                                                                    opositores[posicion].prueba3[s]=milm;                                                                                            
  96.                                                                                                                      
  97.                                                                                                    }//Fin sexto else if probable
  98.                                                                                                    
  99.                                               else if (salver>=SALTOV&&cienm>CIENMETROS&&milm>MILMETROS) {
  100.                                                                                                    printf("nEl participante debe repertir las prueba de 100 m. y 1000 m. (Tiene %d intentos mas)n", 3-s);
  101.                                                                                                    printf("nIntroduce el tiempo nuevo que ha tardado en recorrer los 100 metros en segundos del participanten");
  102.                                                                                                    fflush (stdin);
  103.                                                                                                    scanf("%d",&cienm);
  104.                                                                                                    opositores[posicion].prueba2[s]=cienm;
  105.                                                                                                    printf("nIntroduce el tiempo nuevo que ha tardado en recorrer los 1000 metros en segundos del participanten");
  106.                                                                                                    fflush (stdin);
  107.                                                                                                    scanf("%d",&milm);
  108.                                                                                                    opositores[posicion].prueba3[s]=milm;
  109.                                                                                                    
  110.                                                                                                  
  111.                                                                                               }//Fin del primer else if probable
  112.                                 else if (salver<SALTOV&&cienm>CIENMETROS&&milm<=MILMETROS) {
  113.                                                                                                    printf("nEl participante debe repertir las prueba de salto y 100 m.(Tiene %d intentos mas)n", 3-s);
  114.                                                                                                    printf("nIntroduce la distancia saltada en cm del participanten");
  115.                                                                                                    fflush (stdin);
  116.                                                                                                    scanf("%d",&salver);
  117.                                                                                                    opositores[posicion].prueba1[s]=salver;
  118.                                                                                                    printf("nIntroduce el tiempo nuevo que ha tardado en recorrer los 100 metros en segundos del participante:n");
  119.                                                                                                    fflush (stdin);
  120.                                                                                                    scanf("%d",&cienm);
  121.                                                                                                    opositores[posicion].prueba2[s]=cienm;                                                                                                  
  122.                                                                                                    
  123.                                                                                                                                                                                                                      
  124.                                                                                         }//Fin del segundo else if probable
  125.                                 else if (salver<SALTOV&&cienm<=CIENMETROS&&milm>MILMETROS) {
  126.                                                                                                    printf("nEl participante debe repertir las prueba de salto y 1000 m.(Tiene %d intentos mas)n", 3-s);
  127.                                                                                                    printf("nIntroduce la distancia saltada en cm del participante:n");
  128.                                                                                                    fflush (stdin);
  129.                                                                                                    scanf("%d",&salver);
  130.                                                                                                    opositores[posicion].prueba1[s]=salver;
  131.                                                                                                    printf("nIntroduce el tiempo nuevo que ha tardado en recorrer los 1000 metros en segundos del participante:n");
  132.                                                                                                    fflush (stdin);
  133.                                                                                                    scanf("%d",&milm);        
  134.                                                                                                    opositores[posicion].prueba3[s]=milm;                    
  135.                                                                                                                                                                                            
  136.                                
  137.                                                                                          }//Fin del tercer else if probable                                                                                                                                                                                                                                                                                                                                                                                                                                                                
  138.                                                                                                                  
  139.                                 else if (salver<SALTOV&&cienm>CIENMETROS&&milm>MILMETROS){                    
  140.                                                                                          printf("nEl participante debe repertir todas las prueba de nuevo.(Tiene %d intentos mas)n", 3-s);  
  141.                                                                                                    printf("nIntroduce la nueva distancia saltada en cm del participante:n");
  142.                                                                                                    fflush (stdin);
  143.                                                                                                    scanf("%d",&salver);
  144.                                                                                                    opositores[posicion].prueba1[s]=salver;
  145.                                                                                                    printf("nIntroduce el tiempo nuevo que ha tardado en recorrer los 100 metros en segundos del participante:n");
  146.                                                                                                    fflush (stdin);
  147.                                                                                                    scanf("%d",&cienm);
  148.                                                                                                    opositores[posicion].prueba2[s]=cienm;
  149.                                                                                                    printf("nIntroduce el tiempo nuevo que ha tardado en recorrer los 1000 metros en segundos del participante:n");
  150.                                                                                                    fflush (stdin);
  151.                                                                                                    scanf("%d",&milm);                                                                                          
  152.                                                                                                    opositores[posicion].prueba3[s]=milm;
  153.                                                                                                    }//Fin septimo probable    
  154.                                                                                                                                                              
  155. }//fin else for s
  156. if (salver>=SALTOV&&cienm<=CIENMETROS&&milm<=MILMETROS) printf("nEl participante numero ha superado la prueba.n");
  157. else printf("nEl participante no ha superado la prueba.n");
  158.  
  159. }    
  160.  
  161.  
  162.  

Aquí opositores.h
Código: C
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. typedef struct opositor{
  6.         char apellidos[40];
  7.         char nombre[20];
  8.         char dni[10];
  9.         int edad;
  10.         float prueba1[3];
  11.         float prueba2[3];
  12.         float prueba3[3];
  13.         }opositor;
  14.        
  15. void altaopositor(opositor opositores[],int contador);
  16. int buscar(opositor opositores[],int contador, char dni[]);
  17. void dardebaja(opositor opositores[],int contador, int posicion);
  18. void listar(opositor opositores[],int contador);
  19. void realizar(opositor opositores[],int posicion);
  20.  
  21.  
Título: Re: Buenas!!
Publicado por: Lregrey en Jueves 20 de Enero de 2011, 15:30
Niguna idea para ordenar las pruebas de mejor a peor?? :S
Título: Re: Buenas!!
Publicado por: m0skit0 en Jueves 20 de Enero de 2011, 16:23
Burbuja.