Você está na página 1de 5

#include <cstdlib>

#include <iostream>
#include <string.h>

using namespace std;
struct Animal{
char nome[20];
int idade;
double preco;
};//no esquecer o ponto e virgula da estrutura

Animal vetGlobalAnimais[1000];// vetor variavel global de 1000 posies (0 a
999)(qualquer subalgoritmo pode acessar ela ou creio que uma funcao)
int vIndiceGlobal; //Indice (segunda variavel global)

int geraMenu(){ // criando menu com opcoes que retorna um inteiro com a opcao
cout<<"Menu: \n";
cout<<"1 - Adicionar novo animal";
cout<<"\n2 - Listar todos os animais";
cout<<"\n3 - Pesquisar por nome";
cout<<"\n4 - Sair";
cout<<"\n\n Digite a opcao escolhida: ";
int vOpcao; //variavel que armazena qual opcao o usuario digitou
cin>> vOpcao; //variavel interna do GeraMenu()
return (vOpcao); //quando mandar solicitar o GeraMenu vai retornar a opcao dentro do int
main()
}

/*OBJEITO CONSTRUIR SISTEMAS MODULARIZADOS
TIRAR A COMPLEXIDADE do int main() CHAMANDO SUBALGORITMOS(FUNES) */

void adicionaAnimal (){//no vai chamar nada ento usa o void(vazio)
if (vIndiceGlobal < 1000){ //condio para no ultrapassar o limite de 0 a 999 animais
cadastrados
cout<<"\n\n Adicionando um novo animal: \n\n";
Animal vAnimalBuffer; //criando variavel do tipo Animal lembrando que Animal o nome
do titulo STRUCT ;;criando animal uma representao do animal
cout<<"Digite o nome do animal: ";//comea com as informaes
fflush (stdin);//limpar o buffer do teclado BUFFER --> AMORTECEDOR, PARA-CHOQUE
gets (vAnimalBuffer.nome); //captar o nome no teclado;; FUNCAO que chama uma string
get(obter, adquirir) aquilo que foi digitado no teclado
cout<<"Digite a idade do animal: ";
cin>> vAnimalBuffer.idade;
cout<<"Digite o preco do animal: ";
cin>> vAnimalBuffer.preco;

vetGlobalAnimais[vIndiceGlobal] = vAnimalBuffer;//colocando o a variavel vIndiceGlobal
no indice do vetGlobalAnimais
vIndiceGlobal++;//incrementando a cada posicao e informando qual o espao livre
cout<<"\n\nAnimal adicionado com sucesso. \n\n";
}else{
cout<<"\n\n Limite de animais Cadastrados Ultrapassado. \n\n";
}//fim else
}//fim da funo adicionaAnimal

void listarTodosAnimais(){ //void por que no vai me retornar nenhum valor
cout<<"\n\nListando todos os animais cadastrados: \n";
int i;
for (i=0; i < vIndiceGlobal; i++){
cout<< "Posicao: "<< i <<"\n"<< " Nome: "<< vetGlobalAnimais[i].nome << "\n"<<"
Idade: "<<vetGlobalAnimais[i].idade << "\n"<<" Preco: "<<vetGlobalAnimais[i].preco<<"\n";
//i exibe o indice, vetGlobalAnimais[i].nome exibe o nome e assim respectivamente

}//fim do for
}//fim da funcao listarTodosAnimais()

void pesquisarPorNomes(){
cout<<"\n\nPequisa por Nomes: \n\n";
char vExpressaoBusca [20];
cout<<"Digite a expressao de busca para nomes: ";
fflush (stdin);
gets (vExpressaoBusca);
int i;
for (i=0; i < vIndiceGlobal; i++){
if (strcasecmp (vExpressaoBusca, vetGlobalAnimais[i].nome) == 0){

/*na biblioteca string.h tem dois metodos de comparao (strcmp e strcasecmp)
o segundo nao faz diferenciao de maiusculo e minisculo o que esta usando
e ser passado dois parametros para fazer a comparao*/

cout<< "Posicao: "<< i <<"\n"<< " Nome: "<< vetGlobalAnimais[i].nome << "\n"<<"
Idade: "<<vetGlobalAnimais[i].idade << "\n"<<" Preco: "<<vetGlobalAnimais[i].preco<<"\n";
//i exibe o indice, vetGlobalAnimais[i].nome exibe o nome e assim respectivamente

//no faz um else(senao)
}//fim do if
}//fim do for
}//fim da funcao pesquisaPorNomes

int main(int argc, char *argv[]){
vIndiceGlobal = 0; //comeca em zero; zerando a variavel global (ela vai informar qual a
proxima posicao disponivel para armazenar animais na variavel)
int vOpcao;

while (true){ //o programa vai ser um loop (lao) tipo bool (verdadeiro ou falso) enquanto
for verdadeiro executa

system ("cls");//para gerar;; LIMPA TELA PARA MIM NO COMEO POR QUE ELE LIMPA
EXECUTA O LAO E DEPOIS LIMPA NOVAMENTE

vOpcao = geraMenu(); //GeraMenu foi criado como subalgoritmo

switch (vOpcao){ //escolha caso
case 1: //
adicionaAnimal ();
system ("PAUSE");
break;
case 2: //
listarTodosAnimais();
system ("PAUSE");
break;
case 3: //pesquisa por nome
pesquisarPorNomes();
system ("PAUSE");
break;
case 4:
exit (0);
break; //seria necessario o break?
default : //omisso, falta
cout<<"\n\nOpcao invalida. \nTente novamente.\n\n";
system ("PAUSE");//para o usuario ler na tela
break;// nao seria necessario a parada pelo fato do default
}//fim do escolha caso (switch)
}//fim do enquanto (while)
system("PAUSE");
return EXIT_SUCCESS;
}