Ir ao conteúdo
  • Cadastre-se

Daniel Ferreira Ribeiro

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

Reputação

2
  1. Pessoal, preciso criar um código seguindo essa base: "Suponha a necessidade de cadastrar clientes de uma loja. Por ser uma loja nova e com produtos inovadores, pouco se sabe do mercado a ser atingido, sendo assim, não se sabe a quantidade de clientes poderão ser cadastrados. Estima-se, inicialmente, em 10 clientes. Cada cliente terá os seguintes campos: - nome (suponha um nome com, no máximo, 30 caracteres) - ano de nascimento - montante de gastos realizados no mês (quanto o clinte pagou em suas compras dentro do mês corrente) Para tanto, o sistema deverá oferecer as seguintes funcionalidades: - incluir um novo cliente - remover cliente - atualizar o montante de compras do cliente realizadas no mês corrente - zerar todos os montantes de compras por ocasião da virada de mês - listar o cliente melhor comprador - exibir um montante de compras de um cliente específico. O programa deverá, ainda, prever a situação que a quantidade de clientes a ser cadastrados supere a previsão inicial. Neste caso, quando o espaço de memória destinado a receber dados dos clientes estiver cheia, deve-se ampliar esse espaço – sempre em blocos de 10." algo mais ou menos assim: typedef struct Lista lista; struct Lista { char nome[81]; char telefone[15]; char celular[15]; char endereco[101]; }; Mas não sei como faço para criar um vetor de struct que armazene em cada posição um struct de cliente e realocar quando atingir o limite, alguém dá um help?
  2. @arfneto Mas e se eu colocar todo esse código dentro de um loop de 'for', daria certo? Meu prazo pra realizar a atividade é muito pouco e sou iniciante :(((((
  3. Fiz esse código referente a essa atividade: "é necessário armazenar informações de no máximo, 10 veículos. Cada um deles precisa ter esses dados: - marca - ano de fabricação - placa no formato XXX-YYYY Precisa ter essas funcionalidades: Listar os veículos cadastrados Inserir um novo veículo Listar os veículos filtrando-se por ano de fabricação Listar os veículos com o ano de fabricação acima de um certo valor especificado pelo usuário Listar os veículos filtrando-se pelo modelo. O sistema deverá armazenar os veículos ordenados pelo ano de fabricação, ou seja, ao inserir um novo veículo, este deve ser inserido em ordem crescente de ano de fabricação." Mas estou encontrando dificuldade pois preciso que o programa não encerre após o cadastro dos 10 veículos e volte para o menu onde escolhe as opções, pois preciso que ele faça a leitura dos dados mesmo se os 10 já estiverem cadastrados e o mesmo está fechando, não tenho ideia do que posso fazer... Tem algumas variáveis perdidas no código sem uso pois estava tentando arrumar Segue o código. #include <iostream> #include <string.h> #include <conio.h> #include <stdio.h> #include <stdlib.h> #include <locale.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ typedef struct carro { int codigo; char marca [20]; char modelo [20]; int ano; char placa[10]; }carro; carro car[10]; int main(int argc, char** argv) { setlocale(LC_ALL,"portuguese"); int i; int op; int ano; int z; int ano2; int b; char modelo[20]; z=0; ano=0; i=0; car[i].codigo = 0; strcpy(car[i].marca,"NULL"); strcpy(car[i].modelo,"NULL"); strcpy(car[i].placa,"NULL"); car[i].ano = 0; car[b].ano = 0; do { printf(" ======================================== "); printf("\n MENU CADASTRO DE VEÍCULOS\n"); printf(" ======================================== "); printf("\n OPÇÕES:"); printf("\n 1. |CADASTRAR NOVO VEÍCULO"); printf("\n 2. |LISTAR TODOS OS VEÍCULOS"); printf("\n 3. |FILTRAR VEÍCULO POR MODELO"); printf("\n 4. |LISTAR VEÍCULOS A PARTIR DE UM ANO"); printf("\n 5. |LISTAR VEÍCULO DE UM ANO DE FABRICAÇÃO ESPECÍFICO"); printf("\n 6. |SAIR\n"); printf(" ======================================== "); printf("\n \n DIGITE O NÚMERO DA OPÇÃO DESEJADA: "); scanf(" %d",&op); switch(op){ case 1: if (car[i].codigo<=9) { car[i].codigo=i; printf("\n Digite a marca do veículo: "); scanf(" %s",&car[i].marca); printf("\n Digite o modelo do veículo: "); scanf(" %s",&car[i].modelo); printf("\n Digite a placa do veículo (ex: XXX-YYYY): "); scanf(" %s",&car[i].placa); printf("\n Digite o ano do veículo *(somente números): "); scanf(" %d",&car[i].ano); printf("\n"); i=i+1; } else { printf("\n O limite máximo de cadastro de veículos foi atingido."); } break; case 2: for(int x=0; x<i; x++) { printf("\n A marca do veículo é: %s",car[x].marca); printf("\n O modelo do veículo é: %s",car[x].modelo); printf("\n O ano do veículo é: %d",car[x].ano); printf("\n A placa do veículo é: %s",car[x].placa); printf("\n\n =================================== \n \n"); } break; case 3: printf("\n INSIRA O MODELO A SER PESQUISADO:"); scanf(" %s",&modelo); for (int x=0; x<i; x++) { if (strcmp(car[x].modelo,strlwr(modelo)) == 0) { printf("\n A marca do veículo é: %s",car[x].marca); printf("\n O modelo do veículo é: %s",car[x].modelo); printf("\n O ano do veículo é: %d",car[x].ano); printf("\n A placa do veículo é: %s",car[x].placa); printf("\n\n =================================== \n \n"); z++; } } if (z==0) { printf("\n NÃO FOI ENCONTRADO O MODELO %s \n\n",modelo); } else { z=0; } break; case 4: printf("\n INSIRA O ANO A SER PESQUISADO:"); scanf(" %d",&ano); for (int x=0; x<i; x++) { if (car[x].ano >= ano) { printf("\n A marca do veículo é: %s",car[x].marca); printf("\n O modelo do veículo é: %s",car[x].modelo); printf("\n O ano do veículo é: %d",car[x].ano); printf("\n A placa do veículo é: %s",car[x].placa); printf("\n\n =================================== \n \n"); z++; } } if (z==0) { printf("\n NÃO FOI ENCONTRADO VEÍCULOS ACIMA DE %d \n\n",ano); } else { z=0; } break; case 5: printf("DIGITE O ANO DE FABRICAÇÃO A SER PESQUISADO:"); scanf("%d",&ano2); for (int x=0; x<i; x++){ if (car[x].ano==ano2) { printf("\n\n =================================== \n \n"); printf("\n OS VEÍCULOS ENCONTRADOS NO ANO %d",ano2); printf("\n\n =================================== \n \n"); printf("\n A marca do veículo é: %s",car[x].marca); printf("\n O modelo do veículo é: %s",car[x].modelo); printf("\n O ano do veículo é: %d",car[x].ano); printf("\n A placa do veículo é: %s",car[x].placa); printf("\n\n =================================== \n \n"); z++; } } if (z==0){ printf("NÃO FORAM ENCONTRADOS VEÍCULOS CADASTRADOS COM O ANO DE FABRICAÇÃO ESPECIFICADO.\n"); } else{ z=0; } break; case 6: exit(0); default: printf("\n *Opção não existe, digite novamente.*\n\n"); break; } } while (op!=6 && i<=9); if (i==9) { printf("\n \n LIMITE DE VEÍCULOS ALCANÇADO! \n \n \n"); } for (int y=0; y<i; y++) { printf("\n A marca do veículo é: %s",car[y].marca); printf("\n O modelo do veículo é: %s",car[y].modelo); printf("\n O ano do veículo é: %d",car[y].ano); printf("\n A placa do veículo é: %s",car[y].placa); printf("\n\n =================================== \n \n"); } return 0; }

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