2017-06-03 3 views
1

Benutzer müssen wählt eine Option aus der bietet die Optionen.Wenn der Benutzer wählt Dreieck, fordert das Programm den Benutzer für Koordinaten der Ecken und berechnen Text den Umfang des Dreiecks. Ich kann die Fehler nicht beheben.Berechnen Sie den Umfang des Dreiecks und den Umfang des Kreises mit Methoden

import java.util.*; 
public class Menu 
{ 
    public static void main (String[] args) 
    { 
     int userOption =0; 
     userOption = myMenu(); 
     System.out.println("User selected Option"+userOption); 

    if (userOption==1) 
    { 
     System.out.println("The perimetre of your triangle is" + getPerimeter(trianglePrompt())); 
    }  
    //else if (userOption==2) 
    //{ 
     //System.out.println("The circumference of your circle is" + circle(circlePrompt())); 
    //} 

    } 

    public static int myMenu(){ 
    int userOption; 
    Scanner myInput=new Scanner(System.in); 
    do { 
     System.out.println("Select one of the following options:"); 
     System.out.println(" 1. Triangle"); 
     System.out.println(" 2. Circle"); 
     System.out.println(" 3. Exit"); 
     userOption= myInput.nextInt(); 
    // To read a number of type float, use : myInput.nextFloat(); 
    // To read a character use : (myInput.next()).charAt(0); 
     if (userOption==3){ 
     System.out.println("Bye"); 
     System.exit(0); 
     } 

    } while (userOption !=1 && userOption !=2); 
     return userOption; 
    } 

//METHOD TO SCAN RADIUS FROM USER 
    public static double circlePrompt() 
    { 
     double radius; 
     Scanner myRadius= new Scanner(System.in); 
     do 
     { 
     System.out.println("Input a radius of a circle: "); 
     radius= myRadius.nextDouble(); 
     if(radius<0) 
      System.out.println("You must input a positive radius"); 
     } 
     while (radius<0); 
     return radius; 
    } 

//METHOD TO CALCULATE THE CIRCUMFERENCE 
    public static double circle(double radius) 
    {  
     return (2*radius*Math.PI); 
    } 
// METHOD TO SCAN 6 COORDINATES OF TRIANGLE 
    private Point p1, p2,p3; 
    public int trianglePrompt(int x1, int y1, int x2, int y2, int x3, int y3) 
    { 
    //double x1; 
    Scanner scanObject = new Scanner(System.in); 
    System.out.println("Input x1 of a Triangle : "); 
    x1= scanObject.nextInt(); 

System.out.println("Input x1 of a Triangle : "); 
    x2= scanObject.nextInt(); 

System.out.println("Input x1 of a Triangle : "); 
    x3= scanObject.nextInt(); 

System.out.println("Input x1 of a Triangle : "); 
    y1= scanObject.nextInt(); 

System.out.println("Input x1 of a Triangle : "); 
    y2= scanObject.nextInt(); 

System.out.println("Input x1 of a Triangle : "); 
    y3= scanObject.nextInt(); 
    //return x1; 

} 
    p1 = new Point(x1,y1); 
    p2 = new Point(x2,y2); 
    p3 = new Point(x3,y3); 
    public double getSideA() 
    { 
     double length = p1.distance(p2); 
     return length; 
    } 

    public double getSideB() 
    { 
    double length = p2.distance(p3); 
    return length; 
    } 

    public double getSideC() 
     { 
     double length = p3.distance(p1); 
     return length; 
     } 

//METHOD TO CALCULATE PERIMETRE OF TRIANGLE BY ADDING ALL THREE SIDES 
    public int getPerimeter() 
    { 
    int as = getSideA(), bs = getSideB(), cs = getSideC(); 
    return (as + bs + cs); 
    } 
} 

Fehler:

Menu.java:108: error: <identifier> expected 
p1 = new Point(x1,y1); 
^
Menu.java:109: error: <identifier> expected 
p2 = new Point(x2,y2); 
^
Menu.java:110: error: <identifier> expected 
p3 = new Point(x3,y3); 
^
3 errors 

Antwort

-1

p1 = new Point (x1, y1);

sollte

Punkt p1 = new Point (x1, y1) sein;

+0

Dies ersetzt nur den aktuellen Kompilierungsfehler durch einen anderen. Wenn Sie diesen zweiten Kompilierfehler beheben, wird das Programm weiterhin nicht funktionieren. Also diese Antwort ist nicht besonders nützlich, daher mein Downvote. –

0

Sie haben p1, p2 und p3 außerhalb einer beliebigen Methode initialisiert. Es ist in Ordnung, das zu tun, aber nur, wenn Sie sie in derselben Anweisung initialisieren, wie Sie sie deklarieren. So Sie

private Point p1 = new Point(x1, y1); 
private Point p2 = new Point(x2, y2); 
private Point p3 = new Point(x3, y3); 

statt

private Point p1, p2, p3; 

und löschen Sie die drei Zeilen mit den Fehlern schreiben konnte. Dies wird Ihren Kompilierungsfehler beheben, aber Ihr Programm wird nicht funktionieren, weil dies bedeuten würde, dass diese Zeilen ausgeführt werden würden, bevor die Werte x1, y1, x2, y2, x3, y3 die Werte haben, die der Benutzer eingibt.

Was Sie wirklich tun möchten, ist die Linien

p1 = new Point(x1, y1); 
p2 = new Point(x2, y2); 
p3 = new Point(x3, y3); 

und so weiter nach oben zu bewegen, bevor die vorherige } Charakter. Auf diese Weise befinden sie sich in der Methode, in der x1, y1, x2, y2, x3, y3 festgelegt sind, und sie werden ausgeführt, nachdem diese Variablen ihre Werte erhalten haben.

Verwandte Themen