Briga com struct ...
Boa noite galera,
Estou tendo na faculdade programação em C/C++ e tenho um exercício para resolver.
Preciso montar um algoritmo com uma pequeno menu que armazena até 10 registros, sendo eles: placa, marca, modelo e valor.
É preciso utilizar struct ... :upset:
O exercício também pede para que as variáveis placas sejam inicializadas com 0, esse valor irá indicar que o campo está livre para cadastro. Quando um registro for efetuado pelo usuário, o algoritmo deverá verificar se há campos livres, placa = 0, se tiver, ele permite o usuário efetuar o registro, caso contrário, avisa que todos os campos estão preenchidos.
Alguém poderia me dar uma força com esse algoritmo?!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//Declaração das variáveis e da estrutura
int i, op;
//Os tipos das variáveis e tamanho dos campos foram estipulados pelo exercício
struct automoveis {
char placa[8];
char marca[50];
char modelo[50];
float valor;
};
struct automoveis banco[10];
// Função para inserir
void inserir() {
//Verifica pelo indice se a posição está livre
for(i = 0; i < 10; i++) {
if(banco[i].placa == "0000000") {
break;
}
}
//Verifica pelo valor de i se estão todos preenchido ou não
if(i != 9){
printf("\t Placa: ");
scanf("%s", &banco[i].placa);
printf("\t Marca: ");
scanf("%s", &banco[i].marca);
printf("\t Modelo: ");
scanf("%s", &banco[i].modelo);
printf("\t Valor: ");
scanf("%f", &banco[i].valor);
} else {
printf("\t Todas as posicoes estao preenchidas!");
}
printf("\n\t ");
system("pause");
op = 0;
system("cls");
}
// Função para exibir
void mostrar() {
printf("\t Placa: ");
printf("\t Marca: ");
printf("\t Modelo: ");
printf("\t Valor: \n");
//Lista todos os registros efetuados, ou seja, somente aqueles com placa diferente de 0
for(i = 0; i < 10; i++) {
if(banco[i].placa != "0000000") {
printf("\t %s", banco[i].placa);
printf("\t %s", banco[i].marca);
printf("\t\t %s", banco[i].modelo);
printf("\t\t %.2f \n", banco[i].valor);
}
}
printf("\n\t ");
system("pause");
system("cls");
}
//Função principal
int main() {
//Preenche todos os campos placa com o caracter 0
for(i = 0; i < 10; i++) {
banco[i].placa = "0000000";
}
//Mantem o menu ativo
while(op != 3){
printf("\n\t MENU PRINCIPAL \n\n");
printf("\t 1 - Inserir \n");
printf("\t 2 - Mostrar \n");
printf("\t 3 - Sair \n\n");
printf("\t Escolha uma opcao: ");
scanf("%d", &op);
switch(op) {
case 1: printf("\n\t I N S E R I R \n\n");
inserir();
break;
case 2: printf("\n\t M O S T R A R \n\n");
mostrar();
break;
case 3: printf("\n\t Sistema encerrado!");
printf("\t ");
break;
default: printf("\n\t Opcao invalida. \n");
}
}
printf("\n\n\t ");
system("pause");
return 0;
}Mais uma vez, obrigado pela ajuda!
Discussão (6)
Carregando comentários...