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