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
Harbor 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
48d66a31
Commit
48d66a31
authored
6 months ago
by
Nico
Browse files
Options
Downloads
Plain Diff
Merge branch 'main' of gitlab.c3sl.ufpr.br:mgy20/Design-biblioteca
parents
17fa48e9
65383d40
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
biblioteca.cpp
+72
-33
72 additions, 33 deletions
biblioteca.cpp
sources/DescricaoObra.hpp
+1
-1
1 addition, 1 deletion
sources/DescricaoObra.hpp
tdd/biblioteca-test.cpp
+1
-7
1 addition, 7 deletions
tdd/biblioteca-test.cpp
with
74 additions
and
41 deletions
biblioteca.cpp
+
72
−
33
View file @
48d66a31
#include
<cstdio>
#include
<cstdlib>
#include
<iostream>
#include
<iostream>
#include
<string>
#include
<limits>
#include
<limits>
#include
"./sources/Biblioteca.hpp"
#include
"./sources/Biblioteca.hpp"
#include
"./sources/Livro.hpp"
#include
"./sources/Livro.hpp"
#include
"./sources/Periodico.hpp"
#include
"./sources/Periodico.hpp"
using
namespace
std
;
using
namespace
std
;
...
@@ -48,14 +48,14 @@ int show_options() {
...
@@ -48,14 +48,14 @@ int show_options() {
if
(
cin
.
fail
())
{
if
(
cin
.
fail
())
{
cin
.
clear
();
// Clear the error flag
cin
.
clear
();
// Clear the error flag
cin
.
ignore
(
numeric_limits
<
streamsize
>::
max
(),
'\n'
);
// Ignore the invalid input
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
;
cout
<<
"
>
Entrada inválida! Por favor, insira um número entre 1 e 10."
<<
endl
;
continue
;
// Restart the loop
continue
;
// Restart the loop
}
}
// Check if the option is within the valid range
// Check if the option is within the valid range
if
(
option
>=
1
&&
option
<=
10
)
{
break
;
}
// Valid option, exit the loop
if
(
option
>=
1
&&
option
<=
10
)
{
break
;
}
// Valid option, exit the loop
else
{
else
{
cout
<<
"Opção inválida! Por favor, insira um número entre 1 e 10."
<<
endl
;
cout
<<
"
>
Opção inválida! Por favor, insira um número entre 1 e 10."
<<
endl
;
}
}
}
}
...
@@ -92,24 +92,20 @@ int main(){
...
@@ -92,24 +92,20 @@ int main(){
contObras
.
mostrarDetalhes
();
contObras
.
mostrarDetalhes
();
//cout << ": Criando Obras" << endl;
//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();
// Interation Loop
// Interation Loop
int
option
=
START
;
int
option
=
START
;
while
(
option
!=
FINISH
)
{
while
(
option
!=
FINISH
)
{
option
=
show_options
();
option
=
show_options
();
// Variaveis para usuario
string
nome
,
userCPF
,
endereco
,
telefone
,
email
;
string
nome
,
userCPF
,
endereco
,
telefone
,
email
;
string
tipoObra
;
int
valor
;
int
valor
;
// Variaveis para obras
string
tipoObra
,
tipoBusca
;
string
titulo
,
autor
,
editora
;
int
ano
,
volume
,
mes
;
switch
(
option
)
{
switch
(
option
)
{
case
ADDUSER
:
case
ADDUSER
:
cout
<<
"Entre com o nome: "
;
cin
>>
nome
;
cout
<<
"Entre com o nome: "
;
cin
>>
nome
;
...
@@ -121,8 +117,7 @@ int main(){
...
@@ -121,8 +117,7 @@ int main(){
cout
<<
"> Usuario adicionado com sucesso!"
<<
endl
;
cout
<<
"> Usuario adicionado com sucesso!"
<<
endl
;
break
;
break
;
case
LISTUSERS
:
case
LISTUSERS
:
contUsuarios
.
mostrarDetalhes
();
contUsuarios
.
mostrarDetalhes
();
break
;
break
;
case
QUERYFEES
:
case
QUERYFEES
:
...
@@ -131,9 +126,7 @@ int main(){
...
@@ -131,9 +126,7 @@ int main(){
if
(
valor
>
0
)
{
if
(
valor
>
0
)
{
cout
<<
"
\n
Usuario: "
<<
userCPF
<<
endl
;
cout
<<
"
\n
Usuario: "
<<
userCPF
<<
endl
;
cout
<<
"Valor a pagar: "
<<
valor
<<
endl
;
cout
<<
"Valor a pagar: "
<<
valor
<<
endl
;
}
else
{
}
else
{
cout
<<
"> Aviso: Usuario não possui multas"
<<
endl
;
}
cout
<<
"Aviso: Usuario não possui multas"
<<
endl
;
}
break
;
break
;
case
PAYFEES
:
case
PAYFEES
:
...
@@ -143,29 +136,75 @@ int main(){
...
@@ -143,29 +136,75 @@ int main(){
break
;
break
;
case
ADDWORK
:
case
ADDWORK
:
//contObras.adicionarObra(DescricaoObra &descricao);
cout
<<
"Entre com o tipo da obra (periodico|livro): "
;
cin
>>
tipoObra
;
cin
.
ignore
();
if
(
tipoObra
==
"periodico"
)
{
cout
<<
"Entre com o titulo: "
;
getline
(
cin
,
titulo
);
cout
<<
"Entre com o ano: "
;
cin
>>
ano
;
cout
<<
"Entre com o volume: "
;
cin
>>
volume
;
cout
<<
"Entre com o mês: "
;
cin
>>
mes
;
Periodico
per
(
titulo
,
ano
,
volume
,
mes
);
contObras
.
adicionarObra
(
per
);
}
else
if
(
tipoObra
==
"livro"
)
{
cout
<<
"Entre com o titulo: "
;
getline
(
cin
,
titulo
);
cout
<<
"Entre com o ano: "
;
cin
>>
ano
;
cin
.
ignore
();
cout
<<
"Entre com o autor: "
;
getline
(
cin
,
autor
);
cout
<<
"Entre com o editora: "
;
getline
(
cin
,
editora
);
Livro
liv
(
titulo
,
ano
,
autor
,
editora
);
contObras
.
adicionarObra
(
liv
);
}
else
{
cout
<<
"Erro: Tipo não recinhecido! Ignorando operação"
<<
endl
;
}
break
;
break
;
case
LISTWORKS
:
case
LISTWORKS
:
contObras
.
mostrarDetalhes
();
contObras
.
mostrarDetalhes
();
break
;
break
;
case
QUERYWORK
:
case
QUERYWORK
:
cout
<<
"Entre com o tipo da obra: "
;
cin
>>
tipoObra
;
cout
<<
"Entre com o tipo da obra
(periodico|livro)
: "
;
cin
>>
tipoObra
;
cin
.
ignore
();
if
(
tipoObra
==
"periodico"
)
{
if
(
tipoObra
==
"periodico"
)
{
cout
<<
"Alguma coisa"
;
cout
<<
"Método de busca (titulo|tituloano): "
;
cin
>>
tipoBusca
;
}
else
if
(
tipoObra
==
"livro"
)
{
}
else
if
(
tipoObra
==
"livro"
)
{
cout
<<
"Alguma coisa"
;
cout
<<
"Método de busca (titulo|autor): "
;
}
cin
>>
tipoBusca
;
}
else
{
cout
<<
"Erro: Tipo não reconhecido! Ignorando operação"
<<
endl
;
}
//contObras.pesquisarObra(DescricaoObra &descricao);
//contObras.pesquisarObra(DescricaoObra &descricao);
break
;
break
;
case
BORROWWORK
:
case
BORROWWORK
:
//contObras.solicitarEmprestimo(DescricaoObra &descricao);
cout
<<
"Entre com o tipo da obra (periodico|livro): "
;
cin
>>
tipoObra
;
cin
.
ignore
();
if
(
tipoObra
==
"periodico"
)
{
cout
<<
"Entre com o titulo: "
;
getline
(
cin
,
titulo
);
cout
<<
"Entre com o ano: "
;
cin
>>
ano
;
cout
<<
"Entre com o volume: "
;
cin
>>
volume
;
cout
<<
"Entre com o mês: "
;
cin
>>
mes
;
Periodico
per
(
titulo
,
ano
,
volume
,
mes
);
contObras
.
solicitarEmprestimo
(
per
);
}
else
if
(
tipoObra
==
"livro"
)
{
cout
<<
"Entre com o titulo: "
;
getline
(
cin
,
titulo
);
cout
<<
"Entre com o ano: "
;
cin
>>
ano
;
cin
.
ignore
();
cout
<<
"Entre com o autor: "
;
getline
(
cin
,
autor
);
cout
<<
"Entre com o editora: "
;
getline
(
cin
,
editora
);
Livro
liv
(
titulo
,
ano
,
autor
,
editora
);
contObras
.
solicitarEmprestimo
(
liv
);
}
else
{
cout
<<
"Erro: Tipo não reconhecido! Ignorando operação"
<<
endl
;
}
break
;
break
;
case
RETURNWORK
:
case
RETURNWORK
:
//contObras.devolverEmprestimo(DescricaoObra &descricao);
cout
<<
"Entre com o tipo da obra (periodico|livro): "
;
cin
>>
tipoObra
;
cin
.
ignore
();
if
(
tipoObra
==
"periodico"
)
{
cout
<<
"Entre com o titulo: "
;
getline
(
cin
,
titulo
);
cout
<<
"Entre com o ano: "
;
cin
>>
ano
;
cout
<<
"Entre com o volume: "
;
cin
>>
volume
;
cout
<<
"Entre com o mês: "
;
cin
>>
mes
;
Periodico
per
(
titulo
,
ano
,
volume
,
mes
);
contObras
.
devolverEmprestimo
(
per
);
}
else
if
(
tipoObra
==
"livro"
)
{
cout
<<
"Entre com o titulo: "
;
getline
(
cin
,
titulo
);
cout
<<
"Entre com o ano: "
;
cin
>>
ano
;
cin
.
ignore
();
cout
<<
"Entre com o autor: "
;
getline
(
cin
,
autor
);
cout
<<
"Entre com o editora: "
;
getline
(
cin
,
editora
);
Livro
liv
(
titulo
,
ano
,
autor
,
editora
);
contObras
.
devolverEmprestimo
(
liv
);
}
else
{
cout
<<
"Erro: Tipo não reconhecido! Ignorando operação"
<<
endl
;
}
break
;
break
;
case
FINISH
:
case
FINISH
:
...
@@ -173,7 +212,7 @@ int main(){
...
@@ -173,7 +212,7 @@ int main(){
return
0
;
return
0
;
default
:
default
:
cout
<<
"Comando não reconhecido!"
<<
endl
;
cout
<<
"
>
Comando não reconhecido!"
<<
endl
;
break
;
break
;
}
}
}
}
...
...
This diff is collapsed.
Click to expand it.
sources/DescricaoObra.hpp
+
1
−
1
View file @
48d66a31
...
@@ -17,7 +17,7 @@ class DescricaoObra {
...
@@ -17,7 +17,7 @@ class DescricaoObra {
// Contructor
// Contructor
DescricaoObra
()
{};
DescricaoObra
()
{};
DescricaoObra
(
const
string
&
tipo
,
const
string
&
titulo
,
int
ano
);
DescricaoObra
(
const
string
&
tipo
,
const
string
&
titulo
,
int
ano
);
virtual
void
mostrarDetalhes
()
const
=
0
;
virtual
void
mostrarDetalhes
()
const
;
// Methods
// Methods
string
getTitulo
()
const
;
string
getTitulo
()
const
;
...
...
This diff is collapsed.
Click to expand it.
tdd/biblioteca-test.cpp
+
1
−
7
View file @
48d66a31
...
@@ -111,13 +111,7 @@ TEST_CASE("Biblioteca") {
...
@@ -111,13 +111,7 @@ TEST_CASE("Biblioteca") {
cout
<<
"=> Retorna uma obra que existe: "
<<
endl
;
cout
<<
"=> Retorna uma obra que existe: "
<<
endl
;
CHECK
(
0
==
contUsuarios
.
retornarEmprestimo
(
"12345"
,
p
));
CHECK
(
0
==
contUsuarios
.
retornarEmprestimo
(
"12345"
,
p
));
//obra existe e ja tem tres
//obra existe e ja tem tres emprestimos
cout
<<
"======================================================"
<<
endl
;
cout
<<
"===============> Retornar Emprestimo <================"
<<
endl
;
//obra nao existe
//usuario emprestou obra
//usuario nao emprestou obra
//usuario devolveu com atraso, nao pode emprestar depois
//usuario devolveu com atraso, nao pode emprestar depois
cout
<<
"======================================================"
<<
endl
;
cout
<<
"======================================================"
<<
endl
;
...
...
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