Ir para conteúdo
Fórum Script Brasil
  • 0

[Exercicio] Duvida no algoritmo


Hzsiul

Pergunta

Acabei de resolver um exercicio, e não sei se consegui alcançar o objetivo do problema, pois achei algumas definiçoes meio estranhas, queria a opniao de vocês, para saber se está correto ou errado a soluçao e ou quais melhoras posso fazer no codigo.

Abaixo segue o problema juntamente com o codigo que desenvolvi para o mesmo.

1) Desenvolva um programa em C++ que determinará se um cliente de uma loja de departamentos

excedeu o limite de credito em conta corrente. Para cada cliente, os seguintes fatos estao

disponiveis:

a)Numero da conta

b)Saldo no principio do mes

c)Total de debitos

d)Total de compras no credito.

e)Limite de credito permitido.

O programa deve receber como entrada cada um destes fatos. calcular o novo saldo

(=saldo inicial +debitos -creditos) e determinar se o novo saldo execede o limite de credito

do cliente. Para aqueles clientes cujo limite de credito for excedido, o programa deve

exibir o numero da conta do cliente, o limite de credito, o novo saldo e a mensagem

"Limite de credito excedido."

#include <iomanip>
#include <iostream>

using namespace std;

int main(){
cout<<setprecision(2)<<setiosflags(ios::fixed|ios::showpoint|ios::left);
int nconta,op;
float nsaldo,ncredito,ndebito,nncredito;
float nfsaldo=0,nfcredito=0;
cout<<"Digite o numero da conta: ";
cin>>nconta;
cout<<"Digite o seu saldo inicial: ";
cin>>nsaldo;
cout<<"Digite seu limite de credito: ";
cin>>ncredito;
cout<<"Digite os gastos em sua conta: ";
cin>>ndebito;
cout<<"Digite os gastos em seu cartao de credito: ";
cin>>nncredito;
cout<<"Digite (1) para calcular,(2) Para iniciar o calculo novamente\n";
cin>>op;

switch (op){

case 1:
nfsaldo=nsaldo-ndebito;
nfcredito=ncredito-nncredito;
cout<<"Conta: "<<nconta<<endl;
cout<<"Saldo: "<<nfsaldo<<endl;
cout<<"Limite de credito: "<<nfcredito<<endl;
if (ncredito < nncredito)
cout<<"Limite de credito excedido, voce esta devendo: "<<nfcredito<<endl;
if (ndebito > nsaldo)
cout<<"Limite em conta excedido, cheque especial!"<<endl;
getchar();
break;

case 2:
system ("cls");
main();
break;

default:
cout<<"Opcao invalida por favor tente novamente!\n";
system ("cls");
main();
break;

}

getchar();
return(0);
}

Editado por Hzsiul
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Olá!

Realmente está estranho esse enunciado. De qualquer forma eu seguiria à risca o que foi proposto, mesmo não fazendo tanto sentido assim.

Veja que no enunciado existe uma fórmula: saldo inicial + debitos - credito.

Isso não foi feito no seu programa. Você separou em débito e crédito.

Eu imagino que nesse caso os débitos referem-se a valores pagos e créditos as compras efetuadas, como se fosse uma fatura de cartão de crédito.

Vendo dessa forma, aquela fórmula inicial passaria a fazer sentido.

Uma sugestão seria adicionar uma opção no programa para calcular da forma eu falei.

Assim, se de uma forma não estiver certa, a outra vai estar! E seu programa vai calcular das duas formas... B)

Outra coisa: não é muito comum ficar chamando o main dentro dele mesmo. O ideal é fazer um loop dentro do main ao invés de chamar ele de novo. Fazendo o loop, seu programa ficaria assim:

#include <iomanip>
#include <iostream>

using namespace std;

int main(){
    int nconta,op;
    float nsaldo,ncredito,ndebito,nncredito;
    float nfsaldo=0,nfcredito=0;

    cout<<setprecision(2)<<setiosflags(ios::fixed|ios::showpoint|ios::left);

    do {
        cout<<"Digite o numero da conta: ";
        cin>>nconta;
        cout<<"Digite o seu saldo inicial: ";
        cin>>nsaldo;
        cout<<"Digite seu limite de credito: ";
        cin>>ncredito;
        cout<<"Digite os gastos em sua conta: ";
        cin>>ndebito;
        cout<<"Digite os gastos em seu cartao de credito: ";
        cin>>nncredito;
        cout<<"Digite (1) para calcular, (2) Para iniciar o calculo novamente, (9) Para sair\n";
        cin>>op;

        switch (op){
        case 1:
            nfsaldo=nsaldo-ndebito;
            nfcredito=ncredito-nncredito;
            cout<<"Conta: "<<nconta<<endl;
            cout<<"Saldo: "<<nfsaldo<<endl;
            cout<<"Limite de credito: "<<nfcredito<<endl;
            if (ncredito < nncredito)
            cout<<"Limite de credito excedido, voce esta devendo: "<<nfcredito<<endl;
            if (ndebito > nsaldo)
            cout<<"Limite em conta excedido, cheque especial!"<<endl;
            getchar();
            break;

        case 2: // repetir, não faz nada
        case 9: // sair, o while vai terminar
            break;

        default:
            cout<<"Opcao invalida por favor tente novamente!\n";
            system ("cls");
            break;
        }
    } while(op != 9);

    getchar();
    return(0);
}

Editado por Marcelo Utikawa da Fonseca
Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...