Skip to content
Snippets Groups Projects
Commit d2b3975d authored by mgy20's avatar mgy20
Browse files

Implementado interface com usuario

parent cc2d178a
Branches
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.cpp" #include "./sources/Periodico.hpp"
#include "./sources/Livro.hpp"
using namespace std; 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 +103,87 @@ int main(){ ...@@ -46,98 +103,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