O dono de um banco em Bora-Bora1 deseja instalar caixas eletrônicos nas magníficas praias da ilha, permitindo a seus correntistas sacar e depositar dinheiro confortavelmente durante os momentos de lazer.
Conhecendo a fama internacional dos alunos do BCC, ele resolveu contratar os alunos de MAC 110 para fazer um programa que mantivesse a contabilidade do caixa e controlasse o número de notas necessárias para efetuar os saques.
Todas as manhãs a central fornece aos caixas notas de 100, 50, 10, 5 e 1 ducas. Todos os saques devem ser processados de maneira a utilizar o menor número possível de notas. Por exemplo, para um saque de 350 ducas o caixa deve entregar, se disponíveis, 3 notas de 100 e 1 nota de 50 (ao invés de outras eventuais possibilidades como 6 notas de 50 e 10 de 5). Para que o caixa eletrônico processe depósitos é necessário que o usuário forneça a quantidade de notas de cada tipo que está fornecendo.
Faça um programa em C que simule um dia de funcionamento do caixa:
Observe o exemplo:
Dados:
Obteríamos a seguinte saída:
D$ 100 | D$ 50 | D$ 10 | D$ 5 | D$ 1 | Total | |
Inicial | 7 | 2 | 1 | 1 | 5 | 820 |
Saque de 370 ducas efetuado | ||||||
Situação atual | 4 | 1 | 0 | 0 | 0 | 450 |
Não há notas suficientes para o saque de 29 ducas!! | ||||||
Situação atual | 4 | 1 | 0 | 0 | 0 | 450 |
Depósito de 37 ducas | ||||||
Situação atual | 4 | 1 | 1 | 5 | 2 | 487 |
Não há dinheiro suficiente para o saque de 800 ducas!! | ||||||
Situação atual | 4 | 1 | 1 | 5 | 2 | 487 |
Não há notas suficientes para o saque de 78 ducas | ||||||
Situação atual | 4 | 1 | 1 | 5 | 2 | 487 |
Depósito de 50 ducas | ||||||
Situação atual | 4 | 1 | 5 | 6 | 7 | 537 |
Saque de 78 ducas efetuado | ||||||
Situação atual | 4 | 0 | 3 | 5 | 4 | 459 |
Processe seu programa usando vários dados como os do exemplo acima. Certifique-se de que seu programa funciona bem mesmo nos casos em que não há notas ou dinheiro suficientes. Infelizmente não será possível custear viagens a Bora-Bora para fazer a manutenção do programa. Por isso, é necessário que seu programa seja fácil de usar (ou seja, o cliente não pode ter dúvidas sobre o que fazer quando estiver no caixa automático) e bem comentado para o caso de que alguma alteração seja necessária (por exemplo, é possível que novas notas sejam impressas em Bora-Bora devido à volta da inflação).