Sistema condomínio  v1.0
Membros públicos | Mostrar lista completa dos membros
Referência à classe Login

Classe que representa o sistema de login. Mais...

#include <login.hpp>

Membros públicos

bool fazerLogin (std::string funcao)
 Realiza o processo de login. Mais...
 
int lerInt (int numero, std::string msg)
 Lê um número inteiro da entrada padrão com validação. Mais...
 
void telaAdministrador ()
 Exibe a tela do administrador após o login bem-sucedido. Mais...
 
void telaPorteiro ()
 Exibe a tela do porteiro após o login bem-sucedido. Mais...
 

Descrição detalhada

Classe que representa o sistema de login.

Esta classe é responsável por autenticar usuários como Administrador ou Porteiro.

Autor
Leandro Felix, João Paulo

Definido na linha 14 do ficheiro login.hpp.

Documentação dos métodos

◆ fazerLogin()

bool Login::fazerLogin ( std::string  funcao)

Realiza o processo de login.

Parâmetros
funcaoFunção a ser autenticada (Administrador ou Porteiro).
Retorna
true se o login for bem-sucedido, false caso contrário.

Definido na linha 8 do ficheiro login.cpp.

8  {
9  string login, senha;
10  int opcao;
11 
12  while(true){
13  system("clear || cls");
14  cout << "Login: ";
15  cin >> login;
16  cout << "Senha: ";
17  cin >> senha;
18 
19  if(funcao == "porteiro"){
20  if(login == loginPorteiro && senha == senhaPorteiro){
21  system("clear || cls");
22  return true;
23  }
24  } else if(funcao == "administrador"){
25  if(login == loginAdministrador && senha == senhaAdministrador){
26  system("clear || cls");
27  return true;
28  }
29  }
30 
31  system("clear || cls");
32  cout << "---Login ou senha incorretos!---\n" << endl;
33  try{
34  cout << "1- Tentar novamente" << endl;
35  cout << "2- Voltar" << endl;
36  cout << "Opção: ";
37  cin >> opcao;
38  if(cin.fail()){
39  throw runtime_error("---Erro: Digite um número inteiro!---\n");
40  }
41  } catch(runtime_error &e){
42  system("clear || cls");
43  cout << e.what() << endl;
44  cin.clear();
45  cin.ignore(numeric_limits<streamsize>::max(), '\n');
46  continue;
47  }
48 
49  if(opcao == 2){
50  system("clear || cls");
51  break;
52  }
53  }
54 
55  return false;
56 }

◆ lerInt()

int Login::lerInt ( int  numero,
std::string  msg 
)

Lê um número inteiro da entrada padrão com validação.

Parâmetros
numeroVariável para armazenar o número lido.
msgMensagem a ser exibida antes da leitura.
Retorna
Número inteiro lido.

Definido na linha 58 do ficheiro login.cpp.

58  {
59  bool flag = false;
60 
61  do{
62  try{
63  cout << msg;
64  cin >> numero;
65  if(cin.fail()){
66  throw runtime_error("\n---Erro: Digite um número inteiro!---\n");
67  } else{
68  flag = true;
69  }
70  } catch(runtime_error &e){
71  system("clear || cls");
72  cout << e.what() << endl;
73  cin.clear();
74  cin.ignore(numeric_limits<streamsize>::max(), '\n');
75  }
76  } while(!flag);
77 
78  return numero;
79 }

◆ telaAdministrador()

void Login::telaAdministrador ( )

Exibe a tela do administrador após o login bem-sucedido.

Definido na linha 81 do ficheiro login.cpp.

81  {
82  Administrador administrador;
83  int opcao;
84 
85  administrador.lerArquivo("archives/residentes");
86  administrador.lerArquivo("archives/segurancas");
87  administrador.lerArquivo("archives/zeladores");
88 
89  do{
90  administrador.menuAdministrador();
91  opcao = lerInt(opcao, "Opção: ");
92 
93  switch(opcao){
94  case 1:
95  administrador.cadastrarResidente();
96  break;
97  case 2:
98  administrador.cadastrarFuncionario();
99  break;
100  case 3:
101  administrador.listarResidentes();
102  break;
103  case 4:
104  administrador.listarFuncionarios();
105  break;
106  case 5:
107  administrador.removerResidente();
108  break;
109  case 6:
110  administrador.removerFuncionario();
111  break;
112  case 7:
113  administrador.buscarResidente();
114  break;
115  case 8:
116  administrador.buscarFuncionario();
117  break;
118  case 9:
119  system("clear || cls");
120  administrador.atualizarArquivo("archives/residentes");
121  administrador.atualizarArquivo("archives/segurancas");
122  administrador.atualizarArquivo("archives/zeladores");
123  break;
124  default:
125  system("clear || cls");
126  cout << "---Opção inválida! Digite um número entre 1 e 9---\n" << endl;
127  break;
128  }
129  } while(opcao != 9);
130 
131 }
Classe que representa um Administrador do sistema.
void removerFuncionario()
Remove um funcionário (Zelador ou Segurança) com base na matrícula e função fornecidas.
void menuAdministrador()
Exibe o menu de opções para o administrador.
void atualizarArquivo(std::string nomeArquivo)
Atualiza um arquivo com os dados armazenados nos objetos de Residente, Zelador ou Segurança.
void buscarResidente()
Busca um residente com base no CPF fornecido.
void removerResidente()
Remove um residente com base no CPF fornecido.
void lerArquivo(std::string nomeArquivo)
Lê os dados de um arquivo e os armazena em objetos de Residente, Zelador ou Segurança.
void buscarFuncionario()
Busca um funcionário (Zelador ou Segurança) com base na matrícula fornecida.
void listarResidentes()
Lista os residentes cadastrados.
void listarFuncionarios()
Lista os funcionários (Zeladores e Seguranças) cadastrados.
void cadastrarResidente()
Cadastra um novo residente com base nas informações fornecidas.
void cadastrarFuncionario()
Cadastra um novo funcionário (Zelador ou Segurança) com base nas informações fornecidas.
int lerInt(int numero, std::string msg)
Lê um número inteiro da entrada padrão com validação.
Definition: login.cpp:58

◆ telaPorteiro()

void Login::telaPorteiro ( )

Exibe a tela do porteiro após o login bem-sucedido.

Definido na linha 133 do ficheiro login.cpp.

133  {
134  Porteiro porteiro;
135  int opcao;
136 
137  porteiro.lerArquivo("archives/visitantes");
138  porteiro.lerArquivo("archives/encomendas");
139 
140  do{
141  porteiro.menuPorteiro();
142  opcao = lerInt(opcao, "Opção: ");
143 
144  switch(opcao){
145  case 1:
146  porteiro.cadastrarVisitante();
147  break;
148  case 2:
149  porteiro.cadastrarEncomenda();
150  break;
151  case 3:
152  porteiro.listarVisitantes();
153  break;
154  case 4:
155  porteiro.buscarEncomenda();
156  break;
157  case 5:
158  porteiro.buscarVisitanteData();
159  break;
160  case 6:
161  porteiro.listarEncomendas();
162  break;
163  case 7:
164  system("clear || cls");
165  porteiro.atualizarArquivo("archives/visitantes");
166  porteiro.atualizarArquivo("archives/encomendas");
167  break;
168  default:
169  system("clear || cls");
170  cout << "---Opção inválida! Digite um número entre 1 e 6---\n" << endl;
171  break;
172  }
173  } while(opcao != 7);
174 }
Classe que representa um Porteiro.
Definition: porteiro.hpp:18
void buscarVisitanteData()
Busca visitantes com base em uma data específica.
Definition: porteiro.cpp:242
void cadastrarVisitante()
Cadastra um novo visitante.
Definition: porteiro.cpp:156
void buscarEncomenda()
Busca uma encomenda pelo CPF.
Definition: porteiro.cpp:209
void lerArquivo(std::string nomeArquivo)
Lê informações de um arquivo e carrega os dados do objeto.
Definition: porteiro.cpp:21
void menuPorteiro()
Exibe o menu do Porteiro.
Definition: porteiro.cpp:10
void listarVisitantes()
Lista todos os visitantes cadastrados.
Definition: porteiro.cpp:191
void cadastrarEncomenda()
Cadastra uma nova encomenda.
Definition: porteiro.cpp:120
void listarEncomendas()
Lista todas as encomendas.
Definition: porteiro.cpp:274
void atualizarArquivo(std::string nomeArquivo)
Atualiza as informações do arquivo com base nos dados do objeto.
Definition: porteiro.cpp:67

A documentação para esta classe foi gerada a partir dos seguintes ficheiros: