Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
D
Design-Biblioteca
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Nico Ramos
Design-Biblioteca
Commits
00408d02
Commit
00408d02
authored
7 months ago
by
Nico
Browse files
Options
Downloads
Plain Diff
Merge branch 'main' of gitlab.c3sl.ufpr.br:mgy20/Design-biblioteca
parents
8b1e47b2
83d8f781
No related branches found
No related tags found
No related merge requests found
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
main.cpp
+87
-32
87 additions, 32 deletions
main.cpp
sources/ControladorUsuarios.cpp
+30
-7
30 additions, 7 deletions
sources/ControladorUsuarios.cpp
sources/Usuario.cpp
+20
-5
20 additions, 5 deletions
sources/Usuario.cpp
sources/Usuario.hpp
+1
-1
1 addition, 1 deletion
sources/Usuario.hpp
with
138 additions
and
45 deletions
main.cpp
+
87
−
32
View file @
00408d02
...
@@ -9,10 +9,27 @@ using namespace std;
...
@@ -9,10 +9,27 @@ using namespace std;
typedef
enum
{
typedef
enum
{
START
,
START
,
LISTUSERS
,
QUERYFEES
,
PAYFEES
,
FINISH
FINISH
}
states
;
}
states
;
int
show_options
()
{
int
option
;
cout
<<
endl
;
cout
<<
"> Entre com um comando:"
<<
endl
;
cout
<<
"1 - Listar usuarios"
<<
endl
;
cout
<<
"2 - Consultar Multas"
<<
endl
;
cout
<<
"3 - Pagar Multa"
<<
endl
;
cout
<<
"4 - Finalizar"
<<
endl
;
cout
<<
"> "
;
cin
>>
option
;
return
option
;
}
int
main
(){
int
main
(){
// Cria Usuarios
// Cria Usuarios
...
@@ -20,38 +37,78 @@ int main(){
...
@@ -20,38 +37,78 @@ int main(){
ControladorUsuarios
contUsuarios
;
ControladorUsuarios
contUsuarios
;
cout
<<
"> Criando Usuarios"
<<
endl
;
cout
<<
"> Criando Usuarios"
<<
endl
;
string
nome
,
CPF
,
endereco
,
telefone
,
email
;
//string nome, CPF, endereco, telefone, email;
for
(
int
i
=
0
;
i
<
3
;
i
++
){
//for (int i=0; i<3 ;i++){
cout
<<
"Entre com o nome: "
;
cin
>>
nome
;
// cout << "Entre com o nome: "; cin >> nome;
cout
<<
"Entre com o CPF: "
;
cin
>>
CPF
;
// cout << "Entre com o CPF: "; cin >> CPF;
cout
<<
"Entre com o endereco: "
;
cin
>>
endereco
;
// cout << "Entre com o endereco: "; cin >> endereco;
cout
<<
"Entre com o telefone: "
;
cin
>>
telefone
;
// cout << "Entre com o telefone: "; cin >> telefone;
cout
<<
"Entre com o email: "
;
cin
>>
email
;
// cout << "Entre com o email: "; cin >> email;
if
(
contUsuarios
.
adicionarUsuario
(
nome
,
CPF
,
endereco
,
telefone
,
email
))
// if (contUsuarios.adicionarUsuario(nome, CPF, endereco, telefone, email))
cout
<<
"> Usuario "
<<
nome
<<
" adicionado com sucesso"
<<
endl
;
// cout << "> Usuario " << nome << " adicionado com sucesso" << endl;
else
// else
cout
<<
"Falha ao adicionar o usuario "
<<
nome
<<
endl
;
// 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"
);
// Interation Loop
int
option
=
START
;
while
(
option
!=
FINISH
)
{
option
=
show_options
();
string
userCPF
;
int
valor
;
switch
(
option
)
{
case
LISTUSERS
:
contUsuarios
.
mostrarDetalhes
();
contUsuarios
.
mostrarDetalhes
();
break
;
case
QUERYFEES
:
cout
<<
"Entre com o CPF do usuário: "
;
cin
>>
userCPF
;
valor
=
contUsuarios
.
recuperarMultas
(
userCPF
);
if
(
valor
>
0
)
{
cout
<<
"
\n
Usuario: "
<<
userCPF
<<
endl
;
cout
<<
"Valor a pagar: "
<<
valor
<<
endl
;
}
break
;
// Cria Obras
case
PAYFEES
:
cout
<<
"> Instanciando Controlador de Obras"
<<
endl
;
cout
<<
"Entre com o CPF do usuário: "
;
cin
>>
userCPF
;
ControladorObras
contObras
;
cout
<<
"Entre com o valor a pagar: "
;
cin
>>
valor
;
contUsuarios
.
registrarMultaPaga
(
userCPF
,
valor
);
cout
<<
"> Criando Obras"
<<
endl
;
break
;
string
titulo
,
tipo
;
int
ano
,
qtDisp
,
total
;
for
(
int
i
=
0
;
i
<
3
;
i
++
){
case
FINISH
:
cout
<<
"Entre com o titulo da obra: "
;
cin
>>
titulo
;
cout
<<
"> Finalizando programa!"
<<
endl
;
cout
<<
"Entre com o ano da obra: "
;
cin
>>
ano
;
return
0
;
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
);
}
}
return
0
;
}
//// Cria Obras
//cout << "> Instanciando Controlador de Obras" << endl;
//ControladorObras contObras;
//cout << "> Criando Obras" << endl;
//string titulo, tipo; int ano, qtDisp, total;
//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;
//cout << "==> Instanciando uma Descricao de Obra: " << endl;
//DescricaoObra desc("Mochileiro das galáxias", 1999);
//DescricaoObra desc("Mochileiro das galáxias", 1999);
//desc.mostrarDetalhes();
//desc.mostrarDetalhes();
...
@@ -76,5 +133,3 @@ int main(){
...
@@ -76,5 +133,3 @@ int main(){
//cout << "==> Instanciando o Controlador de Obras: " << endl;
//cout << "==> Instanciando o Controlador de Obras: " << endl;
//ControladorObras obras;
//ControladorObras obras;
return
0
;
}
This diff is collapsed.
Click to expand it.
sources/ControladorUsuarios.cpp
+
30
−
7
View file @
00408d02
#include
<iostream>
#include
<iostream>
#include
<algorithm>
#include
"./ControladorUsuarios.hpp"
#include
"./ControladorUsuarios.hpp"
#include
"Usuario.hpp"
using
namespace
std
;
using
namespace
std
;
...
@@ -20,12 +22,14 @@ void ControladorUsuarios::mostrarDetalhes() const {
...
@@ -20,12 +22,14 @@ void ControladorUsuarios::mostrarDetalhes() const {
bool
ControladorUsuarios
::
adicionarUsuario
(
string
nome
,
string
CPF
,
string
endereco
,
bool
ControladorUsuarios
::
adicionarUsuario
(
string
nome
,
string
CPF
,
string
endereco
,
string
telefone
,
string
email
){
string
telefone
,
string
email
){
// Check if the user does not exist
// Check if the user does not exist
for
(
auto
&
usuario
:
this
->
usuarios
)
{
auto
it
=
find_if
(
this
->
usuarios
.
begin
(),
this
->
usuarios
.
end
(),
[
CPF
](
Usuario
&
u
)
{
if
(
usuario
.
getCPF
()
==
CPF
){
return
u
.
getCPF
()
==
CPF
;
cout
<<
"Erro: Usuario com esse CPF já existe, ignorando inserção"
<<
endl
;
});
if
(
it
!=
this
->
usuarios
.
end
()){
cout
<<
"> Erro: Usuario com esse CPF já existe, ignorando inserção"
<<
endl
;
return
false
;
return
false
;
}
}
}
// Create and add a new user
// Create and add a new user
Usuario
u
(
nome
,
CPF
,
endereco
,
telefone
,
email
);
Usuario
u
(
nome
,
CPF
,
endereco
,
telefone
,
email
);
...
@@ -47,12 +51,31 @@ int ControladorUsuarios::retornarEmprestimo(string CPF, DescricaoObra descricao)
...
@@ -47,12 +51,31 @@ int ControladorUsuarios::retornarEmprestimo(string CPF, DescricaoObra descricao)
int
ControladorUsuarios
::
recuperarMultas
(
string
CPF
){
int
ControladorUsuarios
::
recuperarMultas
(
string
CPF
){
// Search for user
auto
it
=
find_if
(
usuarios
.
begin
(),
usuarios
.
end
(),
[
CPF
](
Usuario
&
u
)
{
return
u
.
getCPF
()
==
CPF
;
});
return
0
;
if
(
it
==
usuarios
.
end
())
{
cout
<<
"> Erro: Usuario não encontrado"
<<
endl
;
return
-
1
;
}
return
it
->
getMulta
();
}
}
bool
ControladorUsuarios
::
registrarMultaPaga
(
string
CPF
,
int
valor
){
bool
ControladorUsuarios
::
registrarMultaPaga
(
string
CPF
,
int
valor
){
return
true
;
// 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
false
;
}
return
it
->
pagarMulta
(
valor
);
}
}
This diff is collapsed.
Click to expand it.
sources/Usuario.cpp
+
20
−
5
View file @
00408d02
...
@@ -8,7 +8,7 @@ using namespace std;
...
@@ -8,7 +8,7 @@ using namespace std;
Usuario
::
Usuario
(
const
string
&
nome
,
const
string
&
cpf
,
const
string
&
end
,
Usuario
::
Usuario
(
const
string
&
nome
,
const
string
&
cpf
,
const
string
&
end
,
const
string
&
tel
,
const
string
&
email
)
const
string
&
tel
,
const
string
&
email
)
:
nome
(
nome
),
CPF
(
cpf
),
endereco
(
end
),
telefone
(
tel
),
email
(
email
)
{
:
nome
(
nome
),
CPF
(
cpf
),
endereco
(
end
),
telefone
(
tel
),
email
(
email
)
{
this
->
multas
=
0
;
this
->
multas
=
1
0
;
}
}
void
Usuario
::
mostrarDetalhes
()
const
{
void
Usuario
::
mostrarDetalhes
()
const
{
...
@@ -32,6 +32,7 @@ bool Usuario::devolver(DescricaoObra descricao){
...
@@ -32,6 +32,7 @@ bool Usuario::devolver(DescricaoObra descricao){
return
0
;
return
0
;
}
}
// Increase fees
int
Usuario
::
atualizarMulta
(
int
valor
){
int
Usuario
::
atualizarMulta
(
int
valor
){
return
0
;
return
0
;
...
@@ -42,12 +43,26 @@ string Usuario::getCPF(){
...
@@ -42,12 +43,26 @@ string Usuario::getCPF(){
}
}
int
Usuario
::
getMulta
(){
int
Usuario
::
getMulta
(){
return
this
->
multas
;
return
0
;
}
}
bool
Usuario
::
pagarMulta
(
int
valor
){
bool
Usuario
::
pagarMulta
(
int
valor
){
// Check if the user has fees
if
(
this
->
multas
<=
0
)
{
cout
<<
"> Aviso: Usuario não possui multas!"
<<
endl
;
return
false
;
}
return
0
;
// Check if the value is suficient
if
(
this
->
multas
>
valor
)
{
cout
<<
"> Error: Valor insuficiente para pagar as multas!"
<<
endl
;
return
false
;
}
cout
<<
"> Pagamento de multas realizado!"
<<
endl
;
cout
<<
"Troco: "
<<
(
valor
-
this
->
multas
)
<<
" R$"
<<
endl
;
this
->
multas
=
0
;
return
true
;
}
}
This diff is collapsed.
Click to expand it.
sources/Usuario.hpp
+
1
−
1
View file @
00408d02
...
@@ -27,7 +27,7 @@ class Usuario {
...
@@ -27,7 +27,7 @@ class Usuario {
// Methods
// Methods
bool
emprestar
(
DescricaoObra
descricao
);
bool
emprestar
(
DescricaoObra
descricao
);
bool
devolver
(
DescricaoObra
descricao
);
bool
devolver
(
DescricaoObra
descricao
);
int
atualizarMulta
(
int
valor
);
int
atualizarMulta
(
int
valor
);
// Increase fee
string
getCPF
();
string
getCPF
();
int
getMulta
();
int
getMulta
();
bool
pagarMulta
(
int
valor
);
bool
pagarMulta
(
int
valor
);
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment