0

いくつかのプログラムで問題が発生しています。1 つはデバッグする必要があり、もう 1 つは作成する必要があります。

最初に、ユーザーが入力した惑星名を取得し、それを大文字に変換してから、列挙型を実行します。私は何を間違えましたか?import java.util.*;

public class DebugNine4 {
enum Planet {
    MERCURY, VENUS, EARTH, MARS, JUPITER, SATURN, URANUS, NEPTUNE
};

public static void main(String[] args) {
    Planet planet;
    String userEntry;
    int position;
    int comparison;
    Scanner input = new Scanner(System.in);
    System.out.print("Enter a planet in our solar system >> ");
    planet = input.nextLine().toUpperCase();
    planet = Planet.valueOf(planet);
    System.out.println("You entered " + planet);
    position = planet.ordinal();
    System.out.println(planet + " is " + (position + 1)
            + " planet(s) from the sun");
}
}

2つ目は、出力が思い通りに進まないことです。それは戻ってくる:

Cut Shampoo

必要な情報ではなく、サービスの名前、コスト、時間で並べ替えることができます。このコードのどこが間違っていたのでしょうか?

  1. まず、3 つのデータ フィールドを持つ Service オブジェクトを作成する必要があります。
  2. 次に、6 つのサービス オブジェクトの配列を作成し、本書の表 9.6 の 420 ページのデータを入力する必要があります。

    service[0] = new Service("Cut",8.00,15);
    
  3. Scanner オブジェクトを使用して、質問からの応答を収集します。"Sort services by (S)ervice, (P)rice, or (T)ime"

  4. 次のような入力に基づいて、正しい順序でリストされた 3 つの書式設定された列のすべての情報を返します。

    時間順:

    Trim          $6.00    5 minutes
    Shampoo        $4.00    10 minutes
    

コード:

public class SalonReport {

public static void main(String[] args) {

    // services listing with time and cost
    Service[] myService = new Service[6];
    myService[0] = new Service("Cut", 8.00, 15);
    myService[1] = new Service("Shampoo", 4.00, 10);
    myService[2] = new Service("Manicure", 18.00, 30);
    myService[3] = new Service("Style", 48.00, 55);
    myService[4] = new Service("Permanent", 18.00, 35);
    myService[5] = new Service("Trim", 6.00, 5);
    SortDescription(myService, myService.length);
    System.out.println(myService[0].getServiceType() + " "
            + myService[1].getServiceType());
}

public static void SortDescription(Service[] array, int len) {
    int a;
    int b;
    Service temp;

    for (a = 0; a < len; ++a)
        for (b = 0; b < len - 1; ++b) {

            if (array[b].getServiceType().compareTo(
                    array[b + 1].getServiceType()) > 0)
                ;
            {
                temp = array[b];
                array[b] = array[b + 1];
                array[b + 1] = temp;

            }

        }

}
}

class Service {

// declaring parameters
String servDescript;
double price;
int avgMin;

public Service(String s, double p, int m) { // constructor
    servDescript = s;
    price = p;
    avgMin = m;

}

// method returning requested item -

public String getServiceType() {
    return servDescript;
}

public double getPrice() {
    return price;
}

public int getMinutes() {
    return avgMin;
}
}
4

3 に答える 3

0

最初のようです:

planet = Planet.valueOf(input.nextLine().toUpperCase());

文字列を列挙型変数に入れることはできないため、この行を削除します。

    planet = input.nextLine().toUpperCase();

編集:

public class DebugNine4 {
enum Planet {
    MERCURY, VENUS, EARTH, MARS, JUPITER, SATURN, URANUS, NEPTUNE
};

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    System.out.print("Enter a planet in our solar system >> ");

    Planet planet = Planet.valueOf(input.nextLine().trim().toUpperCase());
    System.out.println("You entered " + planet);

    int position = planet.ordinal();
    System.out.println(planet + " is " + (position + 1)
            + " planet(s) from the sun");
}
}

上記のコードは機能します。入力に注意してください。

mArS、火星、火星などの組み合わせを試しました。

于 2013-10-06T18:42:59.767 に答える
-1
import java.util.Scanner;

public class DebugNine4 {
    enum Planet {MERCURY, VENUS, EARTH, MARS, JUPITER, SATURN, URANUS, NEPTUNE};

    public static void main(String[] args) {

              Planet planet;
              String userEntry;
              int position;
              int pos;
              int comparison;
              Scanner input = new Scanner(System.in);
              System.out.print("Enter a planet in our solar system >> ");
              userEntry = input.nextLine().toUpperCase();
              planet = Planet.valueOf(userEntry);
              System.out.println("You entered " + planet);
              pos =  planet.ordinal();
              System.out.println(planet + " is " + (pos + 1) + " planet(s) from the sun");
           }
        }
于 2015-06-07T06:46:59.937 に答える