-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.cpp
162 lines (144 loc) · 6.08 KB
/
main.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
/********************************************************
* FILENAME : main.cpp
* DESCRIPTION : Implementação da função principal para gerenciar operações de passageiros,
* tripulação, voos, assentos, reservas e pesquisas em um sistema de gerenciamento de voos.
*
* FUNCTION :
* - int main() : Exibe um menu interativo que permite ao usuário realizar operações relacionadas
* a passageiros, tripulação, voos, assentos, reservas e pesquisas. O menu continua sendo exibido
* até que o usuário escolha finalizar.
*
* INCLUDED FILES :
* - <iostream> : Para manipulação de entrada e saída padrão (cout, cin).
* - <cstdio> : Para funções de entrada e saída como printf e scanf.
* - <string> : Para usar a classe string do C++.
* - <limits> : Para usar numeric_limits, utilizado para tratar entradas inválidas.
* - "funcoes/fc.h" : Contém funções gerais para operações como obter o último código.
* - "passageiros/passageiros.h" : Contém funções para registrar passageiros.
* - "tripulacao/tripulacao.h" : Contém funções para registrar tripulação.
* - "voo/voo.h" : Contém funções para registrar voos.
* - "assento/assento.h" : Contém funções para registrar assentos.
* - "pesquisa/pesquisa.h" : Contém funções para pesquisar passageiros e tripulantes.
* - "reserva/reserva.h" : Contém funções para registrar e baixar reservas.
*
* NOTES :
* Este programa é um sistema de gerenciamento de voos, permitindo o cadastro e a busca de informações de passageiros,
* tripulação, voos, assentos e reservas. O usuário interage com um menu que oferece opções de registro, pesquisa e
* gerenciamento de reservas.
*
* AUTHOR : Felipe Cury
* START DATE : 23/11/2024
********************************************************/
#include <iostream>
#include <cstdio>
#include <string>
#include <limits>
#include "funcoes/fc.h"
#include "passageiros/passageiros.h"
#include "tripulacao/tripulacao.h"
#include "voo/voo.h"
#include "assento/assento.h"
#include "pesquisa/pesquisa.h"
#include "reserva/reserva.h"
using namespace std;
// Variáveis globais para operações de pesquisa e reserva
int pesqui, res;
/**
* FUNCTION: main
* PURPOSE: Exibir um menu interativo para gerenciar operações de passageiros, tripulação, voos,
* assentos, reservas e pesquisas.
*
* DESCRIPTION:
* A função principal do programa exibe um menu com opções para realizar operações específicas.
* O loop continua até que o usuário escolha a opção para finalizar. As operações incluem
* registrar passageiros, tripulação, voos, assentos, reservas, e realizar pesquisas de passageiros
* ou tripulação. A função também trata entradas inválidas para garantir a execução adequada.
*
* RETURNS:
* int : Retorna 0 indicando que o programa terminou com sucesso.
*/
int main()
{
int menu; // Armazena a opção escolhida pelo usuário no menu principal
do
{
// Exibe o menu principal com as opções disponíveis
printf("\n-------------------------------------\n");
printf(">> SELECIONE UMA OPCAO! <<"
"\n[1] Registrar passageiro"
"\n[2] Registrar tripulacao"
"\n[3] Registrar voo"
"\n[4] Registrar assentos"
"\n[5] Reservar assento"
"\n[6] Pesquisar"
"\n[0] Finalizar cadastro\n");
printf("|\nV\n");
// Lê a opção digitada pelo usuário
if (scanf("%d", &menu) != 1) {
// Trata entradas inválidas que não são números
cin.clear(); // Limpa o estado de erro do cin
cin.ignore(numeric_limits<streamsize>::max(), '\n'); // Ignora caracteres restantes no buffer
cout << "Entrada invalida! Por favor, insira um numero valido.\n";
continue; // Reinicia o loop para exibir o menu novamente
}
printf("-------------------------------------\n");
// Processa a opção selecionada pelo usuário
switch (menu)
{
case 1:
// Registra um novo passageiro no sistema
registrarPassageiro();
break;
case 2:
// Registra os dados da tripulação no sistema
registraTripulacao();
break;
case 3:
// Registra um novo voo no sistema
registraVoo();
break;
case 4:
// Registra a configuração dos assentos para um voo
registrarAssento();
break;
case 5:
// Permite ao usuário escolher entre reservar ou baixar uma reserva
printf("reservar(1) ou baixar reserva(2)\n");
scanf("%d", &res);
if (res == 1) {
// Registra uma nova reserva de assento
registrarReserva();
} else if (res == 2) {
// Remove ou baixa uma reserva existente
baixarReserva();
} else {
// Informa que a escolha foi inválida
printf("Escolha invalida\n");
}
break;
case 6:
// Permite ao usuário pesquisar informações sobre passageiros ou tripulação
printf("passageiro(1) ou tripulacao(2)\n");
scanf("%d", &pesqui);
if (pesqui == 1) {
// Realiza a pesquisa de um passageiro
pesquisarPassageiro();
} else if (pesqui == 2) {
// Realiza a pesquisa de um membro da tripulação
pesquisarTripulacao();
} else {
// Informa que a escolha foi inválida
printf("escolha invalida\n");
}
break;
case 0:
// Encerra a execução do programa
break;
default:
// Informa ao usuário que a opção selecionada é inválida
printf("Opcao invalida. Tente novamente.\n");
break;
}
} while (menu != 0); // O loop continua até que o usuário escolha a opção 0
return 0; // Indica que o programa terminou com sucesso
}