• Martes 12 de Noviembre de 2024, 21:21

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - lukescott

Páginas: [1]
1
C/C++ / Re: Programa en c++
« en: Lunes 22 de Noviembre de 2010, 17:11 »
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?

2
C/C++ / Error en la compilacion de programa en c++
« en: Domingo 21 de Noviembre de 2010, 22:41 »
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

Páginas: [1]