Jump to content

Programa de gerenciamento de cinemas


Renato Rebizzi

Recommended Posts

Estou a completar um programa de cinema de gerenciamento, pois nao tenho a minima ideia de aderir um sub menu na venda do ingresso contendo o menu de estudante, aposentados, normal e um para estudantes a 100% de desconto, so falta isso, e esta travando no fechamento do dia, e tambem nesse fechamento do dia, preciso colocar a gestao do caixa ou seja o total de vendas e o valor adquirido, preciso muito de ajuda pois a apresentação desse trabalho vai me ajudar a fechar o semestre, e a apresentação e dia 02-12-2016, peço a compreensão de todos para que possam me ajudar, o codigo e este:

#include<stdlib.h>
#include<stdio.h>
 #include<conio.h>
 #include<string.h>
 struct venda
 {
      int cod_venda;
      int horario;
      int filme;
      int cadeira;
 }venda[100];
 struct sala
 {
      //int cod_sala;
      int filme;
      char cadeiras[60][5];
 }sala[5];
 struct filme
 {
      //int     cod_filme;
      char nomefilme[100];
      int hora[6];
   int min[6];
      int     categoria;
      int sala;
 }filme[5];
 /* *******************************************
      *************          MAIN          ***********
      *******************************************
 */
 void cad_filmes();
  void tela();
      void menu();
      void printa_sala(int,int);

      void lista_filmes();
      void gravabd();
      void carregabd();
      void vende_ticket();
      void cad_venda(int,int,int);
      void emite_ticket();
      void reset_variaveis();
      void reset_salas();
   void printa_vendas();
int  main()
 {

   reset_variaveis();
      carregabd();
      menu();
   system("pause");
   return 0;
 }
 /* *******************************************
      *************          TELA          ***********
      *******************************************
 */
 void tela()
 {
 // variaveis necessarias para os espacamentos do menu
 int i,j;

 //limpa tela
 system("cls");
 
 printf("\n\n\n\n\t\t\t\t\t\tPROJETO INTEGRADO MULTIDISCIPLINAR II\n\n");
 printf("\t\t\t\t\t\tProjeto: CINEMA PARA TODOS!!\n");

 }
 /* *******************************************
      *************     PRINTA MENU          ***********
      *******************************************
 */
 //funcao que imprime o menu e valida a seleção do menu
 void menu()
 {
 int opcao;
 //laco de verificao
 do
 {
      //chama a funcao tela
      tela();
      //printa as opcoes do menu

      printf("\n\n\n\n\t\t\t\t\t\tDIGITE A OPCAO DESEJADA: ");
      
      printf("\n\t\t\t\t\t\t1) CADASTRO DE FILMES.\n");

      printf("\t\t\t\t\t\t2) LISTA OS FILMES EM CARTAZ.\n");

      printf("\t\t\t\t\t\t3) VENDA DE INGRESSOS.\n");

      printf("\t\t\t\t\t\t4) FECHAMENTO DO DIA.\n");

      printf("\t\t\t\t\t\t5) LIMPA CADEIRAS.\n");

      printf("\t\t\t\t\t\t6) ");

         printf("SAIR.\n\n\n\n");
         //Integrantes do grupo do pim
         
         printf("\n\n\n\nIntegrantes:\n");
         
         printf("Renato Rebizzi Neto\nVitor Munis da Silva\nMatheus Goncalves Dias\n");
      printf("Hemrique Deusdara de Oliveira\nLuccas Souza Santos\nClaudemir do Nascimento Junior");


      
      fflush(stdin);
      scanf("%d",&opcao);
      //verifica a entrada
      if ( opcao != 1 && opcao !=2 && opcao != 3 && opcao != 4 && opcao != 5 && opcao != 6)
      {
           //chama a funcao tela
           tela();
           //imprime o erro

           printf ("OPCAO INVALIDA DIGITE NOVAMENTE!!");

           system("pause");
      }
 }while( opcao != 1 && opcao !=2 && opcao != 3 && opcao != 4 && opcao != 5 && opcao != 6);
 switch(opcao)
      {
           case 1:
                {
                tela();
                cad_filmes();
                break;
                }
           case 2:
                {
                tela();
                lista_filmes();
                menu();
                break;
                }
           case 3:
                {
                tela();
                vende_ticket();
            
                break;
                }
           case 4:
       {
        printa_vendas();
        break;
       }
           case 5:
       {
        reset_salas();
        break;
       }
           case 6:
       {
        printf("\n\n\n\n ");
        exit;
        break;
       }
      }
 }
 /* *******************************************
      *************     PRINTA SALA      ***********
      *******************************************
 */
 //função que imprime a sala escolhida
 void printa_sala(int opcao_sala, int opcao_hora)
 {
      int l,c,cont=0;
      printf("\n\n");
      for(l=0;l<6;l++)
      {
     printf("\t\t");
           for(c=0;c<10;c++)
           {
                if(cont<60)
                {
                 printf("|");

        printf("%c",sala[opcao_sala].cadeiras[cont][opcao_hora]);

                 printf("| ");
                 ++cont;
                }
           }
           printf("\n");
           printf("\t\t ");
           for(c=0;c<10;c++)
           {
                printf("%d%d ",l,c);
                printf(" ");
           }
           printf("\n\n");
      }
 }
 /* *******************************************
      *************  CAD FILMES           ***********
      *******************************************
 */
 void cad_filmes()
 {
      int opcao=1,cont,hora,minuto,opsala;
      char nome[100];
      lista_filmes();
      tela();
      do//laco validador
      {

     printf("Qual filme voce deseja cadastrar ou alterar:\n(6 para sair) ");//laco de escolha
           fflush(stdin);

           scanf("%d",&opcao);
           opcao--;
           fflush(stdin);
           if(opcao!=0 && opcao!=1 && opcao!=2 && opcao!=3 && opcao!=4 && opcao!=5)
           {
                printf("\nOpcao invalida digite novamente");// em caso de erro
           }
      }while(opcao!=0 && opcao!=1 && opcao!=2 && opcao!=3 && opcao!=4 && opcao!=5);
      switch (opcao)
      {
           case (5):
           {
                menu();//saida
                break;
           }
           default:
           {
                printf("\n Digite o nome do filme: ");
                gets(filme[opcao].nomefilme);
                fflush(stdin);
                printf("Digite os horario do filme do filme\n");
                for(cont=0;cont<5;cont++)
                {
                     printf("Digite o %d horario: ",cont+1); //horario escolhido
                     scanf("%d:%d",&filme[opcao].hora[cont],&filme[opcao].min[cont]);
                     fflush(stdin);
                }
                do // valida a escolha da sala
                {
                     printf("Digite a sala do filme\n"); // escolhe a sala
                     scanf("%d",&filme[opcao].sala);
                     filme[opcao].sala=filme[opcao].sala-1;
                     fflush(stdin);
                     if(filme[opcao].sala !=0 && filme[opcao].sala !=1 && filme[opcao].sala !=2 && filme[opcao].sala !=3 && filme[opcao].sala !=4)
                     {
                          printf("\nOpcao invalida digite novamente");
                     }
                }while(filme[opcao].sala!=0 && filme[opcao].sala!=1 && filme[opcao].sala!=2 && filme[opcao].sala!=3 && filme[opcao].sala!=4);
                printf("Filme cadastrador com suscesso!!\n");
                getch();
                gravabd();
                menu();//vai para o menu
                break;
           }
      }
 }
 /* *******************************************
      *************  GRAVA BD           ***********
      *******************************************
 */
 void gravabd()
 {
      FILE *gravasala;
      FILE *gravavenda;
      FILE *gravafilme;
      int cont;
      gravasala=fopen("sala.bd","w");
      if(gravasala==NULL)
      {
           printf("ERRO NA ABERTURA DO ARQUIVO SALA.BD!!");
           fflush(stdin);
           getch();
           menu();
      }
      else
      {
           for(cont=0;cont<5;cont++)
           {
        fwrite(&sala[cont],sizeof(struct sala),1,gravasala);
     }
        fclose(gravasala);
   }
      gravavenda=fopen("venda.bd","w");
      if(gravasala==NULL)
      {
           printf("ERRO NA ABERTURA DO ARQUIVO VENDA.BD!!");
           fflush(stdin);
           getch();
           menu();
      }
      else
      {
           for(cont=0;cont<100;cont++)
           {
      fwrite(&venda[cont],sizeof(struct sala),1,gravavenda);
      }
     fclose(gravavenda);
      }
      gravafilme=fopen("filme.bd","w");
      if(gravasala==NULL)
      {
           printf("ERRO NA ABERTURA DO ARQUIVO FILME.BD!!");
           fflush(stdin);
           getch();
           menu();
      }
      else
      {
           for(cont=0;cont<5;cont++)
           {
             fwrite(&filme[cont],sizeof(struct sala),1,gravafilme);
     }
     fclose(gravafilme);
      }
 }
 /* *******************************************
      *************  CARREGA BD        ***********
      *******************************************
 */
 void carregabd()
 {
      FILE *lesala;
      FILE *levenda;
      FILE *lefilme;
   int cont;
      //
      lesala=fopen("sala.bd","r");
      if(lesala==NULL)
      {
           menu();
      }
      else
      {
           for(cont=0;cont<5;cont++)
     {
      fread(&sala[cont],sizeof (struct sala),1,lesala);
     }
     fclose(lesala);
      }
      levenda=fopen("venda.bd","r");
      if(lesala==NULL)
      {
           menu();
      }
      else
      {
           for(cont=0;cont<100;cont++)
           {
     fread(&venda[cont],sizeof (struct sala),1,levenda);
           }
     fclose(levenda);
      }
      lefilme=fopen("filme.bd","r");
      if(lesala==NULL)
      {
           menu();
      }
      else
      {
           for(cont=0;cont<5;cont++)
           {
     fread(&filme[cont],sizeof (struct sala),1,lefilme);
     }
     fclose(lefilme);
      }
 }
 /* *******************************************
      *************  LISTA FILMES      ***********
      *******************************************
 */
 void lista_filmes()
 {
      int cont,cont2;

      for(cont=0;cont<5;cont++)
      {
           printf("\nFILME %d:",cont+1);

     printf(" %s",filme[cont].nomefilme);

           printf("\nHORARIOS:");
           for(cont2=0;cont2<5;cont2++)
           {
                printf(" %d:%d",filme[cont].hora[cont2],filme[cont].min[cont2]);
           }
           printf("\nSala: %d\n",filme[cont].sala+1);
      }
      printf("\n");
      system("pause");
 }
 /* *******************************************
      *************  VENDE TICKET     ***********
      *******************************************
 */
 void vende_ticket()
 {
      int opcao,opcao_hora,opcao_cadeira,cont;
      lista_filmes();
      tela();
      do//laco validador do filme
      {
           //escolha do filme para venda do ticket

     printf("Selecione o filme?\n(6 para sair) ");//laco de escolha
           fflush(stdin);

           scanf("%d",&opcao);
           opcao--;
           fflush(stdin);
           if(opcao!=0 && opcao!=1 && opcao!=2 && opcao!=3 && opcao!=4 && opcao!=5)
           {
                printf("\nOpcao invalida digite novamente");// em caso de erro
           }
      }while(opcao!=0 && opcao!=1 && opcao!=2 && opcao!=3 && opcao!=4 && opcao!=5);
      if(opcao==5)
      {
           menu();
      }
      else // mostra o horarios dos filmes para escolha do cliente
      {
           printf("\nFILME: %s",filme[opcao].nomefilme);
           printf("\n\nOPCOES DE HORARIO:\n\n");
           for(cont=0;cont<5;cont++)
           {
                printf("%d)%d:%d\t\t",cont+1,filme[opcao].hora[cont],filme[opcao].min[cont]);
           }
           do//laco validador do horario
           {
                //escolha do filme para venda do ticket
                printf("\n\nDigite o horario escolhido:");//laco de escolha
                fflush(stdin);
                scanf("%d",&opcao_hora);
                opcao_hora--;
                fflush(stdin);
                if(opcao_hora!=0 && opcao_hora!=1 && opcao_hora!=2 && opcao_hora!=3 && opcao_hora!=4)
                {
                printf("\nOpcao invalida digite novamente");// em caso de erro
                }
           }while(opcao_hora!=0 && opcao_hora!=1 && opcao_hora!=2 && opcao_hora!=3 && opcao_hora!=4);
           //chama a funcao printa sala para a escolha do lugar
           do
           {
      printa_sala(filme[opcao].sala,opcao_hora);
            printf("\nDigite a cadeira escolhida: ");
            scanf("%d",&opcao_cadeira);
            if(sala[filme[opcao].sala].cadeiras[opcao_cadeira][opcao_hora]=='X')
            {
  printf("\nCADEIRA OCUPADA!!!!");
      }
     }while(sala[filme[opcao].sala].cadeiras[opcao_cadeira][opcao_hora]=='X');
           sala[filme[opcao].sala].cadeiras[opcao_cadeira][opcao_hora]='X'; // prenche a cadeira escolhida
           cad_venda(opcao,opcao_hora,opcao_cadeira);
           gravabd();
           menu();
      }
 }
 /* *******************************************
      *************  CAD VENDA        ***********
      *******************************************
 */
 void cad_venda(int opcao_fil, int opcao_hor, int opcao_cad)
 {
      int cont=0,ult_venda,link=0;
      // ler no arquivo ultimo codigo da venda
      do
      {
           if(venda[cont].cod_venda==0)
           {
                ult_venda=cont;
                ++link;
           }
     cont++;
      }while(link==0);
      link;
      venda[ult_venda].cod_venda=ult_venda+1; //gera o incremento da venda
      venda[ult_venda].horario=opcao_hor;
      venda[ult_venda].filme=opcao_fil;
      venda[ult_venda].cadeira=opcao_cad;
   emite_ticket(ult_venda);
 }
 /* *******************************************
      *************  emite ticket       ***********
      *******************************************
 */
 void emite_ticket(int opcao_venda)
 {
      FILE *ticket;
      //imprime na tela
      printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t******************************\n");
      printf("\t\t\t\t\t\t************TICKET************\n");
      printf("\t\t\t\t\t\t******************************\n");
      printf("\n\n");
      printf("\t\t\t\t\t\tFILME: %s\n\n",filme[venda[opcao_venda].filme].nomefilme);
      printf("\t\t\t\t\t\tHORARIO: %d:%d\n",filme[venda[opcao_venda].filme].hora[venda[opcao_venda].horario],filme[venda[opcao_venda].filme].min[venda[opcao_venda].horario]);
      printf("\t\t\t\t\t\tSALA: %d\n",filme[venda[opcao_venda].filme].sala+1);
      printf("\t\t\t\t\t\tCADEIRA: %d\n\n",venda[opcao_venda].cadeira);
      printf("\t\t\t\t\t\t******************************\n");
      // gera o ticket para impressão
      ticket=fopen("ticket.txt","w");
      if(ticket==NULL)
      {
           menu();
      }
      else
      {
       //fprintf(ticket,"******************************\n");
       fprintf(ticket,"      TICKET      \n");
        //fprintf(ticket,"******************************\n");
        fprintf(ticket,"______________________________\n");
        fprintf(ticket,"\n\n");
       fprintf(ticket,"FILME: %s\n\n",filme[venda[opcao_venda].filme].nomefilme);
       fprintf(ticket,"HORARIO: %d:%d\n\n",filme[venda[opcao_venda].filme].hora[venda[opcao_venda].horario],filme[venda[opcao_venda].filme].min[venda[opcao_venda].horario]);
       fprintf(ticket,"CADEIRA: %d\n\n",venda[opcao_venda].cadeira);
       //fprintf(ticket,"******************************\n");
    //system("print ticket.txt");
    fclose(ticket);
      }
   system("pause");
 }
 /* *******************************************
      *************  reset variaveis     ***********
      *******************************************
 */
 void reset_variaveis()
 {
      int cont,cont2,cont3;
      for(cont=0;cont<100;cont++)
      {
     venda[cont].cod_venda=0;
   }
      for(cont=0;cont<5;cont++)
      {
     for(cont2=0;cont2<5;cont2++)
     {
      for(cont3=0;cont3<60;cont3++)
      {
        sala[cont].cadeiras[cont3][cont2]=' ';
      }
     }
   }
 }
 /* *******************************************
      *************  reset salas       ***********
      *******************************************
 */
 void reset_salas()
 {
      int opcao,cont,cont2,cont3;
      do
      {
           tela();
           printf("DESEJA REALMENTE LIMPAR TODOS OS LUGARES OCUPADOS?\n1)SIM\n2)NAO");
           fflush(stdin);
           scanf("%d",&opcao);
           if(opcao!=1 && opcao!=2)
           {
                printf("OPCAO INVALIDA DIGITE NOVAMENTE!!\n\n");
                system("pause");
           }
      }

      while(opcao!=1 && opcao!=2);
      if(opcao==1)
      {
      for(cont=0;cont<100;cont++)
      {
     //venda[cont].cod_venda=0;
   }
      for(cont=0;cont<5;cont++)
      {
     for(cont2=0;cont2<5;cont2++)
     {
      for(cont3=0;cont3<60;cont3++)
      {
        sala[cont].cadeiras[cont3][cont2]=' ';
      }
     }
    menu();
   }
      }
      else
      {
      menu();
      }
 }
 /* *******************************************
      *************  reset salas       ***********
      *******************************************
 */
 void printa_vendas()
 {
 int cont=0,link=0;
      tela();

           if(venda[cont].cod_venda!=0)
           {
                printf("\nVENDA NR:%d\n",cont+1);
                printf("FILME: %s\n",filme[venda[cont].filme].nomefilme);
                printf("SALA: %d\n",filme[venda[cont].filme].sala+1);
                printf("CADEIRA: %d\n",venda[cont].cadeira);
                printf("_________________________________\n");
                cont++;
           }
           else
           {
                ++link;
           }
           while(link==0);


      gravabd();
   system("pause");
      menu();

 }
Link to comment
Share on other sites

Entao na verdade e ajuda, inserir um codigo no programa que crie um submenu na venda de ingresso de estudantes, ingresso normal, aposentados e estudantes especiais com o valor em reais, que somam para aparecer o fechamento do dia de ingressos e qto de vendas em $ que apareça na opçao fechamento do dia

Link to comment
Share on other sites

34 minutes ago, Renato Rebizzi said:

Entao na verdade e ajuda, inserir um codigo no programa que crie um submenu na venda de ingresso de estudantes, ingresso normal, aposentados e estudantes especiais com o valor em reais, que somam para aparecer o fechamento do dia de ingressos e qto de vendas em $ que apareça na opçao fechamento do dia

ok

agora explica o que fazes que faz com que o teu código faz, ou não faz, o que que pretendes que faça ou, não faça

po outras palavras, explica exactamente um caso de exemplo que apresenta o teu problema, dando um exemplo concreto

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

Bom dia, especificamente, preciso de um menu ao clicar em venda de ingressos que me leve a um submenu contendo

Normal

estudantes com 50% de desconto

estudantes especiais 100% desconto

idosos e aposentados 100% desconto

 a partir desse submenu va ao menu escolha de filmes somando o valor de cada ingresso, para que ao clicar na opção 5 fechamento do dia ele me mostre todos os ingressos vendidos e quanto em dinheiro foi colhido, e so isso que falta pra esse programa, porem nao estou sabendo criar um codigo que se encaixe neste programa, preciso do codigo ou ate mesmo alguem introduzir o codigo no mesmo, obrigado 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.