Senhores boa tarde.
Peço ajuda pois cheguei onde podia mas agora é hora de gritar…
Bom, foi solicitado na faculdade o seguinte exercicio:
Elabore um programa para testarmos os conceitos de pilhas, para tanto, crie sua própria pilha (não é válido utilizar a classe Stack apresentada em sala de aula).
Sua pilha deve ser capaz de armazenar apenas objetos do tipo Cachorro e as seguintes regras devem ser respeitadas:
- Sua pilha não deve aceitar que cachorros mais pesados sejam dispostos sobre cachorros mais leves.
- Um cachorro menos agressivo não pode ser alocado sobre um mais agressivo. Níveis iguais de agressividade são aceitos.
A primeira regra é absoluta, a menos que o cachorro mais pesado que foi alocado sobre um menos pesado possua o dobro de sua agressividade.
Teste sua pilha.
Implemente os métodos PUSH e POP de sua pilha.
Ambos os métodos dever exibir uma mensagem para o usuário dizendo o nome do cachorro, o tipo de pêlo que possui e a ação realizada com ele (adicionado ou removido da pilha).
Criei 03 classes : Cachorro, Pilha e Principal.
Na classe Principal falta colocar algo conforme o nome da classe, o principal.
Não sei como realizar as validações para que as regras aconteçam de forma que o enunciado pede.
Desde já agradeço a todos pelas respostas.
class Cachorro {
String nome;
double peso;
boolean possuirCabelos = true;
int nivelDeAgressividade = 0;
public int getNivelDeAgressividade() {
return nivelDeAgressividade;
}
public void setNivelDeAgressividade(int nivelDeAgressividade) {
this.nivelDeAgressividade = nivelDeAgressividade;
}
public void setPeso(double peso) {
this.peso = peso;
}
public double getPeso() {
return peso;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public void setPossuirCabelos(boolean possuirCabelos) {
this.possuirCabelos = possuirCabelos;
}
public boolean isPossuirCabelos() {
return possuirCabelos;
}
}
public class pilha {
Cachorro[] caes = new Cachorro[100];
int posicaoVaga;
Cachorro c = new Cachorro();
public void push(Cachorro cao) {
/* Validacoes !!!!!! */
caes[posicaoVaga] = cao;
posicaoVaga++;
}
public void pop (Cachorro cao) {
}
}
public class Principal {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
pilha pilhaDeCachorros = new pilha();
int resp = 0;
do{
Cachorro dog = new Cachorro();
System.out.println("Digite o nome do vira-latas:");
dog.setNome(teclado.next());
System.out.println("Digite o peso do cao:");
dog.setPeso( teclado.nextDouble());
System.out.println("Digite o nível de agressividade do cao:");
dog.setNivelDeAgressividade( teclado.nextInt() );
System.out.println("Digite sim/nao se o cao possui ou não cabelos");
String resposta = teclado.next();
dog.setPossuirCabelos( resposta.equals("sim") );
System.out.println("Digite 1 para por o cachorro na pilha"
+ " 2 para tirar um cachorro da pilha"
+ " 3 para sair");
resp = teclado.nextInt();
pilhaDeCachorros.push(dog);
pilhaDeCachorros.pop(dog);
} while (resp!=3);
}
}