Ir ao conteúdo
  • Cadastre-se

Problema na Hora de achar o codego de controle


M4T4D0RGR33N

Posts recomendados

Um promoter  deseja controlar todos os eventos dos quais participa e você foi
contratado para resolver esse problema.
Assim que começou o trabalho, você ficou sabendo que o cadastro de um evento necessita de:
identificador único (um código inteiro), nome, local, data da realização, quantidade de ingressos
colocados à venda, custos de organização e valor da entrada.
Foi-lhe informado também que existem sempre três valores de entrada: o 1o valor, para as entradas do
tipo popular; o 2o valor, para as entradas do tipo normal e o 3o valor para as entradas do tipo especial.
Alguns desses eventos são festas open bar, possuindo assim, além de todas as informações anteriores,
uma relação das quatro bebidas que serão servidas. As informações das bebidas, por sua vez, são nome,
teor alcóolico e valor unitário.
O valor das entradas populares é calculado automaticamente, da seguinte forma:
 eventos open bar: R$ 60,00 mais 50% do valor unitário de cada bebida que será servida;
 demais eventos: custo de organização dividido pela quantidade de ingressos colocados à venda.
O valor da entrada normal é o valor da entrada popular mais 10% desse mesmo valor. Já o valor da
entrada especial é o valor da entrada normal mais 15% desse mesmo valor.
Você deverá implementar um sistema que cadastre os eventos desse promoter. O cadastro dos eventos
deverá ser finalizado quando for inserido 0 (zero) para o identificador único.
O sistema deverá funcionar com o seguinte menu de opções:
1 – Cadastrar evento
2 – Pesquisar evento
3 – Ingressos vendidos
4 – Exibir resultado por evento
5 – Exibir resultado geral
6 – Sair
Instituto Federal do Triângulo Mineiro - Campus Paracatu
Tecnólogo em Análise e Desenvolvimento de Sistemas
Trabalho de Conclusão da Disciplina
Disciplina: Algoritmos Turma: ADS1
Professor: Gustavo Alexandre de Oliveira Silva
Aluno (a):
Data: Valor: 16,0 pts Resultado:
A opção 1 cadastra os dados de cada evento: identificador único, nome, local, data da realização,
quantidade de ingressos colocados à venda, custos de organização e valor da entrada.
A opção 2 pesquisa os dados de cada evento, através do seu identificador único e exibe todos os dados
na tela.
A opção 3 pesquisa os dados de cada evento, através do seu identificador único e insere a quantidade de
ingressos (popular, normal ou especial) que foram vendidos para o respectivo evento. Feito isso, o
sistema deverá calcular se o respectivo evento teve lucro ou prejuízo.
A opção 4 exibe o resultado (lucro ou prejuízo) de um dado evento, informado pelo usuário através do
seu identificar único.
A opção 5 exibe o saldo atual do promoter, levando em consideração todos os eventos já realizados.
A opção 6 encerra o programa.

 

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <locale.h>
#include <string.h>
struct bebidas{
     char tipo1[50];
    char tipo2[50];
    char tipo3[50];
    char tipo4[50];
    float teor1[50],teor2[50],teor3[50],teor4[50];
    float valor_bebida1[50], valor_bebida2[50], valor_bebida3[50], valor_bebida4[50];
    int cod;
}logb[100];
struct evento{
    int quant_meia,quant_norm,quant_vip;
    int dia,mes,ano;
    int vazio,cod;
    int cont[100];
    char nome [30];
    char local[30];
    int quantidade;
    float valor;
    float valor_ingres;
    int open[50],vend[50];
    struct bebidas cadbebidas;
}logE[100];

int verifica_pos(void);
int verifica_cod( int cod );
int opt;
void cadastroP(int cod,int pos);
void list();
void cadastrobebida();
void consultaCod (void);
void excluirevento (void);

int main(void){ //INICIO DO MAIN
    setlocale(LC_ALL,"portuguese");
    int i,Opcao,Opevento,posicao,retorno,ingress;
    int codaux;
    do
    {
        printf("===================================\n");
        printf("1 - Cadastrar Evento\n");
        printf("2 - Pesquisar Evento \n");
        printf("3 - Ingressos Vendidos \n");
        printf("4 - Exibir Resultado Por Evento \n");
        printf("5 - Exibir Resultado Geral\n");
        printf("6 - Sair \n");
        printf("===================================\n");
        printf("Digite a Opção desejada\n");
        scanf("%d",&Opcao);
    getchar();
        if (Opcao == 1)
        {
            printf("voce selecionou a opcao 1 - Cadastrar Novo Evento\n");
            posicao=verifica_pos();

                if ( posicao != -1 )
                {

                    printf("\nEntre com um codigo de 1 a 100 para seu cadastro: \n");
                    scanf("%d",&codaux);fflush(stdin);

                    retorno = verifica_cod( codaux );

                    if ( retorno == 1 )
                        cadastroP( codaux, posicao );
                    else{
                        printf("\nCodigo ja existente ou invalido pressione enter para voltar ao menu principal\n");
                        getchar();
                        system("cls");
                        main();
                    }

                }
                else
                    printf("\nNao e possivel realizar mais cadastros!\n");

                break;

        }
        else if (Opcao == 2)
        {
            system("cls");
            do{
            printf("voce selecionou a opcao 2 - Pesquisar eventos\n\n");
            printf("1 - Pesquisar Evento por codigo\n");
            printf("2 - Listar todos os Eventos\n");
            printf("3 - Cadastrar bebidas evento\n");
            printf("4 - Excluir Evento\n");
            printf("5 - Voltar ao menu principal\n");
            printf("Selecione uma opcao por favor: ");
            scanf("%d", &Opevento);
            getchar();
                 if(Opevento == 1){
                    consultaCod();
                }
                else if(Opevento == 2){
                    list();
                }
                else if (Opevento == 3)
                {
                 printf("voce selecionou a opcao 3 - Cadastrar Bebidas\n");
                cadastrobebida();
                }
                else if (Opevento == 4)
                {
                  printf("voce selecionou a opcao 4 - Excluir Evento\n");
                  excluirevento();
                }
                else if(Opevento == 5){
                    printf("voce selecionou voltar ao menu principal, pressione ENTER para continuar");
                    getchar();
                    system("cls");
                }
                else
                    printf("Opcao Invalida\n\n");
    }while(Opevento =!5 || Opevento > 5 || Opevento < 0 || Opevento == 0);
        }
        else if(Opcao == 3)
        {
         system("cls");
         do{
            printf("voce selecionou a opcao 3 - Ingressos vendidos \n\n");
            printf("entre com o codigo do evento:");

            printf("1 - ingressos open bar\n");
            printf("2 - ingressos normal\n");
            printf("3 - ingressos meia entrada bar\n");
            printf("4 - Sair\n");
             printf("Selecione uma opcao por favor: ");
            scanf("%d", &ingress);
            getchar();
                 if(ingress == 1){
                        printf("voce selecionou a opcao 3 - Meia entrada\n");
                    consultaCod();
                }
                else if(ingress == 2){
                        printf("voce selecionou a opcao 3 - Meia entrada\n");
                    consultaCod();
                }
                else if (ingress == 3)
                {
                 printf("voce selecionou a opcao 3 - Meia entrada\n");
                   consultaCod();
                }

                else if(Opevento == 4){
                    printf("voce selecionou voltar ao menu principal, pressione ENTER para continuar");
                    getchar();
                    system("cls");
                }
                else
                    printf("Opcao Invalida\n\n");
    }while(ingress =!4 || ingress > 4 || ingress < 0 || ingress == 0);

        }

        else if (Opcao == 6)
        {
            printf("voce selecionou a opcao 6 - Sair\n");
        }
        else{
            printf("Opcao invalida, favor pressione enter para voltar ao menu principal");
            getchar();
            system("cls");
        }
        }    while (Opcao != 6 || Opcao < 6);

} // FIM DO MAIN

void cadastroP(int cod, int pos){ //Cadastro das pessoas
    int i;
    do{
    pos = verifica_pos();
    logE[pos].cod = cod;
                printf("\t\t\t================================\t\t\t\n",200,187);
                printf("\t\t\t | Cadastro Evento | \t\t\t\n ");
                printf("\t\t\t================================\t\t\t\n",200,187);

                printf("Digite o Nome do evento \n");
                fflush(stdin);
                gets(logE[pos].nome);

                printf("Digite o local do evento\n");
                fflush(stdin);
                gets(logE[pos].local);

                printf("Quantidade de ingresso\n");
                fflush(stdin);
                gets(logE[pos].quantidade);

                printf("Custo total do Evento\n");
                fflush(stdin);
                scanf("%f",logE[pos].valor);

                printf("Valor das Entradas\n");
                fflush(stdin);
                scanf("%f",logE[pos].valor_ingres);

                printf("Data do Evento em modo(dd/mm/aaaa)\n");
                printf("Data de Realizaçao \n");
                fflush(stdin);
                gets(logE[pos].dia);
                gets(logE[pos].mes);
                gets(logE[pos].ano);
                logE[pos].vazio = 1;
        printf("\nDigite enter para efetuar novo cadastro ou qualquer outra tecla para volar ao menu principal");
        scanf("%d", &opt);
        opt ==1;
        getchar();
    }while(opt==1);
    system("cls");
    main();

} // FIM DO CADASTRO DE PESSOAS

void cadastrobebida(){ //Cadastro dos pedidos
    system("cls");
    int i;
    int Option;
    char nomeCad[200];
do{
    printf("\nDigite o nome do evento  como esta no cadastro: ");
    gets(nomeCad);
    for(i=0;i<100;i++){
            if(strcmp(logE[i].nome, nomeCad)==0){

                        printf("\t\t\t================================\t\t\t\n",200,187);
                        printf("\t\t\t | Cadastro bebidas | \t\t\t\n ");
                        printf("\t\t\t================================\t\t\t\n",200,187);

                    printf("Entre com o primeiro tipo de de bebida\n ");
                    fflush(stdin);
                    gets(logb[i].tipo1);
                    printf("Teor Alcolico da bebida");
                    fflush(stdin);
                    gets(logb[i].teor1);
                    printf("Entre com o Valor da Bebida:\n ");
                    fflush(stdin);
                    gets(logb[i].valor_bebida1);
                    printf("Entre com o segundo tipo de bebida\n ");
                    fflush(stdin);
                    gets(logb[i].tipo2);
                    printf("Teor Alcolico da bebida");
                    fflush(stdin);
                    gets(logb[i].teor2);
                    printf("Entre com o Valor da Bebida:\n ");
                    fflush(stdin);
                    gets(logb[i].valor_bebida2);
                    printf("entre com o terceiro tipo de bebida\n ");
                    fflush(stdin);
                    gets(logb[i].tipo3);
                     printf("Teor Alcolico da bebida");
                    fflush(stdin);
                    gets(logb[i].teor3);
                    printf("Entre com o Valor da Bebida:\n ");
                    fflush(stdin);
                    gets(logb[i].valor_bebida3);
                    printf("entre com o quarto tipo de bebida\n ");
                    fflush(stdin);
                    gets(logb[i].tipo4);
                    printf("Teor Alcolico da bebida");
                    fflush(stdin);
                    gets(logb[i].teor4);
                    printf("Entre com o Valor da Bebida:\n ");
                    fflush(stdin);
                    scanf("%f",logb[i].valor_bebida4);

                    printf("\nPressione 1 para continuar cadastrando ou 2 para voltar ao menu principal: ");
                    scanf("%d", &Option);
                    i++;
                }
    }
    }while(Option == 1);
    system("cls");
} // FIM DO CADASTRO DE PEDIDOS.

void list(){ // Lista os usuarios cadastrados.
    int i,j;
    for(i=0;i<200;i++){
        if(logE[i].cod!=NULL){
            printf("\nCodigo: %d \nNome: %s\nlocal: %s\ndata: %s\n\n", logE[i].cod,logE[i].nome,logE[i].local,logE[i].dia,logE[i].mes,logE[i].ano);
    }
}
    printf("Pressione enter para volta ao menu principal");
    getchar();
    system("cls");

} //FIM DO LIST

int verifica_pos( void ) //VERIFICADOR DA POSIÇÃO
{
    int cont = 0;

    while ( cont <= 100 )
    {

        if ( logE[cont].vazio == 0 )
            return(cont);

        cont++;

    }

    return(-1);

} // FIM DO VERIFICADOR
int verifica_cod( int cod ) // VERIFICADOR DE CÓDIGO
{
    int cont = 0;

    while ( cont <= 100 )
    {
        if ( logE[cont].cod == cod )
            return(0);

        cont++;
    }

    return(1);

} // FIM DO VERIFICADOR
void consultaCod (void) // CONSULTAR 1 CADASTRADO QUALQUER VIA CÓDIGO DADO POR USUÁRIO.
{
    int cont = 0, cod;

    printf("\nEntre com o codigo\n");
    scanf("%d",&cod);
    fflush(stdin);
    system("cls");

    while ( cont <= 200 )
    {

        if (logE[cont].cod==cod)
        {
            if (logE[cont].vazio==1)
            {

                printf("\nCodigo: %d \nNome: %s\nLocal: %s\nData: %d\n\n", logE[cont].cod,logE[cont].nome,logE[cont].local,logE[cont].dia,logE[cont].mes,logE[cont].ano);


                system ("pause");

                system("cls");

                break;

            }
        }

        cont++;

        if ( cont > 200 ){
            printf("\nCodigo nao encontrado, pressione enter para volar ao menu principal\n");
            getchar();
            system("cls");
        }

    }
} // FIM DA FUNÇÃO CONSULTAR
void excluirevento(void)  // EXCLUI CLIENTE
{
    int cod, cont = 0;
    char resp;
    printf("\nEntre com o codigo do registro que deseja excluir: \n");
    scanf("%d", &cod );

    while ( cont <= 200 )
    {

        if ( logE[cont].cod == cod )
        {

            if (logE[cont].vazio == 1 )
            {
                printf("\nCodigo: %d \n nome: %c \n data: %d//%d//%d \n local: %c \n",logE[cont].cod,logE[cont].nome,logE[cont].dia,logE[cont].mes,logE[cont].ano,logE[cont].local);
                getchar();
                printf("\nDeseja realmente excluir? s/n: ");
                scanf("%s",&resp);

                if ( ( resp == 'S' ) || ( resp == 's' ) )
                {
                    logE[cont].vazio=0;
                    logE[cont].cod = NULL;
                    printf("\nExclusao feita com sucesso\n");
                    break;
                }
                else
                {
                    if ( ( resp == 'N' ) || ( resp == 'n' ) )
                    {
                        printf("Exclusao cancelada!\n");
                        break;
                    }
                }

            }

        }

        cont++;

        if ( cont > 200 )
            printf("\nCodigo nao encontrado\n");

    }

    system("pause");
    system("cls");

}

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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...