Qual o erro do meu código?

8 respostas
K

oi pessoal! gostaria que vcs pudessem ajudar-me encontrando o erro em meu código. É o seguinte eu quero saber porque não consigo que a variavel “somafi” funcione corretamente somando os valores fornecidos pelo usuário, pois ela sempre exibe 0 quando é executado o programa, ah e se alguem puder me explicar como melhorar esse código eu agradeço!

import javax.swing.JOptionPane;
/*Método pontos por função - Function Point
*
*FP = contagem total * [0,65 + 0,01 * SOMA(fi)]
*Onde fi(i=1 a 14) são valores de ajuste de complexidade baseada
*nas respostas das seguintes perguntas:
*
* 01 - O Sistema requer backup e recuperação confiáveis?
* 02 - São exigidas comunicações de dados?
* 03 - Há funções de processamento distribuídas?
* 04 - O desempenho é crítico?
* 05 - O Sistema funcionará em um ambiente operacional existente,
*      intensamente utilizado?
* 06 - O Sistema requerentrada de dados on-line?
* 07 - A entrada de dados on-line exige que a operação seja elaborada em
*      múltiplas telas  e/ou operações?
* 08 - Os arquivos-mestres são atualizados on-line?
* 09 - Entradas, saídas, arquivos e consultas são complexos?
* 10 - O processo interno é complexo?
* 11 - Há possibilidade de reutilização de código?
* 12 - A conversão e instalação estão incluídas no projeto?
* 13 - O Sistema é projetado para múltiplas instalações em diferentes
*      organizações?
* 14 - A aplicação é projetada de forma a facilitar mudanças e o uso pelo
*      usuário?
*
*RESPOSTAS: 0(sem influência), 1(Incidental), 2(Moderado), 3(Médio),
*           4(significativo), 5(essencial)*/


public class FunctionPoint {
static int somafi = 0;

public static void escolha (int resp){
        switch (resp){
                case 0:
                   break;
                case 1:
                   somafunc(resp);
                   break;
                case 2:
                   somafunc(resp);
                   break;
                case 3:
                   somafunc(resp);
                   break;
                case 4:
                   somafunc(resp);
                   break;
                case 5:
                   somafunc(resp);
                   break;
                default:
                   JOptionPane.showMessageDialog(null,"Opção Inválida",
                   "Pontos por função - Function Point",JOptionPane.ERROR_MESSAGE);
                   break;
            }
}

public static int somafunc(int lvl){
      somafi = somafi + lvl;
      return somafi;
}



    public static void main(String[] args) {
      int resposta = Integer.parseInt(JOptionPane.showInputDialog(null,
            "01 - O Sistema requer backup e recuperação confiáveis?\n\nRESPOSTAS:"+
            " 0(sem influência), 1(Incidental), 2(Moderado), 3(Médio),\n4(significativo), 5(essencial)",
            "Pontos por função - Function Point",JOptionPane.QUESTION_MESSAGE));   
           
       
            resposta = Integer.parseInt(JOptionPane.showInputDialog(null,
            "02 - São exigidas comunicações de dados?\n\nRESPOSTAS:" +
            " 0(sem influência), 1(Incidental), 2(Moderado), 3(Médio),\n4(significativo), 5(essencial)",
            "Pontos por função - Function Point",JOptionPane.QUESTION_MESSAGE));   
                       
        resposta = Integer.parseInt(JOptionPane.showInputDialog(null,
            "03 - Há funções de processamento distribuídas?",
            "Pontos por função - Function Point",JOptionPane.QUESTION_MESSAGE));   
                   
        resposta = Integer.parseInt(JOptionPane.showInputDialog(null,
            "04 - O desempenho é crítico?",
            "Pontos por função - Function Point",JOptionPane.QUESTION_MESSAGE));   
             
        resposta = Integer.parseInt(JOptionPane.showInputDialog(null,
            "05 - O Sistema funcionará em um ambiente operacional existente intensamente utilizado?",
            "Pontos por função - Function Point",JOptionPane.QUESTION_MESSAGE));   
       
        resposta = Integer.parseInt(JOptionPane.showInputDialog(null,
            "06 - O Sistema requerentrada de dados on-line?",
            "Pontos por função - Function Point",JOptionPane.QUESTION_MESSAGE));   
       
        resposta = Integer.parseInt(JOptionPane.showInputDialog(null,
            "07 - A entrada de dados on-line exige que a operação seja elaborada em múltiplas telas e/ou operações?",
            "Pontos por função - Function Point",JOptionPane.QUESTION_MESSAGE));   
       
        resposta = Integer.parseInt(JOptionPane.showInputDialog(null,
            "08 - Os arquivos-mestres são atualizados on-line?",
            "Pontos por função - Function Point",JOptionPane.QUESTION_MESSAGE));   
     
        resposta = Integer.parseInt(JOptionPane.showInputDialog(null,
            "09 - Entradas, saídas, arquivos e consultas são complexos?",
            "Pontos por função - Function Point",JOptionPane.QUESTION_MESSAGE));   
     
        resposta = Integer.parseInt(JOptionPane.showInputDialog(null,
            "10 - O processo interno é complexo?",
            "Pontos por função - Function Point",JOptionPane.QUESTION_MESSAGE));   
       
        resposta = Integer.parseInt(JOptionPane.showInputDialog(null,
            "11 - Há possibilidade de reutilização de código?",
            "Pontos por função - Function Point",JOptionPane.QUESTION_MESSAGE));   
       
        resposta = Integer.parseInt(JOptionPane.showInputDialog(null,
            "12 - A conversão e instalação estão incluídas no projeto?",
            "Pontos por função - Function Point",JOptionPane.QUESTION_MESSAGE));   
       
        resposta = Integer.parseInt(JOptionPane.showInputDialog(null,
            "13 - O Sistema é projetado para múltiplas instalações em diferentes organizações?",
            "Pontos por função - Function Point",JOptionPane.QUESTION_MESSAGE));   
       
        resposta = Integer.parseInt(JOptionPane.showInputDialog(null,
            "14 - A aplicação é projetada de forma a facilitar mudanças e o uso pelo usuário?",
            "Pontos por função - Function Point",JOptionPane.QUESTION_MESSAGE));   
 
      JOptionPane.showMessageDialog(null,"Resultado: " + somafi,
        "Pontos por função - Function Point",JOptionPane.INFORMATION_MESSAGE);
        }
           
}

8 Respostas

T

em nenhum momento no seu codigo você chamou o metodo escolha()!!!

tente chamar entre os seus JOptionPane o metodo escolha(resposta);

dai sim a sua variavel estará sendo somada!!!

um abraço
Silvano

"katsumoto":
oi pessoal! gostaria que vcs pudessem ajudar-me encontrando o erro em meu código. É o seguinte eu quero saber porque não consigo que a variavel "somafi" funcione corretamente somando os valores fornecidos pelo usuário, pois ela sempre exibe 0 quando é executado o programa, ah e se alguem puder me explicar como melhorar esse código eu agradeço!
import javax.swing.JOptionPane;
/*Método pontos por função - Function Point
*
*FP = contagem total * [0,65 + 0,01 * SOMA(fi)]
*Onde fi(i=1 a 14) são valores de ajuste de complexidade baseada
*nas respostas das seguintes perguntas:
*
* 01 - O Sistema requer backup e recuperação confiáveis?
* 02 - São exigidas comunicações de dados?
* 03 - Há funções de processamento distribuídas?
* 04 - O desempenho é crítico?
* 05 - O Sistema funcionará em um ambiente operacional existente,
*      intensamente utilizado?
* 06 - O Sistema requerentrada de dados on-line?
* 07 - A entrada de dados on-line exige que a operação seja elaborada em
*      múltiplas telas  e/ou operações?
* 08 - Os arquivos-mestres são atualizados on-line?
* 09 - Entradas, saídas, arquivos e consultas são complexos?
* 10 - O processo interno é complexo?
* 11 - Há possibilidade de reutilização de código?
* 12 - A conversão e instalação estão incluídas no projeto?
* 13 - O Sistema é projetado para múltiplas instalações em diferentes
*      organizações?
* 14 - A aplicação é projetada de forma a facilitar mudanças e o uso pelo
*      usuário?
*
*RESPOSTAS: 0(sem influência), 1(Incidental), 2(Moderado), 3(Médio),
*           4(significativo), 5(essencial)*/


public class FunctionPoint {
static int somafi = 0;

public static void escolha (int resp){
        switch (resp){
                case 0:
                   break;
                case 1:
                   somafunc(resp);
                   break;
                case 2:
                   somafunc(resp);
                   break;
                case 3:
                   somafunc(resp);
                   break;
                case 4:
                   somafunc(resp);
                   break;
                case 5:
                   somafunc(resp);
                   break;
                default:
                   JOptionPane.showMessageDialog(null,"Opção Inválida",
                   "Pontos por função - Function Point",JOptionPane.ERROR_MESSAGE);
                   break;
            }
}

public static int somafunc(int lvl){
      somafi = somafi + lvl;
      return somafi;
}



    public static void main(String[] args) {
      int resposta = Integer.parseInt(JOptionPane.showInputDialog(null,
            "01 - O Sistema requer backup e recuperação confiáveis?\n\nRESPOSTAS:"+
            " 0(sem influência), 1(Incidental), 2(Moderado), 3(Médio),\n4(significativo), 5(essencial)",
            "Pontos por função - Function Point",JOptionPane.QUESTION_MESSAGE));   
           
       
            resposta = Integer.parseInt(JOptionPane.showInputDialog(null,
            "02 - São exigidas comunicações de dados?\n\nRESPOSTAS:" +
            " 0(sem influência), 1(Incidental), 2(Moderado), 3(Médio),\n4(significativo), 5(essencial)",
            "Pontos por função - Function Point",JOptionPane.QUESTION_MESSAGE));   
                       
        resposta = Integer.parseInt(JOptionPane.showInputDialog(null,
            "03 - Há funções de processamento distribuídas?",
            "Pontos por função - Function Point",JOptionPane.QUESTION_MESSAGE));   
                   
        resposta = Integer.parseInt(JOptionPane.showInputDialog(null,
            "04 - O desempenho é crítico?",
            "Pontos por função - Function Point",JOptionPane.QUESTION_MESSAGE));   
             
        resposta = Integer.parseInt(JOptionPane.showInputDialog(null,
            "05 - O Sistema funcionará em um ambiente operacional existente intensamente utilizado?",
            "Pontos por função - Function Point",JOptionPane.QUESTION_MESSAGE));   
       
        resposta = Integer.parseInt(JOptionPane.showInputDialog(null,
            "06 - O Sistema requerentrada de dados on-line?",
            "Pontos por função - Function Point",JOptionPane.QUESTION_MESSAGE));   
       
        resposta = Integer.parseInt(JOptionPane.showInputDialog(null,
            "07 - A entrada de dados on-line exige que a operação seja elaborada em múltiplas telas e/ou operações?",
            "Pontos por função - Function Point",JOptionPane.QUESTION_MESSAGE));   
       
        resposta = Integer.parseInt(JOptionPane.showInputDialog(null,
            "08 - Os arquivos-mestres são atualizados on-line?",
            "Pontos por função - Function Point",JOptionPane.QUESTION_MESSAGE));   
     
        resposta = Integer.parseInt(JOptionPane.showInputDialog(null,
            "09 - Entradas, saídas, arquivos e consultas são complexos?",
            "Pontos por função - Function Point",JOptionPane.QUESTION_MESSAGE));   
     
        resposta = Integer.parseInt(JOptionPane.showInputDialog(null,
            "10 - O processo interno é complexo?",
            "Pontos por função - Function Point",JOptionPane.QUESTION_MESSAGE));   
       
        resposta = Integer.parseInt(JOptionPane.showInputDialog(null,
            "11 - Há possibilidade de reutilização de código?",
            "Pontos por função - Function Point",JOptionPane.QUESTION_MESSAGE));   
       
        resposta = Integer.parseInt(JOptionPane.showInputDialog(null,
            "12 - A conversão e instalação estão incluídas no projeto?",
            "Pontos por função - Function Point",JOptionPane.QUESTION_MESSAGE));   
       
        resposta = Integer.parseInt(JOptionPane.showInputDialog(null,
            "13 - O Sistema é projetado para múltiplas instalações em diferentes organizações?",
            "Pontos por função - Function Point",JOptionPane.QUESTION_MESSAGE));   
       
        resposta = Integer.parseInt(JOptionPane.showInputDialog(null,
            "14 - A aplicação é projetada de forma a facilitar mudanças e o uso pelo usuário?",
            "Pontos por função - Function Point",JOptionPane.QUESTION_MESSAGE));   
 
      JOptionPane.showMessageDialog(null,"Resultado: " + somafi,
        "Pontos por função - Function Point",JOptionPane.INFORMATION_MESSAGE);
        }
           
}
K

pouts que bobeira que eu dei heheheheh valeu pela dica ai brother!!

F

Olá, pessoal. tô engatinhando em java, e não consigo resolver o seguinte problema:

(exercicio4.18 - Java, como programar, edição 6)

Desenvolva um aplicativo que determinará se um cliente de uma loja excedeu o limite de credito em uma conta corrente. Para cada cliente, os seguintes fatos estão disponíveis:

a) numero da conta
b) saldo no inicio do mês
c) total de todos os itens cobrados desse cliente no mês
d) total de creditos aplicados ao cliente no mês
e) limite de credito autorizado.

O programa deve inserir todos esses fatos como inteiros, calcular o novo saldo(= saldo inicial + despesas - creditos), exibir o novo saldo e determinar se o novo saldo excede o limite de credito do cliente. Para aqueles clientes cujo limite de credito for excedido, o programa deve exibir a mensagem " Limite de credito excedido".

Eu elaborei um código, mas, ao compilar, o compilador emite a seguinte mensagem de erro:

" Can not find symbol variable input"

estes erros são em relação as linhas EM NEGRITO do código que fiz abaixo:


import java.util.Scanner;

public class Limite
{

public static void main(String args[])
{

int conta, saldo, cobranças, creditos, limite, calculo;

   
   
    System.out.printf("%s\n", " conta");
   
    [b]conta = input.nextInt();[/b]        
    System.out.printf("%s\n", " saldo ");
    
   [b] saldo = input.nextInt();[/b]
    System.out.printf("%s\n", "cobranças:");

   [b] cobranças = input.nextInt();[/b]       
    System.out.printf("%s\n", "creditos");

    [b]creditos = input.nextInt();[/b]        
    System.out.printf("%s\n", "limite");

    [b]limite = input.nextInt();[/b]        
    
    calculo = saldo + creditos + limite - cobranças;

    if(calculo > limite)

       System.out.printf("%s\n", " Limite de crédito excedido!", "%s\n"," Procure seu gerente para maiores esclarecimentos!");

    else 

       System.out.printf("%s\n", " Você ainda tem limite de crédito disponível!");

 } // fim main

} // fim classe Limite


alguém pode me ajudar a corrigir estes erros, por favor???

C

Acho que ele não está achando a variavel input.

F

mas, é que, no livro que estou estudando, o autor diz que este comando:

number1 = input.nextInt();

é usado para ler o valor atribuído a variável " number1"

???

C

Em relação a código fonte… Só é isso que você colocou???

F

este código acima foi tudo que escrevi. As partes em negrito são onde o compilador indicou erro.

e foi o mesmo erro para todas as partes em negrito. Estava escrito assim:

" can not find sybol variable input".

alguma idéia?
obrigado.

A

“Frede”:
Olá, pessoal. tô engatinhando em java, e não consigo resolver o seguinte problema:

(exercicio4.18 - Java, como programar, edição 6)

Desenvolva um aplicativo que determinará se um cliente de uma loja excedeu o limite de credito em uma conta corrente. Para cada cliente, os seguintes fatos estão disponíveis:

a) numero da conta
b) saldo no inicio do mês
c) total de todos os itens cobrados desse cliente no mês
d) total de creditos aplicados ao cliente no mês
e) limite de credito autorizado.

O programa deve inserir todos esses fatos como inteiros, calcular o novo saldo(= saldo inicial + despesas - creditos), exibir o novo saldo e determinar se o novo saldo excede o limite de credito do cliente. Para aqueles clientes cujo limite de credito for excedido, o programa deve exibir a mensagem " Limite de credito excedido".

Eu elaborei um código, mas, ao compilar, o compilador emite a seguinte mensagem de erro:

" Can not find symbol variable input"

estes erros são em relação as linhas EM NEGRITO do código que fiz abaixo:


import java.util.Scanner;

public class Limite
{

public static void main(String args[])
{

int conta, saldo, cobranças, creditos, limite, calculo;

   
   
    System.out.printf("%s\n", " conta");
   
    [b]conta = input.nextInt();[/b]        
    System.out.printf("%s\n", " saldo ");
    
   [b] saldo = input.nextInt();[/b]
    System.out.printf("%s\n", "cobranças:");

   [b] cobranças = input.nextInt();[/b]       
    System.out.printf("%s\n", "creditos");

    [b]creditos = input.nextInt();[/b]        
    System.out.printf("%s\n", "limite");

    [b]limite = input.nextInt();[/b]        
    
    calculo = saldo + creditos + limite - cobranças;

    if(calculo > limite)

       System.out.printf("%s\n", " Limite de crédito excedido!", "%s\n"," Procure seu gerente para maiores esclarecimentos!");

    else 

       System.out.printf("%s\n", " Você ainda tem limite de crédito disponível!");

 } // fim main

} // fim classe Limite


alguém pode me ajudar a corrigir estes erros, por favor???


cara nem sei se já foi respondido seu pergunta mas mesmo assim estou postando… se nao ajudar desconsidere

// Cliente.java

import javax.swing.*;

/**
*

  • @author Danilo Xavier

  • @mail [email removido]
    */
    public class Cliente {

    public static void main(String[] args) {
    
    int totalCreditos,
    
    saldoInicial,
    
    cobrancas,
    
    saldoAtual,
    
    calculo,
    
    conta,
    
    limite;
    
    conta = Integer.parseInt(JOptionPane.showInputDialog(null, 
                              "Informe o numero da conta."));
     
     saldoInicial = Integer.parseInt(JOptionPane.showInputDialog(null, 
                                     "Informe o saldo inicial."));
     
     cobrancas = Integer.parseInt(JOptionPane.showInputDialog(null, 
                                  "Informe o valor das cobranças."));
     
     saldoInicial = Integer.parseInt(JOptionPane.showInputDialog(null, 
                                     "Informe o saldo inicial."));
     
     totalCreditos = Integer.parseInt(JOptionPane.showInputDialog(null, 
                                     "Informe o total de creditos do cliente."));
     
     limite = Integer.parseInt(JOptionPane.showInputDialog(null, 
                               "Informe o limite de credito."));
     
     saldoAtual = saldoInicial + cobrancas - totalCreditos;
     
     if(saldoAtual > limite) {
         JOptionPane.showMessageDialog(null, " Limite de credito excedido");
         
     } else {
         JOptionPane.showMessageDialog(null, "Seu saldo é: " + saldoAtual);
     }
    

    }

}

Criado 17 de setembro de 2006
Ultima resposta 29 de set. de 2006
Respostas 8
Participantes 5