Ir ao conteúdo
  • Cadastre-se

Exercicio - Eclipse - Programacao Orientada


Ir à solução Resolvido por adrianofe,

Posts recomendados

Estou tendo dificuldades na realizaçao de um exercicio proposto como trabalho final da matéria. Tentei montar o código porém, houve metodos que nao soube declarar e teve coisas que realmente nem consegui entender

Segue o exercicio passado


código que consegui montar

TF.pdf

AdrianoTrabalhoFinal.rar

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...
  • Solução

consegui, no fim montei 2 programas diferentes, vou postar aqui

 

Programa 1


package adrianoTrabalhoFinal;public abstract class FiguraGeometrica {		protected String cor=null;	protected boolean preenchida=false;		public FiguraGeometrica() {	} 		public FiguraGeometrica(String cor, boolean preenchida) {		this.cor = cor;		this.preenchida = preenchida;	} 		public String getCor() {		return cor;	}		public void setCor(String cor) {		this.cor = cor;	}		public boolean isPreenchida() {		return preenchida;	}		public void setPreenchida(boolean preenchida) {		this.preenchida = preenchida;	}		public abstract double getArea();			public abstract double getPerimetro();			public String toString() {		return "Cor: " + this.cor + "Preenchida: " + this.preenchida;	}}
package adrianoTrabalhoFinal;import java.text.DecimalFormat;public class Circulo extends FiguraGeometrica{		protected double raio=0;		public Circulo(){	}		public Circulo(double raio){		this.raio = raio;	}		public Circulo(double raio, String cor, boolean preenchida){		this.raio = raio;		super.cor = cor;		super.preenchida = preenchida;	}	public double getRaio() {		return raio;	}	public void setRaio(double raio) {		this.raio = raio;	}		@[member="override"]	public String getCor() {		return cor;	}	@[member="override"]	public void setCor(String cor) {		this.cor = cor;			}	@[member="override"]	public boolean isPreenchida() {		return preenchida;	}	@[member="override"]	public void setPreenchida(boolean preenchida) {		this.preenchida = preenchida;	}	@[member="override"]	public double getArea() {		return Math.PI * this.raio * this.raio;	}	@[member="override"]	public double getPerimetro() {		return 2 * Math.PI * raio;	}		@[member="override"]	public String toString() {		DecimalFormat df = new DecimalFormat("0.00");		return "Circulo com medidas:\tRaio: " + df.format(this.raio) + " - Área: "				+ df.format(this.getArea()) + " - Perímetro: "				+ df.format(this.getPerimetro()) + " - " + super.toString();	}	}
package adrianoTrabalhoFinal;import java.text.DecimalFormat;public class Quadrado extends Retangulo {		protected double lado=0;		public Quadrado(){	}		public Quadrado(double lado){		this.lado = lado;	}		public Quadrado(double lado, String cor, boolean preenchida){		this.lado = lado;		this.cor = cor;		this.preenchida = preenchida;	}	public double getLado() {		return lado;	}	public void setLado(double lado) {		this.lado = lado;	}		@[member="override"]	public String toString() {		setBase(this.lado);		setAltura(this.lado);		DecimalFormat df = new DecimalFormat("0.00");		return "Quadrado com medidas:\tLado: " + df.format(this.lado) + " - Área: "				+ df.format(getArea()) + " - Perimetro: "				+ df.format(getPerimetro()) + " - "				+ super.toString();	}}
package adrianoTrabalhoFinal;import java.text.DecimalFormat;public class Retangulo extends FiguraGeometrica{		protected double base=0;	protected double altura=0;		public Retangulo(){	}		public Retangulo(double base, double altura){		this.base = base;		this.altura = altura;	}		public Retangulo(double base, double altura, String cor, boolean preenchida){		this.base = base;		this.altura = altura;		super.cor = cor;		super.preenchida = preenchida;	}	public double getBase() {		return base;	}	public void setBase(double base) {		this.base = base;	}	public double getAltura() {		return altura;	}	public void setAltura(double altura) {		this.altura = altura;	}			@[member="override"]	public String getCor() {		return cor;	}		@[member="override"]	public void setCor(String cor) {		this.cor = cor;	}		@[member="override"]	public boolean isPreenchida() {		return preenchida;	}		@[member="override"]	public void setPreenchida(boolean preenchida) {		this.preenchida = preenchida;	}		@[member="override"]	public double getArea() {		return this.base * this.altura;	}		@[member="override"]	public double getPerimetro() {		return 2 * ( this.base + this.altura);	}		@[member="override"]	public String toString() {		DecimalFormat df = new DecimalFormat("0.00");		return "Retângulo com medidas:\tBase: " + df.format(this.base) + " - Altura: "				+ df.format(this.altura) + " - Área: " + df.format(getArea())				+ " - Perímetro: " + df.format(getPerimetro()) + " - "				+ super.toString();	}	}
package adrianoTrabalhoFinal;import java.util.Scanner;public class ControleDeFigurasGeometricas {				FiguraGeometrica[] figuras = new FiguraGeometrica[30] ;	 	Scanner entrada = new Scanner(System.in);		int op;	double raio = 0;	double lado = 0;	double base = 0;	double altura = 0;	String cor = null;	int totalDeFiguras = 0;	int vetor=0;		public void menu(){		System.out.print( "\n");		System.out.print( "O que deseja realizar:\n"); 		System.out.print( "1 - Cadastrar figura geométrica\n");		System.out.print( "2 - Alterar figura geométrica\n");		System.out.print( "3 - Visualizar figura geométrica\n");		System.out.print( "4 - Excluir figura geométrica\n");		System.out.print( "5 - Listar figuras geométricas\n");		System.out.print( "6 - Sair\n");	}				public void cadastrar(){		System.out.print( "\nQual figura deseja adicionar: \n1 - circulo\n2 - retangulo ou \n3 - quadrado\n" );    		int op2 = entrada.nextInt();        			if(op2 >=1 && op2 <=3){        	     				switch(op2){				case 1:					Circulo c = new Circulo();					System.out.print( "\nQual o raio desta figura\n");					raio = entrada.nextDouble();					c.setRaio(raio);					System.out.print( "Qual a cor desta figura\n");					cor = entrada.next();					c.setCor(cor);					c.preenchida = true;					adiciona(c);					break;						case 2:					Retangulo r = new Retangulo();					System.out.print( "\nQual a base desta figura\n");					base = entrada.nextDouble();					r.setBase(base);					System.out.print( "Qual a altura desta figura\n");					altura = entrada.nextDouble();					r.setAltura(altura);					System.out.print( "Qual a cor desta figura\n");					cor = entrada.next();					r.setCor(cor);					r.preenchida = true;					adiciona(r);					break;						case 3:					Quadrado q = new Quadrado();					System.out.print( "\nQual o lado desta figura\n");					lado = entrada.nextDouble();					q.setLado(lado);					System.out.print( "Qual a cor desta figura\n");					cor = entrada.next();					q.setCor(cor);					q.preenchida = true;					adiciona(q);					break;				}			}		else			System.out.print( "\nOpçao invalida\n");	}		public void cadastrar(int posicao){		System.out.print( "\nQual figura deseja adicionar: \n1 - circulo\n2 - retangulo ou \n3 - quadrado\n" );    		int op2 = entrada.nextInt();        			if(op2 >=1 && op2 <=3){        	     				switch(op2){				case 1:					Circulo c = new Circulo();					System.out.print( "\nQual o raio desta figura\n");					raio = entrada.nextDouble();					c.setRaio(raio);					System.out.print( "Qual a cor desta figura\n");					cor = entrada.next();					c.setCor(cor);					c.preenchida = true;					adiciona(c,posicao);					break;						case 2:					Retangulo r = new Retangulo();					System.out.print( "\nQual a base desta figura\n");					base = entrada.nextDouble();					r.setBase(base);					System.out.print( "Qual a altura desta figura\n");					altura = entrada.nextDouble();					r.setAltura(altura);					System.out.print( "Qual a cor desta figura\n");					cor = entrada.next();					r.setCor(cor);					r.preenchida = true;					adiciona(r,posicao);					break;						case 3:					Quadrado q = new Quadrado();					System.out.print( "\nQual o lado desta figura\n");					lado = entrada.nextDouble();					q.setLado(lado);					System.out.print( "Qual a cor desta figura\n");					cor = entrada.next();					q.setCor(cor);					q.preenchida = true;					adiciona(q,posicao);					break;				}			}		else			System.out.print( "\nOpçao invalida\n");	}		public void alterar(){		System.out.print( "\nDigite qual vetor deseja alterar\n" );		int posicao = entrada.nextInt();		System.out.println("Vetor ocupado por: " + pega(posicao));		System.out.print( "Deseja mesmo alterar este vetor\n1 - sim\n2 - nao");				int op3 = entrada.nextInt();				if(op3 ==1){					if (localOcupado(posicao)) {						cadastrar(posicao);					}				}	}		        		public  void visualizar(){			System.out.print("Qual vetor deseja visualizar: ");	int local = entrada.nextInt();		if (pega(local) == null) {		System.out.println("Vetor vazio");	} else {		System.out.println(pega(local));		System.out.println("Figura ocupando o vetor "+ local);	}}		public void excluir(){					System.out.print( "Digite qual vetor deseja excluir\n" );			vetor = entrada.nextInt();			if(localOcupado(vetor)){				System.out.println("O vetor "+ vetor +" está ocupado pela figura: " + pega(vetor) );				System.out.print( "\nDeseja mesmo excluir este vetor\n1 - sim\n2 - nao\n");				int op4 = entrada.nextInt();				if(op4 ==1){					remove(vetor);					System.out.println("Operaçao realizada com sucesso\n");								}else					System.out.println("Opcao cancelada\n");							}	}		public void listar(){		for(vetor=0; vetor<this.totalDeFiguras; vetor++)		System.out.println("Vetor ["+ vetor + "] - " + pega(vetor));		}			public boolean localOcupado(int local){		return local >=0 && local < this.totalDeFiguras;	}		public void adiciona(FiguraGeometrica figura) {				this.figuras[totalDeFiguras] = figura;		this.totalDeFiguras++;	}	public void adiciona(FiguraGeometrica figura, int local) {				this.figuras[local] = figura;		this.totalDeFiguras++;	}	public void remove(int local) {		if (localOcupado(local)) {			for (int i = local; i < this.totalDeFiguras - 1; i++) {				this.figuras[i] = this.figuras[i + 1];			}			this.totalDeFiguras--;		}	}	public Object pega(int local) {		if (localOcupado(local) == false) {			return null;		} else {			return this.figuras[local];		}	}}
package adrianoTrabalhoFinal;import java.util.Scanner;public class TesteFiguraGeometrica {	private static Scanner entrada;	public static void main(String[] args) {				ControleDeFigurasGeometricas figuraGeometrica = new ControleDeFigurasGeometricas();						entrada = new Scanner(System.in);				int op;		do{						figuraGeometrica.menu();			op= entrada.nextInt();						switch(op){			case 1:					figuraGeometrica.cadastrar();				break;						case 2:				figuraGeometrica.alterar();				break;						case 3:				figuraGeometrica.visualizar();			    break;						case 4:				figuraGeometrica.excluir();				break;						case 5:				figuraGeometrica.listar();				break;						}		}		while(op>=1 && op<=5);				}	}		

programa 2

package adrianoTrabalhoFinalApostila;abstract class FiguraGeometrica {	private String cor;	private boolean preenchido;	public FiguraGeometrica() {	}	public FiguraGeometrica(String cor, boolean preenchido) {		this.cor = cor;		this.preenchido = preenchido;	}	public String getCor() {		return cor;	}	public void setCor(String cor) {		this.cor = cor;	}	public boolean isPreenchido() {		return preenchido;	}	public void setPreenchido(boolean preenchido) {		this.preenchido = preenchido;	}	public abstract double getArea();	public abstract double getPerimetro();	public String toString() {		return "Cor: " + this.cor + " - Preenchido: " + this.preenchido;	}}
package adrianoTrabalhoFinalApostila;import java.text.DecimalFormat;public class Circulo extends FiguraGeometrica {	private double raio;	public Circulo() {	}	public Circulo(double raio) {		this.raio = raio;	}	public Circulo(double raio, String cor, boolean preenchido) {		super(cor, preenchido);		this.raio = raio;	}	public double getRaio() {		return raio;	}	public void setRaio(double raio) {		this.raio = raio;	}	@[member=override]	public double getArea() {		return Math.PI * Math.pow(this.raio, 2);	}	@[member=override]	public double getPerimetro() {		return 2 * Math.PI * this.raio;	}	@[member=override]	public String toString() {		DecimalFormat df = new DecimalFormat("0.00");		return "Circulo com medidas:\tRaio: " + df.format(this.raio) + " - Área: "				+ df.format(this.getArea()) + " - Perímetro: "				+ df.format(this.getPerimetro()) + " - " + super.toString();	}}
package adrianoTrabalhoFinalApostila;import java.text.DecimalFormat;public class Retangulo extends FiguraGeometrica {	private double base;	private double altura;	public Retangulo() {	}	public Retangulo(double base, double altura) {		this.base = base;		this.altura = altura;	}	public Retangulo(double base, double altura, String cor, boolean preenchido) {		super(cor, preenchido);		this.base = base;		this.altura = altura;	}	public double getBase() {		return base;	}	public void setBase(double base) {		this.base = base;	}	public double getAltura() {		return altura;	}	public void setAltura(double altura) {		this.altura = altura;	}	@[member=override]	public double getArea() {		return this.base * this.altura;	}	@[member=override]	public double getPerimetro() {		return (2 * this.base) + (2 * this.altura);	}	@[member=override]	public String toString() {		DecimalFormat df = new DecimalFormat("0.00");		return "Retângulo com medidas:\tBase: " + df.format(this.base) + " - Altura: "				+ df.format(this.altura) + " - Área: " + df.format(getArea())				+ " - Perímetro: " + df.format(getPerimetro()) + " - "				+ super.toString();	}}
package adrianoTrabalhoFinalApostila;import java.text.DecimalFormat;public class Quadrado extends Retangulo {	private double lado;	public Quadrado() {	}	public Quadrado(double lado) {		this.lado = lado;	}	public Quadrado(double lado, String cor, boolean preenchido) {		this.lado = lado;		setCor(cor);		setPreenchido(preenchido);	}	public double getLado() {		return lado;	}	public void setLado(double lado) {		this.lado = lado;	}	public String toString() {		setBase(this.lado);		setAltura(this.lado);		DecimalFormat df = new DecimalFormat("0.00");		return "Quadrado com medidas:\tLado: " + df.format(this.lado) + " - Área: "				+ df.format(getArea()) + " - Perimetro: "				+ df.format(getPerimetro()) + " - Cor: " + getCor()				+ " - Preenchido: " + isPreenchido();	}}
package adrianoTrabalhoFinalApostila;public class ControleDeFigurasGeometricas {		FiguraGeometrica[] figuras = new FiguraGeometrica[30] ;		protected int totalDeFiguras = 0;	protected boolean preenchida = false;		public void adiciona(FiguraGeometrica figura) {		this.garantaEspaco() ;		this.figuras[this.totalDeFiguras] = figura;		this.totalDeFiguras++;		}		public void adiciona(int posicao, FiguraGeometrica figura) {		this.garantaEspaco() ;		if (! this.posicaoValida(posicao)) {			throw new IllegalArgumentException("Posicao inválida") ;			}			for (int i = this.totalDeFiguras - 1; i >= posicao; i--) {			this.figuras[i + 1] = this.figuras[i] ;			}			this.figuras[posicao] = figura;			this.totalDeFiguras++;	}		public String toString() {		if (this.totalDeFiguras == 0) {			return "Nenhuma figura cadastrada\n";		} else {			StringBuilder builder = new StringBuilder();			for (int i = 0; i < this.totalDeFiguras; i++) {				builder.append("Vetor [" + i + "] - ");				builder.append(this.figuras[i]);				builder.append("\n");			}			return builder.toString();		}	}		public int tamanho() {		return this.totalDeFiguras;	}				public boolean contem(FiguraGeometrica figura) {		for (int i = 0; i < this.totalDeFiguras; i++) {		if (figura.equals(this.figuras[i])) {		return true;		}		}		return false;		}		public FiguraGeometrica pega(int posicao) {		if (! this.posicaoOcupada(posicao)) {			throw new IllegalArgumentException("Posicao inválida") ;			}			return this.figuras[posicao] ;	}		public boolean posicaoOcupada(int posicao) {		return posicao >= 0 && posicao < this.totalDeFiguras;	}		private boolean posicaoValida(int posicao) {		return posicao >= 0 && posicao <= this.totalDeFiguras;	}		public void remove(int posicao) {		if (! this.posicaoOcupada(posicao)) {		throw new IllegalArgumentException("Posicao inválida") ;		}		for (int i = posicao; i < this.totalDeFiguras - 1; i++) {		this.figuras[i] = this.figuras[i + 1] ;		}		this.totalDeFiguras--;		}		private void garantaEspaco() {		if (this.totalDeFiguras == this.figuras.length) {			FiguraGeometrica[] novaArray = new FiguraGeometrica[this.figuras.length * 2] ;			for (int i = 0; i < this.figuras.length; i++) {				novaArray[i] = this.figuras[i] ;			}			this.figuras = novaArray;		}	}		public void altera(FiguraGeometrica figura, int posicao) {		if (posicaoOcupada(posicao)) {			this.figuras[posicao] = figura;		}	}}
package adrianoTrabalhoFinalApostila;import java.util.Scanner;public class TesteFiguraGeometrica {		static ControleDeFigurasGeometricas fig = new ControleDeFigurasGeometricas();	 	static Scanner entrada = new Scanner(System.in);		static double raio = 0;	static double lado = 0;	static double base = 0;	static double altura = 0;	static String cor = null;	static int vetor=0;	static boolean preenchida= false;	public static void main(String[] args) {				int op;		do{						menu();			op= entrada.nextInt();						switch(op){			case 1:					cadastrar();				break;						case 2:				alterar();				break;						case 3:				visualizar();			    break;						case 4:				excluir();				break;						case 5:				listar();				break;						}		}		while(op>=1 && op<=5);			}			public static void menu(){	System.out.print( "\n");	System.out.print( "O que deseja realizar:\n"); 	System.out.print( "1 - Cadastrar figura geométrica\n");	System.out.print( "2 - Alterar figura geométrica\n");	System.out.print( "3 - Visualizar figura geométrica\n");	System.out.print( "4 - Excluir figura geométrica\n");	System.out.print( "5 - Listar figuras geométricas\n");	System.out.print( "6 - Sair\n");}		public static void cadastrar(){	System.out.print( "\nQual figura deseja adicionar: \n1 - circulo\n2 - retangulo ou \n3 - quadrado\n" );    	int op = entrada.nextInt();        		if(op >=1 && op <=3){        	     			switch(op){			case 1:				Circulo c = new Circulo();				System.out.print( "\nQual o raio do círculo\n");				raio = entrada.nextDouble();				c.setRaio(raio);				System.out.print( "Qual a cor do círculo\n");				cor = entrada.next();				c.setCor(cor);				c.setPreenchido(true);				fig.adiciona(c);				break;				case 2:				Retangulo r = new Retangulo();				System.out.print( "\nQual a base do retângulo\n");				base = entrada.nextDouble();				r.setBase(base);				System.out.print( "Qual a altura do retângulo\n");				altura = entrada.nextDouble();				r.setAltura(altura);				System.out.print( "Qual a cor do retângulo\n");				cor = entrada.next();				r.setCor(cor);				r.setPreenchido(true);				fig.adiciona(r);				break;				case 3:				Quadrado q = new Quadrado();				System.out.print( "\nQual o lado do quadrado\n");				lado = entrada.nextDouble();				q.setLado(lado);				System.out.print( "Qual a cor do quadrado\n");				cor = entrada.next();				q.setCor(cor);				q.setPreenchido(true);				fig.adiciona(q);				break;			}		}	else		System.out.print( "\nOpçao invalida\n");}public static void cadastrar(int posicao){	System.out.print( "\nQual figura deseja adicionar: \n1 - circulo\n2 - retangulo ou \n3 - quadrado\n" );    	int op = entrada.nextInt();        		if(op >=1 && op <=3){        	     			switch(op){			case 1:				Circulo c = new Circulo();				System.out.print( "\nQual o raio do círculo\n");				raio = entrada.nextDouble();				c.setRaio(raio);				System.out.print( "Qual a cor do círculo\n");				cor = entrada.next();				c.setCor(cor);				c.setPreenchido(true);				fig.altera(c,posicao);				break;				case 2:				Retangulo r = new Retangulo();				System.out.print( "\nQual a base do retângulo\n");				base = entrada.nextDouble();				r.setBase(base);				System.out.print( "Qual a altura do retângulo\n");				altura = entrada.nextDouble();				r.setAltura(altura);				System.out.print( "Qual a cor do retângulo\n");				cor = entrada.next();				r.setCor(cor);				r.setPreenchido(true);				fig.altera(r,posicao);				break;				case 3:				Quadrado q = new Quadrado();				System.out.print( "\nQual o lado do quadrado\n");				lado = entrada.nextDouble();				q.setLado(lado);				System.out.print( "Qual a cor do quadrado\n");				cor = entrada.next();				q.setCor(cor);				q.setPreenchido(true);				fig.altera(q,posicao);				break;			}		}	else		System.out.print( "\nOpçao invalida\n");}public static void alterar(){	listar();	System.out.print( "Digite qual vetor deseja alterar\n" );	vetor = entrada.nextInt();	System.out.print( "Deseja mesmo alterar este vetor\n1 - sim\n2 - nao\n");			int op = entrada.nextInt();			if(op ==1){					cadastrar(vetor);								}else					System.out.println("Operação cancelada");}	        	public static void visualizar(){	if (fig.tamanho() != 0) {		System.out.print("Qual vetor deseja visualizar: ");		int local = entrada.nextInt();		if (fig.pega(local) == null) {			System.out.println("Posição inválida");		} else {			System.out.println(fig.pega(local));		}		} else {			System.out.println("Vetor vazio");		}}public static void excluir(){	listar();	if (fig.tamanho() != 0) {		System.out.print( "Digite qual vetor deseja excluir\n" );		vetor = entrada.nextInt();		int inicio = fig.tamanho();		fig.remove(vetor);		if (fig.tamanho() == inicio) {			System.out.println("Vetor vazio");		} else {			System.out.println("Operação realizada com sucesso");			listar();		}	}}public static void listar(){	System.out.println(fig);}}
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...