Ir para conteúdo
Fórum Script Brasil

Jeancarloss

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Posts postados por Jeancarloss

  1. 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();
    }
×
×
  • Criar Novo...