Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ///////////////////////
- // PRE PROCESSAMENTO //
- ///////////////////////
- #include<stdio.h> // Biblioteca padrao Input / Output
- #include<stdlib.h> // Biblioteca padrao
- #include<conio.h> // Console Input / Output
- ///////////////////////
- // VARIAVEIS GLOBAIS //
- ///////////////////////
- int i1, i2;
- int fil = 20, col = 35, cadTeatro = 700, cadTotalEspet = 700, cad = 700, opcaoEspetaculo = 3;
- float cadPreco, resPreco, resPrecoCem, cadReservada;
- char mapa[20][35];
- //////////////////////////////////////
- // VARIAVEIS GLOBAIS DE ESTATISTICA //
- //////////////////////////////////////
- int cadTotal = 0, resTotal = 0, libTotal = 0, espetaculos = 0;
- int cadEspet = 0, resEspet = 0, libEspet = 0;
- float comTotal = 0, comCadTotal = 0, comResTotal = 0, comLibTotal = 0;
- float comEspet = 0, comCadEspet = 0, comResEspet = 0, comLibEspet = 0, comTotEspet = 0;
- // PORCENTAGEM //
- float cad100;
- float cadTotal100, resTotal100, libTotal100;
- float cadEspet100, resEspet100, libEspet100;
- float comTotal100, comCadTotal100, comResTotal100, comLibTotal100;
- float comEspet100, comCadEspet100, comResEspet100, comLibEspet100;
- // MEDIA //
- float cadTotalM, resTotalM, libTotalM;
- float cadEspetM, resEspetM, libEspetM;
- float comCadTotalM, comResTotalM, comLibTotalM;
- float comCadEspetM, comResEspetM, comLibEspetM;
- ////////////////////////////
- // DECLARACOES DE FUNCOES //
- ////////////////////////////
- void mostrarCabecalho();
- void mostrarMapa();
- void mostrarOpcoes();
- void mostrarGrafico(int max);
- void finalizarOpcao();
- void checarEspetaculo();
- void erro();
- ///////////////////////////
- // DEFINICOES DE FUNCOES //
- ///////////////////////////
- // Funcao usada para limpar a tela e mostrar cabecalho
- void mostrarCabecalho()
- {
- system("cls"); // Funcao da biblioteca <stdlib.h>, limpa o console do Windows
- printf("////////////\n");
- printf("// Teatro //\n");
- printf("////////////\n");
- printf("\n");
- printf("Espetaculos: %d", espetaculos);
- if (opcaoEspetaculo == 0)
- printf("\nVendas: encerradas.\n");
- else if (opcaoEspetaculo == 1)
- printf("\nVendas: abertas.\n");
- else
- printf("\nVendas: nao reconhecido.\n");
- }
- // Funcao usada para mostrar mapa do atual espetaculo
- void mostrarMapa()
- {
- printf("\n");
- for (i1 = 0; i1 < fil; i1++) {
- printf("%d \t \b\b\b\b\b", i1+1);
- for (i2 = 0; i2 < col; i2++)
- printf("%c ", mapa[i1][i2]);
- printf("\n");
- }
- printf("\n");
- printf("L = Livre\n");
- printf("V = Vendido\n");
- printf("R = Reservado\n");
- printf("\n");
- }
- // Funcao usada pra mostrar opcoes e executa-las
- void mostrarOpcoes()
- {
- int opcao;
- int f, c, o;
- printf("\n");
- printf("[0] - Encerrar a aplicacao \n");
- printf("[1] - Redefinir dados \n");
- printf("[2] - Abrir um espetaculo \n");
- printf("[3] - Realizar venda ou reserva de lugar \n");
- printf("[4] - Realizar liberacao de lugar \n");
- printf("[5] - Verificar medias parciais do teatro \n");
- printf("[6] - Encerrar ou abrir vendas do espetaculo \n");
- printf("[7] - Verificar percentuais das vendas deste espetaculo \n");
- printf("[8] - Verificar percentuais do teatro desde sua abertura \n");
- scanf("%d", &opcao);
- switch (opcao) {
- case 0:
- printf("Aplicacao encerrada.");
- break;
- case 1:
- mostrarCabecalho();
- mostrarMapa();
- printf("\n- Opcao 1 - Redefinir dados do sistema -\n");
- printf("\n");
- printf("Fileiras: %d\n", fil);
- printf("Colunas: %d\n", col);
- printf("Cadeiras totais: %d\n", cadTeatro);
- printf("Cadeiras livres: %d\n", cad);
- printf("Cadeiras no espetaculo: %d\n", cadTotalEspet);
- printf("\n");
- printf("Preco da cadeira: %.2f\n", cadPreco);
- printf("Preco da reserva: %.2f\n", resPreco);
- printf("Preco da reserva (%%): %.2f\n", resPrecoCem);
- printf("\n");
- printf("Cadeiras compradas no espetaculo: %d\n", cadEspet);
- printf("Cadeiras compradas no teatro: %d\n", cadTotal);
- printf("\n");
- printf("Cadeiras reservadas no espetaculo: %d\n", resEspet);
- printf("Cadeiras reservadas no teatro: %d\n", resTotal);
- printf("\n");
- printf("Cadeiras liberadas no espetaculo: %d\n", libEspet);
- printf("Cadeiras liberadas no teatro: %d\n", libTotal);
- printf("\n");
- printf("Capital no espetaculo: %.2f\n", comEspet);
- printf("Capital no teatro: %.2f\n", comTotal);
- printf("\n");
- printf("Capital em compras no espetaculo: %.2f\n", comCadEspet);
- printf("Capital em compras no teatro: %.2f\n", comCadTotal);
- printf("\n");
- printf("Capital em reservas no espetaculo: %.2f\n", comResEspet);
- printf("Capital em reservas no teatro: %.2f\n", comResTotal);
- printf("\n");
- printf("Capital em devolucoes no espetaculo: %.2f\n", comLibEspet);
- printf("Capital em devolucoes no teatro: %.2f\n", comLibTotal);
- printf("\n");
- printf("\nPressione 1 para continuar 2 para voltar:\n");
- scanf("%d", &o);
- if (o == 1) {
- fil = 20; col = 35; cadTeatro = 700; cadTotalEspet = 700; cad = 700; opcaoEspetaculo = 0;
- cadPreco = 0; resPreco = 0; resPrecoCem = 0; cadReservada = 0;
- cadEspet = 0; resEspet = 0; libEspet = 0;
- cadTotal = 0; resTotal = 0; libTotal = 0; espetaculos = 0;
- comEspet = 0; comCadEspet = 0; comResEspet = 0; comLibEspet = 0, comTotEspet = 0;
- comTotal = 0; comCadTotal = 0; comResTotal = 0; comLibTotal = 0;
- printf("\n");
- printf("Dados redefinidos com sucesso.");
- }
- finalizarOpcao();
- break;
- c2:
- case 2:
- mostrarCabecalho();
- printf("\n- Opcao 2 - Abrir um espetaculo -\n");
- printf("\n");
- if (espetaculos != 0) {
- printf("Ja existe um espetaculo aberto, deseja continuar?\n");
- printf("1 para continuar, 2 para voltar:\n");
- scanf("%d", &o);
- if (o == 2)
- finalizarOpcao();
- printf("\n");
- }
- cadEspet = 0; resEspet = 0; libEspet = 0;
- comEspet = 0; comCadEspet = 0; comResEspet = 0; comLibEspet = 0, comTotEspet = 0;
- printf("Digite a quantidade de fileiras e colunas: \n");
- scanf("%d %d", &fil, &col);
- if (fil > 20 || col > 35) {
- erro();
- goto c2;
- }
- cadTotalEspet = fil * col;
- cad = cadTotalEspet;
- for (i1 = 0; i1 < fil; i1++) {
- for (i2 = 0; i2 < col; i2++)
- mapa[i1][i2] = 'L';
- }
- mostrarMapa();
- printf("Digite o preco da cadeira: \n");
- scanf("%f", &cadPreco);
- printf("Digite o preco da reserva (%%): \n");
- scanf("%f", &resPrecoCem);
- resPreco = (resPrecoCem / 100) * cadPreco;
- cadReservada = cadPreco - resPreco;
- printf("Digite 1 para manter as vendas abertas, 2 para fecha-las: \n");
- scanf("%d", &o);
- if (o == 1)
- opcaoEspetaculo = 1;
- else if (o == 2)
- opcaoEspetaculo = 0;
- else
- erro();
- mostrarCabecalho();
- mostrarMapa();
- printf("\n\n- Informacoes do Espetaculo -\n\n");
- printf("Cadeiras: %d\n", cad);
- printf("Fileiras: %d\n", fil);
- printf("Colunas: %d\n", col);
- printf("\n\n- Precos -\n\n");
- printf("Cadeira: %.2f reais\n", cadPreco);
- printf("Reserva: %.2f reais\n", resPreco);
- printf("Cadeira Reservada: %.2f reais\n", cadReservada);
- printf("Reserva (%%): %.0f%%\n", resPrecoCem);
- espetaculos++;
- finalizarOpcao();
- break;
- c3:
- case 3:
- mostrarCabecalho();
- checarEspetaculo();
- if (opcaoEspetaculo == 0) {
- printf("\nAs vendas foram encerradas...\n");
- finalizarOpcao();
- }
- mostrarMapa();
- printf("\n- Opcao 3 - Vender ou Reservar lugar -\n");
- printf("\n");
- printf("Selecione o lugar (fil,col): \n");
- scanf("%d %d",&f,&c);
- if (f > fil || c > col || mapa[f-1][c-1] == 'V') {
- erro();
- goto c3;
- }
- else if (mapa[f-1][c-1] == 'R') {
- printf("\nLugar ja reservado, 1 para comprar 2 para tentar novamente:\n");
- scanf("%d",&o);
- if (o == 1) {
- mapa[f-1][c-1] = 'V';
- mostrarCabecalho();
- mostrarMapa();
- printf("Lugar comprado com sucesso!\n");
- printf("Valor da compra: %.2f\n", cadReservada);
- cadEspet++;
- cadTotal++;
- comEspet += cadReservada;
- comTotEspet += cadReservada;
- comTotal += cadReservada;
- comCadEspet += cadReservada;
- comCadTotal += cadReservada;
- } else if (o == 2) {
- goto c3;
- } else {
- erro();
- goto c3;
- }
- }
- else if (mapa[f-1][c-1] == 'L') {
- printf("\nLugar livre, 1 para comprar 2 para reservar:\n");
- scanf("%d",&o);
- if (o == 1) {
- mapa[f-1][c-1] = 'V';
- mostrarCabecalho();
- mostrarMapa();
- printf("Lugar comprado com sucesso!\n");
- printf("Valor da compra: %.2f\n", cadPreco);
- cad--;
- cadEspet++;
- cadTotal++;
- comEspet += cadPreco;
- comTotEspet += cadPreco;
- comTotal += cadPreco;
- comCadEspet += cadPreco;
- comCadTotal += cadPreco;
- } else if (o == 2) {
- mapa[f-1][c-1] = 'R';
- mostrarCabecalho();
- mostrarMapa();
- printf("Lugar reservado com sucesso!\n");
- printf("Valor da reserva: %.2f\n", resPreco);
- cad--;
- resEspet++;
- resTotal++;
- comEspet += resPreco;
- comTotEspet += resPreco;
- comTotal += resPreco;
- comResEspet += resPreco;
- comResTotal += resPreco;
- } else {
- erro();
- goto c3;
- }
- }
- finalizarOpcao();
- break;
- case 4:
- mostrarCabecalho();
- checarEspetaculo();
- if (opcaoEspetaculo == 0) {
- printf("\nAs vendas foram encerradas...\n");
- finalizarOpcao();
- }
- mostrarMapa();
- printf("\n- Opcao 4 - Realizar liberacao de lugar -\n");
- printf("\n");
- printf("Selecione o lugar (fil,col): \n");
- scanf("%d %d",&f,&c);
- if (f > fil || c > col || mapa[f-1][c-1] == 'L') {
- erro();
- }
- else if (mapa[f-1][c-1] == 'V') {
- mapa[f-1][c-1] = 'L';
- mostrarCabecalho();
- mostrarMapa();
- printf("\nLiberacao de lugar vendido com sucesso!\n");
- printf("\nValor devolvido: %.2f\n", cadPreco);
- cad++;
- libEspet++;
- libTotal++;
- comTotEspet -= cadPreco;
- comLibEspet += cadPreco;
- comLibTotal += cadPreco;
- }
- else if (mapa[f-1][c-1] == 'R') {
- mapa[f-1][c-1] = 'L';
- mostrarCabecalho();
- mostrarMapa();
- printf("\nLiberacao de lugar reservado com sucesso!\n");
- printf("\nValor devolvido: %.2f\n", resPreco);
- cad++;
- libEspet++;
- libTotal++;
- comTotEspet -= resPreco;
- comLibEspet += resPreco;
- comLibTotal += resPreco;
- }
- finalizarOpcao();
- break;
- case 5:
- mostrarCabecalho();
- checarEspetaculo();
- mostrarMapa();
- printf("\n- Opcao 5 - Verificar medias parciais do teatro -\n");
- printf("\n");
- cadTotalM = cadTotal / espetaculos;
- resTotalM = resTotal / espetaculos;
- libTotalM = libTotal / espetaculos;
- cadEspetM = cadEspet / espetaculos;
- resEspetM = resEspet / espetaculos;
- libEspetM = libEspet / espetaculos;
- comCadTotalM = comCadTotal / espetaculos;
- comResTotalM = comResTotal / espetaculos;
- comLibTotalM = comLibTotal / espetaculos;
- cad100 = cad;
- cadTotal100 = (cadTotal / cad100) * 100;
- resTotal100 = (resTotal / cad100) * 100;
- libTotal100 = (libTotal / cad100) * 100;
- cad100 = cad;
- cadEspet100 = (cadEspet / cad100) * 100;
- resEspet100 = (resEspet / cad100) * 100;
- libEspet100 = (libEspet / cad100) * 100;
- comTotal100 = 100;
- comCadTotal100 = (comCadTotal / comTotal) * 100;
- comResTotal100 = (comResTotal / comTotal) * 100;
- comLibTotal100 = (comLibTotal / comTotal) * 100;
- comEspet100 = 100;
- comCadEspet100 = (comCadEspet / comEspet) * 100;
- comResEspet100 = (comResEspet / comEspet) * 100;
- comLibEspet100 = (comLibEspet / comEspet) * 100;
- printf("Cadeiras: \n");
- printf("1- Media Cadeiras no teatro: %d\n", cad);
- printf("2- Media Cadeiras compradas no teatro: %d\n", cadTotalM);
- printf("3- Media Cadeiras reservadas no teatro: %d\n", resTotalM);
- printf("4- Media Cadeiras liberadas no teatro: %d\n", libTotalM);
- printf("\n");
- i1 = 1;
- mostrarGrafico(cad100);
- i1 = 2;
- mostrarGrafico(cadTotal100);
- i1 = 3;
- mostrarGrafico(resTotal100);
- i1 = 4;
- mostrarGrafico(libTotal100);
- i1 = 0;
- printf("\n");
- printf("1- Cadeiras no espetaculo: %d\n", cad);
- printf("2- Media Cadeiras compradas no espetaculo: %d\n", cadTotalM);
- printf("3- Media Cadeiras reservadas no espetaculo: %d\n", resTotalM);
- printf("4- Media Cadeiras liberadas no espetaculo: %d\n", libTotalM);
- printf("\n");
- i1 = 1;
- mostrarGrafico(cad100);
- i1 = 2;
- mostrarGrafico(cadEspet100);
- i1 = 3;
- mostrarGrafico(resEspet100);
- i1 = 4;
- mostrarGrafico(libEspet100);
- i1 = 0;
- printf("\n");
- printf("Capital: \n");
- printf("1- Capital no teatro: %.2f\n", comTotal);
- printf("2- Media Capital em compras no teatro: %.2f\n", comCadTotalM);
- printf("3- Media Capital em reservas no teatro: %.2f\n", comResTotalM);
- printf("4- Media Capital em devolucoes no teatro: %.2f\n", comLibTotalM);
- printf("\n");
- i1 = 1;
- mostrarGrafico(comTotal100);
- i1 = 2;
- mostrarGrafico(comCadTotal100);
- i1 = 3;
- mostrarGrafico(comResTotal100);
- i1 = 4;
- mostrarGrafico(comLibTotal100);
- i1 = 0;
- printf("\n");
- printf("1- Capital total no espetaculo: %.2f\n", comEspet);
- printf("2- Media Capital em compras no espetaculo: %.2f\n", comCadEspetM);
- printf("3- Media Capital em reservas no espetaculo: %.2f\n", comResEspetM);
- printf("4- Media Capital em devolucoes no espetaculo: %.2f\n", comLibEspetM);
- printf("\n");
- i1 = 1;
- mostrarGrafico(comEspet100);
- i1 = 2;
- mostrarGrafico(comCadEspet100);
- i1 = 3;
- mostrarGrafico(comResEspet100);
- i1 = 4;
- mostrarGrafico(comLibEspet100);
- i1 = 0;
- printf("\n");
- printf("ATENCAO!\n");
- printf("Existe uma margem de erro de 2%%!\n");
- finalizarOpcao();
- break;
- case 6:
- mostrarCabecalho();
- checarEspetaculo();
- mostrarMapa();
- printf("\n- Opcao 6 - Encerrar vendas do espetaculo -\n");
- printf("\n");
- if (opcaoEspetaculo == 0)
- printf("\nVendas: encerradas.\n");
- else if (opcaoEspetaculo == 1)
- printf("\nVendas: abertas.\n");
- else
- printf("\nVendas: ERRO.\n");
- printf("\n");
- printf("Pressione 1 para encerrar, 2 para abrir as vendas: \n");
- scanf("%d", &o);
- if (o == 1) {
- opcaoEspetaculo = 0;
- }
- else if (o == 2) {
- opcaoEspetaculo = 1;
- }
- finalizarOpcao();
- break;
- case 7:
- mostrarCabecalho();
- checarEspetaculo();
- mostrarMapa();
- comEspet100 = 100;
- comCadEspet100 = (comCadEspet / comEspet) * 100;
- comResEspet100 = (comResEspet / comEspet) * 100;
- comLibEspet100 = (comLibEspet / comEspet) * 100;
- printf("Capital total no espetaculo: %.2f\n", comEspet);
- printf("Capital em compras no espetaculo: %.2f\n", comCadEspet);
- printf("Capital em reservas no espetaculo: %.2f\n", comResEspet);
- printf("Capital em devolucoes no espetaculo: %.2f\n", comLibEspet);
- finalizarOpcao();
- break;
- case 8:
- mostrarCabecalho();
- checarEspetaculo();
- mostrarMapa();
- cadTotal100 = 100;
- resTotal100 = (resTotal / cadTotal) * 100;
- libTotal100 = (libTotal / cadTotal) * 100;
- comTotal100 = 100;
- comCadTotal100 = (comCadTotal / comTotal) * 100;
- comResTotal100 = (comResTotal / comTotal) * 100;
- comLibTotal100 = (comLibTotal / comTotal) * 100;
- printf("Cadeiras: \n");
- printf("Cadeiras compradas no teatro: %d\n", cadTotal);
- printf("Cadeiras reservadas no teatro: %d\n", resTotal);
- printf("Cadeiras liberadas no teatro: %d\n", libTotal);
- printf("\n");
- printf("Capital: \n");
- printf("Capital no teatro: %.2f\n", comTotal);
- printf("Capital em compras no teatro: %.2f\n", comCadTotal);
- printf("Capital em reservas no teatro: %.2f\n", comResTotal);
- printf("Capital em devolucoes no teatro: %.2f\n", comLibTotal);
- printf("\n");
- finalizarOpcao();
- break;
- default:
- printf("\nOpcao invalida. Tente novamente\n");
- printf("\nDigite qualquer tecla para continuar...\n");
- getch();
- system("cls");
- mostrarCabecalho();
- mostrarOpcoes();
- }
- }
- // Funcao usada para finalizar tarefas
- void finalizarOpcao()
- {
- printf("\nDigite qualquer tecla para continuar...\n");
- getch();
- mostrarCabecalho();
- mostrarOpcoes();
- }
- // Funcao usada para checar existencia
- // de espetaculos ou existencia de vendas abertas
- void checarEspetaculo()
- {
- if (espetaculos == 0) {
- printf("\nNenhum espetaculo aberto...\n");
- finalizarOpcao();
- }
- }
- void mostrarGrafico(int max)
- {
- char grafico[max];
- printf("%d| ", i1);
- for (i1 = 0; i1 < max; i1++) {
- grafico[i1] = '#';
- printf("%c", grafico[i1]);
- }
- printf(" - %d%%", max);
- printf("\n");
- }
- // Funcao para quando ha erros de entrada pelo usuario
- void erro() {
- printf("\nOpcao invalida, tente novamente.\n");
- printf("\nDigite qualquer tecla para continuar...\n");
- getch();
- }
- // Funcao principal
- int main()
- {
- for (i1 = 0; i1 < fil; i1++) {
- for (i2 = 0; i2 < col; i2++)
- mapa[i1][i2] = 'L';
- }
- mostrarCabecalho();
- mostrarOpcoes();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement