Programação Progressiva

Fórum para dúvidas dos sites: Programação Progressiva, Java Progressivo, C Progressivo


Você não está conectado. Conecte-se ou registre-se

Chamar métodos para classe

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

1 Chamar métodos para classe em Sab Out 12, 2013 10:54 pm

Galera to com um problema em chamar os métodos da minha classe.
o programa esta executando pelo netbeans, mas não esta fazendo os cálculos e nem exibindo o total q são os meus métodos.


AI VAI OS CÓDIGOS !

PRINCIPAL

Código:
package estadio;

import java.util.Scanner;

public class Estadio {

   
    public static void main(String[] args) {
 
        Scanner scan = new Scanner(System.in);
        Menor14Anos menor = new Menor14Anos();
       
       
      int ingresso;
     
      System.out.println("Digite: \n 1- Camarote R$ 300,00 \n 2- Arquibancada R$ 100,00");
                ingresso = scan.nextInt();
       
               
                if(ingresso == 1){
                    System.out.println("ingresso para Camarote comprado !");
                   
                }   
                else if(ingresso == 2){
                    System.out.println("Ingresso para Arquibancada comprado !");
                   
                }
                else{
                    System.out.println("Opção invalida");
                }
               
            String nome, cpf;
            int idade;
       
            Scanner leia = new Scanner(System.in);
       
            System.out.println("Digite o nome do torcedor:");
            nome= leia.nextLine();
           
       
            System.out.println("Digite o CPF do torcedor:");
            cpf= leia.nextLine();
           
            System.out.println("Digite a idade do torcedor:");
            idade = leia.nextInt();
           
            if (idade <= 14) {
                System.out.println("Torcedor tem desconto de 50% no ingresso");
                int id = scan.nextInt();
                menor.setcalcularIngresso(idade);
                System.out.println("Preço do ingresso: " + menor.getexibirIngresso());
            }
           
            else  System.out.println("Valor integral no ingresso"); {
       
            }
               
     
        }
               
     
               
  }

CLASSE MENOR14ANOS

Código:
package estadio;


public class Menor14Anos {
   
  int idade;
  double precoI;
 
   
  public void setcalcularIngresso(int idade){
    this.precoI = (this.precoI * 0.50);
    }
   
    public double getexibirIngresso(){
        return this.precoI;
    }       


Obrigado desde já !!!!
}

Ver perfil do usuário

2 Re: Chamar métodos para classe em Dom Out 13, 2013 6:43 am

Admin


Admin
Olá Junior, que erro está dando?

Na final da main, o que significa esse trecho:

Código:
else  System.out.println("Valor integral no ingresso"); {
        
            }
Não tem nada entre as { }.
Você também não precisa declarar vários objetos do tipo Scanner.
Pode declarar só um e usar sempre o mesmo.

Na sua classe Menor14Anos, qual o valor de 'precoI' ?
Em nenhum momento esta variável recebe um valor, obviamente quando chamar o get ele não vai exibir nada.

Tem um método lá que recebe a idade, mas não faz nada com a idade também.

É interessante também definir as variáveis no início, e não ao longo do código.

Código:

import java.util.Scanner;

public class teste1 {
   public static void main(String[] args) {
   
    int ingresso,
        idade,
        id;
    String nome,
          cpf;
   
     Scanner entrada = new Scanner(System.in);
     Menor14Anos menor = new Menor14Anos();
    
     System.out.println("Escolha uma opção: \n 1- Camarote R$ 300,00 \n 2- Arquibancada R$ 100,00");
     System.out.print("Opção: ");
     ingresso = entrada.nextInt();
    
     if(ingresso == 1){
        System.out.println("Camarote comprado!");
     }else{
        if(ingresso == 2){
           System.out.println("Arquibancada comprada!");
        }else{
           System.out.println("Opção inválida!");
        }
     }
    
     System.out.print("Nome do torcedor: ");
    nome = entrada.next();
   
    System.out.print("Digite o CPF do torcedor: ");
     cpf= entrada.next();
    
     System.out.print("Digite a idade do torcedor: ");
     idade = entrada.nextInt();
    
     if (idade <= 14) {
         System.out.println("Torcedor tem desconto de 50% no ingresso");
        
         // Aqui você vai chamar o método set, enviando o preço pela metade
         // ou mandando o valor do ingresso e a idade, e dentro do set ele vai checar
         // a idade e dar 50% de desconto        
        
         // Só após setar o valor de 'precoI', você pode exibir o valor dele com a get
         System.out.println("Preço do ingresso: " + menor.getexibirIngresso());
     }
   }
}

Ver perfil do usuário http://progressiva.forumeiros.com

3 Re: Chamar métodos para classe em Qua Nov 06, 2013 6:29 pm

Eu estava espionando esse tópico e tentei fazer um parecido, estou me atrevendo a programar faz duas semanas e tudo que aprendi até agora foi pelo curso do Java Progressivo (aliás, parabéns pelo curso, ta show de bola).

O que eu fiz ficou bem simples (foi o que aprendi até o começo da segunda parte "if/else"):

Código:

package estadio;

import java.util.Scanner;

public class Estadio {

    
    public static void main(String[] args) {
       Scanner ent = new Scanner(System.in);
      
       int ingresso, idade;
               float preco;
       String cpf, nome;
      

      
          System.out.println("Escolha uma opção: \n 1- Camarote R$ 300,00 \n 2- Arquibancada R$ 100,00");
     System.out.print("Opção: ");
     ingresso = ent.nextInt();
    
    
    
    if(ingresso ==1){
        System.out.println("Camarote comprado!");
    }
    
        if(ingresso == 2){
    
           System.out.println("Arquibancada comprada!");
           //Colocando o 'else' aqui, mesmo quando digito 3 ou qualquer outro
           //diferente de 1 e 2, o programa continua a executar.
  //}}else{
           http://System.out.println("Opção inválida! Tente novamente.");
        }
    
        
        
     System.out.print("Nome do torcedor: ");
    nome = ent.next();
    
    System.out.print("Digite o CPF do torcedor: ");
     cpf= ent.next();
    
     System.out.print("Digite a idade do torcedor: ");
     idade = ent.nextInt();
    
     if (idade <= 14) {
         System.out.println("Torcedor tem desconto de 50% no ingresso \n" + (ingresso));
      
     }
         if(ingresso == 1){
        System.out.println("Valor do ingresso com desconto: R$ " + (300*0.50));
     }
     else {
  
           System.out.println("Valor do ingresso com desconto: R$ " + (100*0.50));
    
    
    }
    }
    }

// Opção: diferente de 1 e 2 finallizar o aplicativo, não consigo encaixa-lá no programa =(
    //}}else{
           http://System.out.println("Opção inválida! Tente novamente.");
    
É basicamente isso (peço desculpas ao Junior Borges por ter copiado algumas partes do seu programa) a dificuldade foi em finalizar o programa caso o usuário digite um valor diferente de 1 e 2. Se puderem me ajudar, fico agradecido...abraço.

Ver perfil do usuário

4 Re: Chamar métodos para classe em Qua Nov 06, 2013 6:38 pm

Admin


Admin
Olá Deniis,

Podemos fazer assim:

Código:

 if(ingresso ==1){
        System.out.println("Camarote comprado!");
}else{
         if(ingresso == 2){
             System.out.println("Arquibancada comprada!");
        }else{
             System.out.println("Entrada inválida! encerrando aplicativo!");
        }
}
Agora a parte do preenchimento de dados só queremos fazer se ele tiver digitado 1 ou 2:
Código:

if(ingresso==1 || ingresso==2){
   //todo aquele código que pede nome,
   //cpf, idade e testa a idade
}
Se ele tive digitado algo que não seja 1 ou 2, vai mostrar aquela mensagem que o programa vai ser encerrado.
E como não 1 nem 2, o if acima não vai rodar, passando direto pro fim do programa!

Ver perfil do usuário http://progressiva.forumeiros.com

5 Re: Chamar métodos para classe em Qui Nov 07, 2013 10:26 pm

Muito Obrigado! Deu certinho agora.

Ainda tentei usar o E no lugar do OU, mas também finalizada o programa. Agora "clareou" um pouco mais as coisas. Thnks!

Ver perfil do usuário

Conteúdo patrocinado


Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum