Neste post vou mostrar como usar uma estrutura encadeada ou seja uma estrutura dentro de outra.
Muita gente que esta começando a programar em C++ e ate mesmo em outras linguagens tem dificuldade quando se começa a falar de estrutura . Nesse pequeno programa em C++ eu estou criando duas estruturas que vão receber os dados da pessoa e na outra o endereço , criei também as funções leitura que e nosso cadastro, exibir , buscar e ordenar e um menu para fica melhor a iteração com o usuário.
Siga o código a abaixo e em caso de duvidas comente que irei responder imediatamente.
#include "stdio.h"
#include "iostream"
using namespace std;
const int MAX=2;
struct ender{
char rua[30];
char bairro[20];
int num;
};
struct dado{
int RG;
char nome[30];
ender endereco;
};
void leitura(dado pessoa[]){
for(int i=0; i<MAX; i++){
cout<<"RG = ";
cin>>pessoa[i].RG;
cout<<"\nNome = ";
gets(pessoa[i].nome);
gets(pessoa[i].nome);
cout<<"\nRua = ";
gets(pessoa[i].endereco.rua);
//gets(pessoa[i].endereco.rua);
cout<<"\nNumero = ";
cin>>pessoa[i].endereco.num;
cout<<"\nBairro = ";
gets(pessoa[i].endereco.bairro);
gets(pessoa[i].endereco.bairro);
}
}
void exibir(dado pessoa[]){
cout<<"\n\nExibindo dados!"<<endl;
for(int i=0; i<MAX; i++){
cout<<"\nRG = "<<pessoa[i].RG<<endl;
cout<<"\nNome = "<<pessoa[i].nome<<endl;
cout<<"\nBairro = "<<pessoa[i].endereco.bairro<<endl;
cout<<"\nRua = "<<pessoa[i].endereco.rua<<endl;
cout<<"\nNumero = "<<pessoa[i].endereco.num<<endl;
}
}
int busca(dado pessoa[], int RGnovo){
for(int i=0; i<MAX; i++){
if(RGnovo == pessoa[i].RG){
return i;
}
}
return -1;
}
void ordenaRG(dado pessoa[]){
for(int i=0; i<MAX-1; i++){
for(int j=i+1; j<MAX; j++){
if(pessoa[i].RG>pessoa[j].RG){
dado aux;
aux = pessoa[i];
pessoa[i] = pessoa[j];
pessoa [j] = pessoa [i];
}
}
}
}
int menu(){
int op;
cout<<"\n 1- cadastrar";
cout<<"\n 2- exibir dados";
cout<<"\n 3- exibir dado de uma pessoa";
cout<<"\n 4- Sair";
cin>>op;
return op;
}
int main(){
dado pessoa[MAX];
int opc;
int pos;
do{
opc=menu();
system("cls");
switch(opc){
case 1:
leitura (pessoa);
break;
case 2:
exibir(pessoa);
break;
case 3:
cout<<"\nEntre com um RG a ser procurado = ";
int RGnovo;
cin>>RGnovo;
pos = busca(pessoa,RGnovo);
ordenaRG(pessoa);
if(pos!=-1){
cout<<"\nRG = "<<pessoa[pos].RG<<endl;
cout<<"\nNome = "<<pessoa[pos].nome<<endl;
cout<<"\nBairro = "<<pessoa[pos].endereco.bairro<<endl;
cout<<"\nRua = "<<pessoa[pos].endereco.rua<<endl;
cout<<"\nNumero = "<<pessoa[pos].endereco.num<<endl;
}
else
cout<<"\nRG nao encontrado!!"<<endl;
break;
case 4:
cout<< "SAINDO !!!"<<endl;
break;
default:
cout<<"Opçao invalida!"<<endl;
}
}while(opc!=4);
system("Pause");
return 0;
}
Bom galera o código e longo não esta comentado em caso de duvidas postem a e para que possarmos tirar a duvida ou ate mesmo melhorar o código.
Nenhum comentário:
Postar um comentário