diff --git a/TDD/biblioteca_test b/TDD/biblioteca_test deleted file mode 100755 index 3a4c1c6d6330dca4ef5b9cc62c030c98b4500d76..0000000000000000000000000000000000000000 Binary files a/TDD/biblioteca_test and /dev/null differ diff --git a/sources/ControladorObras.cpp b/sources/ControladorObras.cpp index 1d17dbd488f71cbf424bb3c535a7cb2a0cd313a2..116e164b45d97b17ad8a31382c39eb1890ec6b9a 100644 --- a/sources/ControladorObras.cpp +++ b/sources/ControladorObras.cpp @@ -59,6 +59,7 @@ bool ControladorObras::solicitarEmprestimo(shared_ptr<DescricaoObra> descricao){ }); if (it_obra == this->obras.end()) { + cerr << "> Erro: Obra não encontrada!" << endl; return false; } diff --git a/sources/ControladorUsuarios.cpp b/sources/ControladorUsuarios.cpp index 04fd341a10845f26ed6fcc1c1eaf7e17a0d71b03..e2d92dd9f30c52dd0193b623a10df99cba203372 100644 --- a/sources/ControladorUsuarios.cpp +++ b/sources/ControladorUsuarios.cpp @@ -58,9 +58,6 @@ chrono::year_month_day ControladorUsuarios::registrarEmprestimo(string CPF, shar } chrono::year_month_day dataDevolucao = user_it->emprestar(descricao); - if (int(dataDevolucao.year()) == 0 && unsigned(dataDevolucao.month()) == 0 && unsigned(dataDevolucao.day()) == 0) { - cerr << "> Erro: Falha ao realizar um emprestimo" << endl; - } return dataDevolucao; } diff --git a/sources/DescricaoObra.cpp b/sources/DescricaoObra.cpp index ed32a486795bb4123ea47b7eae9cf3fa253fecf8..6fb43ed0fc2387d9c45193692fff1ca42913d218 100644 --- a/sources/DescricaoObra.cpp +++ b/sources/DescricaoObra.cpp @@ -1,8 +1,6 @@ #include <iostream> #include "DescricaoObra.hpp" -#include "Livro.hpp" -#include "Periodico.hpp" using namespace std; @@ -22,4 +20,4 @@ string DescricaoObra::getTitulo() const { int DescricaoObra::getAnoPublicacao() const { return this->anoPublicacao; -} \ No newline at end of file +} diff --git a/sources/Obra.cpp b/sources/Obra.cpp index db17acc4ff35dd1cab5e1be5d35615727ae662d4..e6c47bcdfc1cf3d0488f369035ee47b3249c70e0 100644 --- a/sources/Obra.cpp +++ b/sources/Obra.cpp @@ -2,8 +2,6 @@ #include "Obra.hpp" #include "DescricaoObra.hpp" -#include "Livro.hpp" -#include "Periodico.hpp" // Constructor Obra::Obra(shared_ptr<DescricaoObra> descricao) @@ -22,6 +20,7 @@ bool Obra::emprestar(){ return true; } + cerr << "> Erro: Não existem obras disponíveis!" << endl; return false; } diff --git a/sources/Usuario.cpp b/sources/Usuario.cpp index f790963754768a29c62fe5fbab6fd245adaebfe7..5a881efb7cb182c858a750beec0d70ab5bffcdaa 100644 --- a/sources/Usuario.cpp +++ b/sources/Usuario.cpp @@ -54,7 +54,7 @@ bool Usuario::devolver(shared_ptr<DescricaoObra> descricao){ }); if (emp_it == this->emprestimos->end()){ - cerr << "Erro: Obra não encontrada nos emprestimos do Usuário!" << endl; + cerr << "> Erro: Obra não encontrada nos emprestimos do Usuário!" << endl; return false; } diff --git a/sources/main.cpp b/sources/main.cpp index 973e49d519ac14bb608a999af9ab092f8814e69b..906134d7b5f451953dd8869cd72b1d8a94ded881 100644 --- a/sources/main.cpp +++ b/sources/main.cpp @@ -74,12 +74,12 @@ int main(){ // Cria Usuarios cout << "> Criando Usuarios" << endl; - ControladorUsuarios contUsuarios = bib.getContUsuarios(); + ControladorUsuarios& contUsuarios = bib.getContUsuarios(); contUsuarios.adicionarUsuario("Muriki", "12345", "Casa", "9999", "murikigy@gmail.com"); contUsuarios.adicionarUsuario("Nico", "54321", "Apartamento", "8888", "nico@gmail.com"); // Cria Obras - ControladorObras contObras = bib.getContObras(); + ControladorObras& contObras = bib.getContObras(); // Cria Periodicos cout << "> Criando Periodicos" << endl; @@ -127,7 +127,7 @@ int main(){ cout << "\nUsuario: " << userCPF << endl; cout << "Valor a pagar: " << valor << endl; } else if (valor == 0) { cout << "> Aviso: Usuario não possui multas" << endl; } - else { cout << "> Erro: Usuario não encontrado" << endl; } + else { cout << "> Erro: Usuario não encontrado!" << endl; } break; case PAYFEES: @@ -139,20 +139,20 @@ int main(){ case ADDWORK: cout << "Entre com o tipo da obra (periodico|livro): "; cin >> tipoObra; cin.ignore(); if (tipoObra == "periodico") { - cout << "Entre com o titulo: "; getline(cin, titulo); - cout << "Entre com o ano: "; cin >> ano; - cout << "Entre com o volume: "; cin >> volume; - cout << "Entre com o mês: "; cin >> mes; + cout << "Entre com o titulo: "; getline(cin, titulo); + cout << "Entre com o ano: "; cin >> ano; + cout << "Entre com o volume: "; cin >> volume; + cout << "Entre com o mês: "; cin >> mes; contObras.adicionarObra(make_shared<Periodico>(titulo, ano, volume, mes)); cout << "> Obra adicionada!" << endl; } else if (tipoObra == "livro") { - cout << "Entre com o titulo: "; getline(cin, titulo); - cout << "Entre com o ano: "; cin >> ano; cin.ignore(); - cout << "Entre com o autor: "; getline(cin, autor); - cout << "Entre com o editora: "; getline(cin, editora); + cout << "Entre com o titulo: "; getline(cin, titulo); + cout << "Entre com o ano: "; cin >> ano; cin.ignore(); + cout << "Entre com o autor: "; getline(cin, autor); + cout << "Entre com o editora: "; getline(cin, editora); contObras.adicionarObra(make_shared<Livro>(titulo, ano, autor, editora)); cout << "> Obra adicionada!" << endl; - } else { cout << "Erro: Tipo não reconhecido! Ignorando operação" << endl; } + } else { cout << "> Erro: Tipo não reconhecido! Ignorando operação" << endl; } break; case LISTWORKS: contObras.mostrarDetalhes(); @@ -166,53 +166,48 @@ int main(){ } else if (tipoObra == "livro") { cout << "Método de busca (titulo|autor): "; cin >> tipoBusca; - } else { cout << "Erro: Tipo não reconhecido! Ignorando operação" << endl; } + } else { cout << "> Erro: Tipo não reconhecido! Ignorando operação" << endl; } //contObras.pesquisarObra(DescricaoObra &descricao); break; case BORROWWORK: - cout << "Entre com o CPF do usuário: "; cin >> userCPF; + cout << "Entre com o CPF do usuário: "; cin >> userCPF; cout << "Entre com o tipo da obra (periodico|livro): "; cin >> tipoObra; cin.ignore(); if (tipoObra == "periodico") { - cout << "Entre com o titulo: "; getline(cin, titulo); - cout << "Entre com o ano: "; cin >> ano; - cout << "Entre com o volume: "; cin >> volume; - cout << "Entre com o mês: "; cin >> mes; - chrono::year_month_day devolucao = contUsuarios.registrarEmprestimo(userCPF, make_shared<Periodico>(titulo, ano, volume, mes)); + cout << "Entre com o titulo: "; getline(cin, titulo); + chrono::year_month_day devolucao = contUsuarios.registrarEmprestimo( + userCPF, make_shared<Periodico>(titulo, 0, 0, 0)); if (int(devolucao.year()) == 0 && unsigned(devolucao.month()) == 0 && unsigned(devolucao.day()) == 0) { - cerr << "> Erro: Falha ao realizar um emprestimo" << endl; - } + cerr << "> Erro: Falha ao realizar um emprestimo!" << endl; + } else { cout << "> Emprestimo realizado com sucesso!" << endl; } } else if (tipoObra == "livro") { - cout << "Entre com o titulo: "; getline(cin, titulo); - cout << "Entre com o ano: "; cin >> ano; cin.ignore(); - cout << "Entre com o autor: "; getline(cin, autor); - cout << "Entre com o editora: "; getline(cin, editora); - chrono::year_month_day devolucao = contUsuarios.registrarEmprestimo(userCPF, make_shared<Livro>(titulo, ano, autor, editora)); + cout << "Entre com o titulo: "; getline(cin, titulo); + chrono::year_month_day devolucao = contUsuarios.registrarEmprestimo( + userCPF, make_shared<Livro>(titulo, 0, "dummy", "dummy")); if (int(devolucao.year()) == 0 && unsigned(devolucao.month()) == 0 && unsigned(devolucao.day()) == 0) { - cerr << "> Erro: Falha ao realizar um emprestimo" << endl; - } - } else { cout << "Erro: Tipo não reconhecido! Ignorando operação" << endl; } + cerr << "> Erro: Falha ao realizar um emprestimo!" << endl; + } else { cout << "> Emprestimo realizado com sucesso!" << endl; } + } else { cout << "> Erro: Tipo não reconhecido! Ignorando operação" << endl; } break; case RETURNWORK: + cout << "Entre com o CPF do usuário: "; cin >> userCPF; cout << "Entre com o tipo da obra (periodico|livro): "; cin >> tipoObra; cin.ignore(); if (tipoObra == "periodico") { - cout << "Entre com o titulo: "; getline(cin, titulo); - cout << "Entre com o ano: "; cin >> ano; - cout << "Entre com o volume: "; cin >> volume; - cout << "Entre com o mês: "; cin >> mes; - //contObras.devolverEmprestimo(make_shared<Periodico>(titulo, ano, volume, mes)); + cout << "Entre com o titulo: "; getline(cin, titulo); + if (contUsuarios.retornarEmprestimo(userCPF, make_shared<Periodico>(titulo, 0, 0, 0)) < 0){ + cout << "> Devolução realizada com sucesso!" << endl; + } } else if (tipoObra == "livro") { - cout << "Entre com o titulo: "; getline(cin, titulo); - cout << "Entre com o ano: "; cin >> ano; cin.ignore(); - cout << "Entre com o autor: "; getline(cin, autor); - cout << "Entre com o editora: "; getline(cin, editora); - //contObras.devolverEmprestimo(make_shared<Livro>(titulo, ano, autor, editora)); - } else { cout << "Erro: Tipo não reconhecido! Ignorando operação" << endl; } + cout << "Entre com o titulo: "; getline(cin, titulo); + if (contUsuarios.retornarEmprestimo(userCPF, make_shared<Livro>(titulo, 0, "dummy", "dummy")) < 0){ + cout << "> Devolução realizada com sucesso!" << endl; + } + } else { cout << "> Erro: Tipo não reconhecido! Ignorando operação" << endl; } break; case FINISH: @@ -228,3 +223,56 @@ int main(){ return 0; } + +// case BORROWWORK: +// cout << "Entre com o CPF do usuário: "; cin >> userCPF; +// cout << "Entre com o tipo da obra (periodico|livro): "; cin >> tipoObra; cin.ignore(); +// if (tipoObra == "periodico") { +// cout << "Entre com o titulo: "; getline(cin, titulo); +// cout << "Entre com o ano: "; cin >> ano; +// cout << "Entre com o volume: "; cin >> volume; +// cout << "Entre com o mês: "; cin >> mes; +// chrono::year_month_day devolucao = contUsuarios.registrarEmprestimo( +// userCPF, make_shared<Periodico>(titulo, 0, 0, 0)); +// if (int(devolucao.year()) == 0 && +// unsigned(devolucao.month()) == 0 && +// unsigned(devolucao.day()) == 0) { +// cerr << "> Erro: Falha ao realizar um emprestimo" << endl; +// } else { cout << "> Emprestimo realizado com sucesso!" << endl; } +// } else if (tipoObra == "livro") { +// cout << "Entre com o titulo: "; getline(cin, titulo); +// cout << "Entre com o ano: "; cin >> ano; cin.ignore(); +// cout << "Entre com o autor: "; getline(cin, autor); +// cout << "Entre com o editora: "; getline(cin, editora); +// chrono::year_month_day devolucao = contUsuarios.registrarEmprestimo( +// userCPF, make_shared<Livro>(titulo, 0, "dummy", "dummy")); +// if (int(devolucao.year()) == 0 && +// unsigned(devolucao.month()) == 0 && +// unsigned(devolucao.day()) == 0) { +// cerr << "> Erro: Falha ao realizar um emprestimo" << endl; +// } else { cout << "> Emprestimo realizado com sucesso!" << endl; } +// } else { cout << "> Erro: Tipo não reconhecido! Ignorando operação" << endl; } +// break; +// +// case RETURNWORK: +// cout << "Entre com o CPF do usuário: "; cin >> userCPF; +// cout << "Entre com o tipo da obra (periodico|livro): "; cin >> tipoObra; cin.ignore(); +// if (tipoObra == "periodico") { +// cout << "Entre com o titulo: "; getline(cin, titulo); +// cout << "Entre com o ano: "; cin >> ano; +// cout << "Entre com o volume: "; cin >> volume; +// cout << "Entre com o mês: "; cin >> mes; +// if (contUsuarios.retornarEmprestimo(userCPF, make_shared<Periodico>(titulo, 0, 0, 0)) < 0){ +// cout << "> Devolução realizada com sucesso!" << endl; +// } +// } else if (tipoObra == "livro") { +// cout << "Entre com o titulo: "; getline(cin, titulo); +// cout << "Entre com o ano: "; cin >> ano; cin.ignore(); +// cout << "Entre com o autor: "; getline(cin, autor); +// cout << "Entre com o editora: "; getline(cin, editora); +// if (contUsuarios.retornarEmprestimo(userCPF, make_shared<Livro>(titulo, 0, "dummy", "dummy")) < 0){ +// cout << "> Devolução realizada com sucesso!" << endl; +// } +// } else { cout << "> Erro: Tipo não reconhecido! Ignorando operação" << endl; } +// break; +//