Ir para conteúdo
Fórum Script Brasil
  • 0

Cadastro de clientes


maryT

Pergunta

Oi

Estou com dificuldades em resolver um exercicio, nesta lista o professor ainda não passou struct e funções, então desconsiderei estas soluções. E exercicio é o seguinte:

/* Faça um programa que armazena os dados referentes a clientes de um banco. Os dados dos clientes devem ser armazenados num array de inteiros (número máximo de clientes igual a 15). Os dados a serem armazenados para cada cliente são: numero de identificação (int), tipo de conta: 0-Ccorrente, 1-Cpoupança) e ano de criação da cta (ex 1995). O seu programa deve ter um menu com as seguintes opções:

1-Adiciona novo cliente;

2-Remove cliente (solicita o num de ident do cliente)

3-Mostra todos os clientes cadastrados

4-Sai do programa

*/

Está dando um erro: 41 request for member `id' in something not a structure or union. Não sei como resolver

Meu código está assim:

#include <stdio.h>
#include <stdlib.h>
# define max 2

int main(int argc, char *argv[])
{
  
  int CLIENTES [2][3], id, tipo, ano, opcao, i,j;
  
  while (opcao != 4)
  {
        printf("============= MENU : =====================");  
        printf("[1] - Adicionar novo cliente : \n");  
        printf("[2] - Renover cliente : \n");
        printf("[3] - Mostrar clientes cadastrados : \n");
        printf("[4] - Sair do programa : \n");  
        printf("Escolha uma opcao.\n");
        printf("==========================================");
        fflush(stdin);  scanf("%d", &opcao);
        
        switch(opcao)
        {
              case 1:
                   for (i=0; i<=max; i++)
                   {
                       printf("CADASTRO DE CLIENTE : \n");
                       for (j=0; j<=2; j++)
                       {
                           printf("Informe o numero de identificacao : \n");
                           scanf("%d", CLIENTES [i][0].id);
                       
                           printf("Informe o tipo de conta: 0-Cta Corrente ou 1-Cta Poupança :\n");
                           scanf("%d", &CLIENTES[i][1].tipo);
                       
                           printf("Informe o ano de criacao da conta: \n");
                           scanf("%d",&CLIENTES[i][2].ano);
                       }
                   }
                   break;
              case 2:
                   printf("Informe o numero de identificacao do cliente: ");
                   scanf("%d", &id);
                   strcpy(CLIENTE[i][j],id)
                   CLIENTE[i][j]=0;
                   break;
              case 3:
                   for (i=0; i<=max; i++)
                   {
                       printf("O nomero de identificacao do cliente é : %d\n ", CLIENTES [i][0].id); 
                       printf("O tipo de conta é : %d\n", CLIENTES [i][0].tipo);
                       printf("O ano da conta é : %d\n", CLIENTES [i][0].ano);   
                   }
                   break;
              case 4:
                   break;                              
        }
  }
  system("PAUSE");    
  return 0;
}

:blink: Alguém pode me socorrer???

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Você não está trabalhando com struct, mas ta tentando acessar os dados da matriz CLIENTES como se fosse.

"CLIENTES[ i ][1].tipo" só é usado em struct.

O que seu professor quer que você faça é uma matriz com 3 colunas e 15 linhas. Cada coluna armazena um atributo (identificação, tipo de conta e ano), e cada linha armazena um cliente (no total de 15).

Mas eu ainda não entendi como você queria que o computador entendesse algo do tipo "CLIENTES[ i ][1].id", visto que CLIENTES é uma variável, que é uma matriz, e id, tipo e ano são outras variáveis distintas, completamente diferente, que não tem relação nenhuma com a matriz. =P

Editado por Tozi
Link para o comentário
Compartilhar em outros sites

  • 0
Você não está trabalhando com struct, mas ta tentando acessar os dados da matriz CLIENTES como se fosse.

"CLIENTES[ i ][1].tipo" só é usado em struct.

O que seu professor quer que você faça é uma matriz com 3 colunas e 15 linhas. Cada coluna armazena um atributo (identificação, tipo de conta e ano), e cada linha armazena um cliente (no total de 15).

Mas eu ainda não entendi como você queria que o computador entendesse algo do tipo "CLIENTES[ i ][1].id", visto que CLIENTES é uma variável, que é uma matriz, e id, tipo e ano são outras variáveis distintas, completamente diferente, que não tem relação nenhuma com a matriz. =P

Tá,tava viajando, fiz o seguinte:

case 1:
                   for (i=0; i<=1; i++)
                   {                       
                           printf("CADASTRO DE CLIENTE : \n");
                      
                           printf("Informe o numero de identificacao : \n");
                           scanf("%d", &id);
                           CLIENTES [0]=id;
                       
                           printf("Informe o tipo de conta: 0-Cta Corrente ou 1-Cta Poupança :\n");
                           scanf("%d",&tipo );
                           CLIENTES[1]=tipo;
                           
                           printf("Informe o ano de criacao da conta: \n");
                           scanf("%d",&ano);
                           CLIENTES[2]=ano;                       
                   }
                   break;


até aqui deu certo, mas agora não to sabendo excluir um cadastro, o programa compila, eu consigo incluir os clientes, porém, ao escolher a opção 2 o programa pede o id para escluir e quando digito trava tudo...
Alguém pode me ajudar??
essa parte do código está assim:

case 2:
                   printf("Informe o numero de identificacao do cliente: ");
                   scanf("%d", &pId);
                   if (strcpy(CLIENTES[0],pId))
                   {
                      CLIENTES[j]=0;
                      printf("Cliente excluido.");
                   }
                   else
                   {
                       printf("Cliente não cadastrado.");    
                   }
                   break;

Editado por maryT
Link para o comentário
Compartilhar em outros sites

  • 0
O erro tá aqui: strcpy(CLIENTES[0],pId).

A função strcpy copia uma string para outra, CLIENTES é inteiro ai dá pau.

Acho que você queria comparar assim:

...
for(i=0; i<max; i++)  <= Acho que tem que ter esse for
{
    if (CLIENTES[i][0] == pId)
    ...
}

Sim, tens razão, para comparar é strcmp. Mas vou usar esse if aí.

Vlw! :rolleyes:

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...