Galera é o seguinte estou com uma duvida no meu programa... na faculdade professor ediu para fazer o seguinte
Um programa para gerenciar os saques de um caixa eletrônico deve
possuir algum mecanismo para decidir o número de notas de cada valor
que deve ser disponibilizado para o cliente que realizou o saque.
• O critério será o da "distribuição ótima" no sentido de que as notas de
menor valor fossem distribuídas em número mínimo possível.
– Por exemplo, se a quantia solicitada fosse R$ 87,00, o programa deveria indicar uma
nota de R$ 50,00, três notas de R$ 10,00, uma nota de R$ 5,00 e uma nota de R$
2,00.
• Escreva um programa que:
• Possua a opção de saque que recebe o valor da quantia solicitada e
retorne a distribuição das notas de acordo com o critério da distribuição
ótima.
• O programa deverá ter uma opção de recarregar o caixa eletrônico, onde o
usuário deverá informar uma senha e depois colocar a quantidade de cada
nota que esta sendo colocada no caixa eletrônico.
• O caixa eletrônico utiliza notas de R$ 100,00, R$ 50,00, R$ 20,00, R$
10,00, R$ 5,00 e R$ 2,00.
meu programa
#include <stdlib.h>
#include <stdio.h>
//No esquecer de identificarquestoes acima
int main()
{
int Quantia,QNotas100,QNotas50,QNotas20,QNotas10,QNotas5,QNotas2,
Notas100,Notas50,Notas20,Notas10,Notas5,Notas2,Notas100Caixa,
Notas50Caixa,Notas20Caixa,Notas10Caixa,Notas5Caixa,Notas2Caixa,NNotas50,NNotas20,NNotas10,NNotas5,NNotas2,
Senha,SenhaCaixa,Recarga100,Recarga50,Recarga20,Recarga10,Recarga5,Recarga2;
Notas100Caixa=100;
Notas50Caixa=100;
Notas20Caixa=100;
Notas10Caixa=100;
Notas5Caixa=100;
Notas2Caixa=100;
SenhaCaixa = 1234;
printf("Caixa Eletronico.\n\nNotas Disponiveis 100,50,20,10,5,2.\n");
do{
printf("Digite a Quantidade a ser Sacada.\n");
scanf("%d",&Quantia);
/*do
{
printf("Valor de Quantia incorreto. Verifique as Notas Disponiveis.\n");
}while(((Quantia % 100 != 3)||(Quantia % 50 != 3)||(Quantia % 20 != 3) ||(Quantia % 10 != 3)||(Quantia % 100 != 1)||(Quantia % 50 != 1)||(Quantia % 20 != 1)||(Quantia % 10 != 1)));*/
QNotas100 = (Quantia / 100);
//printf("%d\n",Notas100);
Notas100 = Notas100Caixa;
if (QNotas100 > 0){
Notas100Caixa = (Notas100 - QNotas100);
printf("Notas de 100 a serem Sacadas: %d.\n",QNotas100);
printf("Notas de 100 no Caixa: %d.\n",Notas100Caixa);
}
else
{
printf("Notas de 100 a serem Sacadas: não se Aplica.\n");
}
//printf("%d",Notas100);
if (Notas100 <= 0)
{
do
{
printf("Notas de 100 Indisponiveis no Momento.Favor Recarregar.\n");
printf("Digite a Senha pra fazer recarga de Notas.\n");
scanf("%d",&Senha);
if(Senha == SenhaCaixa)
{
printf("Digite o Valor para Recarga para Notas de 100. (OBS: No maximo 100.)\n");
scanf("%d",&Recarga100);
if (Recarga100 > 100)
{
printf("Erro\nValor de recarga invalido.Verifique.\n");
}
else
{
printf("Recarga realizada com sucesso.\n");
Notas100Caixa = Recarga100;
}
//printf("%d\n",Notas100);
}
else
{
printf("Senha Invalida.\n");
}
}while(Notas100 = 0);
}
QNotas50 = (Quantia % 100);
if (QNotas50 >= 50)
{
NNotas50 = (QNotas50 / 50);
Notas50=Notas50Caixa;
if (NNotas50 > 0)
{
Notas50Caixa = (Notas50 - NNotas50);
printf("Notas de 50 a serem Sacadas: %d.\n",NNotas50);
printf("Notas de 50 no Caixa: %d.\n",Notas50Caixa);
}
else
{
printf("Notas de 50 a serem Sacadas: não se Aplica.\n");
}
}
else
{
printf("Notas de 50 a serem Sacadas: não se Aplica.\n");
}
//Notas50=Notas50Caixa;
if (Notas50 <= 0)
{
do
{
printf("Notas de 50 Indisponiveis no Momento.Favor Recarregar.\n");
printf("Digite a Senha pra fazer recarga de Notas.\n");
scanf("%d",&Senha);
if(Senha == SenhaCaixa)
{
printf("Digite o Valor para Recarga para Notas de 50. (OBS: No maximo 100.)\n");
scanf("%d",&Recarga50);
if (Recarga50 > 100)
{
printf("Erro\nValor de recarga invalido.Verifique.\n");
}
else
{
printf("recarga Com notas de 50 realizada com sucesso.\n");
Notas50Caixa = Recarga50;
}
}
else
{
printf("Senha Invalida.\n");
}
}while(Notas50 = 0);
}
QNotas20 = (QNotas50 % 50);
if ((QNotas20 >= 20) || (QNotas20 >=40))
{
NNotas20 = (QNotas20 / 20);
Notas20=Notas20Caixa;
if (NNotas20 > 0)
{
Notas20Caixa = (Notas20 - NNotas20);
printf("Notas de 20 a serem Sacadas: %d.\n",NNotas20);
printf("Notas de 20 no Caixa: %d.\n",Notas20Caixa);
}
else
{
printf("Notas de 20 a serem Sacadas: não se Aplica.\n");
}
}
else
{
printf("Notas de 20 a serem Sacadas: não se Aplica.\n");
}
if (Notas20 <= 0)
{
do
{
printf("Notas de 20 Indisponiveis no Momento.Favor Recarregar.\n");
printf("Digite a Senha pra fazer recarga de Notas.\n");
scanf("%d",&Senha);
if(Senha == SenhaCaixa)
{
printf("Digite o Valor para Recarga para Notas de 20. (OBS: No maximo 100.)\n");
scanf("%d",&Recarga20);
if (Recarga20 > 100)
{
printf("Erro\nValor de recarga invalido.Verifique.\n");
}
else
{
printf("recarga Com notas de 20 realizada com sucesso.\n");
Notas20Caixa = Recarga20;
}
}
else
{
printf("Senha Invalida.\n");
}
}while(Notas20 = 0);
}
QNotas10 = (QNotas20 % 20);
if (QNotas10 >= 10)
{
NNotas10 = (QNotas10 / 10);
Notas10=Notas10Caixa;
if (NNotas10 > 0)
{
Notas10Caixa = (Notas10 - NNotas10);
printf("Notas de 10 a serem Sacadas: %d.\n",NNotas10);
printf("Notas de 10 no Caixa: %d.\n",Notas10Caixa);
}
else
{
printf("Notas de 10 a serem Sacadas: não se Aplica.\n");
}
}
else
{
printf("Notas de 10 a serem Sacadas: não se Aplica.\n");
}
if (Notas10 <= 0)
{
do
{
printf("Notas de 10 Indisponiveis no Momento.Favor Recarregar.\n");
printf("Digite a Senha pra fazer recarga de Notas.\n");
scanf("%d",&Senha);
if(Senha == SenhaCaixa)
{
printf("Digite o Valor para Recarga para Notas de 10. (OBS: No maximo 100.)\n");
scanf("%d",&Recarga10);
if (Recarga10 > 100)
{
printf("Erro\nValor de recarga invalido.Verifique.\n");
}
else
{
printf("recarga Com notas de 10 realizada com sucesso.\n");
Notas10Caixa = Recarga10;
}
}
else
{
printf("Senha Invalida.\n");
}
}while(Notas10 = 0);
}
QNotas5 = (QNotas10 % 10);
Notas5=Notas5Caixa;
if ((QNotas5 >= 5)||(QNotas5 >= 7))
{
NNotas5 = (QNotas5 / 5);
Notas5=Notas5Caixa;
if (NNotas5 > 0)
{
Notas5Caixa = (Notas5 - NNotas5);
printf("Notas de 5 a serem Sacadas: %d.\n",NNotas5);
printf("Notas de 5 no Caixa: %d.\n",Notas5Caixa);
}
else
{
printf("Notas de 5 a serem Sacadas: não se Aplica.\n");
}
}
else
{
printf("Notas de 5 a serem Sacadas: não se Aplica.\n");
}
if (Notas5 <= 0)
{
do
{
printf("Notas de 5 Indisponiveis no Momento.Favor Recarregar.\n");
printf("Digite a Senha pra fazer recarga de Notas.\n");
scanf("%d",&Senha);
if(Senha == SenhaCaixa)
{
printf("Digite o Valor para Recarga para Notas de 5. (OBS: No maximo 100.)\n");
scanf("%d",&Recarga5);
if (Recarga5 > 100)
{
printf("Erro\nValor de recarga invalido.Verifique.\n");
}
else
{
printf("recarga Com notas de 5 realizada com sucesso.\n");
Notas5Caixa = Recarga5;
}
}
else
{
printf("Senha Invalida.\n");
}
}while(Notas5 = 0);
}
QNotas2 = (Quantia % 100);
if (QNotas2 >= 2)
{
NNotas2 = (QNotas2 / 2);
Notas2=Notas2Caixa;
if (NNotas2 > 0)
{
Notas2Caixa = (Notas2 - NNotas2);
printf("Notas de 2 a serem Sacadas: %d.\n",NNotas2);
printf("Notas de 2 no Caixa: %d.\n",Notas2Caixa);
}
else
{
printf("Notas de 2 a serem Sacadas: não se Aplica.\n");
}
}
}while(Quantia > 0);
system("PAUSE");
return(0);
}
ele esta um pouco grande devido eu ser inicante ainda.... meu problema esta na nota de dois em questao... se o usuario digitar 106 é uma nota de 100 e 3 de 2 certo a restriçaoo para valores que tenha resto 1 e 3 vou fazer ainda... caso o usuario digitar 116 ou 118 104 ... meu programa esta rodando perfeitamente ate esta nota de 2 se der testem aew e me auxiliem o que devo fazer em relaçao a esta nota de 2... para sair do loop é so digitar 0
Pergunta
Fabin
Galera é o seguinte estou com uma duvida no meu programa... na faculdade professor ediu para fazer o seguinte
Um programa para gerenciar os saques de um caixa eletrônico deve
possuir algum mecanismo para decidir o número de notas de cada valor
que deve ser disponibilizado para o cliente que realizou o saque.
• O critério será o da "distribuição ótima" no sentido de que as notas de
menor valor fossem distribuídas em número mínimo possível.
– Por exemplo, se a quantia solicitada fosse R$ 87,00, o programa deveria indicar uma
nota de R$ 50,00, três notas de R$ 10,00, uma nota de R$ 5,00 e uma nota de R$
2,00.
• Escreva um programa que:
• Possua a opção de saque que recebe o valor da quantia solicitada e
retorne a distribuição das notas de acordo com o critério da distribuição
ótima.
• O programa deverá ter uma opção de recarregar o caixa eletrônico, onde o
usuário deverá informar uma senha e depois colocar a quantidade de cada
nota que esta sendo colocada no caixa eletrônico.
• O caixa eletrônico utiliza notas de R$ 100,00, R$ 50,00, R$ 20,00, R$
10,00, R$ 5,00 e R$ 2,00.
meu programa
ele esta um pouco grande devido eu ser inicante ainda.... meu problema esta na nota de dois em questao... se o usuario digitar 106 é uma nota de 100 e 3 de 2 certo a restriçaoo para valores que tenha resto 1 e 3 vou fazer ainda... caso o usuario digitar 116 ou 118 104 ... meu programa esta rodando perfeitamente ate esta nota de 2 se der testem aew e me auxiliem o que devo fazer em relaçao a esta nota de 2... para sair do loop é so digitar 0
obrigado
t+
Editado por Jonathan QueirozLink para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.