A Cabine Telefónica
Pretende-se que utilize a ferramenta flex para implementar uma máquina de es-
tados que modele a interacção dum utilizador com um telefone numa cabine
pública.
O telefone reage aos seguintes comandos:
- LEVANTAR
levantar o auscultador; marca o início duma
interacção.
- POUSAR
pousar o auscultador; fim da interacção; deverá ser indicado
o montante a ser devolvido.
- MOEDA <lista de valores>
inserção de moedas (só deverá aceitar moedas válidas, para
valores inválidos deverá ser gerada uma mensagem de erro): lista de
valores = num, num, ..., num.
- T=numero
disca o número ( o número deve ter 9 dígitos excepto se for
iniciado por "00"); as diferentes chamadas deverão ser tratadas da
seguinte maneira:
- para números iniciados por "601" ou "641" a chamada é
"barrada";
- para chamadas internacionais (iniciadas por "00") o
utilizador tem que ter um saldo igual ou superior a 1,5
euros, caso contrário deverá ser avisado que o saldo é
insuficiente e a máquina volta ao estado anterior; a chamada
se for realizada tem um custo de 1,5 euros;
- para chamadas nacionais (iniciadas por "2") o saldo mínimo
e custo de chamada é de 25 cêntimos;
- para chamadas verdes (iniciadas por "800") o custo é 0;
- para chamadas azuis (iniciadas por "808") o custo é de 10
cêntimos.
- ABORTAR
interromper a interacção; a máquina devolve as
moedas.
Como extra pode ainda detalhar como é que é devolvido o troco: quantas moedas e de que
espécie compõem o troco.
A seguir apresenta-se uma possível interacção exemplo.
LEVANTAR
maq: "Introduza moedas."
MOEDA 10c, 30c, 50c, 2e.
maq: "30c - moeda inválida; saldo = 2e60c"
T=601181818
maq: "Os números vermelhos estão proibidos!"
T=253604470
maq: "saldo = 2e35c"
POUSAR
maq: "troco=2e35c; Volte sempre!"
ou
maq: "troco = 1x2e, 1x20c, 1x10c, 1x5c; Volte sempre!"