Renato Rebizzi Posted November 27, 2016 at 09:51 PM Report Share #600893 Posted November 27, 2016 at 09:51 PM 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 More sharing options...
HappyHippyHippo Posted November 27, 2016 at 10:17 PM Report Share #600894 Posted November 27, 2016 at 10:17 PM a apresentação do problema é inteligível. podes explicar clara e concisamente qual é realmente a dúvida ? 1 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Renato Rebizzi Posted November 28, 2016 at 12:09 AM Author Report Share #600901 Posted November 28, 2016 at 12:09 AM 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 More sharing options...
HappyHippyHippo Posted November 28, 2016 at 12:45 AM Report Share #600902 Posted November 28, 2016 at 12:45 AM 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 Portugol Plus Link to comment Share on other sites More sharing options...
Renato Rebizzi Posted November 28, 2016 at 11:31 AM Author Report Share #600911 Posted November 28, 2016 at 11:31 AM 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 More sharing options...
HappyHippyHippo Posted November 29, 2016 at 10:01 AM Report Share #600931 Posted November 29, 2016 at 10:01 AM novamente, apresentas um enunciado e não uma dúvida. IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now