-
Notifications
You must be signed in to change notification settings - Fork 0
/
db_caixa_de_troco.c
73 lines (64 loc) · 1.72 KB
/
db_caixa_de_troco.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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "definicoes_sistema.h"
#include "db_caixa_de_troco.h"
// {
// valordamoeda, quantidade
// }
static double TROCO_DISPONIVEL [9] =
{
0.05, 9,
0.1, 9,
0.25, 9,
0.5, 9,
1.0, 9
};
static double BUFFER_MOEDAS_PARA_DEVOLVER_TROCO [9] =
{
0.05, 0,
0.1, 0,
0.25, 0,
0.5, 0,
1.0, 0
};
double* cxt_VerificarTrocoDisponivel() {
return TROCO_DISPONIVEL;
}
void cxt_InserirTroco(int* trocoInserido) {
// vai receber {2, 3} por exemplo
// vai colocar em TROCO_DISPONIVEL 3 moedas de 10 centavos
// numeros de 1 a 5 representarao as moedas de 0.05 centavos a 1 real em sequecia crescente
// so da pra carregar um tipo de moedade cada vez
int intMoeda = trocoInserido[0];
int quantidadeInserida = trocoInserido[1];
int index;
// conversao para index do buffer
index = (intMoeda - 1)*2;
int quantidadeAtual = BUFFER_MOEDAS_PARA_DEVOLVER_TROCO[index];
BUFFER_MOEDAS_PARA_DEVOLVER_TROCO[index] = quantidadeAtual + quantidadeInserida;
}
void cxt_SepararTrocoParaDevolver(double* trocoInserido) {
// input eh array do tipo:
//{
// 1, numeromoedas1real, 0.5, numeromoedas50centavos, 0.25, numeromoedas25centavos,
// 0.10, numeromoedas10centavos, 0.05, numeromoedas5centavos
//}
int i;
int quant = 1;
// como a ordem das moedas do input esta ao contrario da ordem no Buffer
for(i=9; i<=0, i-2;) {
BUFFER_MOEDAS_PARA_DEVOLVER_TROCO[quant] = trocoInserido[i];
quant+2;
}
}
double* cxt_RetirarTrocoParaDevolver() {
int i;
// ler buffer
static double *moedasParaTroco = BUFFER_MOEDAS_PARA_DEVOLVER_TROCO;
// zerar buffer
for(i=1; i<=9; i+2) {
BUFFER_MOEDAS_PARA_DEVOLVER_TROCO[i] = 0;
}
return moedasParaTroco;
}