Ir para conteúdo
Fórum Script Brasil
  • 0

Minha lista encadeada não imprime. Alguém ajuda?


Jeancarloss

Pergunta

Sou inciante e estou treinando alguns conceitos básicos na faculdade sobre listas encadeadas com ponteiros.

Estou implementando uma lista onde quero fazer cadastro de moradores de um condomínio, onde serão cadastrados o nome e se possuem veículos dentro do apartamento.

Porém na hora que chamo a função imprimir(), simplesmente não acontece nada, embora eu ache que a lógica esteja certa.

Alguém pode me ajudar ?

Segue o código:

#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;
struct Morador
{
string nome;
string veiculo;
string placa;
string condominio;
Morador *proximo;
};
struct ListaMoradres
{
Morador *primeiro;
};
ListaMoradres lista; // CRIEI UMA LISTA GLOBAL, POIS QUERO QUE A LISTA CONTINUE COM OS CADASTROS MESMO APÓS O FIM DA EXECUÇÃO // DO MAIN (não SEI SE TA CERTO FAZER ISSO KKK)
void inciar()
{
lista.primeiro = nullptr;
}
void inserir_Morador()
{
string nome = "";
string veiculo = "";
string placa = "";
string condominio = "";
int op;
cout << "Digite o nome do morador\n";
cin >> nome;
cout << "\nPossui veiculo?\n1-SIM\t2-não\n";
cin >> op;
switch (op)
{
case 1:
cout << "Carro ou Moto? 1- CARRO\t2- MOTO\n";
cin >> op;
if (op == 1)
{
cout << "Digite placa:\n";
cin >> placa;
veiculo = "(Carro)";
break;
}
else
{
cout << "Digite placa\n";
cin >> placa;
veiculo = "Moto";
break;
}
case 2:
veiculo = "não possui";
break;
default:
cout << "Opcao invalida\n";
break;
}
}
if (lista.primeiro == nullptr)
{
Morador *primeiro_Morador = new Morador();
lista.primeiro = primeiro_Morador;
primeiro_Morador->nome = nome;
primeiro_Morador->veiculo = veiculo;
primeiro_Morador->placa = placa;
primeiro_Morador->condominio;
primeiro_Morador->proximo = nullptr;
cout << "Primeiro morador inserido com sucesso\n";
return;
}
else
{
Morador *ultimo = lista.primeiro;
while (ultimo->proximo != nullptr)
ultimo = ultimo->proximo;
Morador *novo = new Morador();
ultimo->proximo = novo;
novo->nome = nome;
novo->veiculo = veiculo;
novo->placa = placa;
novo->condominio = condominio;
novo->proximo = nullptr;
cout << "Morador inserido com sucesso\n";
return;
}
}
void imprimir()
{
Morador *inicio = lista.primeiro;
while (inicio->proximo != nullptr)
{
cout << "\nNome: "+inicio->nome << endl;
cout << "Veiculo: " + inicio->veiculo << endl;
cout << "Placa: " + inicio->placa << endl;
cout << "Condominio: " + inicio->condominio << endl;
inicio = inicio->proximo;
}
return;
}
int main()
{
int op;
cout << "1 - inciazlizar\t2 - inserir\t3 - imprimir\n";
cin >> op;
switch (op)
{
case 1:
inciar();
break;
case 2:
inserir_Morador();
break;
case 3:
imprimir();
break;
default:
cout << "Opcao invalida\n";
break;
}
main();
}
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...