diff --git a/sources/DescricaoObra.cpp b/sources/DescricaoObra.cpp index 6fb43ed0fc2387d9c45193692fff1ca42913d218..15cd5cf31cf1ca331c2f196efdecc1c7dd37012c 100644 --- a/sources/DescricaoObra.cpp +++ b/sources/DescricaoObra.cpp @@ -6,11 +6,14 @@ using namespace std; // Constructor DescricaoObra::DescricaoObra(const string& titulo, int ano) - : titulo(titulo), anoPublicacao(ano) {} + : titulo(titulo), anoPublicacao(ano) {} void DescricaoObra::mostrarDetalhes() const { - cout << "Título: " << this->getTitulo() << "\n"; - cout << "Ano de Publicação: " << this->getAnoPublicacao() << "\n"; + string titulo = this->getTitulo(); + int ano = this->getAnoPublicacao(); + + if (!titulo.empty()) { cout << "Título: " << titulo << "\n"; } + if (ano >= 0) { cout << "Ano de Publicação: " << ano << "\n"; } } // Methods diff --git a/sources/Emprestimo.cpp b/sources/Emprestimo.cpp index 324d276a5803dbd226a622096ff375c061fb90b8..99802f758a2c7883f0a42ca67d6ef9b92ddd6db4 100644 --- a/sources/Emprestimo.cpp +++ b/sources/Emprestimo.cpp @@ -23,7 +23,7 @@ Emprestimo::Emprestimo(shared_ptr<DescricaoObra> descricao) void Emprestimo::mostraDetalhes() const { this->descricao->mostrarDetalhes(); - cout << "Data de devolução: "; + cout << "> Data de devolução: "; cout << static_cast<unsigned>(this->dataEmprestimo.day()) << "/"; cout << static_cast<unsigned>(this->dataEmprestimo.month()) << "/"; cout << static_cast<int>(this->dataEmprestimo.year()) << endl; diff --git a/sources/Livro.cpp b/sources/Livro.cpp index 87d066307091c04525d7bb9199dc3e30990dded1..15abded32e2c14bd3bbb2bc3ad1566ea72816ece 100644 --- a/sources/Livro.cpp +++ b/sources/Livro.cpp @@ -21,8 +21,9 @@ Livro::Livro(const string& t, int ano, const string& a, const string& e) // Description void Livro::mostrarDetalhes() const { DescricaoObra::mostrarDetalhes(); - cout << "Autor: " << autor << "\n"; - cout << "Editora: " << editora << "\n"; + + if (!autor.empty()) { cout << "Autor: " << autor << "\n"; } + if (!editora.empty()) { cout << "Editora: " << editora << "\n"; } } // Methods @@ -32,4 +33,4 @@ string Livro::getAutor() const { string Livro::getEditora() const { return this->editora; -} \ No newline at end of file +} diff --git a/sources/Periodico.cpp b/sources/Periodico.cpp index ce93ab52e07609c7f9eb52ba66dee1ff2596c2ec..720d815df75cfc3f61a5439d27312c2e081b5e55 100644 --- a/sources/Periodico.cpp +++ b/sources/Periodico.cpp @@ -2,6 +2,8 @@ #include "Periodico.hpp" +using namespace std; + // Contructor Periodico::Periodico(const DescricaoObra& outro) : DescricaoObra(outro.getTitulo(), outro.getAnoPublicacao()) @@ -18,8 +20,9 @@ Periodico::Periodico(const std::string& t, int ano, int vol, int m) void Periodico::mostrarDetalhes() const { DescricaoObra::mostrarDetalhes(); - std::cout << "Volume: " << volume << "\n"; - std::cout << "Mês: " << mes << "\n"; + + if (volume >= 0) { cout << "Volume: " << volume << "\n"; } + if (mes >= 0) { cout << "Mês: " << mes << "\n"; } } // Methods @@ -29,4 +32,4 @@ int Periodico::getVolume() const { int Periodico::getMes() const { return this->mes; -} \ No newline at end of file +} diff --git a/sources/main.cpp b/sources/main.cpp index 07e91be596fc5d32acef901c68daf89b908b7b27..bae1dfda5d34343c21104414bea6ad2ffcaedc3e 100644 --- a/sources/main.cpp +++ b/sources/main.cpp @@ -186,12 +186,12 @@ int main(){ cout << "Método de busca (titulo|autor): "; cin >> tipoBusca; cin.ignore(); if (tipoBusca == "titulo"){ cout << "Entre com o titulo: "; getline(cin, titulo); - dadosObra = contObras.pesquisarObraTitulo(make_shared<Livro>(titulo, 0, "dummy", "dummy")); + dadosObra = contObras.pesquisarObraTitulo(make_shared<Livro>(titulo, -1, "", "")); cout << "Quantidade Total: " << dadosObra.first << endl; cout << "Quantidade Disponivel: " << dadosObra.second << endl; } else if (tipoBusca == "autor"){ cout << "Entre com o autor: "; getline(cin, autor); - dadosObra = contObras.pesquisarObraAutor(make_shared<Livro>("dummy", 0, autor, "dummy")); + dadosObra = contObras.pesquisarObraAutor(make_shared<Livro>("", -1, autor, "")); cout << "Quantidade Total: " << dadosObra.first << endl; cout << "Quantidade Disponivel: " << dadosObra.second << endl; } else { cerr << "> Erro: Tipo não reconhecido! ignorando operacao" << endl; } @@ -201,7 +201,7 @@ int main(){ case BORROWWORK: cout << "Entre com o CPF do usuário: "; cin >> userCPF; cin.ignore(); cout << "Entre com o titulo: "; getline(cin, titulo); - dataDevolucao = contUsuarios.registrarEmprestimo(userCPF, make_shared<Periodico>(titulo, 0, 0, 0)); + dataDevolucao = contUsuarios.registrarEmprestimo(userCPF, make_shared<Periodico>(titulo, -1, -1, -1)); if ( dataDevolucao == epoch) { cerr << "> Erro: Falha ao realizar um emprestimo!" << endl; } else {