Ir ao conteúdo
  • Cadastre-se
fdsmello

Ajuda aqui

Recommended Posts

Meu código  nas funções inserir eles estão inserindo automaticamente uma posição com sem dados algum.Sem que eu mande. alguém poderia ajudar

#include<stdlib.h>#include<stdio.h>#include<string.h>#include<time.h>#include<conio.h>#include<windows.h> // poder incluir o som de beep prolongado#define QUANTIDADE_CLIENTES 5#define QUANTIDADE_PIZZAS 10#define QUANTIDADE_PEDIDOS 100void InserirCliente(void);void ApresentarCliente(void);void PesquisarCPF(void);void ApresentarSabores(void);void IncluirPizza(void);void InserirPedido(void);void AlterarCliente(void);struct telefone{    char codInternacional[3];    char codArea[3];    char numeroTel[10];};struct data{    char dia[3];    char mes[3];    char ano[5];};struct cliente{    char nome[51];    struct telefone residencialTel;    char cpf[12];    struct data nascimento;    char logradouro[60];    char bairro[20];    char cep[9];    char complemento[51];    char email[100];    //char data_cad[9];    struct data DtCadastro;};struct valores{float pequena;float media;float grande;float familia;};struct pizza{    char codPizza[3];    char nomePizza[21];    struct valores VlPizza;};struct pedidos{    struct data DtPedido;    char idCliente[9];    char codPizza[2];    float valorPizza;    char tamanho [2];// usar enum    char tipoPagamento[9];    char totalPedido[6];};struct cliente listaClientes[QUANTIDADE_CLIENTES];struct pizza listaPizzas[QUANTIDADE_PIZZAS];struct pedidos gerarPedidos[QUANTIDADE_PEDIDOS];int inicioLista = 0;int fimLista = 0;int MenuPrincipal(){    //----------------------MENU PRICIPAL-------------------------------------------      char escolha=0;      system("color 1f");//função para alterar a cor o 1º representa o fundo e 2º numero representa caracteres      printf("\n                ======================================\n");      printf("               |         __      __    ___  ___  __   |");      printf("\n               | |\\  /| |       |  | |   /    / |  |  |");      printf("\n               | | \\/ | |--     |--  | /    /   |--|  |");      printf("\n               | |    | |       |    | ---  --- |  |  |");      printf("\n               |                          VERSAO 1.0  |");      printf("\n                ======================================\n");      printf("\n                             MENU PRINCIPAL");      printf("\n\n\n\tCLIENTE\t\t\t PIZZA\t\t\tPEDIDOS");      printf("\n\n\n [1] - INCLUIR CLIENTE\t\t[4] - INCLUIR PIZZA\t[7] - INCLUIR PEDIDO");      printf("\n\n [2] - VISUALIZAR CLIENTE\t[5] - VISUALIZAR PIZZA\t[8] - VISUALIZAR PEDIO");      printf("\n\n [3] - ALTERAR DADOS CLIENTE\t[6] - ALTERAR PIZZA\t[9] - GERAR NOTA");      printf("\n\n\n                         Bem Vindo(a) ao MF PIZZA!\n");      printf("________________________________________________________________________________");      printf("\n[Opcao]: ");      return (getche());     //------------------------MENU PRINCIPAL----------------------------------------}void TrataMenu( char op){    switch(op)    {            case '1':InserirCliente();                    break;            case '2': ApresentarCliente();                    break;            case '3':AlterarCliente();                   break;            case '4':IncluirPizza();                    break;            case '5':ApresentarSabores();                    break;            case '7': InserirPedido();                    break;            case '0': printf("\nSaindo do programa....\n");                    break;            //default: printf("\nOpcao invalida!!!\n");    }}int main(){    int opcao = 0;    do    {        opcao=MenuPrincipal();        TrataMenu(opcao);    }    while(opcao != 0);    return (0);}void InserirCliente(){    int escolha =0;    system("cls");    printf("DESEJA VOLTAR AO MENU PRINCIPAL \n\n[1]Retorna ao menu principal\nAperte qualquer tecla para continuar \n[ ]\b\b");    scanf("%d",&escolha);    if(escolha==1)    {        system("cls");        main();    }    else    {    system("cls");    system("color 0f");    printf("\n                             INSERIR CLIENTE");    printf("\n                             ===============");    if(fimLista < QUANTIDADE_CLIENTES)    {        fflush(stdin);        printf("\n\n\nNOME: ");        scanf("%[a-z][A-Z][^\n]", listaClientes[fimLista].nome);        strupr(listaClientes[fimLista].nome); // Transforma a string em maiscula para facilitar numa função pesquisa        fflush(stdin);        printf("\nTELEFONE: ");        printf("\n DIGITE O CODIGO NACIONAL: [  ]\b\b\b");        scanf("%[0-9][^\n]",listaClientes[fimLista].residencialTel.codInternacional);        fflush(stdin);        printf("\n DIGITE O CODIGO AREA: [  ]\b\b\b");        scanf("%[0-9][^\n]", listaClientes[fimLista].residencialTel.codArea);        fflush(stdin);        printf("\n DIGITE O TELEFONE RESIDENCIAL: ");        scanf("%[0-9][^\n]",listaClientes[fimLista].residencialTel.numeroTel);        fflush(stdin);        printf("\nCPF: ");        scanf("%[0-9][^\n]", listaClientes[fimLista].cpf);        fflush(stdin);        printf("\nDATA DE NASCIMENTO: ");        printf("DIA: ");        scanf("%[0-9][^\n] ", listaClientes[fimLista].nascimento.dia);        fflush(stdin);         printf("MES: ");        scanf("%[0-9][^\n] ", listaClientes[fimLista].nascimento.mes);        fflush(stdin);         printf("ANO: ");        scanf("%[0-9][^\n] ", listaClientes[fimLista].nascimento.ano);        fflush(stdin);        printf("\nE-MAIL: ");        scanf("%[^\n]", listaClientes[fimLista].email);        strupr(listaClientes[fimLista].email);        fflush(stdin);        printf("\nLOGRADOURO (rua, avenida, travessa, ...): ");        scanf("%[^\n]", listaClientes[fimLista].logradouro);        strupr(listaClientes[fimLista].logradouro);        fflush(stdin);        printf("\nCOMPLEMENTO (casa, apto, ...): ");        scanf("%[^\n]", listaClientes[fimLista].complemento);        strupr(listaClientes[fimLista].complemento);        fflush(stdin);        printf("\nBAIRRO: ");        scanf("%[^\n]", listaClientes[fimLista].bairro);        strupr(listaClientes[fimLista].bairro);        fflush(stdin);        printf("\nCEP: ");        scanf("%[0-9][^\n]", listaClientes[fimLista].cep);        strupr(listaClientes[fimLista].cep);        fflush(stdin);        printf("\nDATA DO CADASTRO: ");        printf("DIA: ");        scanf("%[0-9][^\n] ", listaClientes[fimLista].DtCadastro.dia);        fflush(stdin);         printf("MES: ");        scanf("%[0-9][^\n] ", listaClientes[fimLista].DtCadastro.mes);        fflush(stdin);         printf("ANO: ");        scanf("%[0-9][^\n] ", listaClientes[fimLista].DtCadastro.ano);        fflush(stdin);        // pega a data atual       // _strdate(listaClientes[fimLista].data_cad);        printf("\n\t\t\t   CLIENTE CADASTRADO! \n\n\t PRESSIONE QUALQUER TECLA PARA RETORNAR AO MENU PRINCIPAL");        fimLista++;    }    else    {        printf("\n\n\nQUANTIDADE DE CLIENTES CADASTRADOS CHEGOU AO LIMITE!");        getchar();    }    }    getchar();}void ApresentarCliente(){    system("color 0f");    int indice =0 ;    indice= inicioLista;    if(fimLista > 0)    {        system("cls");        printf("\n                             CLIENTES CADASTRADOS");        printf("\n                             ===============");        for(indice=0;indice<fimLista;indice++)        {            printf("\nNOME:%s\n",listaClientes[indice].nome);            printf("TELEFONE:[%s][%s]%s\n",listaClientes[indice].residencialTel.codInternacional,listaClientes[indice].residencialTel.codArea,listaClientes[indice].residencialTel.numeroTel);            printf("CPF: %s\n",listaClientes[indice].cpf);            printf("DATA NASCIMENTO: %s/%s/%s\n",listaClientes[indice].nascimento.dia,listaClientes[indice].nascimento.mes,listaClientes[indice].nascimento.ano);            printf("EMAIL: %s\n",listaClientes[indice].email);            printf("LOGRADOURO: %s\n",listaClientes[indice].logradouro);            printf("BAIRRO: %s\n",listaClientes[indice].complemento);            printf("COMPLEMENTO: %s\n",listaClientes[indice].bairro);            printf("CEP: %s\n",listaClientes[indice].cep);            printf("DATA DO CADASTRO: %s/%s/%\n",listaClientes[fimLista].DtCadastro.dia,listaClientes[fimLista].DtCadastro.mes,listaClientes[fimLista].DtCadastro.ano);            printf("\n---------------------------------------------------------\n");        }    }    else    {        printf("\nLista de Clientes vazia!!!");        getchar();    }    getchar();}void AlterarCliente(){    system("cls");    printf("========================================\n");    printf("         ALTERAR REGISTRO\n");    printf("========================================\n");    system("cls");    int indice;    char buscarNome[51];    int achou = 0;    printf("\nDigite o nome que deseja alterar  :\n");    scanf("%s",buscarNome);    strupr(buscarNome);    fflush(stdin);    if(fimLista > -1)    {        do        {            for(indice = inicioLista;indice <= fimLista ;indice++)            {                    if(!strcmp(buscarNome,listaClientes[indice].nome))                    {                        achou = 1;                        break;                    }            }            if(achou== 1)            {                int escolha;                system("cls");                    printf("\n\tESCOLHA A ALTERACAO \n\t");                    printf("----------------------------------");                    printf("\n\tdigite [1] para alterar o Cpf \n\t ");                    printf("\n\tdigite [2] para alterar o Logradouro\n\t ");                    printf("\n\tdigite [3] para alterar o Bairro\n\t ");                    printf("\n\tdigite [4] para alterar o Cep\n\t");                    printf("\n\tdigite [5] para alterar o Telefone\n\t");                    printf("\n\tdigite [6] para alterar o email\n\t");                    printf("\n\tdigite [0] para SAIR\n\t");                    printf("\nDigite a sua escolha: [ ]\b\b ");                    scanf("%d",&escolha);                    fflush(stdin);                    switch(escolha)                    {                        case 1:                        {                            char aux[12];                            printf(" \ndigite o novo CPF:\n");                            gets(aux);                            fflush(stdin);                            strcpy(listaClientes[indice].cpf,aux);                             break;                        }                        case 2:                        {                            char aux[60];                            printf(" \ndigite o novo Logradouro:\n");                            gets(aux);                             strupr(aux);                            fflush(stdin);                            strcpy(listaClientes[indice].logradouro,aux);                             break;                             }                        case 3:                        {                            char aux[20];                            printf(" \ndigite o novo bairro:\n");                            gets(aux);                            strupr(aux);                            fflush(stdin);                            strcpy(listaClientes[indice].bairro,aux);                             break;                        }                        case 4:                        {                            char aux[9];                            printf(" \ndigite o Cep:\n");                            gets(aux);                            fflush(stdin);                            strcpy(listaClientes[indice].cep,aux);                             break;                        }                        case 5:                        {                            char aux[3];                            char aux1[3];                            char aux2[10];                            printf(" \nDigite o novo Codigo internacional:\n");                            gets(aux);                            fflush(stdin);                             printf(" \nDigite o novo Codigo Area:\n");                            gets(aux1);                            fflush(stdin);                             printf(" \nDigite o novo Telefone:\n");                            gets(aux2);                            fflush(stdin);                            strcpy(listaClientes[indice].residencialTel.codInternacional,aux);                            strcpy(listaClientes[indice].residencialTel.codArea,aux);                            strcpy(listaClientes[indice].residencialTel.numeroTel,aux);                            break;                        }                        case 6:                        {                            char aux[100];                            printf(" \nDigite o novo email\n");                            gets(aux);                             strupr(aux);                            fflush(stdin);                            strcpy(listaClientes[indice].email,aux);                             break;                        }                        default:                        {                            printf("opcao invalida!!!\n");                        }                        system("pause");                    }            }            if(achou != 1)            {                int opcao;                printf("\nOPCAO NAO ENCONTRADA :\n");                printf("\nDIGITE [1]PARA TENTAR NOVAMENTE\n[2] PARA SAIR :\n [3]VISUALIZAR CADASTRO :\n");                printf("Digite a opcao: [  ]\b\b");                scanf("%d",&opcao);                fflush(stdin);                if(opcao==1)                {                    return(AlterarCliente());                }                if(opcao==2)                {                    break;                }                if(opcao==3)                {                    return(ApresentarCliente());                }                if(opcao!=2)                {                    printf("\nopcao Ivalida !!\n");                }            }        }while(achou==2);}}void PesquisarCPF(){   char pesquiCpf [12];   int indice =inicioLista ;    system("cls");    printf("\n                     DIGITE O CPF PARA LOCALIZAR O CADASTRO");    printf("\n                     ====================================\n\n");    scanf("%[0-9][^\n]",pesquiCpf);    fflush(stdin);    for(indice=0;indice<fimLista;indice++)    {        if(!strcmp(pesquiCpf,listaClientes[indice].cpf))        {            printf("\nCADASTRO ENCONTRADO \n\n");            printf("%s\n",listaClientes[indice].nome);        }      /*  else        {            Beep(1234,500); // o primeiro numero refere-se  a frequencia em Hertz e o segundo numero refere-se ao tempo em 1500 milisegundo de duração            printf("CLIENTE NAO ENCONTRADO!!! \n");        }*/   }   system("pause");}void IncluirPizza (){    system("cls");    system("color 0e");    printf("\n                             INSERIR PIZZA");    printf("\n                             ===============");    if(fimLista < QUANTIDADE_PIZZAS)    {        printf("\nCODIGO: ");        scanf("%[0-9][^\n]",listaPizzas[fimLista].codPizza);        fflush(stdin);        printf("\nNOME DA PIZZA: ");        scanf("%[^\n]",listaPizzas[fimLista].nomePizza);        strupr(listaPizzas[fimLista].nomePizza);        fflush(stdin);        printf("\nVALOR PARA PEQUENA: ");        scanf("%f",&listaPizzas[fimLista].VlPizza.pequena);        fflush(stdin);         printf("\nVALOR PARA MEDIA: ");        scanf("%f",&listaPizzas[fimLista].VlPizza.media);        fflush(stdin);         printf("\nVALOR PARA GRANDE: ");        scanf("%f",&listaPizzas[fimLista].VlPizza.grande);        fflush(stdin);         printf("\nVALOR PARA FAMILIA: ");        scanf("%f",&listaPizzas[fimLista].VlPizza.familia);        fflush(stdin);        fimLista++;        getchar();    }}void ApresentarSabores (){    system("color 0e");    int indice =0;    indice = inicioLista;    if(fimLista > 0)    {        system("cls");        printf("\n                             PIZZAS CADASTRADAS");        printf("\n                             ===============\n");        printf("\tCODIGO|\tNOME DA PIZZA|\tVALOR |P|   |M|  \t|G|\t|F|\n");         printf("_______________________________________________________________________\n");        for(indice=0;indice<fimLista;indice++)        {            printf("\t[%s]\t%s|    \t|%.2f|\t|%.2f| \t|%.2f| |%.2f|\n",listaPizzas[indice].codPizza,listaPizzas[indice].nomePizza,listaPizzas[indice].VlPizza.pequena,listaPizzas[indice].VlPizza.media,listaPizzas[indice].VlPizza.grande,listaPizzas[indice].VlPizza.familia);            printf("________________________________________________________________________\n");        }    }    else    {        printf("\nLista de sabores vazia \n");        getchar();    }    printf("\n\n");    getchar();}void InserirPedido(){    if (fimLista<QUANTIDADE_PEDIDOS)    {    system("color 0e");   system("cls");   ApresentarSabores();   printf("DIGITE O CODIGO DA PIZZA: \n");   scanf("%[^\n]",gerarPedidos[fimLista].codPizza);   fflush(stdin);   printf("DIGITE O VALOR DA PIZZA: \n");   scanf("%f",&gerarPedidos[fimLista].valorPizza);   fflush(stdin);  // printf("DIGITE O TAMANHO DA PIZZA \n"); // usar enum    char pesquiCpf [12];    int indice =inicioLista ;    printf("\n DIGITE O CPF PARA LOCALIZAR O CADASTRO: ");    scanf("%[0-9][^\n]",pesquiCpf);    fflush(stdin);    for(indice=0;indice<fimLista;indice++)    {        if(!strcmp(pesquiCpf,listaClientes[indice].cpf))        {            printf("\nCADASTRO ENCONTRADO \n\n");            printf("----------------------------------------------------\n");            printf("%s\n%s\n[%s][%s]%s\n",listaClientes[indice].nome,listaClientes[indice].cpf,listaClientes[indice].residencialTel.codInternacional,listaClientes[indice].residencialTel.codArea,listaClientes[indice].residencialTel.numeroTel);            printf("----------------------------------------------------\n");        }        else        {            Beep(1234,500); // o primeiro numero refere-se  a frequencia em Hertz e o segundo numero refere-se ao tempo em 1500 milisegundo de duração            printf("CLIENTE NAO ENCONTRADO!!! \n");            getchar();            return (InserirPedido());        }   printf("FORMA DE PAGAMENTO: \n");   scanf("[a-z][A-Z][^\n]",gerarPedidos[fimLista].tipoPagamento);   printf("DIGITE A DATA DO PEDIDO\n");   printf("DATA: \n");   scanf("%[0-9][^\n]",gerarPedidos[fimLista].DtPedido.dia);   fflush(stdin);   printf("MES: \n");   scanf("%[0-9][^\n]",gerarPedidos[fimLista].DtPedido.mes);   fflush(stdin);   printf("ANO: \n");   scanf("%[0-9][^\n]",gerarPedidos[fimLista].DtPedido.ano);   fflush(stdin);   fimLista++;    }    }   else    {        printf("LISTA CHEIA !!!!!");    }   getchar();}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×