Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Desafio: personalizando um construtor

Olá Pessoal, tudo bem? estou com uma duvida no meu codigo, esta apresentando total de livros em uso 3, sendo que so tem 2 livros registrado acredito ser erro de logica mas não estou conseguindo encontrar se alguem poder me dar um Help eu agradeço

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

3 respostas
solução!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Biblioteca.Usuarios
{
    public class Usuario
    {
        public string NomeLeitor { get; set; }
        public string Cpf { get; set; }
        public string Email { get; set; }

        public static int TotalDeLeitor { get; private set; }


        public Usuario(string cpf)
       {
            this.Cpf = cpf;
            TotalDeLeitor++;
       }

    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Biblioteca.VitrineDosLivros
{
    public class Livro : Livros
    {
        public Livro(string ISBN, string Titulo) : base(ISBN, Titulo)
        {

        }

        public override int GetTotalDeLeitor()
        {
            TotalDeLivros++;
            return TotalDeLivros;

        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection.Metadata.Ecma335;
using System.Text;
using System.Threading.Tasks;

namespace Biblioteca.VitrineDosLivros
{
    public abstract class Livros
    {
        public string Titulo { get;  set; }
        public string Autor { get; set; }
        public string EstiloLiterario { get; set; }
        public int NumeroDePaginas { get; set; }
        public string PaisDeOrigem { get; set; }
        public int AnoPublicacao { get; set; }
        public string ISBN { get; set; }

        public int QuantidadeUsuarios { get; set; }
        public int QuantidadeLivrosEmprestados { get; set; }

        public abstract int GetTotalDeLeitor();


        public Livros(string ISBN , string Titular)
        {
            this.ISBN = ISBN;
            this.Titulo = Titular;

        }

        public static int TotalDeLivros { get; set; }

    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection.Metadata.Ecma335;
using System.Text;
using System.Threading.Tasks;

namespace Biblioteca.VitrineDosLivros
{
    public class GerenciadorDeLivros
    {
        public int TotalDeLivros { get; set; }

        public void Registrar(Livros livros) 
        {
            this.TotalDeLivros += livros.GetTotalDeLeitor();
        }

        public void MotrarStatusLivro(Livros  Livro)
        {
            Console.WriteLine($"Livro: {Livro.Titulo}");
            Console.WriteLine($"Quantidade de exemplares emprestados: {Livro.QuantidadeLivrosEmprestados}");
            Console.WriteLine($"Quantidade de usuários com o livro emprestado: {Livro.QuantidadeUsuarios}");
        }

    }
}



using Biblioteca;
using Biblioteca.Usuarios;
using Biblioteca.VitrineDosLivros;

Usuario leitor1 = new Usuario("123456");
leitor1.NomeLeitor = "Joaquim";
leitor1.Email = "Joaquim@ficticio.com";

Usuario leitor2 = new Usuario("3221655");
leitor2.NomeLeitor = "Manoel";
leitor2.Email = "manoel@ficticio.com";

Livro livro1 = new Livro("9781234567809 ", "Como a onda do Mar");
livro1.Autor = "Tiririca Souza";
livro1.NumeroDePaginas = 900;
livro1.EstiloLiterario = "Romance";
livro1.AnoPublicacao = 2023;
livro1.PaisDeOrigem = "Brasil";

Livro livro2 = new Livro("97888888809 ", "Programação C Sharp");
livro2.Autor = "Mark";
livro2.NumeroDePaginas = 500;
livro2.EstiloLiterario = "Tecnologia";
livro2.AnoPublicacao = 2023;
livro2.PaisDeOrigem = "Brasil";

GerenciadorDeLivros gerenciador = new GerenciadorDeLivros();
gerenciador.Registrar(livro1);
gerenciador.Registrar(livro2);


Console.WriteLine("Nome do Leitor: " + leitor1.NomeLeitor);
Console.WriteLine("Nome do livro: " + livro1.Titulo);
Console.WriteLine("ISBN: " + livro1.ISBN);

Console.WriteLine("Nome do Leitor: " + leitor2.NomeLeitor);
Console.WriteLine("Nome do livro: " + livro2.Titulo);
Console.WriteLine("ISBN: " + livro2.ISBN);


Console.WriteLine("Total de leitores: " + Usuario.TotalDeLeitor);
Console.WriteLine("Total de livros: " + Livros.TotalDeLivros);
Console.WriteLine("Total de livros em uso: " + gerenciador.TotalDeLivros);

Olá Vagner, Bom dia!

Camarada, olhando no debug quando o compilador passa pelo Registrar de 1 pulava para 3, ele estava fazendo um incremento a mais, ai alterando para:

 public void Registrar(Livros livros) 
        {
            this.TotalDeLivros = livros.GetTotalDeLeitor();
        }

funcionou! Mas continue com os testes blz?! Espero que tenha ajudado e, qualquer coisa, estamos à disposição!

Abraços e bons estudos 😄


Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Obrigado Professor! uma ótima semana. xD