Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/12/2010, 17:41
Avatar de Munire
Munire
 
Fecha de Ingreso: julio-2010
Ubicación: en el ciberdespacio (España)
Mensajes: 150
Antigüedad: 13 años, 10 meses
Puntos: 4
Respuesta: Codigo con errores.

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. /* enumerados,struct,typedef  */
  5.  
  6. typedef enum generoFilm{
  7.   comedia,
  8.   drama,
  9.   terror,
  10.   belica,
  11.   otros
  12. }miGenero;
  13. typedef  struct cine {
  14.    char titulo[40];
  15.    enum  generoFilm miGenero;
  16.    int miDia;
  17.    int miMes;
  18.    int miHora;
  19.    int miAgno;
  20. }tipocine;
  21.  
  22. char *prompts[5] = {
  23.    "Alta de pelicula", "Vender entradas",
  24.    "Listado de peliculas", "Mostrar calendario de peliculas",
  25.    "Salir" };
  26.    
  27.  
  28.  
  29. /* funciones */
  30. void alta_Pelicula(tipocine *,int *);
  31. void venta_Ticket(tipocine.[titulo] *,int tickets){      primero lo llamas venta y luego vender
  32. char bufer[80];
  33. printf("Titulo de pelicula: ");
  34. fgets(bufer,sizeof(bufer),stdin);
  35. printf("numero de tickets: ");
  36. scanf("%d",&tickets);
  37. };
  38. void listado_Peliculas(){
  39. char bufer[80];
  40. printf("Genero de pelicula: ");
  41. fgets(bufer,sizeof(bufer),stdin);
  42.                                                             falta cerrar la llave }
  43.  
  44. /* funciones*/
  45.  
  46. int main(){
  47.  
  48.    char espacios[40];
  49.    int i,j;
  50.    char option;
  51.    printf( "         GESTION PELICULAS\n" );
  52.    printf( "     ========================\n" );
  53.  
  54.    for( j=0; j<5; j++ )
  55.    {
  56.      
  57.       printf( prompts[j] );
  58.      
  59.        
  60.       for ( i = 0; i < 35 - strlen(prompts[j]); i++ )
  61.       {
  62.          espacios[i] = ' ';
  63.       }
  64.  
  65.          espacios[i]='\0';
  66.  
  67.      
  68.       printf( "%s<Pulsar %c>\n",espacios , prompts[j][0] );
  69.    }
  70.    printf("     =========================\n");
  71.    printf("    INTRODUZCA UNA OPCION VALIDA A|V|L|M|S\n");
  72.    scanf("%c",&option);
  73.    while ((option!='A')&&(option!='V')&&(option!='L')&&(option!='M')&&(option!='S'))printf("error opcion no valida");
  74.      
  75.   switch(option){
  76. case 'A':alta_Pelicula(tipocine *cine,int *nexEntry);
  77.  
  78.      break;
  79. case 'V':vender_Ticket(tipocine.titulo,int tickets);   donde esta declarado tickets???  tipocine es un tipo de estructura no es una variable
  80.      break;
  81.      default:salir;     ¿¿¿ salir ???
  82. break;}
  83.    
  84.    
  85.      
  86.  
  87.     int next = 0;
  88.    tipocine cines[30];      MAL estas declarando la estructura cine despues de usarla
  89.  
  90.   while( next < 30 )      next = 0, while se cumple SIEMPRE => BUCLE INFINITO!! añade next++; dentro del while
  91.    {
  92.      
  93.       alta_Pelicula( cines, &next );
  94.    }
  95.    
  96. };
  97.  
  98. void alta_Pelicula( tipocine  *cine, int *nextEntry ){
  99.    char bufer[80];
  100.    char titulo[40];
  101.    char *p;
  102.    enum generoFilm  miGenero;
  103.    int miDia;
  104.    int miMes;
  105.    int miHora;
  106.    int miAgno;
  107.    int i;
  108.          
  109.    printf("\n=== Alta Pelicula ===\n");
  110.  
  111.    printf( " proxima pelicula : %d\n", *nextEntry );
  112.  
  113.    
  114.    if( *nextEntry == 30 )
  115.    {
  116.       printf("error, no se admiten más peliculas.\n");
  117.       return;
  118.    }
  119.  
  120.    
  121.    printf("Titulo: ");
  122.    fgets( bufer, sizeof(bufer), stdin );
  123.    printf("Genero: ");fgets(bufer,sizeof(bufer),stdin);
  124.    printf("Dia: ");scanf("%d",&miDia);
  125.    printf("Mes: ");scanf("%d",&miMes);
  126.    printf("Anno: ");scanf("%d",&miAgno);
  127.    printf("Hora: ");scanf("%d",&miHora);
  128.    printf("Genero: ");fgets(bufer,sizeof(bufer),stdin);
  129.        
  130.    i = 0;
  131.    p = bufer;
  132.    
  133.    while( *p != '\n' && i<sizeof(titulo) ) {
  134.       titulo[i++] = *p++;
  135.    }
  136.    titulo[i] = '\0';
  137.    
  138.    i=0;
  139.    while( i < *nextEntry ) {
  140.          printf(" Comparacion '%s' to '%s'\n", titulo, cine[i].titulo );
  141.      if( strcmp( cine[i].titulo, titulo ) == 0 ) {
  142.         printf("error, film ya esta en la lista.\n");
  143.         return;
  144.      }else {
  145.          printf("Day: ");
  146.          scanf("%d",&miDia);}
  147.      i++;
  148.    }
  149.    
  150.    strcpy( cine[*nextEntry].titulo, titulo );
  151.  
  152.    printf( " Added: %s\n", cine[*nextEntry].titulo );
  153.    
  154.    *nextEntry = *nextEntry+1;
  155.    printf( " incrementado la proxima entrada del array: %d\n\n", *nextEntry );
  156.  
  157. }

no he comentado todos los errores, si tienes alguna duda pregunta

aqui te dejo el codigo corregido y sin errores de compilacion (bueno si hay uno que ahora no caigo que puede ser: for ( i = 0; i < 35 - strlen(prompts[j]); i++ ) )


Código C:
Ver original
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. /* enumerados,struct,typedef  */
  5.  
  6. typedef enum generoFilm{
  7.   comedia,
  8.   drama,
  9.   terror,
  10.   belica,
  11.   otros
  12. }miGenero;
  13. typedef  struct cine {
  14.    char titulo[40];
  15.    enum  generoFilm miGenero;
  16.    int miDia;
  17.    int miMes;
  18.    int miHora;
  19.    int miAgno;
  20. }tipocine;
  21.  
  22. char *prompts[5] = {
  23.    "Alta de pelicula", "Vender entradas",
  24.    "Listado de peliculas", "Mostrar calendario de peliculas",
  25.    "Salir" };
  26.    
  27.  
  28.  
  29. /* funciones */
  30. void alta_Pelicula(tipocine  *cine,int *);
  31. void vender_Ticket(int tickets){        
  32. char bufer[80];
  33. printf("Titulo de pelicula: ");
  34. fgets(bufer,sizeof(bufer),stdin);
  35. printf("numero de tickets: ");
  36. scanf("%d",&tickets);
  37. };
  38. void listado_Peliculas(){
  39. char bufer[80];
  40. printf("Genero de pelicula: ");
  41. fgets(bufer,sizeof(bufer),stdin);
  42. }      
  43.  
  44.  
  45. /* funciones*/
  46.  
  47. int main(){
  48.  
  49.    char espacios[40];
  50.    int i,j, tickets=0, nexEntry=0;
  51.    char option;
  52.    tipocine cines[30];
  53.    printf( "         GESTION PELICULAS\n" );
  54.    printf( "     ========================\n" );
  55.  
  56.    for( j=0; j<5; j++ )
  57.    {
  58.      
  59.       printf( prompts[j] );
  60.      
  61.        
  62.       for ( i = 0; i < 35 - strlen(prompts[j]); i++ )
  63.       {
  64.          espacios[i] = ' ';
  65.       }
  66.  
  67.          espacios[i]='\0';
  68.  
  69.      
  70.       printf( "%s<Pulsar %c>\n",espacios , prompts[j][0] );
  71.    }
  72.    printf("     =========================\n");
  73.    printf("    INTRODUZCA UNA OPCION VALIDA A|V|L|M|S\n");
  74.    scanf("%c",&option);
  75.    while ((option!='A')&&(option!='V')&&(option!='L')&&(option!='M')&&(option!='S'))printf("error opcion no valida");
  76.      
  77.   switch(option){
  78. case 'A': alta_Pelicula(cines, &nexEntry);
  79.  
  80.      break;
  81. case 'V': vender_Ticket(tickets);
  82.      break;
  83.      default: return 0;
  84. break;}
  85.    
  86.    
  87.      
  88.  
  89.    nexEntry = 0;
  90.    
  91.  
  92.   while( nexEntry < 30 )          
  93.    {
  94.      
  95.       alta_Pelicula( cines, &nexEntry);
  96.       nexEntry++;
  97.    }
  98.    return 0;
  99. };
  100.  
  101. void alta_Pelicula( tipocine  *cine, int *nextEntry ){
  102.    char bufer[80];
  103.    char titulo[40];
  104.    char *p;
  105.    enum generoFilm  miGenero;
  106.    int miDia;
  107.    int miMes;
  108.    int miHora;
  109.    int miAgno;
  110.    int i;
  111.          
  112.    printf("\n=== Alta Pelicula ===\n");
  113.  
  114.    printf( " proxima pelicula : %d\n", *nextEntry );
  115.  
  116.    
  117.    if( *nextEntry == 30 )
  118.    {
  119.       printf("error, no se admiten más peliculas.\n");
  120.       return;
  121.    }
  122.  
  123.    
  124.    printf("Titulo: ");
  125.    fgets( bufer, sizeof(bufer), stdin );
  126.    printf("Genero: ");fgets(bufer,sizeof(bufer),stdin);
  127.    printf("Dia: ");scanf("%d",&miDia);
  128.    printf("Mes: ");scanf("%d",&miMes);
  129.    printf("Anno: ");scanf("%d",&miAgno);
  130.    printf("Hora: ");scanf("%d",&miHora);
  131.    printf("Genero: ");fgets(bufer,sizeof(bufer),stdin);
  132.        
  133.    i = 0;
  134.    p = bufer;
  135.    
  136.    while( *p != '\n' && i<sizeof(titulo) ) {
  137.       titulo[i++] = *p++;
  138.    }
  139.    titulo[i] = '\0';
  140.    
  141.    i=0;
  142.    while( i < *nextEntry ) {
  143.          printf(" Comparacion '%s' to '%s'\n", titulo, cine[i].titulo );
  144.      if( strcmp( cine[i].titulo, titulo ) == 0 ) {
  145.         printf("error, film ya esta en la lista.\n");
  146.         return;
  147.      }else {
  148.          printf("Day: ");
  149.          scanf("%d",&miDia);}
  150.      i++;
  151.    }
  152.    
  153.    strcpy( cine[*nextEntry].titulo, titulo );
  154.  
  155.    printf( " Added: %s\n", cine[*nextEntry].titulo );
  156.    
  157.    *nextEntry = *nextEntry+1;
  158.    printf( " incrementado la proxima entrada del array: %d\n\n", *nextEntry );
  159.  
  160. }