[C con Clase] AYUDA URGENTE TEATRO

luis alfonso jimenez mejia viejolajimenez en gmail.com
Mar Nov 22 14:56:45 CET 2011


puedes programarlo de tal forma que se le asigne reservaciones segun el
turno de llegada implenetando una cola

El 6 de noviembre de 2011 22:20, Nicolas Ayala
<nicoayala10 en hotmail.com>escribió:

>
>
>
>  hola ya lo tengo terminado el problema es q me aparece todo desordenado
> cuando lo guardo,y no me sale el de recuperar
>
>
>
>
>
>
>
>
> #include<stdio.h>
> #include<stdlib.h>
> #include<conio.h>
> #include<string.h>
> #define FILAS 15
> #define COLUMNAS 20
>
> struct nodo {
>       char estado;//R= reservado, V=vendido L=libre
>       long telefono;
> };
> typedef struct nodo _nodo;
>
>
>
>
>
> void menu();
> void pantalla();
> void iniciarteatro(_nodo[FILAS][COLUMNAS]); // pone todo al estado L
> void venderasiento(_nodo[FILAS][COLUMNAS]);
> void reservarasiento(_nodo[FILAS][COLUMNAS]);
> void liberarasientos(_nodo[FILAS][COLUMNAS]);
> void mostrarasientos(_nodo[FILAS][COLUMNAS]);
> void liberaruno(_nodo[FILAS][COLUMNAS]);
> void salvar(_nodo [FILAS][COLUMNAS]);
>
>
>
>
>
> void main(){
> menu();
> }
>                         // MENU
> void menu()
> {
> int opcion;
> _nodo teatro[FILAS][COLUMNAS];
>
>
>
>
> do{
>    pantalla();
>    scanf("%d",&opcion);
>    switch(opcion){
>         case 1:iniciarteatro(teatro);break;
>         case 2:venderasiento(teatro);break;
>         case 3:reservarasiento(teatro);break;
>         case 4:liberarasientos(teatro);break;
>              case 5:mostrarasientos(teatro);break;
>              case 6:liberaruno(teatro);break;
>              case 7:salvar(teatro);break;
>
>
>            case 0:break;
>              default: printf("opcion erronea");
>         }
>              getch();
>              } while (opcion !=0);
> }
>
>
>
>
> void pantalla(){
>         clrscr();
>              printf("\n1-Iniciar teatro\n");
>          printf("\n2-Vender asiento\n");
>              printf("\n3-Reservar asiento\n");
>              printf("\n4-Liberar Reservas\n");
>              printf("\n5-Mostrar Asientos\n");
>              printf("\n6-Liberar un asiento\n");
>              printf("\n7-Guardar TeaTROro\n");
>              printf("\n8-Recuperar Teatro\n");
>
>              printf("\n0-Salir\n");
>              printf("\nIngrese una opcion:\n");
> }
>              //INICIAR TEATRO
>
>
>
>
> void iniciarteatro( _nodo teatro[FILAS][COLUMNAS])
> {
> int ifila,icolumna;
> int opcion;
> char liberar='L';
>
>
>
>
> printf("\nEsta seguro que decea crear una nueva planilla SI=1 NO=0\n");
> scanf("%d",&opcion);
> if (opcion!=1)
> {
> printf("\nPulse una tecla para volver al menu principal\n");
> getch();
> }
> if(opcion==1)
> {
> for(ifila=0;ifila<FILAS;ifila++)
> {
> for(icolumna=0;icolumna<COLUMNAS;icolumna++)
> {
> teatro[ifila][icolumna].estado=liberar;
> teatro[ifila][icolumna].telefono=0;
>
>
> }
> }
> printf("La planilla del teatro se ha creado con exito");
> getch();
> }
> }
>
>
>              //FUNCION VENDER ASIENTO
>
>
> void venderasiento( _nodo teatro[FILAS][COLUMNAS])
> {
> int ifila,icolumna;
> char ubicacion;
> char estadovendido='V';
> char estadoreservado='R';
> long telreserva;
> mostrarasientos(teatro);
> printf("\nElige la fila y la columna de la butaca que quiere
> seleccionar\n");
>
>
>
>
> do
> {
> printf("\nSeleccione la fila\n");
> scanf("%d",&ifila);
> flushall();
> printf("\nSeleccione la columna\n");
> scanf("%d",&icolumna);
>
>
>
>
> if(estadovendido==teatro[ifila][icolumna].estado )
> {
> printf("/nEl asiento fila :%d columna :%d no esta disponible, Seleccione
> otro",ifila,icolumna);
> }
>
>
>
>
> if(estadoreservado==teatro[ifila][icolumna].estado)
> {
> printf("Este asiento esta reservado, ingrese el telefono de la reserva");
> scanf("%ld",&telreserva);
>         if(telreserva !=teatro[ifila][icolumna].telefono)
>         {
>         printf("El telefono que ingreso no coincide con el telefono del
> asiento");
>         getch();
>         }
>         else
>         {
>         teatro[ifila][icolumna].estado=estadovendido;
>         ubicacion='L';
>  printf("Su asiento a sido vendido");
>  getch();
>         }
> }
> else
>       {
>       teatro[ifila][icolumna].estado=estadovendido;
>       ubicacion='L';
>   printf("Su asiento a sido vendido");
>       getch();
>       }
>
>
> }while( ubicacion != 'L');
>
>
> }
>
>
>                   //FUNCION RESERVAR ASIENTO
>
>
> void reservarasiento(_nodo teatro[FILAS][COLUMNAS])
> {
> int icolumna,ifila;
> char reservado='R';
> char vendido='V';
> char ubicacion;
> long nuevotelefono;
> mostrarasientos(teatro);
>
>
> printf("Seleccione la butaca\n\n");
>
>
>
>
> do{
>       printf("Seleccione la fila de la butaca que desea reservar\n");
>       scanf("%d",&ifila);
>       flushall();
>       printf("Seleccione la columna de la butaca que desea reservar\n");
>       scanf("%d",&icolumna);
>
>
>
>
> if(ifila<=FILAS || icolumna<=COLUMNAS)
> {
> if(teatro[ifila][icolumna].estado==vendido ||
> teatro[ifila][icolumna].estado==reservado)
>       {
>       printf("La butaca fila: %d columna: %d no esta
> disponible\n",ifila,icolumna);
>       getch();
> }
> else
>       {
>           teatro[ifila][icolumna].estado=reservado;
>       printf("Ingrese el numero de telefono de la reserva
> correspondiente\n\n");
>       scanf("%ld",&nuevotelefono);
>       teatro[ifila][icolumna].telefono=nuevotelefono;
>       ubicacion='L';
>           }
> }
> else
> {
> printf("\nLa fila o columna que ingreso no existe");
> }
>
>
>
>
> }while(ubicacion!='L');
> printf("La reserva se ha realizado con exito");
> getch();
>
>
> }
>
>
>           //FUNCION LIBERAR ASIENTOS RESERVADOS
> void liberarasientos(_nodo teatro[FILAS][COLUMNAS])
> {
>
>
> for(int ifila=0;ifila<FILAS;ifila++)
> for (int icolumna=0;icolumna<COLUMNAS;icolumna++) {
>
>
>
>
> if(teatro[ifila][icolumna].estado=='R')
> {
> teatro[ifila][icolumna].estado='L';
> teatro[ifila][icolumna].telefono=0;
> }
> }
> printf("\nLas reservas se han liberado con exito");
> }
>
>
>         //FUNCION MOSTRA TEATRO
> void mostrarasientos(_nodo teatro[FILAS][COLUMNAS]){
>
> int ifila,icolumna;
> printf("Columnas");
>
> for(icolumna=1;icolumna<=COLUMNAS;icolumna++){
> printf(" %d ",icolumna);
> }
> printf("\n");
> for(ifila=1;ifila<=FILAS;ifila++) {
>    printf("\nFila %d \n       ",ifila);
>
>    for(icolumna=1;icolumna<=COLUMNAS;icolumna++)
>    {
>    if(icolumna<=COLUMNAS-11)
>    {
>    printf("  %c",teatro[ifila][icolumna].estado);
>    }
>    else
>    {
>    printf("  %c ",teatro[ifila][icolumna].estado);
>    }
>    }
>                    }
> }
>
>
>
>         //FUNCION LIBERAR DE A UNO
> void liberaruno(_nodo teatro[FILAS][COLUMNAS])
> {
> int ifila,icolumna;
> char vendido='V';
> char reserva='R';
> char liberar='L';
> int terminardo=0;
>
>
> printf("Ingrese la fila del asiento que decea liberar:\n");
> scanf("%d",&ifila);
> printf("Ingrese la columna del asiento que decea liberar:\n");
> scanf("%d",&icolumna);
>
>
> if(ifila<=FILAS || icolumna<=COLUMNAS)
> {
>
>
> do
> {
> if(teatro[ifila][icolumna].estado==vendido)
>                    {
>                    printf("Este asiento ha sido vendido no puede
> liberarlo\n");
>                    getch();
>                    }
> if(teatro[ifila][icolumna].estado==reserva)
>                    {
>             teatro[ifila][icolumna].estado=liberar;
>             teatro[ifila][icolumna].telefono=0;
>             printf("El lugar ha sido liberado con existo\n");
>             terminardo=1;
>             }
> else
>             {
>              printf("EL lugar que decea liberar ya esta libre\n");
>              getch();
>             }
> }while(terminardo!=1);
> }
> else
> {
> printf("La fila y la columna que ingreso no existen");
> getch();
>
> }}
>
> void salvar(_nodo teatro[FILAS][COLUMNAS])
> {
> FILE* F;
> char estado;
> long telefono;
>
> F=fopen("teatro.txt","wb+");
>
>
> for(int ifila=0;ifila<FILAS;ifila++)
> for(int icolumna=0;icolumna<COLUMNAS;icolumna++){
> estado=teatro[ifila][icolumna].estado;
> telefono=teatro[ifila][icolumna].telefono;
> fwrite(&estado,sizeof(estado),1,F);
> fwrite(&telefono,sizeof(telefono),1,F);
> }
> fclose(F);
> printf("Lista Guardada");
> system("Pause");
> }
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20111122/f22b7c8c/attachment.html>


Más información sobre la lista de distribución Cconclase