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

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

parents 4d2da1b9 117290d4
No related branches found
No related tags found
No related merge requests found
#include <cstdlib>
#include <iostream>
#include "./sources/ControladorUsuarios.hpp"
#include "./sources/ControladorObras.hpp"
#include "./sources/DescricaoObra.hpp"
#include "./sources/Biblioteca.hpp"
using namespace std;
......@@ -25,32 +24,23 @@ int show_options () {
cout << "3 - Pagar Multa" << endl;
cout << "4 - Finalizar" << endl;
cout << "> ";
cin >> option;
return option;
}
int main(){
system("clear");
// Cria Biblioteca
cout << "> Instanciando Biblioteca" << endl;
Biblioteca bib;
// Cria Usuarios
cout << "> Instanciando Controlador de Usuarios" << endl;
ControladorUsuarios contUsuarios;
ControladorUsuarios contUsuarios = bib.getContUsuarios();
cout << "> Criando Usuarios" << endl;
//string nome, CPF, endereco, telefone, email;
//for (int i=0; i<3 ;i++){
// cout << "Entre com o nome: "; cin >> nome;
// cout << "Entre com o CPF: "; cin >> CPF;
// cout << "Entre com o endereco: "; cin >> endereco;
// cout << "Entre com o telefone: "; cin >> telefone;
// cout << "Entre com o email: "; cin >> email;
// if (contUsuarios.adicionarUsuario(nome, CPF, endereco, telefone, email))
// cout << "> Usuario " << nome << " adicionado com sucesso" << endl;
// else
// cout << "> Falha ao adicionar o usuario " << nome << endl;
//}
contUsuarios.adicionarUsuario("Muriki", "12345", "Casa", "9999", "murikigy@gmail.com");
contUsuarios.adicionarUsuario("Nico", "54321", "Apartamento", "8888", "nico@gmail.com");
contUsuarios.adicionarUsuario("Marcus", "12345", "Casa", "9988", "marcus@gmail.com");
......@@ -72,6 +62,8 @@ int main(){
if (valor > 0) {
cout << "\nUsuario: " << userCPF << endl;
cout << "Valor a pagar: " << valor << endl;
} else {
cout << "Aviso: Usuario não possui multas" << endl;
}
break;
......@@ -84,6 +76,10 @@ int main(){
case FINISH:
cout << "> Finalizando programa!" << endl;
return 0;
default:
cout << "Comando não reconhecido!" << endl;
break;
}
}
......
#include "./Biblioteca.hpp"
// Constructor
Biblioteca::Biblioteca() {}
// Methods
ControladorObras Biblioteca::getContObras(){
return this->contObras;
}
ControladorUsuarios Biblioteca::getContUsuarios(){
return this->contUsuarios;
}
#ifndef __BIBLIOTECA__
#define __BIBLIOTECA__
#include "./ControladorUsuarios.hpp"
#include "./ControladorObras.hpp"
using namespace std;
class Biblioteca {
private:
ControladorUsuarios contUsuarios;
ControladorObras contObras;
public:
// Construtor
Biblioteca();
// Methods
ControladorObras getContObras();
ControladorUsuarios getContUsuarios();
};
......
......@@ -38,13 +38,45 @@ bool ControladorUsuarios::adicionarUsuario(string nome, string CPF, string ender
}
void ControladorUsuarios::registrarEmprestimo(string CPF, DescricaoObra descricao){
int ControladorUsuarios::registrarEmprestimo(string CPF, DescricaoObra descricao){
// Search for user
auto it = find_if(usuarios.begin(), usuarios.end(), [CPF](Usuario& u) {
return u.getCPF() == CPF;
});
if (it == usuarios.end()) {
cout << "> Erro: Usuario não encontrado" << endl;
return -1;
}
if (!it->emprestar(descricao)){
cout << "> Erro: Falha ao realizar um emprestimo" << endl;
return -1;
}
// Calcula data e retorna
return 0;
}
int ControladorUsuarios::retornarEmprestimo(string CPF, DescricaoObra descricao){
// Search for user
auto it = find_if(usuarios.begin(), usuarios.end(), [CPF](Usuario& u) {
return u.getCPF() == CPF;
});
if (it == usuarios.end()) {
cout << "> Erro: Usuario não encontrado" << endl;
return -1;
}
if (!it->devolver(descricao)){
cout << "> Erro: Falha ao realizar a devolução" << endl;
return -1;
}
return 0;
}
......
......@@ -20,7 +20,7 @@ class ControladorUsuarios {
// Methods
bool adicionarUsuario(string nome, string CPF, string endereco, string telefone, string email);
void registrarEmprestimo(string CPF, DescricaoObra descricao);
int registrarEmprestimo(string CPF, DescricaoObra descricao);
int retornarEmprestimo(string CPF, DescricaoObra descricao);
int recuperarMultas(string CPF);
bool registrarMultaPaga(string CPF, int valor);
......
......@@ -34,8 +34,8 @@ bool Usuario::devolver(DescricaoObra descricao){
// Increase fees
int Usuario::atualizarMulta(int valor){
return 0;
this->multas += valor;
return this->multas;
}
string Usuario::getCPF(){
......@@ -49,13 +49,13 @@ int Usuario::getMulta(){
bool Usuario::pagarMulta(int valor){
// Check if the user has fees
if (this->multas <= 0) {
cout << "> Aviso: Usuario não possui multas!" << endl;
cout << "> Aviso: Usuario não possui multas! Ignorando operação" << endl;
return false;
}
// Check if the value is suficient
if (this->multas > valor) {
cout << "> Error: Valor insuficiente para pagar as multas!" << endl;
cout << "> Erro: Valor insuficiente para pagar as multas!" << endl;
return false;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment