elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Reservaciones de un cine ¿Qué pasa?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Reservaciones de un cine ¿Qué pasa?  (Leído 1,666 veces)
Alexh3

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Reservaciones de un cine ¿Qué pasa?
« en: 22 Noviembre 2015, 16:43 pm »

Amigos, soy nuevo en este foro y agradecería enormemente una pequeña ayuda con un código.
Como dice en el asunto, es un sistema de reservaciones de un cine, pero no puedo lograr que la función que evalúa las opciones de película, día, horario , llame correctamente a la función que reserva los asientos.
Amigos, ya me quemé la cabeza intentándolo, de verdad agradecería su ayuda enormemente, les paso todo mi código.
Código:
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
void gotoxy(int x, int y);
void datos(void);
void asientos(void);
struct guardar
{
char *pelicula[5]={"Avengers", "Terminator", "Principito", "Enredados", "Megamente"}, cliente[60], *horario[4]={"1-3pm", "3-5pm", "5-7pm", "7-9pm"}, *dia[5]={"Viernes","Sabado","Domingo"};
int adultos, ninos, ndia, nhorario, npelicula;
double coston, costoa, pago;
}c;
main()
{
int j;
char nombre[50];
gotoxy(35, 8);
puts("CINE");
gotoxy(17, 13);
puts("Presiona tres veces la tecla Enter para continuar");
getchar();
getchar();
system("cls");
getchar();
puts("Ingresa tu nombre");
scanf(" %[^\n]", &nombre);
j=0;
while (j<1)
{
printf("¿Qué película quieres reservar %s? Tenemos las siguientes opciones: \n Avengers ---->1\n Terminator -->2\n Principito -->3\n Enredados -->4\n Megamente -->5\n", nombre);
scanf("%d", &c.npelicula);
switch(c.npelicula)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("ha elegido la pelicula %s",c.pelicula[c.npelicula-1]);
datos();
j++;
break;
default:
puts("Opcion invalida");
   break;
}
}
}
void gotoxy(int x, int y)
{
COORD coord;
coord.X=x;
coord.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
void datos(void)
{
int i, h;
long boletos, boletost;
puts("¿En que dia de la semana deseas ver la pelicula? \n Lunes-->1\n Martes-->2\n Miercoles-->3 \n Jueves-->4\n Viernes-->5 ");
scanf("%i", &c.ndia);
printf("Tu funcion sera el dia %s \nEscribe el horario en el que deseas reservar tus boletos  \n\n 1 a 3 pm-->1\n 3 a 5 pm-->2\n 5 a 7 pm-->3\n 7 a 9 pm-->4\n",c.dia[c.ndia-1]);
scanf("%i", &c.nhorario);
asientos();
getchar();
}
void asientos(void)
{
int asientos[5][5]={{1,1,1,1,1},{1,1,1,1,1},{1,1,1,1,1},{1,1,1,1,1},{1,1,1,1,1}},i,j,fila,numero,numeroasientos,asientosdisponibles=25,cont,d;

            for(i=0;i<5;i=i+1)
                        {
                            for(j=0;j<5;j=j+1)
                            {
                                if (asientos[i][j]==1)
                                {
                                    asientosdisponibles+1;
                                }
                                else asientosdisponibles+0;
                            }
                        }
            printf("\nAsientos disponibles: %d", asientosdisponibles);
         printf("\nHa elegido el horario de %s\ningrese el numero de boletos para adultos", c.horario[c.nhorario-1]);
scanf("%d", &c.adultos);
puts("ingrese el numero de boletos para ninos/3era edad");
scanf("%d", &c.ninos);
numeroasientos=c.adultos+c.ninos;
printf("\nnumeroasientos: %d\n", numeroasientos);
if (asientosdisponibles<numeroasientos)
{
puts("la funcion se ha agotado");
}
else
            {
            if(numeroasientos>=0 && numeroasientos<=25)
            {
                while(cont<numeroasientos)
                {
                        d=0;
                        for(i=0;i<5;i=i+1)
                        {
                            for(j=0;j<5;j=j+1)
                            {
                                if (j==0)
                                {
                                    do
                                    {
                                        printf("Fila %d -->  ",c);
                                        printf("  |%d|  ",asientos[i][j]);
                                        d=d+1;
                                    }
                                    while(d==0);
                                }
                        printf("\n");
                        }
                        printf("                    **Pantalla**\n");
                        printf("               0      1      2      3      4  --> Numero de Asiento\n");
                puts("\nIngrese la fila que desee:\n");
                scanf("%i", &fila);
                switch(fila)
                        {
                            case 0:
                            case 1:
                            case 2:
                            case 3:
                            case 4:
                                puts("Ingrese el numero de asiento que desee:\n");
                                scanf("%i", &numero);
                                switch(numero)
                                {
                                    case 0:
                                    case 1:
                                    case 2:
                                    case 3:
                                    case 4:
                                                if(asientos[fila][numero]==1)
                                                {
                                                    printf("Ha elegido correctamente el asiento\n");
                                                    asientos[fila][numero]=0;
                                                    cont=cont+1;
                                                    getchar();
                                                    getchar();
                                                }
                                                else
                                                {
                                                    printf("El asiento esta ocupado, presione enter para continuar\n");
                                                    getchar();
                                                    getchar();
                                                }

                                    break;
                                    default:
                                        printf("Error, presione enter para continuar");
                                        getchar();
                                        getchar();
                                    break;
                                 }
                            break;
                            default:
                               printf("Error, presione enter para continuar");
                               getchar();
                               getchar();
                            break;
                        }
                system("cls");
                }
            }
            else printf("Error");
            getchar();
            getchar();
            }
    }
                 else
                                printf("  |%d|  ",asientos[i][j]);
                            }
                        printf("\n");
                        }
                        printf("                    **Pantalla**\n");
                        printf("               0      1      2      3      4  --> Numero de Asiento\n");
                puts("\nIngrese la fila que desee:\n");
                scanf("%i", &fila);
                switch(fila)
                        {
                            case 0:
                            case 1:
                            case 2:
                            case 3:
                            case 4:
                                puts("Ingrese el numero de asiento que desee:\n");
                                scanf("%i", &numero);
                                switch(numero)
                                {
                                    case 0:
                                    case 1:
                                    case 2:
                                    case 3:
                                    case 4:
                                                if(asientos[fila][numero]==1)
                                                {
                                                    printf("Ha elegido correctamente el asiento\n");
                                                    asientos[fila][numero]=0;
                                                    cont=cont+1;
                                                    getchar();
                                                    getchar();
                                                }
                                                else
                                                {
                                                    printf("El asiento esta ocupado, presione enter para continuar\n");
                                                    getchar();
                                                    getchar();
                                                }

                                    break;
                                    default:
                                        printf("Error, presione enter para continuar");
                                        getchar();
                                        getchar();
                                    break;
                                 }
                            break;
                            default:
                               printf("Error, presione enter para continuar");
                               getchar();
                               getchar();
                            break;
                        }
                system("cls");
                }
            }
            else printf("Error");
            getchar();
            getchar();
            }
    }


En línea

0xFer


Desconectado Desconectado

Mensajes: 401



Ver Perfil
Re: Reservaciones de un cine ¿Qué pasa?
« Respuesta #1 en: 22 Noviembre 2015, 18:19 pm »

Código
  1. for(i=0;i<5;i=i+1)
  2. {
  3.     for(j=0;j<5;j=j+1)
  4.      {
  5.         if (asientos[i][j]==1)
  6.            {
  7.                 //asientosdisponibles+1
  8.                 asientosdisponibles++;
  9.             }
  10.           /*else
  11.                  asientosdisponibles+0;
  12.         }*/
  13. }

Te lo he corregido un poco, asientosdisponibles+1; aunque creas que esa linea aumenta el valor de asientosdisponibles en realidad no lo hace, el else no es necesario.

Ah y recuerda inicializar tus variables.

Código
  1.  asientosdisponibles = 0;
  2. numeroasientos = 0;
fijate cuáles deben tener a fuerzas un valor que no sea basura, es decir, un número cualquiera que se les asigna a las variables por el sistema sólo porque el programador no las inicializa después de crear las variables.


« Última modificación: 22 Noviembre 2015, 18:30 pm por 0xFer » En línea

Código
  1. int getRandomNumber(){
  2.    return 4; //chosen by fair dice roll
  3.              //guaranteed to be random
  4. }
Alexh3

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Reservaciones de un cine ¿Qué pasa?
« Respuesta #2 en: 23 Noviembre 2015, 03:51 am »

Amigo, de verdad te lo agradezco, tu consejo me sirvió bastante :P
Pero es un proyecto escolar y no funcionaba bien, así que decidí hacerlo más simple pero más a prueba de errores (aunque más largo)
pero igual me están costando trabajo nun par de cositas, te agradecería que me apoyes de nuevo en mi código actual.
de antemano, muchísimas graciias! !!!
(te dejo el link del nuevo post)
https://foro.elhacker.net/programacion_cc/reservaciones-t444671.0.html;msg2048053#msg2048053
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Resolucion en el cine?
Multimedia
David24 5 13,384 Último mensaje 17 Agosto 2007, 22:08 pm
por David24
Programa que simule el sistema de reservaciones de un cine. APUNTADORES
Programación C/C++
Skornz 1 3,583 Último mensaje 27 Abril 2014, 19:52 pm
por noele1995
Reservaciones
Programación C/C++
Alexh3 2 1,085 Último mensaje 25 Noviembre 2015, 03:01 am
por Alexh3
Sistema de reservaciones de una aerolínea
Java
cipaarzu 2 3,660 Último mensaje 15 Marzo 2021, 08:34 am
por Giraldhos
MODELACION DE UN PROBLEMA DE RESERVACIONES
Programación General
SDCC 1 727 Último mensaje 1 Septiembre 2018, 12:19 pm
por Serapis
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines