Código C:
Ver original#include <stdio.h>
#include <string.h>
/* enumerados,struct,typedef */
typedef enum generoFilm{
comedia,
drama,
terror,
belica,
otros
}miGenero;
typedef struct cine {
char titulo[40];
enum generoFilm miGenero;
int miDia;
int miMes;
int miHora;
int miAgno;
}tipocine;
char *prompts[5] = {
"Alta de pelicula", "Vender entradas",
"Listado de peliculas", "Mostrar calendario de peliculas",
"Salir" };
/* funciones */
void alta_Pelicula(tipocine *,int *);
void venta_Ticket(tipocine.[titulo] *,int tickets){ primero lo llamas venta y luego vender
char bufer[80];
printf("Titulo de pelicula: "); fgets(bufer
,sizeof(bufer
),stdin
); printf("numero de tickets: "); };
void listado_Peliculas(){
char bufer[80];
printf("Genero de pelicula: "); fgets(bufer
,sizeof(bufer
),stdin
); falta cerrar la llave }
/* funciones*/
int main(){
char espacios[40];
int i,j;
char option;
printf( " GESTION PELICULAS\n" ); printf( " ========================\n" );
for( j=0; j<5; j++ )
{
for ( i
= 0; i
< 35 - strlen(prompts
[j
]); i
++ ) {
espacios[i] = ' ';
}
espacios[i]='\0';
printf( "%s<Pulsar %c>\n",espacios
, prompts
[j
][0] ); }
printf(" =========================\n"); printf(" INTRODUZCA UNA OPCION VALIDA A|V|L|M|S\n"); while ((option
!='A')&&(option
!='V')&&(option
!='L')&&(option
!='M')&&(option
!='S'))printf("error opcion no valida");
switch(option){
case 'A':alta_Pelicula(tipocine *cine,int *nexEntry);
break;
case 'V':vender_Ticket(tipocine.titulo,int tickets); donde esta declarado tickets??? tipocine es un tipo de estructura no es una variable
break;
default:salir; ¿¿¿ salir ???
break;}
int next = 0;
tipocine cines[30]; MAL estas declarando la estructura cine despues de usarla
while( next < 30 ) next = 0, while se cumple SIEMPRE => BUCLE INFINITO!! añade next++; dentro del while
{
alta_Pelicula( cines, &next );
}
};
void alta_Pelicula( tipocine *cine, int *nextEntry ){
char bufer[80];
char titulo[40];
char *p;
enum generoFilm miGenero;
int miDia;
int miMes;
int miHora;
int miAgno;
int i;
printf("\n=== Alta Pelicula ===\n");
printf( " proxima pelicula : %d\n", *nextEntry
);
if( *nextEntry == 30 )
{
printf("error, no se admiten más peliculas.\n"); return;
}
fgets( bufer
, sizeof(bufer
), stdin
);
i = 0;
p = bufer;
while( *p != '\n' && i<sizeof(titulo) ) {
titulo[i++] = *p++;
}
titulo[i] = '\0';
i=0;
while( i < *nextEntry ) {
printf(" Comparacion '%s' to '%s'\n", titulo
, cine
[i
].
titulo ); if( strcmp( cine
[i
].
titulo, titulo
) == 0 ) { printf("error, film ya esta en la lista.\n"); return;
}else {
i++;
}
strcpy( cine
[*nextEntry
].
titulo, titulo
);
printf( " Added: %s\n", cine
[*nextEntry
].
titulo );
*nextEntry = *nextEntry+1;
printf( " incrementado la proxima entrada del array: %d\n\n", *nextEntry
);
}
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#include <stdio.h>
#include <string.h>
/* enumerados,struct,typedef */
typedef enum generoFilm{
comedia,
drama,
terror,
belica,
otros
}miGenero;
typedef struct cine {
char titulo[40];
enum generoFilm miGenero;
int miDia;
int miMes;
int miHora;
int miAgno;
}tipocine;
char *prompts[5] = {
"Alta de pelicula", "Vender entradas",
"Listado de peliculas", "Mostrar calendario de peliculas",
"Salir" };
/* funciones */
void alta_Pelicula(tipocine *cine,int *);
void vender_Ticket(int tickets){
char bufer[80];
printf("Titulo de pelicula: "); fgets(bufer
,sizeof(bufer
),stdin
); printf("numero de tickets: "); };
void listado_Peliculas(){
char bufer[80];
printf("Genero de pelicula: "); fgets(bufer
,sizeof(bufer
),stdin
); }
/* funciones*/
int main(){
char espacios[40];
int i,j, tickets=0, nexEntry=0;
char option;
tipocine cines[30];
printf( " GESTION PELICULAS\n" ); printf( " ========================\n" );
for( j=0; j<5; j++ )
{
for ( i
= 0; i
< 35 - strlen(prompts
[j
]); i
++ ) {
espacios[i] = ' ';
}
espacios[i]='\0';
printf( "%s<Pulsar %c>\n",espacios
, prompts
[j
][0] ); }
printf(" =========================\n"); printf(" INTRODUZCA UNA OPCION VALIDA A|V|L|M|S\n"); while ((option
!='A')&&(option
!='V')&&(option
!='L')&&(option
!='M')&&(option
!='S'))printf("error opcion no valida");
switch(option){
case 'A': alta_Pelicula(cines, &nexEntry);
break;
case 'V': vender_Ticket(tickets);
break;
default: return 0;
break;}
nexEntry = 0;
while( nexEntry < 30 )
{
alta_Pelicula( cines, &nexEntry);
nexEntry++;
}
return 0;
};
void alta_Pelicula( tipocine *cine, int *nextEntry ){
char bufer[80];
char titulo[40];
char *p;
enum generoFilm miGenero;
int miDia;
int miMes;
int miHora;
int miAgno;
int i;
printf("\n=== Alta Pelicula ===\n");
printf( " proxima pelicula : %d\n", *nextEntry
);
if( *nextEntry == 30 )
{
printf("error, no se admiten más peliculas.\n"); return;
}
fgets( bufer
, sizeof(bufer
), stdin
);
i = 0;
p = bufer;
while( *p != '\n' && i<sizeof(titulo) ) {
titulo[i++] = *p++;
}
titulo[i] = '\0';
i=0;
while( i < *nextEntry ) {
printf(" Comparacion '%s' to '%s'\n", titulo
, cine
[i
].
titulo ); if( strcmp( cine
[i
].
titulo, titulo
) == 0 ) { printf("error, film ya esta en la lista.\n"); return;
}else {
i++;
}
strcpy( cine
[*nextEntry
].
titulo, titulo
);
printf( " Added: %s\n", cine
[*nextEntry
].
titulo );
*nextEntry = *nextEntry+1;
printf( " incrementado la proxima entrada del array: %d\n\n", *nextEntry
);
}