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
d2b3975d
Commit
d2b3975d
authored
6 months ago
by
mgy20
Browse files
Options
Downloads
Patches
Plain Diff
Implementado interface com usuario
parent
cc2d178a
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
main.cpp
+146
-100
146 additions, 100 deletions
main.cpp
sources/ControladorObras.cpp
+7
-6
7 additions, 6 deletions
sources/ControladorObras.cpp
with
153 additions
and
106 deletions
main.cpp
+
146
−
100
View file @
d2b3975d
#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
<<
"
\n
Usuario: "
<<
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;
}
This diff is collapsed.
Click to expand it.
sources/ControladorObras.cpp
+
7
−
6
View file @
d2b3975d
...
@@ -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
;
}
}
}
}
...
...
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