Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

pedroTADS

Programacao em C

Recommended Posts

Editado para adicionar tag code.

 

Bom Galera ,

desculpa ta aqui atrapalhando e talz ..

Estou com dificuldade para fazer a criacao de um programa ..

o programa é o seguinte : O seu programa gerenciará informações de uma conta bancária.

O seu programa deverá ler o saldo inicial da conta.

A seguir deverá apresentar o seguinte menu de opções:

0: Sair

1: Depósito

2: Retirada

3. Retirada em outra moeda no exterior

4. Imprimir saldo atual

Na opção Depósito, o usuário irá digitar um valor positivo, e o saldo da conta será atualizado.

Na opção Retirada, o usuário irá digitar um valor positivo, e o saldo da conta será atualizado. Caso o valor da conta fique negativo (se o valor retirado for maior que o saldo na conta), o programa exibirá uma mensagem e terminará.

Na opção Retirada em outra moeda, o usuário irá digitar a taxa de cambio (Por exemplo 1 Dólar = 1.68 Reais) e um valor positivo que será a retirada em outra moeda (Por exemplo 200), o valor da conta será atualizado multiplicando a taxa de cambio pelo valor retirado em outra moeda (Por exemplo: 200*1.68=336). Também deverá ser verificado o caso de ficar com saldo negativo.

Na opção Imprimir saldo atual o sistema mostra o saldo da conta.

 

até o momento cheguei até aqui .. mais travei de uma forma que nao to conseguindo sair ..

 

int menu;


printf(" ############ MENU BANCO PEDRO RODRIGUES  ########### \n\n\n");
printf(" 1 - Depositar : \n\n\n");
printf(" 2 - Retirar   : \n\n\n");
printf(" 3 - Retirada em outra moeda : \n\n\n");
printf(" 4 - Imprimir Saldo Atual : \n\n\n");
scanf ("%d", &menu);

               menu=0;

               switch (menu) {
                      case 1:  printf ("1 - Deposito no valor de : \n\n");

 

qaulquer ajuda é bem vinda , obrigado desde já !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Porque você lê a opção do menu

scanf ("%d", &menu);

e logo em seguida anula a escolha, atribuindo um valor para o menu?

menu=0;

 

No mais qual é exatamente sua dificuldade?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Porque você lê a opção do menu

scanf ("%d", &menu);

e logo em seguida anula a escolha, atribuindo um valor para o menu?

menu=0;

 

No mais qual é exatamente sua dificuldade?

 

entao .. eu me perdi de tal forma ,que ja nao sei mais onde com o codigo de "saldo" , retirada !

como colocar a conta do sistema ..

ai que eu to me perdendo ,

agradeço desde já !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tire aquele menu = 0 depois de ler a variável e continue seu switch. Dentro de cada case faça as operações adequadas. Se já aprendeu sobre criar funções é bom fazer uma para cada case, senão coloque as instruções direto ali mesmo.

 

Use esse esqueleto aqui se preferir:

 

#include <stdio.h>
#include <conio.h>

int main()
{

   int menu = 0;


   do {
       printf("Digite uma opcao: ");
       scanf("%d",&menu);
       switch(menu) {
           case 1: // Operações para Depositar
               break;
           case 2: // Operações para Retirada
               break;
           case 3: // Operações para Retirada em Moeda Estrangeira
               break;
           case 4: // Operações de Imprimir Saldo
               break;
           case 0: // Sair do programa
               break;
           default:  printf("Opcao Invalida\n");
               break;
       };
   } while(menu != 0);

 getch();
 return 0;
}

Se for utilizar o código acima tenha certeza que entendeu tudo. Se não souber o que é um do-while, getch, um break, default... pesquise ou pergunte aqui, mas não prossiga sem saber o que está fazendo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tire aquele menu = 0 depois de ler a variável e continue seu switch. Dentro de cada case faça as operações adequadas. Se já aprendeu sobre criar funções é bom fazer uma para cada case, senão coloque as instruções direto ali mesmo.

 

Use esse esqueleto aqui se preferir:

 

#include <stdio.h>
#include <conio.h>

int main()
{

   int menu = 0;


   do {
       printf("Digite uma opcao: ");
       scanf("%d",&menu);
       switch(menu) {
           case 1: // Operações para Depositar
               break;
           case 2: // Operações para Retirada
               break;
           case 3: // Operações para Retirada em Moeda Estrangeira
               break;
           case 4: // Operações de Imprimir Saldo
               break;
           case 0: // Sair do programa
               break;
           default:  printf("Opcao Invalida\n");
               break;
       };
   } while(menu != 0);

 getch();
 return 0;
}

Se for utilizar o código acima tenha certeza que entendeu tudo. Se não souber o que é um do-while, getch, um break, default... pesquise ou pergunte aqui, mas não prossiga sem saber o que está fazendo.

 

eentao me desculpe acho que nao expliquei direito na ultima vez ..

meu problema ta sendo . nao sei como e onde colocar as operacoes .. meu problema tá meio que na logica do negocio..

nao entendi como fazer ..o saldo .. como eu codifico o deposito.. onde que ue coloco as contas .. essa é a diferenca !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na descrição do problema não fala em múltiplos usuários, então você pode resolver o problema pensando em apenas um usuario.

As variaveis que você precisa são:

 

float saldo // para armazenar o saldo
float taxaCambio // para guardar o valor da taxa de cambio informada.
float valor // para guardar o valor de uma retirada ou deposito

 

E em cada caso do switch é só o caso de fazer simples contas de adição ( deposito ), subtração (retirada) e multiplicação (retira em moeda estrangeira).

 

Então se sua pergunta é onde colocar as operações, eu respondo, em cada case do switch.

 

case 1 : printf("Digite o valor a ser depositado");
        scanf("%f",&valor);
        saldo += valor;
        break;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Editado para adicionar tag code.

 

eeentao .. eu terminei , copilei!

mais quando executo o programa percebo alguns erros ..

 

#include <stdio.h>
#include <conio.h>

int main()
{

   int menu = 0;
   int valor;
   int saldo;
   int cambio;
      printf("1- Deposito \n\n");
       printf("2- Retirada\n\n" );
       printf("3- Retirada em Moeda Estrangeira\n\n");
       printf("4- Imprimir Saldo\n\n");
       printf("5- Sair do Programa\n\n");
       scanf("%d",&menu);
       switch(menu) {
           case 1: printf("Digite o valor a ser depositado");
        scanf("%f",&valor);
       saldo += valor;         
        break; // Operações para Depositar
           case 2: printf("Digite o Valor a ser retirado");// Operações para Retirada
               scanf("%f",&valor);
               saldo-= valor;
               break;
           case 3: printf("Digite o valor a ser trocado por dolar");// Operações para Retirada em Moeda Estrangeira
               scanf("%f",&cambio);
               saldo = cambio*valor;

               break;
           case 4:printf("Seu saldo é de : "); // Operações de Imprimir Saldo
               scanf("%f",&saldo); 

               break;
           case 0:printf("Sair do Programa."); // Sair do programa

               break;
           default:  printf("Opcao Invalida\n");
               break;
       };
     while(menu != 0);


 getch();
 return 0;
}

 

eu digito os valores .. só que ele nao me retorna um outro .. e tambem assim que termino de fazer a operacao que o usuario faria .. ele nao esta voltando para o menu de opcoes ..oque mais eu posso fazer , e onde mais eu to errando !

Grato ,

pedro !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em primeiro lugar, bem-vindo ao fórum. Gostaria de agradecer por postar o código que você já tinha ao invés de colar a descrição do problema e pedir uma solução. Esta é a forma certa de conseguir ajuda aqui.

 

Tenho uma recomendação: use a tag code para postar seu código, de maneira a torná-lo mais legível e separá-lo adequadamente do resto da sua mensagem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tranquiLo , e eu prefiro apreender do que o trabalho de mao beijada , afinal é meu futuro que entra nessa.. aproveitando que tu comento , tu nao tem como ajudar nao ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigão, eu postei um código com um laço de repetição

 

do {


while(menu != 0);

 

Você tirou o do e ele nçao volta mais pro menu.. obeserve o código esqueleto que postei aqui

http://forum.imasters.com.br/topic/431644-programacao-em-c/page__view__findpost__p__1704013

 

Fora isso, seu case 3 e 4 estão errados. Preste atenção na descrição do problema. As contas no case 3 estão erradas e no case 4 olhe bem o que você está fazendo e leia bem o que deveria ser feito.

E você declarou as variáveis como inteiro e nos scanf lê como float... Ou declare elas como float ou entao leia elas como inteiro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

#include <stdio.h>
#include <conio.h>

int main()
{

   int menu = 0;
   float valor;
   float saldo;
   saldo = 500;
    float cambio; 
    cambio=1,56;
      printf("1- Deposito \n\n");
       printf("2- Retirada\n\n" );
       printf("3- Retirada em Moeda Estrangeira\n\n");
       printf("4- Imprimir Saldo\n\n");
       printf("5- Sair do Programa\n\n");              
       scanf("%d",&menu);
       switch(menu) {

            do{
                     case 1: printf("Digite o valor a ser depositado\n\n");
        scanf("%f",&valor);
       saldo += valor;         
        break; // Operações para Depositar
           case 2: printf("Digite o Valor a ser retirado\n\n");// Operações para Retirada
               scanf("%f",&valor);
               saldo-= valor;
               if(valor<saldo)
              break;
           case 3: printf("Digite o valor a ser trocado por dolar\n\n");// Operações para Retirada em Moeda Estrangeira
               scanf("%f",&cambio);
               saldo += cambio*valor;

               break;
           case 4:printf("Seu saldo é de : \n\n"); // Operações de Imprimir Saldo
               scanf("%f",&saldo); 

               break;
           case 0:printf("Sair do Programa.\n\n"); // Sair do programa

               break;
           default:  printf("Opcao Invalida\n\n");
               break;

       }
     while(menu != 0);

}
 getch();
 return 0 ;
 };

 

#include <stdio.h>
#include <conio.h>

int main()
{

   int menu = 0;
   float valor;
   float saldo;
   saldo = 500;
    float cambio; 
    cambio=1,56;
      printf("1- Deposito \n\n");
       printf("2- Retirada\n\n" );
       printf("3- Retirada em Moeda Estrangeira\n\n");
       printf("4- Imprimir Saldo\n\n");
       printf("5- Sair do Programa\n\n");              
       scanf("%d",&menu);
       switch(menu) {

            do{
                     case 1: printf("Digite o valor a ser depositado\n\n");
        scanf("%f",&valor);
       saldo += valor;         
        break; // Operações para Depositar
           case 2: printf("Digite o Valor a ser retirado\n\n");// Operações para Retirada
               scanf("%f",&valor);
               saldo-= valor;
               if(valor<saldo)
              break;
           case 3: printf("Digite o valor a ser trocado por dolar\n\n");// Operações para Retirada em Moeda Estrangeira
               scanf("%f",&cambio);
               saldo += cambio*valor;

               break;
           case 4:printf("Seu saldo é de : \n\n"); // Operações de Imprimir Saldo
               scanf("%f",&saldo); 

               break;
           case 0:printf("Sair do Programa.\n\n"); // Sair do programa

               break;
           default:  printf("Opcao Invalida\n\n");
               break;

       }
     while(menu != 0);

}
 getch();
 return 0 ;
 };

 

 

TEM 1 ERRO QUE EU ESQEUCI DE ARRUMAR ANTES DE POSTAR .. O IF (VALOR<SALDO) ..

FORA ISSO ONDE MAIS TO ERRANDO ?

E A RESPEITO DO DO WHILE .. EU ESQUECI DE BOTAR .. FUI FAZENDO PRA APRENDE E NEM TINHA VISTO , FOI FALTA DE ATENCAO MESMO ..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olhe meu exemplo de novo. o comando do NÃO vai dentro do switch! É o switch que vai dentro do loop!

Do-While é um laço de repetição, você coloca dentro de suas chaves aquilo que você quer que se repita. O que você quer que se repita?

 

Que quando o usuário fizer uma operação volte para o menu de escolha com as opções escritas, então é isso que tem que repetir. Depois que você arrumar isso podemos ver os outros erros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Myho , arrumei e coloquei o do-while no lugar correto .. e obrigado por ta me ajudando antes de tudo ..

aqui vai o codigo .. da forma que ficou ..

#include <stdio.h>
#include <conio.h>

int main()
{

   int menu = 0;
   float valor;
   float saldo;
   saldo = 500;
    float cambio; 
    cambio= 1,56;
     do{
      printf("1- Deposito \n\n");
       printf("2- Retirada\n\n" );
       printf("3- Retirada em Moeda Estrangeira\n\n");
       printf("4- Imprimir Saldo\n\n");
       printf("5- Sair do Programa\n\n");              

       scanf("%d",&menu);
       switch(menu) {


                     case 1: printf("Digite o valor a ser depositado\n\n");
        scanf("%f",&valor);
       saldo += valor;         
        break; // Operações para Depositar
           case 2: printf("Digite o Valor a ser retirado\n\n");// Operações para Retirada
               scanf("%f",&valor);
               saldo-= valor;
               if(valor<saldo)
              break;
           case 3: printf("Digite o valor a ser trocado por dolar\n\n");// Operações para Retirada em Moeda Estrangeira
               scanf("%f",&cambio);
               saldo += cambio*valor;

               break;
           case 4:printf("Seu saldo e de : \n\n" ); // Operações de Imprimir Saldo
               scanf("%f",&saldo); 

               break;
           case 0:printf("Sair do Programa.\n\n"); // Sair do programa

               break;
           default:  printf("Opcao Invalida\n\n");
               break;

       };
    } while(menu != 0);

 getch();
 return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora sim. Vamos as problemas nos cases.

 

case 1 ta certinho, o que da pra melhorar ali é mostrar como ficou o saldo atual com o novo deposito.

 

case 2 está certo na conta, mas aquele if ali esta vazio. O if tem que vir antes da conta. Usuario tem saldo 500 e pede para retirar 700. O que a descrição do problmea indica? Que se o valor retirado for maior que o saldo, deve-se imprimir uma mensagem e terminar o programa. Então é isso que você tem que fazer. É um caso de if-else.

 

case 3 você tem que ler a taxa de cambio e também tem que ler o valor, são duas leituras. De posse desses valores você vai calcular qual o valor total que o usuário quer retirar. Aplica-se aqui também a regra de mostrar mensagem se valor a ser retirado maior que saldo.

 

case 4 Aqui não existe razão pra ter scanf... é só mostrar o saldo. printf("Seu saldo é de: %f",saldo); simples assim;

 

 

Na atribuição das variáveis use ponto e não vírgula para separar a parte inteira.

cambio = 1,56; // errado
cambio = 1.56; // certo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora sim. Vamos as problemas nos cases.

 

case 1 ta certinho, o que da pra melhorar ali é mostrar como ficou o saldo atual com o novo deposito.

 

case 2 está certo na conta, mas aquele if ali esta vazio. O if tem que vir antes da conta. Usuario tem saldo 500 e pede para retirar 700. O que a descrição do problmea indica? Que se o valor retirado for maior que o saldo, deve-se imprimir uma mensagem e terminar o programa. Então é isso que você tem que fazer. É um caso de if-else.

 

case 3 você tem que ler a taxa de cambio e também tem que ler o valor, são duas leituras. De posse desses valores você vai calcular qual o valor total que o usuário quer retirar. Aplica-se aqui também a regra de mostrar mensagem se valor a ser retirado maior que saldo.

 

case 4 Aqui não existe razão pra ter scanf... é só mostrar o saldo. printf("Seu saldo é de: %f",saldo); simples assim;

 

 

Na atribuição das variáveis use ponto e não vírgula para separar a parte inteira.

cambio = 1,56; // errado
cambio = 1.56; // certo

 

 

 

 

#include <stdio.h>
#include <conio.h>

int main()
{

   int menu = 0;
   float valor;
   valor=500;
   float saldo;
   saldo=1500;
    float cambio; 
    cambio= 1.56;
    float deposito;
    float saldo_atual;
     do{
      printf("1- Deposito \n\n");
       printf("2- Retirada\n\n" );
       printf("3- Retirada em Moeda Estrangeira\n\n");
       printf("4- Imprimir Saldo\n\n");
       printf("5- Sair do Programa\n\n");              

       scanf("%d",&menu);
       switch(menu) {


                     case 1: printf("Digite o valor a ser depositado\n\n");
        scanf("%f",&deposito);
       deposito+=valor;
         printf("%f,&deposito+%f,&saldo==%f,&saldo_atual");
        break; // Operações para Depositar
           case 2: printf("Digite o Valor a ser retirado\n\n");// Operações para Retirada
               scanf("%f",&valor);
              if(valor>saldo)
              printf("Saldo Insuficiente \n\n");
               saldo-= valor;
              break;
           case 3: printf("Digite o valor a ser trocado por dolar\n\n");// Operações para Retirada em Moeda Estrangeira
               scanf("%f",&cambio);
               saldo += cambio*valor;
              if(saldo==500+cambio*valor);
              printf("%f,&cambio*%f,&valor==%f,&saldo_atual");
               break;
           case 4:printf("Seu saldo e de %f,&saldo \n\n" ); // Operações de Imprimir Saldo


               break;
           case 0:printf("Sair do Programa.\n\n"); // Sair do programa

               break;
           default:  printf("Opcao Invalida\n\n");
               break;

       };
    } while(menu != 0);

 getch();
 return 0;
}


 

 

onde eu to errando ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Recomendo seriamente estudar ou prestar mais atenção nas aulas ou leituras que você possa ter. Você esta usando printf de forma incorreta.

 

Não tem sentido nenhum isso aqui:

 

 printf("%f,&deposito+%f,&saldo==%f,&saldo_atual");

 

Se quer mostrar o saldo por exemplo, seria assim:

 

printf("Saldo atual: %f",saldo);

 

O que está dentro das aspas é o texto a ser mostrado, onde aparecem %d ou %f são os locais onde queremos colocar o valor de alguma variável. Depois de fechar aspas, comece a colocar as variáveis que quer mostrar na ordem em que aparecem no texto, e sempre separadas por vírgula.

 

Exemplo com varias variáveis:

 

int num1 = 10;
float num2 = 20;
float soma = num1 + num2;
printf("A soma de %d + %f resultou em: %f", num1, num2, soma);

 

A saída seria:

 

A soma de 10 + 20.000000 resultou em: 30.000000

 

 

http://www.cplusplus.com/reference/clibrary/cstdio/printf/

http://www.mtm.ufsc.br/~azeredo/cursoC/aulas/c240.html#c243.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.