Preciso de Ajuda na resolucao deste problema

4 respostas
E

Em um hospital estao ingressados um grupo de pacientes de cada um se conhece nome,idade,genero e temperatura corporal de cada dia da semana.
a) Calcular a media da temperatura alcancada no hospital.
b) Mostrar a temperatura de primeiro dia do paciente mais infermo.
c) Calcular quantas vezes um paciente determinado teve febres.
d) Qual foi o paciente com maior temperatura no segundo dia da semana?
e) Mostrar quantos dias se alcancou uma temperatura media maior que 38 graus.
Primeiro Metodo
/*

  • To change this license header, choose License Headers in Project Properties.
  • To change this template file, choose Tools | Templates
  • and open the template in the editor.
    */
    package hospital;

/**
*

  • @author
    */
    enum Genero {
    MASCULINO, FEMENINO
    }

public class Pessoa {

private String nome;
private int idade;
private float temperatura;
private Genero sexo;

public Pessoa() {

}

public Pessoa(String nome, int idade, float temperatura, Genero sexo) {

    this.nome = nome;
    this.idade = idade;
    this.temperatura = temperatura;
    this.sexo = sexo;
}

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

public void setIdade(int idade) {
    this.idade = idade;
}

public void setTemperatura(float temperatura) {
    this.temperatura = temperatura;
}

public void setSexo(Genero sexo) {
    this.sexo = sexo;
}

public String getNome() {
    return nome;
}

public int getIdade() {
    return idade;
}

public float temperatura() {
    return temperatura;
}

public Genero getSexo() {
    return sexo;
}

}
segundo
/*

  • To change this license header, choose License Headers in Project Properties.
  • To change this template file, choose Tools | Templates
  • and open the template in the editor.
    */
    package hospital;
import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.util.Scanner;

/**
*

  • @author Edson
    */
    public class ManipularPessoas {

    BufferedReader ler = new BufferedReader(new InputStreamReader(System.in));
    Scanner sc = new Scanner(System.in);

    public void lerPessoa(Pessoa pessoa[], int quantidade) throws IOException {
    
    for (int i = 0; i < quantidade; i++) {
    
    System.out.println(Insira o Nome da pessoa: + i);
    
    String nome = ler.readLine();
    
    pessoa[i].setNome(nome);
    
    System.out.println("Insira a idade da pessoa:" + i);
         int idade = sc.nextInt();
         pessoa[i].setIdade(idade);
     }
    

    }

    public void Temperatura(float vectTemp[], int quantidade) {
    
    for(int i=0;i<quantidade;i++){
    
    System.out.println(Insira a temperatura consoate o dia da semana:+i);
    
    }
    

    }

}

Daqui oque faxuH

4 Respostas

Villagram

Você precisa fazer uma demonstração sem banco de dados ou você precisa gravar os dados que forem informados?

E

Fazer uma simples demostração sem precisar de gravar no Banco de dados

Villagram

Construa a classe que representa a medição da temperatura:

public class Temperatura{

private String dataMedicao;
     private float tempratura;

     public Temperatura();
     public Temperatura(String dataMedicao, float temperatura);
     //Getters and Setters

}

Construa a classe que representa o Paciente:

public class Pessoa{

private String nome;
    private int idade;
    private List<Temperatura> temperatura;
    private String sexo;

    public Pessoa(){}
    public Pessoa(String nome, int idade, List<Float> temperatura, String sexo){}
    //Getters and Setters

}

Construa uma classe que calcule tudo isto e utilize nos comando de prompt que você já construiu.

public class Calculos{

public Calculos(){}

       /**
       * Método que calcula temperatura média dentro de array de valores
       */          
       public float calcularMediaTemperatura(Pessoa... pessoas){
                  float total = 0f;

                  for(Pessoa p : pessoas){
                        total += p.getTemperatura() != null & p.getTemperatura().legth() > 0 ?  p.getTemperatura().get(p.getTemperatura().legth()-1).getTemperatura() : 0;
                  }

                  total = total / pessoas.legth();
                  return total;
       }

       //temperatura do paciente mais infermo no dia
       public float maiorTemperatura(int dia, Pessoa... pessoas){
                  float maior = 0f;
                  for(Pessoa p : pessoas){
                        if(p.getTemperatura() != null){
                           maior = maior < p.getTemperatura().get(dia).getTemperatura() ? p.getTemperatura().get(dia).getTemperatura() : maior;
                        }
                  }
                  return maior;
       }

       //quantidade de vezes que o paciente teve febre
       public int febre(Pessoa pessoa){
                 int resultado = 0;
                 pessoa.getTemperatura().forEach( t -> {
                         resultado += t.getTemperatura() >= 38 ? 1 : 0;
                 });
                 return resultado;
       }

       //retorna quantidade de dias que a media foi maior que 38
       public int mediaMaior38(Pessoas... pessoas){
                  List(Float) medias = new ArrayList();
                  float t = 0;
                  int dias = 0;
                  for(int i=0; i < pessoas[0].getTemperatura().legth(); i++){
                            t = 0;
                            for(Pessoa p : pessoas){
                                      t += p.getTemperatura().get(i).getTemperatura();
                             }
                             medias.add(t/(i+1));
                  }

                  medias.forEach(m -> {
                            dias += m > 38 ? 1 : 0;
                  });

                  return dias;
       }

}

Agora é só utilizar as classes que construiu:

public class ManipulaPessoas{

private Pessoas[] pessoas = new Pessoas[3]{new Pessoa(), new Pessoa(), new Pessoa()};

     public void main(String[] args){
                Scanner sc = new Scanner(System.in);
                Sytem.out.println("Insira os dados dos pacientes");

                //colhendo dados na linha de comando
                for(Pessoa p : pessoas){
                        Sytem.out.println("Qual o nome do paciente?: ");
                        p.setNome(sc.nextLine());
                        Sytem.out.println("Qual a idade do paciente?: ");
                        p.setIdade(Integer.parseInt(sc.nextLine()));

                        for(int i =0; i < 3; i++){
                                  p.setTemperatura(new Temperatura());
                                  Sytem.out.println("Qual a temperatura do paciente no dia " + (i+1) + " ?: ");
                                  p.getTemperatura().setTemperatura(Float.parseFloat(sc.nextLine()));
                        }

                        Sytem.out.println("Qual o sexo do paciente?: ");
                        p.setSexo(sc.nextLine());
                }

     }

     Calculos calc = new Calculos();

     //usando dados coletados
     Sytem.out.println(calc.calcularMediaTemperatura(pessoas));
     Sytem.out.println(calc.maiorTemperatura(0, pessoas));
     Sytem.out.println(calc.febre(pessoas[0]));
     Sytem.out.println(calc.febre(pessoas[1]));
     Sytem.out.println(calc.febre(pessoas[2]));
     Sytem.out.println(calc.maiorTemperatura(1, pessoas));
     Sytem.out.println(calc.mediaMaior38(pessoas));

}

E

Obrigado Villagram, vou testar

Criado 7 de abril de 2018
Ultima resposta 8 de abr. de 2018
Respostas 4
Participantes 2