startMiner - free and simple next generation Bitcoin mining software

terça-feira, 22 de dezembro de 2015

Criando cadastro de Pessoa em C++

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