segunda-feira, 7 de junho de 2010

Codigo Fonte em C / C++ Listas

#include
#include
int sair();
int main(){
struct aluno{
char nome[50];
int idade;
struct aluno *prox;
};
struct aluno *primeiro, *atual, *ultimo;
primeiro=NULL;
char nome[50]="";
int idade=0;
// incluindo
do{
std::cout<<"Nome: ";std::cin.getline(nome,50);
std::cout<<"Idade: ";std::cin>>idade;
atual=(struct aluno *)malloc(sizeof(struct aluno));
strcpy(atual->nome,nome);
atual->idade=idade;
atual->prox=NULL;
if(primeiro==NULL){
primeiro=atual;
}else{
ultimo->prox=atual;
}
ultimo=atual;
if(sair()) break;
}while(true);

// listando
std::cout<<"\n\n";
atual=primeiro;
do{
std::cout<<"\nNome: "<nome;
std::cout<<"\nidade: "<idade<atual=atual->prox;
}while(atual!=NULL);

// excluindo
std::cout<<"Entre com um nome para excluir: ";
std::cin.getline(nome,50);
atual=primeiro;
while(atual!=NULL){
if(strcmp(primeiro->nome,nome)==0){
primeiro=primeiro->prox;
break;
}else{
if(atual->prox!=NULL)
if(strcmp((atual->prox)->nome,nome)==0){
if((atual->prox)->prox==NULL){
ultimo=atual;
ultimo->prox=NULL;
atual->prox=NULL;
break;
}else{
atual->prox=(atual->prox)->prox;
break;
}
}
}
atual=atual->prox;
}
std::cout<<"\n\n";
atual=primeiro;
do{
std::cout<<"\nNome: "<nome;
std::cout<<"\nidade: "<idade<atual=atual->prox;
}while(atual!=NULL);

// alterando
std::cout<<"Entre com um nome para Alterar: ";
std::cin.getline(nome,50);
atual=primeiro;
while(atual!=NULL){
if(strcmp(atual->nome,nome)==0){
std::cout<<"Nome: ";std::cin.getline(atual->nome,50);
std::cout<<"Idade: ";std::cin>>atual->idade;
break;
}
atual=atual->prox;
}
std::cout<<"\n\n";
atual=primeiro;
do{
std::cout<<"\nNome: "<nome;
std::cout<<"\nidade: "<idade<atual=atual->prox;
}while(atual!=NULL);
std::cin.get();std::cin.get();
return 0;
}

int sair(){
char resp;
std::cout<<"Deseja encerrar (s/n): ";
std::cin>>resp;
fflush(stdin);
if(resp=='S'||resp=='s')
return 1;
else
return 0;
}




Nenhum comentário:

Postar um comentário