Ir ao conteúdo
  • Cadastre-se

Alef Duarte

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Reputação

0
  1. Muito obrigado Screenblack, me ajudou imensamente Obrigado pelas dicas também
  2. Tenho um programa de ED, e temos que criar um programa que gerencie um cinema. Terminei meu código, está rodando, porém nao importa quantos valores eu insira em meu vetor, quando mando verificar ele sempre está vazio, nao estou conseguindo encontrar a lógica a biblioteca está assim typedef struct{ char filme[40]; float valor; int ingresso; int sala; int codigo; }cinema; typedef struct{ int primeiro, ultimo; cinema lugares[250]; }salas; salas criarsala(){ salas aux; aux.primeiro = 0; aux.ultimo = -1; return aux; } void menu(){ printf("\t\t+------------------------------------------------------------------------------+\n"); printf("\t\t|\tEscolha a opção desejada. |\n"); printf("\t\t|\t1. Comprar Ingresso. |\n"); printf("\t\t|\t2. Devolver Ingresso. |\n"); printf("\t\t|\t3. Imprimir todos os ingressos de uma determinada sala. |\n"); printf("\t\t|\t4. Calcular valor total de uma determinada sala. |\n"); printf("\t\t|\t5. Calcular total de lugares ocupados em uma sala; |\n"); printf("\t\t|\t6. Criar um backup da venda do dia ordenando ingressos por sala. |\n"); printf("\t\t|\t7. Calcular total de ingressos tipo meia. |\n"); printf("\t\t|\t8. Fechamento do dia: Limpas vendar e retornar valor total recebido. |\n"); printf("\t\t+------------------------------------------------------------------------------+\n"); printf("\t\t\tOpção: "); } // inserir item // int verificarDisponibilidade(salas aux, int sala){ int i, lugar=0; for (i=aux.primeiro; i<=aux.ultimo; i++){ if(aux.lugares[i].sala==sala) lugar++; } return lugar; } salas inserirCliente(salas aux, int sala){ aux.ultimo++; aux.lugares[aux.ultimo].sala=sala; setbuf(stdin, NULL); printf("\nInsira o nome do filme\n"); scanf("%[^\n]s", &aux.lugares[aux.ultimo].filme); setbuf(stdin, NULL); printf("\nInsira o valor do ingresso: R$ "); scanf("%f", &aux.lugares[aux.ultimo].valor); printf("\nInsira o tipo do ingresso\n 1. Inteira 2. Meia: "); scanf("%d", &aux.lugares[aux.ultimo].ingresso); printf("Insira ou crie o codigo do ingresso: "); scanf("%d", &aux.lugares[aux.ultimo].codigo); return aux; } int pesquisarItem(salas aux, cinema numero){ int posicao = -1; int i=0; for(i= aux.primeiro; i<=aux.ultimo; i++){ if(numero.codigo == aux.lugares[i].codigo){ posicao=i; } } return posicao; } salas retirar(salas aux, cinema codigo){ int retorno = pesquisarItem(aux, codigo); if(retorno == -1){ printf("Ingresso não encontrado! Impossível devolver"); } else{ int i; aux.ultimo--; for(i=retorno; i <= aux.ultimo; i++){ aux.lugares[i] = aux.lugares[i+1]; } } return aux; } void imprimirSala(salas aux, int sala){ int i, vazio=0; for(i=aux.primeiro; i<=aux.ultimo; i++){ if(aux.lugares[i].sala==sala){ vazio++; printf("\nFilme %s", aux.lugares[i].filme); printf("\nSala %d", aux.lugares[i].sala); printf("\nValor R$ %.2f", aux.lugares[i].valor); if(aux.lugares[i].ingresso==1) printf("Entrada tipo Inteira."); else printf("Entrada tipo Meia."); } } if (vazio==0){ printf("Sala Vazia"); } } void valorTotal(salas aux, int sala){ int i; float valortotal=0; for(i=aux.primeiro; i<aux.ultimo; i++){ if(aux.lugares[i].sala==sala){ valortotal+=aux.lugares[i].valor; } } if (valortotal==0){ printf("Sala Vazia"); } else printf ("Valor total é R$: %.2f", valortotal); } void totalDeLugares(salas aux, int sala){ int i, repeticao=0; for(i=aux.primeiro; i<=aux.ultimo; i++){ if(aux.lugares[i].sala==sala){ repeticao++; } } if(repeticao==0) printf("A sala está vazia"); else printf("Existem %d lugares na sala", repeticao); } salas backup(salas aux){ salas backup; int sala=1, i, cont=0; do{ for(i=aux.primeiro; i<aux.ultimo; i++) if(aux.lugares[i].sala==sala){ backup.lugares[cont]=aux.lugares[i]; cont++; } sala++; }while(sala<=5); return backup; } void imprimirTudo(salas backup){ int i, vazio=0; for(i=backup.primeiro; i<backup.ultimo; i++){ if(backup.lugares[i].sala==2 || backup.lugares[i].sala==2 || backup.lugares[i].sala==3 || backup.lugares[i].sala==4 || backup.lugares[i].sala==5){ vazio++; printf("\nFilme %s", backup.lugares[i].filme); printf("\nSala %d", backup.lugares[i].sala); printf("\nValor R$ %f", backup.lugares[i].valor); if(backup.lugares[i].ingresso==1) printf("Entrada tipo Inteira."); else printf("Entrada tipo Meia."); } } if (vazio==0){ printf("Backup Vazio"); } } void totalMeia(salas aux){ int i, vazio=0; float valortotal=0; for(i=aux.primeiro; i<aux.ultimo; i++){ if(aux.lugares[i].ingresso==2){ vazio++; valortotal+=aux.lugares[i].valor; } } if (vazio==0){ printf("Nenhuma venda do tipo meia até o momento"); } else printf ("Valor total de ingressos tipo meia é R$: %f", valortotal); } salas fechamentoDoDia(salas aux){ int i; float valortotal=0; for(i=aux.primeiro; i<aux.ultimo; i++){ valortotal+=aux.lugares[i].valor; } aux.ultimo=-1; aux.primeiro=0; if (valortotal==0){ printf("Nenhum ingresso vendido."); } else printf ("Valor total de ingressos é R$: %f", valortotal); return aux; } e o main está desta forma #include <stdio.h> #include <stdlib.h> #include <locale.h> #include "biblioteca.h" /* * */ int main() { setlocale(LC_ALL, "Portuguese"); salas aux; int op, exit, sala; do{ // MENU // menu(); scanf("%d", &op); if (op==1){ printf("Insira o número da sala: "); scanf("%d", &sala); if (verificarDisponibilidade(aux, sala)<50){ inserirCliente(aux, sala); } else{ printf("\nNão há mais espaços na sala!"); } } // fim da primeira opção else if(op==2){ printf("\nInsira o codigo do filme que deseja devolver: "); scanf("%d", &codigo.codigo); retirar(aux, codigo); } // fim da segunda opção else if(op==3){ printf("\nInsira o número da sala: "); scanf("%d", &sala); imprimirSala(aux, sala); } // fim da terceira opção else if(op==4){ printf("\nInsira o número da sala: "); scanf("%d", &sala); valorTotal(aux, sala); } // fim da quarta opção // else if(op==5){ printf("\nInsira o número da sala: "); scanf("%d", &sala); totalDeLugares(aux, sala); } // fim da quinta opção // else if(op==6){ backup(aux); printf("Backup criado, deseja vê-lo agora?\n1. Sim 2.Nao "); scanf("%d", &exit); if(exit==1){ imprimirTudo(backup(aux)); } } // fim da sexta opção // else if(op==7){ totalMeia(aux); } // fim da sétima opção // else if(op==8){ fechamentoDoDia(aux); } // fim da oitava opção // else printf("Opção Inválida!"); printf("\n\nDeseja fazer outra operação?\n1. Sim 2. Não "); scanf("%d", &exit); }while(exit==1); return 0; }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...