Skip to content
Snippets Groups Projects
Commit 00809fc3 authored by Nico's avatar Nico
Browse files

Merge branch 'main' of gitlab.c3sl.ufpr.br:mgy20/Design-biblioteca

parents 17fa48e9 65383d40
No related branches found
No related tags found
No related merge requests found
#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;
......@@ -48,14 +48,14 @@ int show_options() {
if (cin.fail()) {
cin.clear(); // Clear the error flag
cin.ignore(numeric_limits<streamsize>::max(), '\n'); // Ignore the invalid input
cout << "Entrada inválida! Por favor, insira um número entre 1 e 10." << endl;
cout << "> Entrada inválida! Por favor, insira um número entre 1 e 10." << endl;
continue; // Restart the loop
}
// Check if the option is within the valid range
if (option >= 1 && option <= 10) { break; } // Valid option, exit the loop
else {
cout << "Opção inválida! Por favor, insira um número entre 1 e 10." << endl;
cout << "> Opção inválida! Por favor, insira um número entre 1 e 10." << endl;
}
}
......@@ -92,24 +92,20 @@ 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;
......@@ -121,8 +117,7 @@ int main(){
cout << "> Usuario adicionado com sucesso!" << endl;
break;
case LISTUSERS:
contUsuarios.mostrarDetalhes();
case LISTUSERS: contUsuarios.mostrarDetalhes();
break;
case QUERYFEES:
......@@ -131,9 +126,7 @@ int main(){
if (valor > 0) {
cout << "\nUsuario: " << userCPF << endl;
cout << "Valor a pagar: " << valor << endl;
} else {
cout << "Aviso: Usuario não possui multas" << endl;
}
} else { cout << "> Aviso: Usuario não possui multas" << endl; }
break;
case PAYFEES:
......@@ -143,29 +136,75 @@ 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:
......@@ -173,7 +212,7 @@ int main(){
return 0;
default:
cout << "Comando não reconhecido!" << endl;
cout << "> Comando não reconhecido!" << endl;
break;
}
}
......
......@@ -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 ;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment