Ir para conteúdo
Pavolin

Duvidas em uma serie de problemas

Recommended Posts

Boa noite, 

Estou aprendendo java na faculdade e tenho uma lista para fazer, me esforcei o fim de semana todo e conseguir só fazer algumas partes, peco por favor para vocês me ajudarem vou por minhas duvidas a seguir:

1.Faça um programa que deverá ler e armazenar na memória um as informações das pessoas. Deverá ser criada uma classe Pessoa com os atributos nome, data de nascimento, peso e altura. Crie os métodos públicos necessários para sets e gets e também um método para imprimir todos dados de uma pessoa. Crie um método para calcular a idade da pessoa. Crie um método para calcular o índice de massa corporal (IMC) de uma pessoa seguindo a seguinte fórmula
                                 IMC=peso/〖altura〗^2 
Deverá ser criada uma classe de teste para testar a chamada de todos os métodos.

(neste problema consegui fazer a  classe pessoa mas faltando algumas coisas que esta comentada no código, e não consegui fazer a classe teste)

"classe pessoa":
[
import java.util.Scanner;

public class Pessoa{

    private static String nome;
    private static String dataNascimento;
    private static float altura;
    private static float peso;
    private static float idade;

    public static String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        Pessoa.nome = nome;
    }

    public static String getDataNascimento() {
        return dataNascimento;
    }

    public void setDataNacimento(String dataNacimento) {
        Pessoa.dataNascimento = dataNacimento;
    }

    public static float getAltura() {
        return altura;
    }

    public void setAltura(float altura) {
        Pessoa.altura = altura;
    }

    public static float getPeso() {
        return peso;
    }

    public void setPeso(float peso) {
        Pessoa.peso = peso;
    }
    
    public static float getIdade() {
        return idade;
    }

    public static void setIdade(float idade) {
        Pessoa.idade = idade;
    }
    
    public static Scanner entrada;
    public static float imc;
    
    public static void main(String[] args) {
        entrada = new Scanner(System.in);
        
        System.out.println("Digite seu nome: ");
        nome = entrada.nextLine();
        
        System.out.println("Digite sua data de nacimento: ");
        dataNascimento = entrada.nextLine();
    
        System.out.println("Digite seu Peso: ");
        peso = entrada.nextFloat();
        
        System.out.println("Digite sua Altura: ");
        altura = entrada.nextFloat();
    }
    
    public void imc() {
        imc = altura * altura;
        imc = peso / imc;
    }
    
    // preciso de um metodo para calcular a idade do usuario que seria a data atual - a data de nacimento.
    // alocando na variavel idade.
    
    public static void main1(String[] args) {
        System.out.println("Seu nome e: " + nome);
        System.out.println("Sua altura e: " + altura);
        System.out.println("Seu peso e: " + peso);
        System.out.println("Sua idade e: " + idade);
        System.out.println("Seu IMC : " + imc);
    }
}
]

2- Escreva uma classe cujos objetos representam alunos matriculados em uma disciplina. Cada objeto dessa classe deve guardar os seguintes dados do aluno: matrícula, nome, 2 notas de prova e 1 nota de trabalho. Escreva os seguintes métodos para esta classe: calculaMedia - calcula a média final do aluno (cada prova tem peso 2,5 e o trabalho tem peso 2) calculaFinal calcula quanto o aluno precisa para a prova final (retorna zero se ele não for para a final). Deverá ser criada uma classe de teste para testar a chamada de todos os métodos.

( Neste eu consegui fazer a classe alunos, mas falta a classe calculaMedia , calculaFinal e a classe teste)

"Classe aluno":
[
package Exercicio2;

public class Alunos {

        private static String matricula;
        private static String nome;
        private static float nota1;
        private static float nota2;
        private static float trabalho;
        
        public static String getMatricula() {
            return matricula;
        }
        public void setMatricula(String matricula) {
            Alunos.matricula = matricula;
        }
        public static float getNota1() {
            return nota1;
        }
        public void setNota1(float nota1) {
            Alunos.nota1 = nota1;
        }
        public static String getNome() {
            return nome;
        }
        public void setNome(String nome) {
            Alunos.nome = nome;
        }
        public static float getNota2() {
            return nota2;
        }
        public void setNota2(float nota2) {
            Alunos.nota2 = nota2;
        }
        public static float getTrabalho() {
            return trabalho;
        }
        public void setTrabalho(float trabalho) {
            Alunos.trabalho = trabalho;
        }
}
]

3-Crie uma classe denominada Elevador para armazenar as informações de um elevador dentro de um prédio. A classe deve armazenar o andar atual (térreo = 0), total de andares no prédio (desconsiderando o térreo), capacidade do elevador e quantas pessoas estão presentes nele. A classe deve também disponibilizar os seguintes métodos: 
construtor : que deve receber como parâmetros a capacidade do elevador e o total de andares no prédio (os elevadores sempre começam no térreo e vazio); 
Entra : para acrescentar uma pessoa no elevador (só deve acrescentar se ainda houver espaço); 
Sai : para remover uma pessoa do elevador (só deve remover se houver alguém dentro dele); 
Sobe : para subir um andar (não deve subir se já estiver no último andar); 
Desce : para descer um andar (não deve descer se já estiver no térreo); 
Encapsular todos os atributos da classe (criar os métodos set e get).
Deverá ser criada uma classe de teste para testar a chamada de todos os métodos.

(Este eu não tenho a menor ideia de como fazer não conseguir fazer nada dele)

4-Crie uma classe Televisao e uma classe ControleRemoto que pode controlar o volume e trocar os canais da televisão. O controle de volume permite: 
•    aumentar ou diminuir a potência do volume de som em uma unidade de cada vez; 
•    aumentar e diminuir o número do canal em uma unidade 
•    trocar para um canal indicado; 
•    consultar o valor do volume de som e o canal selecionado. 

(Este eu consegui fazer as duas classes (Televisao e ControleRemoto) mas esta faltando algumas coisas que esta comentado nos codigos)

"Classe televeisao":
[
package Exercicio4;

public class Televisao {
    private static int canal;
    private static int volume;
    
    public static int getCanal() {
        return canal;
    }
    public static void setCanal(int canal) {
        Televisao.canal = canal;
    }
    public static int getVolume() {
        return volume;
    }
    public static void setVolume(int volume) {
        Televisao.volume = volume;
    }

    public void canal() {
        System.out.println(nextInt(99));
        // Nao sei se esta correto mas fiz esse metodo para limita os canais a no maximo 99.
        //necessito tambem de um metodo para quando o usuario por + aumentar o numeor do canal e - diminuir.
        // para ele ter duas opcoes ou pelo numero certo dele ou pelo + e -.
    }
    
    public void volume() {
        System.out.println(nextInt(100));
        // mesma coisa aki mas com o volume limitado a 100.
    }
    
    private char[] nextInt(int i) {
        return null;
    }
}
]

"classe controle remoto":
[
package Exercicio4;

import java.util.Scanner;

public class ControleRemoto {
    private static int consulta;
    private static Scanner entrada;

    public static int getConsulta() {
        return consulta;
    }

    public static Scanner getEntrada() {
        return entrada;
    }

    public static void setEntrada(Scanner entrada) {
        ControleRemoto.entrada = entrada;
    }
    
    public static void setConsulta(int consulta) {
        ControleRemoto.consulta = consulta;
    }
    
    public static void main(String[] args) {
        setEntrada(new Scanner(System.in));
        
    //O usuario ira colocar as informacoes ex: numero do canal que deseja trocar,
    // se deseja aumentar ou diminuir o volume (obs: tem dois jeitos de trocar de canal pelo numero ou por + e -)
    }    
    
    // um metodo para imprimir a confirmacao da entrada ex: voce trocou para o canal 5 , 
    // o volume da tv esta em 12.(que seria a parte de consulta)
}
]

sei que estou abusando aqui mas estou tendo dificuldades e preciso entregar logo e não me sobra tempo para fazer de semana.
Desde já agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa @Pavolin, uma coisa de cada vez, hehe. 

 

Vamos ver o exercício 1, na parte da data.

Existe uma classe muito interessante chamada LocalDate. 

public int calculaIdade(){
	DateTimeFormatter formatoData = DateTimeFormatter.ofPattern("d/MM/yyyy");

	String dataNascimento = "25/05/2018"; 		//aqui no caso é a data que tu leu do usuário
	LocalDate dateFormatted = LocalDate.parse(dataNascimento, formatoData);

	return Period.between(dateFormatted, LocalDate.now()).getYears();
}

 

Entendendo:

*Na primeira linha a gente define um padrão de data, para o software entender (até para fazer o cálculo depois). Deverá corresponder com o padrão que tu quer e o usuário deverá digitar da mesma forma (ou tu lê e trata depois).

 

*A segunda linha é só pra exemplificar, já que tu já terá um valor na tua variável de data.

 

*Na terceira linha usamos, finalmente, o LocalDate. Vamos transformar aquela string que contém a data para uma variável de data propriamente dita, utilizando o padrão que definimos anteriormente.

 

*Por último, retornamos um valor inteiro, usando como base o método estático between da classe Period (que recebe dois LocalDate como parâmetro). Esse método trará dia, mês e ano, por isso aplicamos o getYears() para obtermos somente os anos.

 

Espero ter ajudado. 

Se quiser, podemos tentar ir resolvendo os demais.

 

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por gregory freire
      Boa tarde,
       
      Desenvolvi um aplicativo e gostaria de saber se existe alguma forma de forçar a execução dele para que o mesmo não pare o processo quando estiver em segundo plano no Sistema Android, da forma que funciona hoje, após 5 minutos o aplicativo é fechado se estiver em segundo plano. Se fazendo necessário novo login. 
      Outra duvida seria, quando o aplicativo está em segundo plano, como fazer para informações enviadas para o aplicativo sobreporem a tela do aparelho. 
       
      att,
       
      Gregory Freire
    • Por ruberlanwesley
      Eu estou usando a API do Facebook restfb consigo inserir normalmente um comentário em um post no facebook, mas para responder o comentário não consigo assimilar como tornar isso possível.
       
      Eu estou usando Java, Netbeans e a biblioteca restfb, e consultando Facebook graph-api Comment, mas não faço ideia de como fazer em Java.
       
      Para inserir o comentário no post:
      FacebookType response = clienteFacebook.publish(idPost + “/comments”, FacebookType.class, Parameter.with(“message”, comentario));
      System.out.println(“fb.com/” + response.getId());
       
      Para responder o comentário estou tentando sem sucesso:
      FacebookType response = clientFacebook.publish(idComment + “/comments”, FacebookType.class, Parameter.with(“message”, respostaComentario));
      System.out.println(“fb.com/” + response.getId());
       
      Eu não posso responder ao comentário seguindo o mesmo padrão de inserir comentário no post, alguém pode me ajudar a responder um comentário?
    • Por bobzznnn
      Como deixo a seleção do radio marcada após o usuario escolher "yes" ou "no" e mandar a informação pra tabela usuario em PhpMyAdmin
      <div class="container" style="width:500px;"> <h3 class="text-center">Compound</h3> <div class="radio"> <input type="radio" name="compound" value="yes" />Yes <br /> <input type="radio" name="compound" value="no" />No <br /> </div> <div id="result"></div> </div> <br />  
    • Por luciano
      Olá boa noite a todos, estou a dias tentando fazer este scrit escrever mais não sou nada bom com java
      se alguém puder me ajudar agradeço de mais.
      ele esta abrindo uma janela alert com os dados até ai ok,
      na verdade precisava que ele redirecionasse a página.
       
      Obrigado a quem me der esta luz
       
      <script language="javascript">
      var LIP_LowPrecision = false; //false = ask permission to the browser, higher precision | true = don't ask permission, lower precision
      function LocalizaIP_done(ip_data){
          if (!ip_data['error']) //this line is an exemple, you must change it by your Geolocation manipulation code
               alert('IP Geolocation: '+ip_data['city']+'-'+ip_data['state']+'-'+ip_data['country']+' (lat:'+ip_data['latitude']+',long:'+ip_data['longitude']+')');
       
       
      if (ip_data['city'] = 'santos')
      {
      location.href="santos.htm";
      }
      else
      {
      location.href="sao-paulo.htm";
      }
       
      }
      </script>
       
       
       
    • Por MarKteus
      Olá

      Estou enfrentando um problema bem chato com Java aqui em meu projetos, vejam:
      2019-02-01 08:57:06.469 ERROR 18120 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessResourceUsageException: could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet] with root cause com.microsoft.sqlserver.jdbc.SQLServerException: Nome de objeto 'db_mybank.dbo.edification' inválido.     at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259) ~[mssql-jdbc-6.4.0.jre8.jar:na] Percebam que ali no nome do objeto está sendo inserido um underline ou underscore como queiram, porém esse traço não é para ser exibido a inserção do mesmo faz com que o objeto não seja encontrado, o pior é que na especificação da classe está correto vejam:
       
      import javax.persistence.Table; @Entity @Table(name = "tbedification", schema = "dbo", catalog = "dbmybank") public class edification implements Serializable { /** * Alguém consegue me ajuda com isso, acho que o hibernate está "zuando" alguma coisa

      Estou usando a ide Eclipse Neon e SpringBoot
×

Informação importante

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