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

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

parents 700d1d0c d2b3975d
No related branches found
No related tags found
No related merge requests found
#include <cstdio>
#include <cstdlib> #include <cstdlib>
#include <iostream> #include <iostream>
#include <limits>
#include "./sources/Biblioteca.hpp" #include "./sources/Biblioteca.hpp"
#include "./sources/Livro.hpp" #include "./sources/Livro.hpp"
...@@ -9,28 +11,82 @@ using namespace std; ...@@ -9,28 +11,82 @@ using namespace std;
typedef enum { typedef enum {
START, START,
LISTUSERS, ADDUSER, // Cadastrar usuario
QUERYFEES, LISTUSERS, // Listar usuarios
PAYFEES, QUERYFEES, // Listar multas de um usuario
PAYFEES, // Pagar multas de um usuario
ADDWORK, // Adicionar uma Obra
LISTWORKS, // Listar Obras
QUERYWORK, // Pesquisar Obra
BORROWWORK, // Emprestar Obra
RETURNWORK, // Devolver Obra
FINISH FINISH
} states; } states;
int show_options() { int show_options() {
int option; int option;
while (true) {
cout << endl; cout << endl;
cout << "> Entre com um comando:" << endl; cout << "> Entre com um comando:" << endl;
cout << "1 - Listar usuarios" << endl; cout << "1 - Cadastrar usuario " << endl;
cout << "2 - Consultar Multas" << endl; cout << "2 - Listar usuarios " << endl;
cout << "3 - Pagar Multa" << endl; cout << "3 - Listar multas de um usuario " << endl;
cout << "4 - Finalizar" << endl; cout << "4 - Pagar multas de um usuario " << endl;
cout << "> "; cout << "5 - Adicionar uma Obra " << endl;
cout << "6 - Listar Obras " << endl;
cout << "7 - Pesquisar Obra " << endl;
cout << "8 - Emprestar Obra " << endl;
cout << "9 - Devolver Obra " << endl;
cout << "10 - Finalizar programa " << endl;
cout << "-> ";
cin >> option; cin >> option;
// Check if the input is valid
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;
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;
}
}
return option; return option;
} }
//int show_options () {
// int option;
// while (true) {
// cout << endl;
// cout << "> Entre com um comando:" << endl;
// cout << "1 - Cadastrar usuario " << endl;
// cout << "2 - Listar usuarios " << endl;
// cout << "3 - Listar multas de um usuario " << endl;
// cout << "4 - Pagar multas de um usuario " << endl;
// cout << "5 - Adicionar uma Obra " << endl;
// cout << "6 - Listar Obras " << endl;
// cout << "7 - Pesquisar Obra " << endl;
// cout << "8 - Emprestar Obra " << endl;
// cout << "9 - Devolver Obra " << endl;
// cout << "10 - Finalizar programa " << endl;
// cout << "-> ";
// cin >> option;
// if (option >= 1 && option <= 10)
// break;
// }
//
// return option;
//}
int main(){ int main(){
system("clear"); system("clear");
...@@ -46,98 +102,87 @@ int main(){ ...@@ -46,98 +102,87 @@ int main(){
contUsuarios.adicionarUsuario("Marcus", "12345", "Casa", "9988", "marcus@gmail.com"); contUsuarios.adicionarUsuario("Marcus", "12345", "Casa", "9988", "marcus@gmail.com");
// Cria Obras // Cria Obras
cout << ": Criando Obras" << endl;
ControladorObras contObras = bib.getContObras(); 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(); // Cria Periodicos
cout << "> Criando Periodicos" << endl;
//// Interation Loop Periodico p("Revista de Ciência", 2023, 5, 3);
//int option = START; contObras.adicionarObra(p);
//while (option != FINISH) {
// option = show_options();
// string userCPF; int valor;
// switch (option) { // Cria Livros
// case LISTUSERS: cout << "> Criando Livros" << endl;
// contUsuarios.mostrarDetalhes(); Livro l("C++ Programming", 2022, "John Doe", "Tech Books");
// break; contObras.adicionarObra(l);
// case QUERYFEES: contObras.mostrarDetalhes();
// cout << "Entre com o CPF do usuário: "; cin >> userCPF;
// valor = contUsuarios.recuperarMultas(userCPF);
// if (valor > 0) {
// cout << "\nUsuario: " << userCPF << endl;
// cout << "Valor a pagar: " << valor << endl;
// } else {
// cout << "Aviso: Usuario não possui multas" << endl;
// }
// break;
// case PAYFEES:
// cout << "Entre com o CPF do usuário: "; cin >> userCPF;
// cout << "Entre com o valor a pagar: "; cin >> valor;
// contUsuarios.registrarMultaPaga(userCPF, valor);
// break;
// case FINISH:
// cout << "> Finalizando programa!" << endl;
// return 0;
// default: //cout << ": Criando Obras" << endl;
// cout << "Comando não reconhecido!" << endl; //ControladorObras contObras = bib.getContObras();
// break; //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();
return 0; // Interation Loop
int option = START;
while (option != FINISH) {
option = show_options();
string userCPF; int valor;
switch (option) {
case ADDUSER:
break;
case LISTUSERS:
contUsuarios.mostrarDetalhes();
break;
case QUERYFEES:
cout << "Entre com o CPF do usuário: "; cin >> userCPF;
valor = contUsuarios.recuperarMultas(userCPF);
if (valor > 0) {
cout << "\nUsuario: " << userCPF << endl;
cout << "Valor a pagar: " << valor << endl;
} else {
cout << "Aviso: Usuario não possui multas" << endl;
} }
break;
case PAYFEES:
cout << "Entre com o CPF do usuário: "; cin >> userCPF;
cout << "Entre com o valor a pagar: "; cin >> valor;
contUsuarios.registrarMultaPaga(userCPF, valor);
break;
case ADDWORK:
break;
//// Cria Obras case LISTWORKS:
//cout << "> Instanciando Controlador de Obras" << endl; contObras.mostrarDetalhes();
//ControladorObras contObras; break;
//cout << "> Criando Obras" << endl; case QUERYWORK:
//string titulo, tipo; int ano, qtDisp, total; break;
//for (int i=0; i<3 ;i++){
// cout << "Entre com o titulo da obra: "; cin >> titulo;
// cout << "Entre com o ano da obra: "; cin >> ano;
// cout << "Entre com o tipo da obra: "; cin >> tipo;
// cout << "Entre com a quantidade Disponivel: "; cin >> qtDisp;
// cout << "Entre com a quantidade Total: "; cin >> total;
//
// DescricaoObra descricao(titulo, ano);
// contObras.adicionarObra(tipo, descricao);
//}
//cout << "==> Instanciando uma Descricao de Obra: " << endl; case BORROWWORK:
//DescricaoObra desc("Mochileiro das galáxias", 1999); break;
//desc.mostrarDetalhes();
//cout << endl;
//cout << "==> Instanciando um Periodico: " << endl; case RETURNWORK:
//Periodico p("Revista de Ciência", 2023, 5, 3); break;
//p.mostrarDetalhes();
//cout << endl;
//cout << "==> Instanciando um Livro: " << endl; case FINISH:
//Livro l("C++ Programming", 2022, "John Doe", "Tech Books"); cout << "> Finalizando programa!" << endl;
//l.mostrarDetalhes(); return 0;
//cout << endl;
//cout << "==> Instanciando uma Obra: " << endl; default:
//int disponiveis = 10, total = 14; cout << "Comando não reconhecido!" << endl;
//Obra ob(desc, disponiveis, total); break;
//ob.mostrarDetalhes(); }
//cout << endl; }
//cout << "==> Instanciando o Controlador de Obras: " << endl; return 0;
//ControladorObras obras; }
...@@ -11,9 +11,10 @@ ControladorObras::ControladorObras() {} ...@@ -11,9 +11,10 @@ ControladorObras::ControladorObras() {}
// Method to display all Obras details // Method to display all Obras details
void ControladorObras::mostrarDetalhes() const { void ControladorObras::mostrarDetalhes() const {
cout << endl << "> LISTANDO OBRAS DO SISTEMA:" << endl << endl;
for (const auto& obra : this->obras) { for (const auto& obra : this->obras) {
obra.mostrarDetalhes(); obra.mostrarDetalhes();
cout << endl; cout << endl << "-----" << endl << endl;
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment