• Viernes 8 de Noviembre de 2024, 23:14

Autor Tema:  Error en la compilacion de programa en c++  (Leído 1832 veces)

lukescott

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Error en la compilacion de programa en c++
« en: Domingo 21 de Noviembre de 2010, 22:41 »
0
Buenas tardes, vi que ya han publicado este ejercicio aca queriendo que se lo resuelvan y bueno yo tengo la misma necesidad por el ejercicio, pero lo he tratado de hacer por mi mismo y me parece qeu el codigo esta completo, el problema es que al compilar al momento de cargar los resultados no avanza la carga, si me podrian dar una mano con eso desde ya muy agradecido.

Realizar un programa que permita cargar los resultados de un torneo de futbol. Este programa debera presentar un menu de opciones:

1-CARGA INICIAL
2- LEER ARCHIVO
3- INGRESAR RESULTADOS
4- MOSTRAR POSICIONES
5- SALIR DEL PROGRAMA

Al elegir la opcion 1, el usuario debe ingresar la cantidad de equipos que tendra el torneo y los nombres de cada uno de ellos.
Al elegir la opcion 2, el programa debe leer los datos del archivo "torneo.dat"
Al elegir la opcion 3, el usuario ingresa los nombres de dos equipos y los goles convertidos por cada uno. El programa debera calcular los puntos de cda equipo (3 si gano el partido, 1 si empato y 0 si perdio) y acumular los goles a favor y en contra de cada equipo.
Al elegir la opcion 4, el programa debera ordenar la lista de equipos por cantidad de puntos. Si hay igualdad de puntos, por diferencia de gol(Goles a favor-Goles en contra).
Si hay igualdad, en puntos y diferencia de gol, se ordenara por goles a favor. Si persiste la igualdad, se ordenara alfabeticamente. Un vez ordenada, el programa mostrara la tabla de posiciones.
Al elegir la opcion 5 guarda los datos en el archivo "torneo.dat" y cierra el programa.
Luego de cada opcion (Excepto la 5), se vuelve a mostrar el menu. Todas las entradas de datos deben ser validadas.




Ahora mando el código que ya desarrolle:

Código: C
  1.  
  2. #include <iostream.h>
  3. #include <stdio.h>
  4. #include <conio.h>
  5.  
  6. void creartorneo(FILE*);
  7. void leerarchivo(FILE*);
  8. void ingresarresultados(FILE*);
  9. void mostrarposiciones(FILE*);
  10.  
  11. struct sequipos
  12. {
  13.     char nombre[];
  14.     int equipo[],gf,gc,pts;
  15. }equipo;
  16.  
  17.  
  18. int main(){
  19.    FILE *torneo;
  20. int n,exit=0;
  21.     while(!exit)
  22.   {
  23.     cout<<"Elija una opcion"<<endl<<endl;
  24.     cout<<"1-Carga Inicial"<<endl<<"2-Leer archivo"<<endl<<"3-Ingresar Resultados"<<endl<<"4-Mostrar Posiciones"<<endl<<"5-Salir del Programa"<<endl;
  25.     cin>>n;
  26.  
  27.     switch(n){
  28.     case 1:
  29.     creartorneo(torneo);
  30.     break;
  31.  
  32.  
  33.     case 2:
  34.     leerarchivo(torneo);
  35.     break;
  36.     case 3:
  37.  
  38.     ingresarresultados(torneo);
  39.     break;
  40.     //case 4:{
  41.       //  mostrarposiciones(torneo);
  42.   //  }
  43.     case 5:
  44.  
  45.     exit=1;
  46.     break;
  47.     }
  48.   }
  49. }
  50.     void creartorneo(FILE *torneo)
  51.     {
  52.        int i,tot;
  53.  
  54.        torneo=fopen("c:\torneo.dat","wb");
  55.        if(torneo!=NULL){
  56.        torneo=fopen("c:\torneo.dat","ab");
  57.        cout<<"Ingrese cantidad de equipos ";cin>>tot;
  58.        for(i=1;i<=tot;i++){
  59.         cout<<"Ingrese nombre del equipo "<<i<<endl;
  60.         scanf("%s",equipo.nombre);
  61.        fwrite(&equipo, sizeof(struct sequipos),1, torneo);
  62.        }
  63.        fclose(torneo);
  64.     }
  65.     return;
  66.     }
  67.     void leerarchivo(FILE*torneo){
  68.         int numero=1;
  69.         torneo=fopen("c:\torneo.dat","rb");
  70.         if(torneo==NULL){
  71.         cout<<"El archivo no existe, por favor creelo!!!!";
  72.          }
  73.  
  74.     fread(&equipo, sizeof(struct sequipos),1,torneo);
  75.     while(!feof(torneo))
  76.     printf("n%d t%s t%d t%d t%d t%d",numero,equipo.nombre,equipo.gf,equipo.gc,equipo.pts);
  77.     fread(&equipo, sizeof(struct sequipos),1,torneo);
  78.     numero++;
  79.     fclose(torneo);
  80.     return;
  81.     }
  82.  
  83.  
  84.     void ingresarresultados(FILE*torneo){
  85.     char equipo1[25],equipo2[25];
  86.     int gf1,gc1,gf2,gc2,pts1,pts2,bandera=1,i=0;
  87.     torneo=fopen("c:\torneo.dat","a+b");
  88.      gets(equipo1);
  89.     cout<<"Ingrese nombre del equipo 1: ";
  90. gets(equipo1);
  91.     cout<<"nIngrese nombre del equipo 2: ";
  92.     gets(equipo2);
  93.     cout<<"Ingrese goles del equipo 1: "<<endl;cin>>gf1;gc2=gf1;
  94.     cout<<"Ingrese goles del equipo 2: "<<endl;cin>>gf2;gc1=gf2;
  95.     if(gf1>gf2){
  96.     pts1=3;
  97.     pts2=0;
  98.     }
  99.     else if(gf1<gf2)
  100.     {pts2=3;
  101.     pts1=0;
  102.     }else
  103.     {pts1=pts2=1;}
  104.  
  105.     fread(&equipo, sizeof(struct sequipos),1,torneo);
  106.     while(!feof(torneo)){
  107.     while(equipo1[i]!=0)
  108.     {
  109.         if(equipo1[i]==equipo.nombre[i]){
  110.         i++;
  111.         }else{
  112.             bandera=0;
  113.             }
  114.     }
  115.     if(bandera==1){
  116.         equipo.pts=pts1;
  117.         equipo.gf=gf1;
  118.         equipo.gc=gc1;
  119.         fwrite(&equipo, sizeof(struct sequipos),1, torneo);
  120.         break;
  121.     }
  122.     else{
  123.     fread(&equipo, sizeof(struct sequipos),1,torneo);
  124.     }
  125.     }
  126.     fclose(torneo);
  127.     torneo=fopen("c:\torneo.dat","a+b");
  128.  
  129.     i=0;bandera=1;
  130.  
  131.    fread(&equipo, sizeof(struct sequipos),1,torneo);
  132.     while(!feof(torneo)){
  133.     while(equipo2[i]!='')
  134.     {
  135.         if(equipo2[i]==equipo.nombre[i]){
  136.         i++;
  137.         }else{
  138.             bandera=0;
  139.             }
  140.     }
  141.     if(bandera==1){
  142.         equipo.pts=pts2;
  143.         equipo.gf=gf2;
  144.         equipo.gc=gc2;
  145.         fwrite(&equipo, sizeof(struct sequipos),1, torneo);
  146.     }
  147.     else{
  148.     fread(&equipo, sizeof(struct sequipos),1,torneo);
  149.     }
  150.     }
  151.     fclose(torneo);
  152.     return;
  153.     }
  154.  
  155.  
  156. void mostrarposiciones(FILE *torneo)
  157.         {
  158.          int i=0;
  159.      equipo arreglo[],aux;
  160.      torneo=fopen("c:\torneo.dat","rb");
  161.  
  162.      fread(&equipo, sizeof(struct sequipos),1,torneo);
  163.      while(!feof(torneo)){
  164.         arreglo[i]= equipo;
  165.         i++;
  166.       fread(&equipo, sizeof(struct sequipos),1,torneo);
  167.      }
  168.      i--;
  169.         for(j=0;j<i-1;j++){
  170.         for(k=j+1;k<i;k++){
  171.         if(arreglo[j].pts<arreglo[k].pts){
  172.         aux=arreglo[j]
  173.         arreglo[j]=arreglo[k];
  174.         arreglo[k]=arreglo[j];
  175.         }
  176.         }
  177.         }
  178.     for(j=0;j<=i;j++){
  179.         printf("n t%s t%d t%d t%d t%d",arreglo[j].nombre,arreglo[j].gf,arreglo[j].gc,arreglo[j].pts)
  180.     }
  181.     fclose(torneo);
  182.     }
  183.  





Desde ya muchas gracias
« última modificación: Lunes 22 de Noviembre de 2010, 19:26 por lukescott »

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Programa en c++
« Respuesta #1 en: Lunes 22 de Noviembre de 2010, 10:29 »
0
Usa las etiquetas de código y pon el codigo formateado si esperas que alguien gaste su tiempo en leer eso.

lukescott

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Programa en c++
« Respuesta #2 en: Lunes 22 de Noviembre de 2010, 17:11 »
0
disculpame pero soy nuevo en este foro y en la programacion en general y no se a que te refieres con codigo formateado o vinculos, podrias explicarme para hacer más eficiente mi pregunta?

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Programa en c++
« Respuesta #3 en: Lunes 22 de Noviembre de 2010, 18:00 »
0
Esto se aplica a todos los foros. Léete las normas y los consejos aquí: viewforum.php?f=1

Saludos