Ajudaaa

Estou com o seguinte problema:

"Uma clinica SPA “Sinta Feliz” precisa de um programa monitore a evolução de seus pacientes e gerenciar as atividades do spa. Precisa criar uma classe Pacientes que não pode ser instanciada e com seus atributos protegidos .

Crie uma classe Emagrecimento estendida a Pacientes e que implemente uma interface Atividades Crie uma outra classe Estética estendida a Pacientes e que implemente uma interface Atividades

Na classe Emagrecimento fazer o cadastro pelo construtor o nome ,telefone sexo , tipoAtividade, peso. Sobrescrever o método mostrarDadoscadastro da classe mãe. No construtor chamar o método pesoIdeal() da classe CalculoPeso e atribuir a um atributo pesoIdeal .

Na classe Estetica fazer o cadastro pelo construtor o nome ,telefone sexo ,tipoAtividade, tipo de serviço. Sobrescrever o método mostrarDadosCadastro da classe mãe. Este tipo de paciente tem pavor de falar o peso , nem pense em perguntar !!.

Na classe CalculoPeso criar o pesoIdeal() que calcule conforme as formulas : Para homens: 72.7altura- 58 Para mulheres: 62.1altura- 44.7 E outro metodo chamado porcentagemDoPesoIdeal() com a seguinte formula : (1-pesoIdeal/peso)*100

Crie uma classe PrincipalPacientes

Nesta classe deve ter um menu :

EXERCÍCIOS Inerface Set
Página 2 de 2

Escola SENAI “Prof. Dr. Euryclides de Jesus Zerbini” Impressão 23/10/17

No item 1 Cadastrar: caso o paciente for excesso de peso criar um objeto Emagrecimento utilizando polimorfismo e adicionar na interface Set. Caso o paciente for de estética criar objeto Estética utilizando polimorfismo e adicionar na interface Set.

  1. Pesquisar : pesquisar o nome da pessoa e mostrar seus dados peso ideal caso for paciente de emagrecimento e ser for de estética os dados e o serviço

  2. Alterar : deve alterar a atividade dos pacientes

4.Remover . remover um paciente da lista

5.Apresentar :invocar os métodos apresentar das classes Emagrecimento e Estética conforme o caso 6. Evolução do peso : mostrar a lista com o nome e a porcentagen de peso ideal que o cliente esta naquele momento.

Na interface Atividades implementar estes metodos : public String caminharBosque(); public String nadarPiscina(); public String exercitarAcademia(); "

Consegui realizar os 4 primeiros métodos. O porém é que, para poder mostrar, tive que jogar minha Set em um ArrayList, chamado lista. No método apresentar, não consigo separar qual objeto é qual dentro da lista. Por exemplo: se quiser mostrar somente um objeto de Emagrecimento, como faço?

E no caso 6, não consigo acessar o meu método EvoluçãoPeso, pois minha lista é de Pacientes, e o método está na classe CalculoPeso();

Segue abaixo meu programa:

package SPA;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;

import javax.swing.JOptionPane;

public class PrincipalPacientes {

public static void main(String[] args) {
	// TODO Auto-generated method stub
	Set<Paciente> lista = new HashSet<Paciente>();
	ArrayList<Paciente> mostra = new ArrayList<Paciente>();
	int opcao = 0, opcao1 = 0, opcao2 = 0, opcao3=0, opcao4=0;
	Object[] opcoes = {"Cadastrar","Pesquisar", "Alterar","Remover","Apresentar", "Evolução do Peso","Sair"};
	Object[] opcoes1 = {"Emagrecimento","Estética"};
	Object[] opcoes2 = {"Masculino","Feminino"};
	Object[] opcoes3 = {"Caminhada no Bosque","Nadar na Piscina", "Se Exercitar na Academia"};
	Object[] opcoes4 = {"Drenagem linfática", "Hidratação de pés e mãos", "Limpeza de pele", "Banho de lua", "Peeling", "Cuidados para o cabelo", "Massagem esfoliante facial e corporal"};
	do {
		opcao = JOptionPane.showOptionDialog(null,"Sinta-se Feliz!","SPA",JOptionPane.DEFAULT_OPTION,
				JOptionPane.QUESTION_MESSAGE, null,opcoes,null);
		
		switch(opcao){
			case 0: 
				opcao1 = JOptionPane.showOptionDialog(null,"Qual tratamento deseja receber?","SPA",JOptionPane.DEFAULT_OPTION,
						JOptionPane.QUESTION_MESSAGE, null,opcoes1,null);
			
				switch(opcao1){
				case 0: 
					Emagrecimento pess = new Emagrecimento(JOptionPane.showInputDialog("Entre com o nome do paciente"), JOptionPane.showInputDialog("Entre com o o telefone"),JOptionPane.showOptionDialog(null,"Entre com o sexo","SPA",JOptionPane.DEFAULT_OPTION,
							JOptionPane.QUESTION_MESSAGE, null,opcoes2,null), Double.parseDouble(JOptionPane.showInputDialog("Entre com o peso do paciente")), Double.parseDouble(JOptionPane.showInputDialog("Entre com a altura do paciente")));
					pess.servico="Emagrecimento";
					lista.add(pess);
					mostra.addAll(lista);
					break;
					
					
				case 1:
					Estetica est = new Estetica(JOptionPane.showInputDialog("Entre com o nome do paciente"), JOptionPane.showInputDialog("Entre com o o telefone"), JOptionPane.showOptionDialog(null,"Entre com o sexo","SPA",JOptionPane.DEFAULT_OPTION,
							JOptionPane.QUESTION_MESSAGE, null,opcoes2,null), JOptionPane.showOptionDialog(null,"Entre com a atividade","SPA",JOptionPane.DEFAULT_OPTION,
									JOptionPane.QUESTION_MESSAGE, null,opcoes3,null), JOptionPane.showOptionDialog(null,"Entre com o tipo de serviço","SPA",JOptionPane.DEFAULT_OPTION,
											JOptionPane.QUESTION_MESSAGE, null,opcoes4,null));
					est.servico="Estetica";
					lista.add(est);
					mostra.addAll(lista);
					break;
				}
				
				
				break;
			case 1: 
				String nome;
				nome=JOptionPane.showInputDialog("Entre com o nome que deseja encontrar: ");
				for (int i=0;i<mostra.size();i++) {
					if(mostra.get(i).nome.equals(nome))
						JOptionPane.showMessageDialog(null, mostra.get(i).mostrarDadosCadastro());;
					
				} break;
			case 2: 
				nome=JOptionPane.showInputDialog("Entre com o nome do paciente: ");
				for (int i=0;i<mostra.size();i++) {
					if(mostra.get(i).nome.equals(nome)){
						opcao3 = JOptionPane.showOptionDialog(null,"Qual a nova atividade desejada?","SPA",JOptionPane.DEFAULT_OPTION,
								JOptionPane.QUESTION_MESSAGE, null,opcoes3,null); //"0 - Caminhada no Bosque","1 - Nadar na Piscina", "2 - Se Exercitar na Academia"
						String retorno = "";
						
						if(opcao3 == 0)
							mostra.get(i).tipoAtiv=0;
						JOptionPane.showMessageDialog(null, retorno+="Nova Atividade: Caminhada no Bosque");	
						if(opcao3 == 1)
							mostra.get(i).tipoAtiv=1;
							retorno+="Nova Atividade: Nadar na Piscina";
						if(opcao3 == 2)
							mostra.get(i).tipoAtiv=2;
							retorno+="Nova Atividade: Se Exercitar na Academia";
					
				}else{
					JOptionPane.showMessageDialog(null, "Pessoa não encontrada");
					
				}
				}
				break;
			case 3: 
				nome=JOptionPane.showInputDialog("Entre com o nome do paciente: ");
				for (int i=0;i<mostra.size();i++) {
					if(mostra.get(i).nome.equals(nome)){
						JOptionPane.showMessageDialog(null, "Deseja remover este paciente?\n"+mostra.get(i).mostrarDadosCadastro());
						mostra.remove(i);
						JOptionPane.showMessageDialog(null, "Paciente removido com suceso!");
					
					}else {
						JOptionPane.showMessageDialog(null, "Paciente não encontrado");
					}
				}
				break;
			case 4:
				opcao4 = JOptionPane.showOptionDialog(null,"Qual tratamento deseja mostrar?","SPA",JOptionPane.DEFAULT_OPTION,
						JOptionPane.QUESTION_MESSAGE, null,opcoes1,null);
				switch(opcao4) {
				case 0: 
					for (int i = 0; i <mostra.size() ;i++) {
						if(opcao4==0){
							JOptionPane.showMessageDialog(null, mostra.get(i).mostrarDadosCadastro());
						}
					}
				
				case 1:
				
					for (int i = 0; i <mostra.size() ;i++) {
						if(mostra.get(i).servico.equals("Emagrecimento")){
							JOptionPane.showMessageDialog(null, mostra.get(i).mostrarDadosCadastro());
						}else{
							JOptionPane.showMessageDialog(null, mostra.get(i).mostrarDadosCadastro());
						}
						
					}
				
				
				break;
			case 5: 
				if(opcao1==0){
					CalculoPeso cp =new CalculoPeso();
					for (int i = 0; i <mostra.size() ;i++) {
						if(mostra.get(i).servico.equals("Emagrecimento")){
						System.out.println();
						}
					}
				}
				break;
				
		}
		}
		
	} while (opcao!=6);
	
}

}

package SPA;

public abstract class Paciente {
protected String nome;
protected String telefone;
protected int sexo; //Sexo 0 - Masculino | Sexo 1 - Feminino
protected int tipoAtiv;
protected String servico;

public String mostrarDadosCadastro(){
	return null;
}

}

package SPA;

import javax.swing.JOptionPane;

public class Emagrecimento extends Paciente implements Atividades {
//declarando atributos
private double peso, altura, pesoIdeal, porcent;
private String tratamento = “Emagrecimento”;
/-------------------------------------------------------------------------------------------------------/
//Construtor Emagrecimento
public Emagrecimento(String nome, String telefone, int sexo, double peso, double altura){
this.nome=nome;
this.telefone=telefone;
this.sexo=sexo;
this.peso=peso;
this.altura=altura;

	//Criando o objeto do Calculo peso para poder chamar o método
	CalculoPeso cal = new CalculoPeso();
	
	//Chamando e atribuindo o método peso ideal
	pesoIdeal=cal.pesoIdeal(this.sexo, this.altura);
	
	//Chamando e atribuindo o método porcent
	porcent=cal.porcent(this.pesoIdeal, this.peso);
	JOptionPane.showMessageDialog(null, porcent);
}
/*-------------------------------------------------------------------------------------------------------*/


/*-------------------------------------------------------------------------------------------------------*/
//Sobrescrevendo o método mostrarDadosCadastro() da classe mãe
public String mostrarDadosCadastro(){
	String retorno = "Nome: "+this.nome+"\nTelefone: "+this.telefone ;
	if(this.sexo == 0)
		retorno+= "\n\nSexo: Masculino";
	else
		retorno+= "\n\nSexo: Feminino";
	
	retorno+="\n\nPeso: "+this.peso+"kg\nTratamento: "+tratamento;
	
	if(this.peso>this.pesoIdeal)
		retorno+="\nPeso Ideal: "+this.pesoIdeal+"kg";
	
	
	return retorno;
}
/*-------------------------------------------------------------------------------------------------------*/


/*-------------------------------------------------------------------------------------------------------*/
//Interfaces
@Override
public String caminharBosque(String nome) {
	// TODO Auto-generated method stub
	return nome+" foi arejar a cabeça caminhando no bosque!";
}

@Override
public String nadarPiscina(String nome) {
	// TODO Auto-generated method stub
	return nome+" foi se refrescar na piscina!";
}

@Override
public String exercitarAcademia(String nome) {
	// TODO Auto-generated method stub
	return nome+" foi ficar maromba na academia!";
}
/*-------------------------------------------------------------------------------------------------------*/

}

package SPA;

public class CalculoPeso {

/*-------------------------------------------------------------------------------------------------------*/
//Método para calcular o peso ideal do paciente
public double pesoIdeal(int sexo, double altura){
	double pesoIdeal;
	if(sexo==0){
		pesoIdeal=(72.7*altura-58);
	return pesoIdeal;
	}else{
		pesoIdeal=(62.1*altura- 44.7);
	return pesoIdeal;
	}
}
/*-------------------------------------------------------------------------------------------------------*/

/*-------------------------------------------------------------------------------------------------------*/
//Método que calcula a porcentagem do peso Ideal
public double porcent(double pesoIdeal, double peso){
	double porcent;
	porcent = (1-pesoIdeal/peso)*100;
	return porcent;
}
/*-------------------------------------------------------------------------------------------------------*/

}

Sinceramente ta muito confuso, esse tópico é apenas para um problema? Tenta criar um tópico por problema pois fica mais fácil, jogar ISSO TUDO de linhas da preguiça em qualquer um rsrs.

1 curtida