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

Adicionado implementação da classe Biblioteca

parent 83d8f781
Branches
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