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

Classe que representa um Administrador do sistema. Mais...

#include <administrador.hpp>

Diagrama de heranças da classe Administrador
Inheritance graph
[legenda]
Diagrama de colaboração para Administrador:
Collaboration graph
[legenda]

Membros públicos

void menuAdministrador ()
 Exibe o menu de opções para o administrador. Mais...
 
void lerArquivo (std::string nomeArquivo)
 Lê os dados de um arquivo e os armazena em objetos de Residente, Zelador ou Segurança. Mais...
 
void atualizarArquivo (std::string nomeArquivo)
 Atualiza um arquivo com os dados armazenados nos objetos de Residente, Zelador ou Segurança. Mais...
 
int lerInt (int numero, std::string msg)
 Lê um número inteiro da entrada padrão com validação. Mais...
 
float lerFloat (float numero, std::string msg)
 Lê um número de ponto flutuante da entrada padrão com validação. Mais...
 
void cadastrarResidente ()
 Cadastra um novo residente com base nas informações fornecidas. Mais...
 
void cadastrarFuncionario ()
 Cadastra um novo funcionário (Zelador ou Segurança) com base nas informações fornecidas. Mais...
 
void listarResidentes ()
 Lista os residentes cadastrados. Mais...
 
void listarFuncionarios ()
 Lista os funcionários (Zeladores e Seguranças) cadastrados. Mais...
 
void removerResidente ()
 Remove um residente com base no CPF fornecido. Mais...
 
void removerFuncionario ()
 Remove um funcionário (Zelador ou Segurança) com base na matrícula e função fornecidas. Mais...
 
void buscarResidente ()
 Busca um residente com base no CPF fornecido. Mais...
 
void buscarFuncionario ()
 Busca um funcionário (Zelador ou Segurança) com base na matrícula fornecida. Mais...
 
- Membros públicos herdados de Residentes
 Residentes ()
 Construtor padrão da classe Residentes. Mais...
 
 Residentes (std::string nome, std::string cpf, std::string dataNascimento, int predio, int apartamento, int andar, int vagaGaragem, std::string dataEntrada, std::string dataSaida, std::string telefone, std::string email)
 Construtor da classe Residentes. Mais...
 
int getPredio ()
 Obtém o número do prédio. Mais...
 
int getApartamento ()
 Obtém o número do apartamento. Mais...
 
int getAndar ()
 Obtém o número do andar. Mais...
 
int getVagaGaragem ()
 Obtém o número da vaga de garagem. Mais...
 
std::string getDataEntrada ()
 Obtém a data de entrada. Mais...
 
std::string getDataSaida ()
 Obtém a data de saída. Mais...
 
std::string getTelefone ()
 Obtém o número de telefone. Mais...
 
std::string getEmail ()
 Obtém o endereço de e-mail. Mais...
 
void setPredio (int predio)
 Define o número do prédio. Mais...
 
void setApartamento (int apartamento)
 Define o número do apartamento. Mais...
 
void setAndar (int andar)
 Define o número do andar. Mais...
 
void setVagaGaragem (int vagaGaragem)
 Define o número da vaga de garagem. Mais...
 
void setDataEntrada (std::string dataEntrada)
 Define a data de entrada. Mais...
 
void setDataSaida (std::string dataSaida)
 Define a data de saída. Mais...
 
void setTelefone (std::string telefone)
 Define o número de telefone. Mais...
 
void setEmail (std::string email)
 Define o endereço de e-mail. Mais...
 
- Membros públicos herdados de Pessoa
 Pessoa ()
 Construtor padrão da classe Pessoa. Mais...
 
 Pessoa (std::string nome, std::string cpf, std::string dataNascimento)
 Construtor que inicializa os membros da classe com valores específicos. Mais...
 
std::string getNome ()
 Obtém o nome da pessoa. Mais...
 
std::string getCpf ()
 Obtém o CPF da pessoa. Mais...
 
std::string getDataNascimento ()
 Obtém a data de nascimento da pessoa. Mais...
 
void setNome (std::string nome)
 Define o nome da pessoa. Mais...
 
void setCpf (std::string cpf)
 Define o CPF da pessoa. Mais...
 
void setDataNascimento (std::string dataNascimento)
 Define a data de nascimento da pessoa. Mais...
 
- Membros públicos herdados de Seguranca
 Seguranca ()
 Construtor padrão da classe Seguranca. Mais...
 
 Seguranca (std::string nome, std::string cpf, std::string dataNascimento, std::string matricula, std::string funcao, std::string setor, float cargaHoraria, float salario, std::string turno, bool flagLeitura)
 Construtor da classe Seguranca. Mais...
 
std::string getTurno ()
 Obtém o turno de trabalho do segurança. Mais...
 
float getSalario ()
 Obtém o salário do segurança. Mais...
 
void setTurno (std::string turno)
 Define o turno de trabalho do segurança. Mais...
 
void setSalario (float salario)
 Define o salário do segurança. Mais...
 
void setFlagLeitura (bool flagLeitura)
 Define a flag de leitura, indicando se os dados são provenientes de um arquivo. Mais...
 
- Membros públicos herdados de Funcionarios
 Funcionarios ()
 Construtor padrão. Mais...
 
 Funcionarios (std::string matricula, std::string funcao, std::string setor, float cargaHoraria, float salario)
 Construtor com parâmetros para inicializar os atributos. Mais...
 
std::string getMatricula ()
 Obtém a matrícula do funcionário. Mais...
 
std::string getFuncao ()
 Obtém a função do funcionário. Mais...
 
std::string getSetor ()
 Obtém o setor do funcionário. Mais...
 
float getCargaHoraria ()
 Obtém a carga horária do funcionário. Mais...
 
void setMatricula (std::string matricula)
 Define a matrícula do funcionário. Mais...
 
void setFuncao (std::string funcao)
 Define a função do funcionário. Mais...
 
void setSetor (std::string setor)
 Define o setor do funcionário. Mais...
 
void setCargaHoraria (float cargaHoraria)
 Define a carga horária do funcionário. Mais...
 
- Membros públicos herdados de Zelador
 Zelador ()
 Construtor padrão da classe Zelador. Mais...
 
 Zelador (std::string nome, std::string cpf, std::string dataNascimento, std::string matricula, std::string funcao, std::string setor, float cargaHoraria, float salario, std::string turno, bool flagLeitura)
 Construtor da classe Zelador. Mais...
 
std::string getTurno ()
 Obtém o turno de trabalho do zelador. Mais...
 
float getSalario ()
 Obtém o salário do zelador. Mais...
 
void setTurno (std::string turno)
 Define o turno de trabalho do zelador. Mais...
 
void setSalario (float salario)
 Define o salário do zelador. Mais...
 
void setFlagLeitura (bool flagLeitura)
 Define a flag de leitura. Mais...
 

Outros membros herdados

- Atributos Protegidos herdados de Funcionarios
std::string matricula
 
std::string funcao
 
std::string setor
 
float cargaHoraria
 
float salario
 

Descrição detalhada

Classe que representa um Administrador do sistema.

Esta classe herda as funcionalidades de Residentes, Seguranca e Zelador.

Autor
Leandro Felix

Definido na linha 18 do ficheiro administrador.hpp.

Documentação dos métodos

◆ atualizarArquivo()

void Administrador::atualizarArquivo ( std::string  nomeArquivo)

Atualiza um arquivo com os dados armazenados nos objetos de Residente, Zelador ou Segurança.

Parâmetros
nomeArquivoNome do arquivo a ser atualizado.

Definido na linha 84 do ficheiro administrador.cpp.

84  {
85  fstream arquivo;
86 
87  arquivo.open(nomeArquivo + ".txt", ios::out);
88 
89  if(arquivo.is_open()){
90  if(nomeArquivo == "archives/residentes"){
91  for(int i = 0; i < residentes.size(); i++){
92  arquivo << residentes[i].getNome() << endl;
93  arquivo << residentes[i].getCpf() << endl;
94  arquivo << residentes[i].getDataNascimento() << endl;
95  arquivo << residentes[i].getPredio() << endl;
96  arquivo << residentes[i].getApartamento() << endl;
97  arquivo << residentes[i].getAndar() << endl;
98  arquivo << residentes[i].getVagaGaragem() << endl;
99  arquivo << residentes[i].getDataEntrada() << endl;
100  arquivo << residentes[i].getDataSaida() << endl;
101  arquivo << residentes[i].getTelefone() << endl;
102  arquivo << residentes[i].getEmail() << endl;
103  arquivo << endl;
104  }
105  } else if(nomeArquivo == "archives/zeladores"){
106  for(int i = 0; i < zeladores.size(); i++){
107  arquivo << zeladores[i].getNome() << endl;
108  arquivo << zeladores[i].getCpf() << endl;
109  arquivo << zeladores[i].getDataNascimento() << endl;
110  arquivo << zeladores[i].getMatricula() << endl;
111  arquivo << zeladores[i].getFuncao() << endl;
112  arquivo << zeladores[i].getSetor() << endl;
113  arquivo << zeladores[i].getCargaHoraria() << endl;
114  arquivo << zeladores[i].getSalario() << endl;
115  arquivo << zeladores[i].getTurno() << endl;
116  arquivo << endl;
117  }
118  } else if(nomeArquivo == "archives/segurancas"){
119  for(int i = 0; i < segurancas.size(); i++){
120  arquivo << segurancas[i].getNome() << endl;
121  arquivo << segurancas[i].getCpf() << endl;
122  arquivo << segurancas[i].getDataNascimento() << endl;
123  arquivo << segurancas[i].getMatricula() << endl;
124  arquivo << segurancas[i].getFuncao() << endl;
125  arquivo << segurancas[i].getSetor() << endl;
126  arquivo << segurancas[i].getCargaHoraria() << endl;
127  arquivo << segurancas[i].getSalario() << endl;
128  arquivo << segurancas[i].getTurno() << endl;
129  arquivo << endl;
130  }
131  }
132  } else{
133  cout << "Erro ao abrir o arquivo!" << endl;
134  }
135 }

◆ buscarFuncionario()

void Administrador::buscarFuncionario ( )

Busca um funcionário (Zelador ou Segurança) com base na matrícula fornecida.

Definido na linha 461 do ficheiro administrador.cpp.

461  {
462  string matricula;
463  bool funcionarioEncontrado = false;
464 
465  system("clear || cls");
466  cout << " ---Buscar Funcionário---" << endl;
467 
468  cout << "Digite a Matrícula do Funcionário: ";
469  cin.ignore();
470  getline(cin, matricula);
471 
472  if(zeladores.size() != 0){
473  for(int i = 0; i < zeladores.size(); i++){
474  if(zeladores[i].getMatricula() == matricula){
475  cout << "------Funcionário encontrado!------" << endl;
476  cout << "Nome: " << zeladores[i].getNome() << endl;
477  cout << "CPF: " << zeladores[i].getCpf() << endl;
478  cout << "Data de Nascimento: " << zeladores[i].getDataNascimento() << endl;
479  cout << "Matrícula: " << zeladores[i].getMatricula() << endl;
480  cout << "Função: " << zeladores[i].getFuncao() << endl;
481  cout << "Setor: " << zeladores[i].getSetor() << endl;
482  cout << "Carga Horária: " << zeladores[i].getCargaHoraria() << endl;
483  cout << "Salário: " << zeladores[i].getSalario() << endl;
484  cout << "Turno: " << zeladores[i].getTurno() << endl;
485  cout << "-----------------------------------";
486  cout << endl;
487  funcionarioEncontrado = true;
488  break;
489  }
490  }
491  }
492 
493  if(segurancas.size() != 0){
494  for(int i = 0; i < segurancas.size(); i++){
495  if(segurancas[i].getMatricula() == matricula){
496  cout << "------Funcionário encontrado!------" << endl;
497  cout << "Nome: " << segurancas[i].getNome() << endl;
498  cout << "CPF: " << segurancas[i].getCpf() << endl;
499  cout << "Data de Nascimento: " << segurancas[i].getDataNascimento() << endl;
500  cout << "Matrícula: " << segurancas[i].getMatricula() << endl;
501  cout << "Função: " << segurancas[i].getFuncao() << endl;
502  cout << "Setor: " << segurancas[i].getSetor() << endl;
503  cout << "Carga Horária: " << segurancas[i].getCargaHoraria() << endl;
504  cout << "Salário: " << segurancas[i].getSalario() << endl;
505  cout << "Turno: " << segurancas[i].getTurno() << endl;
506  cout << "-----------------------------------";
507  cout << endl;
508  funcionarioEncontrado = true;
509  break;
510  }
511  }
512  }
513 
514  if(!funcionarioEncontrado){
515  system("clear || cls");
516  cout << "---Funcionário não encontrado!\n" << endl;
517  }
518 }
std::string matricula
std::string getMatricula()
Obtém a matrícula do funcionário.

◆ buscarResidente()

void Administrador::buscarResidente ( )

Busca um residente com base no CPF fornecido.

Definido na linha 425 do ficheiro administrador.cpp.

425  {
426  string cpf;
427  bool residenteEncontrado = false;
428 
429  system("clear || cls");
430  cout << " ---Buscar Residente---" << endl;
431  cout << "Digite o CPF do Residente (000.000.000-00): ";
432  cin.ignore();
433  getline(cin, cpf);
434 
435  for(int i = 0; i < residentes.size(); i++){
436  if(residentes[i].getCpf() == cpf){
437  cout << "-------Residente encontrado!-------" << endl;
438  cout << "Nome: " << residentes[i].getNome() << endl;
439  cout << "CPF: " << residentes[i].getCpf() << endl;
440  cout << "Data de Nascimento: " << residentes[i].getDataNascimento() << endl;
441  cout << "Número do Prédio: " << residentes[i].getPredio() << endl;
442  cout << "Número do Apartamento: " << residentes[i].getApartamento() << endl;
443  cout << "Número do Andar: " << residentes[i].getAndar() << endl;
444  cout << "Número da Vaga de Garagem: " << residentes[i].getVagaGaragem() << endl;
445  cout << "Data de Entrada: " << residentes[i].getDataEntrada() << endl;
446  cout << "Data de Saída: " << residentes[i].getDataSaida() << endl;
447  cout << "Telefone: " << residentes[i].getTelefone() << endl;
448  cout << "E-mail: " << residentes[i].getEmail() << endl;
449  cout << "-----------------------------------";
450  cout << endl;
451  residenteEncontrado = true;
452  break;
453  }
454  }
455 
456  if(!residenteEncontrado){
457  cout << "---Residente não encontrado!\n" << endl;
458  }
459 }
std::string getCpf()
Obtém o CPF da pessoa.
Definition: pessoa.cpp:21

◆ cadastrarFuncionario()

void Administrador::cadastrarFuncionario ( )

Cadastra um novo funcionário (Zelador ou Segurança) com base nas informações fornecidas.

Definido na linha 226 do ficheiro administrador.cpp.

226  {
227  string nome, cpf, dataNascimento, matricula, funcao, setor, turno;
228  float cargaHoraria, salario;
229 
230  system("clear||cls");
231 
232  cout << "---Cadastro de Funcionário---" << endl;
233  cin.ignore();
234  cout << "Nome: ";
235  getline(cin, nome);
236 
237  cout << "CPF: ";
238  getline(cin, cpf);
239 
240  cout << "Data de Nascimento: ";
241  getline(cin, dataNascimento);
242 
243  cout << "Matrícula: ";
244  getline(cin, matricula);
245 
246  cout << "Função: ";
247  getline(cin, funcao);
248 
249  cout << "Setor: ";
250  getline(cin, setor);
251 
252  cargaHoraria = lerFloat(cargaHoraria, "Carga Horária: ");
253 
254  salario = lerFloat(salario, "Salário: ");
255 
256  cout << "Turno: ";
257  cin.ignore();
258  getline(cin, turno);
259 
260  system("clear || cls");
261 
262  if(funcao == "Zelador" || funcao == "zelador"){
263  Zelador novoZelador(nome, cpf, dataNascimento, matricula, funcao, setor, cargaHoraria, salario, turno, false);
264  zeladores.push_back(novoZelador);
265 
266  cout << "---Zelador cadastrado com sucesso!\n" << endl;
267  } else if(funcao == "Segurança" || funcao == "segurança"){
268  Seguranca novoSeguranca(nome, cpf, dataNascimento, matricula, funcao, setor, cargaHoraria, salario, turno, false);
269  segurancas.push_back(novoSeguranca);
270 
271  cout << "---Segurança cadastrado com sucesso!\n" << endl;
272  } else{
273  cout << "\n---Função inválida!" << endl;
274  cout << "---As funções válidas são: Zelador e Segurança\n" << endl;
275  }
276 }
float lerFloat(float numero, std::string msg)
Lê um número de ponto flutuante da entrada padrão com validação.
std::string setor
std::string funcao
float cargaHoraria
Classe que representa um Segurança.
Definition: seguranca.hpp:15
Classe que representa um Zelador.
Definition: zelador.hpp:15

◆ cadastrarResidente()

void Administrador::cadastrarResidente ( )

Cadastra um novo residente com base nas informações fornecidas.

Definido na linha 181 do ficheiro administrador.cpp.

181  {
182  string nome, cpf, dataNascimento, dataEntrada, dataSaida, telefone, email;
183  int predio, apartamento, andar, vagaGaragem;
184 
185  system("clear||cls");
186  cout << "---Casdastro de Residente---" << endl;
187  cout << "Nome: ";
188  cin.ignore();
189  getline(cin, nome);
190 
191  cout << "CPF: ";
192  getline(cin, cpf);
193 
194  cout << "Data de Nascimento: ";
195  getline(cin, dataNascimento);
196 
197  predio = lerInt(predio, "Número do Prédio: ");
198 
199  apartamento = lerInt(apartamento, "Número do Apartamento: ");
200 
201  andar = lerInt(andar, "Número do Andar: ");
202 
203  vagaGaragem = lerInt(vagaGaragem, "Número da Vaga de Garagem: ");
204 
205  cout << "Data de Entrada: ";
206  cin.ignore();
207  getline(cin, dataEntrada);
208 
209  cout << "Data de Saída: ";
210  getline(cin, dataSaida);
211 
212  cout << "Telefone: ";
213  getline(cin, telefone);
214 
215  cout << "E-mail: ";
216  getline(cin, email);
217 
218  Residentes novoResidente(nome, cpf, dataNascimento, predio, apartamento, andar, vagaGaragem, dataEntrada, dataSaida, telefone, email);
219  residentes.push_back(novoResidente);
220 
221  system("clear || cls");
222 
223  cout << "---Residente cadastrado com sucesso!\n" << endl;
224 }
int lerInt(int numero, std::string msg)
Lê um número inteiro da entrada padrão com validação.
Classe que representa um Residente.
Definition: residentes.hpp:13

◆ lerArquivo()

void Administrador::lerArquivo ( std::string  nomeArquivo)

Lê os dados de um arquivo e os armazena em objetos de Residente, Zelador ou Segurança.

Parâmetros
nomeArquivoNome do arquivo a ser lido.

Definido na linha 22 do ficheiro administrador.cpp.

22  {
23  string nome, cpf, dataNascimento, dataEntrada, dataSaida, telefone, email, matricula, funcao, setor, turno;
24  int predio, apartamento, andar, vagaGaragem;
25  float cargaHoraria, salario;
26  vector<string> linhas;
27  fstream arquivo;
28 
29  arquivo.open(nomeArquivo + ".txt", ios::in | ios::app);
30 
31  if(arquivo.is_open()){
32  string linha;
33 
34  while(getline(arquivo, linha)){
35  linhas.push_back(linha);
36  }
37 
38  arquivo.close();
39  } else{
40  cout << "Erro ao abrir o arquivo!" << endl;
41  }
42 
43  for(int i = 0; i < linhas.size(); i+= 4){
44  nome = linhas[i];
45  cpf = linhas[i + 1];
46  dataNascimento = linhas[i + 2];
47 
48  if(nomeArquivo == "archives/residentes"){
49  predio = stoi(linhas[i + 3]);
50  apartamento = stoi(linhas[i + 4]);
51  andar = stoi(linhas[i + 5]);
52  vagaGaragem = stoi(linhas[i + 6]);
53  dataEntrada = linhas[i + 7];
54  dataSaida = linhas[i + 8];
55  telefone = linhas[i + 9];
56  email = linhas[i + 10];
57 
58  Residentes novoResidente(nome, cpf, dataNascimento, predio, apartamento, andar, vagaGaragem, dataEntrada, dataSaida, telefone, email);
59  residentes.push_back(novoResidente);
60 
61  i += 8;
62  } else{
63  matricula = linhas[i + 3];
64  funcao = linhas[i + 4];
65  setor = linhas[i + 5];
66  cargaHoraria = stof(linhas[i + 6]);
67  salario = stof(linhas[i + 7]);
68  turno = linhas[i + 8];
69 
70  if(nomeArquivo == "archives/zeladores"){
71  Zelador novoZelador(nome, cpf, dataNascimento, matricula, funcao, setor, cargaHoraria, salario, turno, true);
72  zeladores.push_back(novoZelador);
73  }
74 
75  if(nomeArquivo == "archives/segurancas"){
76  Seguranca novoSeguranca(nome, cpf, dataNascimento, matricula, funcao, setor, cargaHoraria, salario, turno, true);
77  segurancas.push_back(novoSeguranca);
78  }
79  i += 6;
80  }
81  }
82 }

◆ lerFloat()

float Administrador::lerFloat ( float  numero,
std::string  msg 
)

Lê um número de ponto flutuante 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 de ponto flutuante lido.

Definido na linha 159 do ficheiro administrador.cpp.

159  {
160  bool flag = false;
161 
162  do{
163  try{
164  cout << msg;
165  cin >> numero;
166  if(cin.fail()){
167  throw runtime_error("\n---Erro: Digite um número real!---\n");
168  } else{
169  flag = true;
170  }
171  } catch(runtime_error &e){
172  cout << e.what() << endl;
173  cin.clear();
174  cin.ignore(numeric_limits<streamsize>::max(), '\n');
175  }
176  } while(!flag);
177 
178  return numero;
179 }

◆ lerInt()

int Administrador::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 137 do ficheiro administrador.cpp.

137  {
138  bool flag = false;
139 
140  do{
141  try{
142  cout << msg;
143  cin >> numero;
144  if(cin.fail()){
145  throw runtime_error("\n---Erro: Digite um número inteiro!---\n");
146  } else{
147  flag = true;
148  }
149  } catch(runtime_error &e){
150  cout << e.what() << endl;
151  cin.clear();
152  cin.ignore(numeric_limits<streamsize>::max(), '\n');
153  }
154  } while(!flag);
155 
156  return numero;
157 }

◆ listarFuncionarios()

void Administrador::listarFuncionarios ( )

Lista os funcionários (Zeladores e Seguranças) cadastrados.

Definido na linha 303 do ficheiro administrador.cpp.

303  {
304  system("clear || cls");
305  cout << "-----------Lista de Funcionários-----------" << endl;
306 
307  if(zeladores.size() == 0){
308  cout << "\n---Não há zeladores cadastrados!---\n" << endl;
309  } else{
310  cout << "---Lista de Zeladores---" << endl;
311  for(int i = 0; i < zeladores.size(); i++){
312  cout << "Zelador N°" << i + 1 << endl;
313  cout << "Nome: " << zeladores[i].getNome() << endl;
314  cout << "CPF: " << zeladores[i].getCpf() << endl;
315  cout << "Data de Nascimento: " << zeladores[i].getDataNascimento() << endl;
316  cout << "Matrícula: " << zeladores[i].getMatricula() << endl;
317  cout << "Função: " << zeladores[i].getFuncao() << endl;
318  cout << "Setor: " << zeladores[i].getSetor() << endl;
319  cout << "Carga Horária: " << zeladores[i].getCargaHoraria() << endl;
320  cout << "Salário: " << zeladores[i].getSalario() << endl;
321  cout << "Turno: " << zeladores[i].getTurno() << endl;
322  cout << "-----------------------------------";
323  cout << endl;
324  }
325  }
326 
327  if(segurancas.size() == 0){
328  cout << "---Não há seguranças cadastrados!---\n" << endl;
329  } else{
330  cout << "---Lista de Seguranças---" << endl;
331  for(int i = 0; i < segurancas.size(); i++){
332  cout << "Segurança N°" << i + 1 << endl;
333  cout << "Nome: " << segurancas[i].getNome() << endl;
334  cout << "CPF: " << segurancas[i].getCpf() << endl;
335  cout << "Data de Nascimento: " << segurancas[i].getDataNascimento() << endl;
336  cout << "Matrícula: " << segurancas[i].getMatricula() << endl;
337  cout << "Função: " << segurancas[i].getFuncao() << endl;
338  cout << "Setor: " << segurancas[i].getSetor() << endl;
339  cout << "Carga Horária: " << segurancas[i].getCargaHoraria() << endl;
340  cout << "Salário: " << segurancas[i].getSalario() << endl;
341  cout << "Turno: " << segurancas[i].getTurno() << endl;
342  cout << "-----------------------------------";
343  cout << endl;
344  }
345  }
346 }

◆ listarResidentes()

void Administrador::listarResidentes ( )

Lista os residentes cadastrados.

Definido na linha 278 do ficheiro administrador.cpp.

278  {
279  system("clear || cls");
280  if(residentes.size() == 0){
281  cout << "---Não há residentes cadastrados!---\n" << endl;
282  } else{
283  cout << "--------Lista de Residentes--------" << endl;
284  for(int i = 0; i < residentes.size(); i++){
285  cout << "---Residente N°" << i + 1 << endl;
286  cout << "Nome: " << residentes[i].getNome() << endl;
287  cout << "CPF: " << residentes[i].getCpf() << endl;
288  cout << "Data de Nascimento: " << residentes[i].getDataNascimento() << endl;
289  cout << "Número do Prédio: " << residentes[i].getPredio() << endl;
290  cout << "Número do Apartamento: " << residentes[i].getApartamento() << endl;
291  cout << "Número do Andar: " << residentes[i].getAndar() << endl;
292  cout << "Número da Vaga de Garagem: " << residentes[i].getVagaGaragem() << endl;
293  cout << "Data de Entrada: " << residentes[i].getDataEntrada() << endl;
294  cout << "Data de Saída: " << residentes[i].getDataSaida() << endl;
295  cout << "Telefone: " << residentes[i].getTelefone() << endl;
296  cout << "E-mail: " << residentes[i].getEmail() << endl;
297  cout << "-----------------------------------";
298  cout << endl;
299  }
300  }
301 }

◆ menuAdministrador()

void Administrador::menuAdministrador ( )

Exibe o menu de opções para o administrador.

Definido na linha 10 do ficheiro administrador.cpp.

10  {
11  cout << "1- Cadastrar Residente" << endl;
12  cout << "2- Cadastrar Funcionário" << endl;
13  cout << "3- Listar Residentes" << endl;
14  cout << "4- Listar Funcionários" << endl;
15  cout << "5- Remover Residente" << endl;
16  cout << "6- Remover Funcionário" << endl;
17  cout << "7- Buscar Residente" << endl;
18  cout << "8- Buscar Funcionário" << endl;
19  cout << "9- Sair" << endl;
20 }

◆ removerFuncionario()

void Administrador::removerFuncionario ( )

Remove um funcionário (Zelador ou Segurança) com base na matrícula e função fornecidas.

Definido na linha 373 do ficheiro administrador.cpp.

373  {
374  string matricula, funcao;
375  bool funcionarioEncontrado = false, flag = false;
376 
377  system("clear || cls");
378  cout << " ---Remover Funcionário---" << endl;
379  cin.ignore();
380 
381  do{
382  try{
383  cout << "Função do Funcionário: ";
384  getline(cin, funcao);
385 
386  if(funcao != "Zelador" && funcao != "zelador" && funcao != "Segurança" && funcao != "segurança"){
387  throw runtime_error("---Erro: Função inválida!---\n");
388  } else{
389  flag = true;
390  }
391  } catch(runtime_error &e){
392  cout << e.what() << endl;
393  cin.clear();
394  }
395  } while(!flag);
396 
397  cout << "Digite a Matrícula do Funcionário: ";
398  getline(cin, matricula);
399 
400  if(funcao == "Zelador" || funcao == "zelador"){
401  for(int i = 0; i < zeladores.size(); i++){
402  if(zeladores[i].getMatricula() == matricula){
403  zeladores.erase(zeladores.begin() + i);
404  funcionarioEncontrado = true;
405  break;
406  }
407  }
408  } else if(funcao == "Segurança" || funcao == "segurança"){
409  for(int i = 0; i < segurancas.size(); i++){
410  if(segurancas[i].getMatricula() == matricula){
411  segurancas.erase(segurancas.begin() + i);
412  funcionarioEncontrado = true;
413  break;
414  }
415  }
416  }
417 
418  if(funcionarioEncontrado){
419  cout << "---Funcionário removido com sucesso!---\n" << endl;
420  } else{
421  cout << "\n---Funcionário não encontrado!---\n" << endl;
422  }
423 }

◆ removerResidente()

void Administrador::removerResidente ( )

Remove um residente com base no CPF fornecido.

Definido na linha 348 do ficheiro administrador.cpp.

348  {
349  string cpf;
350  bool residenteEncontrado = false;
351 
352  system("clear || cls");
353  cout << " ---Remover Residente---" << endl;
354  cout << "Digite o CPF do Residente (000.000.000-00): ";
355  cin.ignore();
356  getline(cin, cpf);
357 
358  for(int i = 0; i < residentes.size(); i++){
359  if(residentes[i].getCpf() == cpf){
360  residentes.erase(residentes.begin() + i);
361  residenteEncontrado = true;
362  break;
363  }
364  }
365 
366  if(residenteEncontrado){
367  cout << "---Residente removido com sucesso!\n" << endl;
368  } else{
369  cout << "---Residente não encontrado!\n" << endl;
370  }
371 }

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