-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.c
92 lines (86 loc) · 3.02 KB
/
main.c
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
/*
* @copyright João Paulo.
* Github: https://github.com/Joao-Paulo-Silva
*/
#include <stdio.h>
#include "lista/lista.h"
#include "view/telaPrincipal.h"
#define PATCHPRODUTOS "model/arquivos/pdt.bn"
#define PATCHUSUARIOS "model/arquivos/user.bn"
// Main iniciar o programa chamando as funções.
int main(void) {
unsigned short int opcao;
int variavelControle;
// Variável booleana para verificar se a interface de salvamento será usada.
bool alteracao = false;
// Criar duas listas com dados se houver arquivos com dados armazenados ou NULL se não encontrados.
Lista * listaProdutos = lerArquivoProdutos(PATCHPRODUTOS);
Lista * listaUsuarios = lerArquivoUsuarios(PATCHUSUARIOS);
while(1){ // Início do while
limpaConsole();
opcao = menuInicial();
switch(opcao){ // Início do switch
case 1:
opcao = produtoMenu();
switch(opcao){ // Início do switch
case 1:
while(1){
listaProdutos = addItemLista(listaProdutos, inserirProduto());
printPrecioneEnter();
if(getchar() != '\n'){
break;
}
}
// Define true para marcar que houve alteração na lista, para abrir a opção de salvar ao usuário tentar sair.
alteracao = true;
break;
case 2:
limpaConsole();
printProdutos(listaProdutos, length(listaProdutos));
break;
case 3:
variavelControle = length(listaProdutos);
listaProdutos = buscaTelaProduto(listaProdutos);
if(variavelControle != length(listaProdutos))
alteracao = true;
break;
} // Fim do switch
break;
case 2:
opcao = usuarioMenu();
switch(opcao){ // Início do switch
case 1:
while(1){
listaUsuarios = addItemLista(listaUsuarios, inserirUsuario());
printPrecioneEnter();
if(getchar() != '\n'){
break;
}
}
// Define true para marcar que houve alteração na lista, para abrir a opção de salvar ao usuário tentar sair.
alteracao = true;
break;
case 2:
limpaConsole();
printUsuarios(listaUsuarios, length(listaUsuarios));
break;
case 3:
variavelControle = length(listaUsuarios);
listaUsuarios = buscaTelaUsuario(listaUsuarios);
if(variavelControle != length(listaUsuarios))
alteracao = true;
break;
} // Fim do switch
break;
case 3:
if((length(listaProdutos) > 0 || length(listaUsuarios) > 0) && alteracao)
telaSalvar(listaProdutos, listaUsuarios, PATCHPRODUTOS, PATCHUSUARIOS);
if(listaProdutos != NULL)
deletaListaDadosAlocados(listaProdutos);
if(listaUsuarios != NULL)
deletaListaDadosAlocados(listaUsuarios);
positionPrint(0, 10);
return EXIT_SUCCESS;
} // Fim do switch
} // Fim do while
}