-3

私は、ある人が映画館に行くために支払う金額を決定するために、CinemaPrice というアプリケーションを設計して実装する必要があります。プログラムは、Random クラスを使用して 1 から 100 までの年齢を生成し、ユーザーにチケットの全額を要求する必要があります。次に、通貨形式を使用して適切なチケット価格を表示します (本の例 )。「if ステートメント」を理解するために、クラスで一緒に行った例を参照することをお勧めします。次の基準に基づいてチケットの価格を決定し
ます。1. 5 歳未満は無料。2. 5歳から12歳まで半額。3. 13 歳から 54 歳まで、正規料金。4. 55歳以上は無料。

私はJavaが初めてで、これに何時間も費やしてきました。これを終わらせたいと思っています:)これは私がこれまでに持っているものです:

import java.util.Scanner;  //Needed for the Scanner class
import java.util.Random;
import java.text.DecimalFormat;

public class CinemaPrice
{    
public static void main(String[] args)  //all the action happens here!    
{  Scanner input = new Scanner (System.in);

    int age = 0;
    double priceNumber = 0.00;


    Random generator = new Random();
    age = generator.nextInt(100) + 1;


    if ((age <= 5) || (age >=55) {
        priceNumber = 0.0;
    }else if (age <= 12){
        priceNumber = 12.50;
    }else {
        system.out.println("Sorry, But the age supplied was invalid.");
    }
    if (priceNumber <= 0.0) {
        System.out.println("The person age " + age + " is free!);
    }
    else {
        System.out.println("Price for the person age " + age + "is: $" + priceNumber);
    }
} //end of the main method 

} // end of the class

ただし、ユーザーからの入力を促して読み取る方法がわかりません - 助けてもらえますか?

4

2 に答える 2

0

実際の問題はプログラムにデータを取り込むことだと述べましたが、以下は Scanner クラスの使用を示す必要があります

public static void main(String[] args) {
    System.out.println("Enter an age");

    Scanner scan=new Scanner(System.in);

    int age=scan.nextInt();
    System.out.println("Your age was " + age);

    double price=scan.nextDouble();
    System.out.println("Your price was " +  price);

}

これが基本的な考え方ですが、間違った入力(単語など)を提供すると例外が発生する可能性がありますが、取得している入力が正しいことを確認し、必要な場合にのみ受け入れることができます。

public class Main{

    public static void main(String[] args) {
        System.out.println("Enter an age");

        Scanner scan=new Scanner(System.in);


        while (!scan.hasNextInt()) { //ask if the scanner has "something we want"
            System.out.println("Invalid age");
            System.out.println("Enter an age");
            scan.next(); //it doesn't have what we want, demand annother
        }
        int age = scan.nextInt(); //we finally got what we wanted, use it


        System.out.println("Your age was " + age);

    }

}
于 2013-09-18T20:34:26.590 に答える
0

私が目にする最初の問題は、13 から 54 までは無効な年齢になるため、ここで条件ステートメントを更新する必要があるということです...

if ((age <= 5) || (age >=55) {
    priceNumber = 0.0;
}else if (age <= 12){
    priceNumber = 12.50;
}else if (age < 55){
   //whatever this ticket price is
}else {
    system.out.println("Sorry, But the age supplied was invalid.");
}

そのようなものはうまくいくでしょう...

于 2013-09-18T20:25:28.050 に答える