0

極座標をデカルトに、またはその逆に変換する宿題をやろうとしています。継承とポリモーフィズムを使用して、点間の距離、線の傾き、およびによって入力された 2 つの値が与えられた線の方程式も得ます。ユーザー。

親クラスと、Polar クラスと Cartesian クラスを作成しました。1. テスト座標クラス (何らかの理由で認識されていない) でメソッドを呼び出し、2. 成功したネストされたループを作成しようとしています。

ループ状況: 入力された極座標またはデカルト座標のいずれかにつながる if ステートメントがあります。これはうまく機能し、座標が入力されると、ユーザーはプロセスを選択するように求められます (直線の傾き、直線の方程式、直線間の距離などを取得します)。このネストされたループを作成する方法がわかりません。試行するたびに、内側のループが終了するとループが停止し、メニューの外側のループには戻りません。

どんな洞察も大歓迎です!

親コード (メソッドの呼び出しに問題があります):

public abstract class Coordinate {

    private double value1, value2;

    public Coordinate(double val1, double val2) {
        this.value1 = value1;
        this.value2 = value2;
    }

    public double getValue1() {
        return value1;
    }
    public double getValue2() {
        return value2;
    }

    public abstract String getEquationOfLine(Coordinate c);

    public abstract double getDistance(Coordinate c);

    public abstract double getSlopeOfLine(Coordinate c);


}

コード:

import java.util.Scanner;


public class TestCoordinates {

    public static String getSelection(Scanner in) {

        System.out.println("(p) Polar Coordinates (r, theta (degrees))");
        System.out.println("(c) Cartesian Coordinates (x, y)");
        System.out.println("(x) Exit program");
        System.out.println("What type of coordinates?  Please enter p or c, or x to quit. ");
        return in.next();

    }

    public static void main(String [] args) {
        Scanner scan = new Scanner(System.in);

        String coordinateString = getSelection(scan);

        while(coordinateString.equalsIgnoreCase("p") || coordinateString.equalsIgnoreCase("c")) {


            if (coordinateString.equalsIgnoreCase("p")) {
                System.out.println("Coordinate 1 - Please enter the radius: ");
                int radius = scan.nextInt();
                System.out.println("Coordinate 1 - Please enter theta (degrees): ");
                int theta = scan.nextInt();
                System.out.println("Coordinate 2 - Please enter the radius: ");
                int radius1 = scan.nextInt();
                System.out.println("Coordinate 2 - Please enter theta (degrees): ");
                int theta1 = scan.nextInt();

                System.out.println("[1] Convert to Cartesian coordinates.");
                System.out.println("[2] Find the distance between the two points.");
                System.out.println("[3] Find the slope of the line between the points.");
                System.out.println("[4] Find the equation of the line between the points.");
                System.out.println("[5] Return to main menu.");

                System.out.println("What would you like to do? Enter the number: ");
                int num = scan.nextInt();





        /*if (num = 1) {
                    getCartesian();
                    System.out.println("The Cartesian coordinate for " + "(" + radius + "," + theta + ") is" + getCartesian);
                    System.out.println("The Cartesian coordinate for " + "(" + radius1 + "," + theta1 + ") is" + getCartesian);
                }*/

                /*if (int num = 2){
                    getDistance();
                    System.out.println("The distance between the Polar coordinates (" + radius + "," + theta + ") and " + radius1 +"," + theta1 + ") is" getDistance);
                }


                if (int num = 3) {
                    getSlopeOfLine;
                    System.out.println("The slope of the line between the Polar coordinates (" + radius + "," + theta + ") and " + radius1 +"," + theta1 + ") is" getSlopeOfLine);

                }

                if (int num = 4) {
                    System.out.println("The equation of the line between the points is: ")
                }

                else if (num = 5) {
                    return;
                }*/
4

0 に答える 0