Ir ao conteúdo
  • Cadastre-se

Ajuda aqui


fdsmello

Posts recomendados

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();}

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