Quantcast
Channel: Programação - GUJ
Viewing all articles
Browse latest Browse all 33093

Tenho q implementar exceção no meu programa mas n sei muito bem

$
0
0

@Luiz_Pereira_de_Alme escreveu:

tenho essas orientações :

1)
Enriqueça o seu trabalho implementando
tratamento de exceção, em especial, para tipos incompatíveis, acesso a posição
inexistente de arranjo e divisão por zero.

Não esqueça de ampliar o grau de robustez de seu sistema
implementando estratégias de tratamento de exceção para duas situações: acesso
aos arranjos e leitura de tipo inválido.

import java.util.*;
   abstract class FigGeo{
   abstract public double perimetro();}
class Circulo extends FigGeo{
   private double r;
   public static int cont=0;
   public double getRaioC(){
   return this.r;}
   public void setRaioC(double r){
   this.r=r;}
   Circulo(){
      this.setRaioC(0);}
   Circulo(double r){
      this.setRaioC(r);}
   public void setRaios(double r){
      this.r = r;
   }
   public static int contT=0;
   public void escreveR(){
      System.out.println("\nRaio: " + this.getRaioC());}
   public void leladosR(){
      Scanner s=new Scanner(System.in);
      System.out.print("Digite o valor do Raio dos circulo: ");
      System.out.print("\nRaio: ");
      double setRaioC = (s.nextDouble());
     this.setRaios(setRaioC);
     cont++;}  
   public double perimetro(){
      return (2*Math.PI*this.getRaioC());}
   public void escrevePR(){
      System.out.println("Perimetro: " + this.perimetro() );}   
   }       
class Triangulo extends FigGeo{
   private double a;
   private double b;
   private double c;
   public double getLadoA(){
      return this.a; }
   public double getLadoB(){
      return this.b;}
   public double getLadoC(){
      return this.c;}
   public void setLadoA(double a){
      this.a = a;
   }
   public void setLadoB(double b){
     this.b = b;
   }
   public void setLadoC(double c){
     this.c = c;
   }
   Triangulo(){   
     this.setLadoA(0);
     this.setLadoB(0);
     this.setLadoC(0);
   }    
   Triangulo(double a,  double b, double c){ 
      this.setLadoA(a);
      this.setLadoB(b);
      this.setLadoC(c);
   }
   public static int contT=0;
   public void setLados(double a,double b,double c){
      this.a = a;
      this.b = b;
      this.c = c;}
   public void escreve(){
      System.out.println("\nLados: " + this.getLadoA() + ", " 
                                     + this.getLadoB() + ", "
                                     + this.getLadoC() );
   }
   public void escreveP(){
      System.out.println("Perimetro: " + this.perimetro() );}
   public int Tipo(){
      if(ehTriangulo()== true){
         if(this.getLadoA()==this.getLadoB() && this.getLadoB()==this.getLadoC()){
            return 1;}
         else if(this.getLadoA()!=this.getLadoB() && this.getLadoB()!=this.getLadoC() && this.getLadoA()!=this.getLadoC()){
            return 3;}
         else {
            return 2;}
      }else {
         return 0;}
   }     
   public void escreveTipo(){
      int x = Tipo();
      if(x == 1){ 
         System.out.println("Equilatero");
      }
      if(x == 2){ 
         System.out.println("Isoscele");
      }
      if(x == 3){ 
         System.out.println("Escaleno");
      }
      if(x == 0){
         System.out.println("Nao e triangulo");
      }   
   }
   public boolean ehTriangulo(){
       if(this.getLadoA()< this.getLadoB() + this.getLadoC() || this.getLadoB() < this.getLadoA() + this.getLadoC() || this.getLadoC()< this.getLadoA() + this.getLadoB()){
         return true;
      }
      else{
         return false;
      }
   }  
   public double perimetro(){
      return this.getLadoA()+this.getLadoB()+this.getLadoC();}
   public void lelados(){
      Scanner s=new Scanner(System.in);
      System.out.print("Digite o valor dos lados do triangulo: ");
      System.out.print("\nLado A: ");
      double setLadoA = (s.nextDouble());
      System.out.print("Lado B: ");
      double setLadoB = (s.nextDouble());
      System.out.print("Lado C: ");
      double setLadoC = (s.nextDouble());
      this.setLados(setLadoA,setLadoB,setLadoC);
      contT++;
   }
   public static double maiorPerimetro(int i, Triangulo[] m){
      if(i <= 1) 
         return 0;
      if(m[i-1].perimetro() > maiorPerimetro(i-1, m)){
         return m[i-1].perimetro();
      }
      return maiorPerimetro(i-1, m);
   }
   public static void escreveTriangulosMaiores(int i, double maior, Triangulo[] m){
      if(i <= 0) 
         return;
      if(m[i-1].perimetro() == maior) System.out.println("Posicao: " + (i));
      escreveTriangulosMaiores(i - 1, maior, m);
   }   
}
public class TP1{
   public static void main(String[] args){
      Scanner s=new Scanner(System.in);
      Circulo[]o=new Circulo[100];
      Triangulo[]t= new Triangulo[100];
      int menu,escolha,menuC;
      int c=0;
      int a=0;
      do{
      System.out.print("Digite uma opcao do menu a seguir\n"+  
                   "1. Menu dos circulos.\n "+  
                   "2. Menu dos triangulos.\n :"+
                   "0.Sair: \n");
      escolha =s.nextInt();
      if(escolha==1){
      do{
         System.out.print("Digite uma opcao do menu a seguir\n"+  
                   "1. Ler um novo circulo.\n"+  
                   "2. Listar todos os circulos criados.\n"+  
                   "3. Escrever o circulo posicionado na posicao k do arranjo, sendo k um valor lido.\n" + 
                   "4. Verificar o perimetro de um circulo armazenado na posicao k do arranjo.\n"+
                   "0.Sair: \n"); 
          menuC =s.nextInt();
         switch( menuC )
         {
            case 1:
               o[a] = new Circulo();
               o[a].leladosR();
               a++;
               break;
            case 2:
               System.out.println("Circulos do arranjo: ");
               for(int i = 0; i < Circulo.cont; i++){
                     o[i].escreveR();
                     o[i].escrevePR();   
               }
               System.out.print("\n");
               break;
            case 3: 
               int v;
               System.out.print("Digite a posicao do circulo que deseja: "); 
              v = s.nextInt();
              o[v].escreveR();
              o[v].escrevePR(); 
               break;
           case 4:
               int z; 
               System.out.println("Digite a posicao: ");
               z=s.nextInt();
               o[z].escreveR();
               o[z].escrevePR();
               break;    
          case 0:
               System.out.println("Acabou o programa!");
               break;
            default:
               System.out.println("Valor errado.");          
         }
      }while(menuC!=0);
  }             
  else if(escolha==2){
  do{
     System.out.print("Digite uma opcao do menu a seguir\n"+  
               "1. Ler um novo triangulo.\n"+  
               "2. Listar todos os triangulos criados.\n"+  
               "3. Escrever o triangulo posicionado na posicao k do arranjo, sendo k um valor lido.\n" +  
               "4. Verificar o tipo de um triangulo armazenado na posicao k do arranjo.\n" +  
               "5. Verificar o perimetro de um triangulo armazenado na posicao k do arranjo.\n" +  
               "6. Listar todos os triangulos do arranjo, seguido de seu perimetro e de seu tipo.\n" +  
               "7. Listar todos os triangulos cujos valores dos lados precisam ser corrigidos por não atender à sua condicação de existeência.\n"+
               "8. Triangulos com maior períimetro.  \n"+
               "0.Sair: \n");
     menu =s.nextInt();
     
     switch( menu )
     {
     
        case 1:
           t[c] = new Triangulo();
           t[c].lelados();
           c++;
           break;
        case 2:
           System.out.println("Triangulos do arranjo: ");
           for(int i = 0; i < Triangulo.contT; i++){
             
                t[i].escreveTipo();
                t[i].escreveP();
                t[i].escreve();}
           System.out.print("\n");
           break;
        case 3: 
           int q;
           System.out.print("Digite a posicao do triangulo que deseja: "); 
          q = s.nextInt();
          t[q].escreve();
           break;
        case 4: 
           int j;
          
          System.out.print("Digite qual triangulo deseja verificar o tipo: ");
          j = s.nextInt();
          
          
          
          t[j].ehTriangulo();
          
          if(t[j].ehTriangulo() == true){

          t[j].Tipo();
          t[j].escreveTipo();
          }
          
           break;
        case 5:
           int y; 
           System.out.println("Digite a posicao: ");
           y=s.nextInt();
           
           t[y].escreveP();
           break;
        case 6: 
        
           System.out.println("Triangulos do arranjo: ");
           for(int i = 0; i < Triangulo.contT;i++){
           
              
                 t[i].escreve();
                 t[i].escreveP();
                 t[i].escreveTipo();
                }
           
        
           
           break;
        case 7: 
           for(int i =0;i < c;i++){
              
              if(t[i].ehTriangulo() == false){
              
                 t[i].lelados();
              }
              else{
              
                 System.out.println("Nao tem triangulos a serem corrigidos");
              }
           }
            
           break;        
        case 8: 
           double maior = Triangulo.maiorPerimetro(c,t);
         
           Triangulo.escreveTriangulosMaiores(c,maior,t);   
           System.out.println(maior);
           break;
        case 0:
           System.out.println("Acabou o programa!");
           break;
        default:
           System.out.println("Valor errado.");          
     }
     }while(menu!=0);
  }else if(escolha!=0){
  System.out.println("Digite novamente 1 ou 2!!\n");}
  
  }while(escolha!=0);
   } 
}

Mensagens: 3

Participantes: 3

Ler tópico completo


Viewing all articles
Browse latest Browse all 33093


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>