Pages

segunda-feira, 11 de julho de 2016

Sistema de controle de estoque para uma revendedora usando estruturas em c.

Uma revendedora de veículos novos e seminovos precisa de um sistema para auxiliá-la a controlar seu estoque. Para isso, é necessário armazenar as seguintes  informações sobre os mesmos:
Modelo, Marca, Tipo (Carro, Caminhonete, Moto, etc), Preço e Ano de Fabricação.

O sistema deve exibir o seguinte menu:
       1-Cadastrar veículo
       2-Exibir veículos (Ao exibir os dados dos veículos, mostre também se ele é isento de IPVA –                  quando o carro tem 20 anos ou mais – ou se ainda paga imposto. Em cada um
           dos filtros abaixo, mostre o total de veículos exibidos.)
             1-Por tipo
             2-Por preço (Maior ou igual ao valor informado)
       0-Sair

#include<stdio.h>
#define T 3
#define ERRO_MENU "\n\n\n\t Opcao Incorreta! Escolha outra Opcao \n"
#define ERRO_C  "\n\n\tNao ha espaco para cadastrar mais veiculos\n"
#define ERRO_V "\n\n\t Nao ha veiculos cadastrados\n"

struct Veiculos{
char modelo[20],marca[20],tipo;
float preco;
int anoFabrica;
};

int menu();
char menuTipo();
struct Veiculos Cadastrar();
void exibir(struct Veiculos v);
int subMenu();
int queTipo(char t, struct Veiculos v);
int precoMaior(float p, struct Veiculos v);

int main(){
struct Veiculos v[T];
int opc,cont=0,aux;

do{
opc = menu();
switch(opc){
case 1:
if(cont<T){
v[cont] = Cadastrar();
cont++;
}
else
printf(ERRO_C);
getchar();
break;

case 2:{
if(cont>0){
int opc;

opc = subMenu();

switch(opc){
case 1:{
char tipo;
tipo = menuTipo();

printf("\t\t\n\n%c",tipo);
for(aux = 0;aux<cont;aux++){
if(queTipo(tipo,v[aux])){
exibir(v[aux]);
}
}
getch();
break;
}

case 2:{
float preco;
printf("\n\nInforme o valor para a pesquisa: ");
scanf("%f",&preco);
getchar();
for(aux = 0;aux<cont;aux++){
if(precoMaior(preco,v[aux])){
exibir(v[aux]);
}
}
getch();
break;
}

default :
printf(ERRO_MENU);
break;
}
}
else
printf(ERRO_V);

break;
case 0:
break;
default :
printf(ERRO_MENU);

break;
}

}

}while(opc!=0);

return 0;
}

int menu(){
int opc;
system("cls");
printf("1-Cadastrar veiculo\n2-Exibir veículos\n0-Sair");
scanf("%d",&opc);
getchar();
return opc;
}

int subMenu(){
int op;
do{
printf("1-Por tipo 2-Por preço ");
scanf("%d",&op);
getchar();
if(op<1 || op>2){
printf(ERRO_MENU);
getchar();
}
}while(op<1 || op >2);

return op;
}
char menuTipo(){
char tipo;
do{
printf("\nC-Carro\nA-Caminhonete\nM-Moto\nI-caminhao\n");
tipo = toupper(getchar());
if(tipo != 'C' && tipo != 'A' && tipo != 'M' && tipo != 'I'){
printf(ERRO_MENU);
getchar();
}
}while(tipo != 'C' && tipo != 'A' && tipo != 'M' && tipo != 'I');
return tipo;
}

struct Veiculos Cadastrar(){
struct Veiculos v;
printf("Informe o modelo: ");
gets(v.modelo);
printf("Informe a Marca: ");
gets(v.marca);
printf("Informe o Tipo: ");
v.tipo = menuTipo();
getchar();
printf("Informe o Preco");
scanf("%f",&v.preco);
printf("Informe o Ano de Fabricacao");
scanf("%d",&v.anoFabrica);
return v;
}

void exibir(struct Veiculos v){
printf("\n\n\t VEICULOS CADASTRADOS\n\n");
printf("MODELO   MARCA   TIPO  PRECO    ANO DE FABRICACAO\n %s  %s      %c    %.2f       %d     ",v.modelo, v.marca,v.tipo,v.preco,v.anoFabrica );

}
int queTipo(char t, struct Veiculos v){
return v.tipo == t;
}
int precoMaior(float p, struct Veiculos v){
return v.preco >= p;
}


Duvidas ou Trabalhos para fazer entre em Contato: marcofernando71@gmail.com

0 comentários:

Postar um comentário