diff --git a/biblioteca.cpp b/biblioteca.cpp index 7c285768a8e23875e083442843586a77357c706c..a9bd62aad062db9f280f1f2313362066ae85e2fa 100644 --- a/biblioteca.cpp +++ b/biblioteca.cpp @@ -1,12 +1,12 @@ -#include <cstdio> -#include <cstdlib> #include <iostream> +#include <string> #include <limits> #include "./sources/Biblioteca.hpp" #include "./sources/Livro.hpp" #include "./sources/Periodico.hpp" + using namespace std; @@ -92,37 +92,32 @@ int main(){ contObras.mostrarDetalhes(); - //cout << ": Criando Obras" << endl; - //ControladorObras contObras = bib.getContObras(); - //string titulo, autor, editora; int ano; - //for (int i=0; i<2 ;i++) { - // cin >> titulo; cin >> ano; cin >> autor; cin >> editora; - // Livro liv(titulo, ano, autor, editora); - // contObras.adicionarObra(liv); - //} - //contObras.mostrarDetalhes(); - // Interation Loop int option = START; while (option != FINISH) { option = show_options(); + + // Variaveis para usuario string nome, userCPF, endereco, telefone, email; - string tipoObra; int valor; + // Variaveis para obras + string tipoObra, tipoBusca; + string titulo, autor, editora; + int ano, volume, mes; + switch (option) { case ADDUSER: - cout << "Entre com o nome: "; cin >> nome; - cout << "Entre com o CPF: "; cin >> userCPF; + cout << "Entre com o nome: "; cin >> nome; + cout << "Entre com o CPF: "; cin >> userCPF; cout << "Entre com o endereco: "; cin >> endereco; cout << "Entre com o telefone: "; cin >> telefone; - cout << "Entre com o email: "; cin >> email; + cout << "Entre com o email: "; cin >> email; if (contUsuarios.adicionarUsuario(nome, userCPF, endereco, telefone, email)) cout << "> Usuario adicionado com sucesso!" << endl; break; - case LISTUSERS: - contUsuarios.mostrarDetalhes(); + case LISTUSERS: contUsuarios.mostrarDetalhes(); break; case QUERYFEES: @@ -132,7 +127,7 @@ int main(){ cout << "\nUsuario: " << userCPF << endl; cout << "Valor a pagar: " << valor << endl; } else { - cout << "Aviso: Usuario não possui multas" << endl; + cout << "> Aviso: Usuario não possui multas" << endl; } break; @@ -143,29 +138,83 @@ int main(){ break; case ADDWORK: - //contObras.adicionarObra(DescricaoObra &descricao); + 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; + Periodico per(titulo, ano, volume, mes); + contObras.adicionarObra(per); + } 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); + Livro liv(titulo, ano, autor, editora); + contObras.adicionarObra(liv); + } else { + cout << "Erro: Tipo não recinhecido! Ignorando operação" << endl; + } break; - case LISTWORKS: - contObras.mostrarDetalhes(); + case LISTWORKS: contObras.mostrarDetalhes(); break; case QUERYWORK: - cout << "Entre com o tipo da obra: "; cin >> tipoObra; + cout << "Entre com o tipo da obra (periodico|livro): "; cin >> tipoObra; cin.ignore(); if (tipoObra == "periodico") { - cout << "Alguma coisa"; + cout << "Método de busca (titulo|tituloano): "; + cin >> tipoBusca; } else if (tipoObra == "livro") { - cout << "Alguma coisa"; + cout << "Método de busca (titulo|autor): "; + cin >> tipoBusca; + } else { + cout << "Erro: Tipo não reconhecido! Ignorando operação" << endl; } //contObras.pesquisarObra(DescricaoObra &descricao); break; case BORROWWORK: - //contObras.solicitarEmprestimo(DescricaoObra &descricao); + 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; + Periodico per(titulo, ano, volume, mes); + contObras.solicitarEmprestimo(per); + } 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); + Livro liv(titulo, ano, autor, editora); + contObras.solicitarEmprestimo(liv); + } else { + cout << "Erro: Tipo não reconhecido! Ignorando operação" << endl; + } break; case RETURNWORK: - //contObras.devolverEmprestimo(DescricaoObra &descricao); + 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; + Periodico per(titulo, ano, volume, mes); + contObras.devolverEmprestimo(per); + } 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); + Livro liv(titulo, ano, autor, editora); + contObras.devolverEmprestimo(liv); + } else { + cout << "Erro: Tipo não reconhecido! Ignorando operação" << endl; + } break; case FINISH: diff --git a/sources/DescricaoObra.hpp b/sources/DescricaoObra.hpp index a58d412a563dcc6121d04b4826006b0f9c837b62..7e839f07425c923198ce5e104bd3a9c0dd7d24b7 100644 --- a/sources/DescricaoObra.hpp +++ b/sources/DescricaoObra.hpp @@ -17,7 +17,7 @@ class DescricaoObra { // Contructor DescricaoObra() {}; DescricaoObra(const string& tipo, const string& titulo, int ano); - virtual void mostrarDetalhes() const = 0; + virtual void mostrarDetalhes() const; // Methods string getTitulo() const ;