-4
import java.io.*;
import java.util.*;

public class Ticket_reserve {

  private static int counter=100;
  List<String> BookingList=new ArrayList<String>();
  ArrayList<Integer> AgeList=new ArrayList<Integer>();

  public void reservation(){
    System.out.println("Enter the tickets needed:");
    Scanner tkts=new Scanner(System.in);
    int tickets=tkts.nextInt();
    if(tickets<=counter){
      System.out.println("Name and age please");
      System.out.println("age:");
      Scanner age=new Scanner(System.in);
      int Age=age.nextInt();
      if(Age<18){
        System.out.println("You're under 18.Booking cancelled");
      }else{
        for(int i=0;i<tickets;i++){
          System.out.println("Name:");
          Scanner nom=new Scanner(System.in);
          String name=nom.nextLine();
          BookingList.add(name);
          AgeList.add(Age);
          counter--;
        }
      }
    }else{
      System.out.println(tickets+"tickets  unavailable");
    }
    System.out.println("Names: "+BookingList+","+"Age:"+AgeList);
  }


  public static void main(String[] args) {
    Ticket_reserve t1=new Ticket_reserve();
    t1.reservation();
  }
}

これは私のコードであり、完全に機能します。唯一の問題は、各人の年齢を確認してから、その人のチケットを予約する必要があることです (18 歳以上の場合)。それ以外はキャンセルします。いいアイデアが思いつかなかったので、チケットの空き状況を確認するためにそれを入れましたがif、今では 1 人の年齢しか取得できません。私は各人を繰り返し処理し、年齢を出力する必要があります。while代わりにループを使用する必要がありますか?

ありがとうございました。

4

4 に答える 4

2

しかし、1 人だけを取得している場合は、ループを使用して 1 人以上を取得する必要があります。次に、OOP の人物クラスが必要です。あなたの質問に行きましょう: 人のプロパティを取得した後、これらの情報を使用して Person を作成する必要があります。それを Person リストに追加します (年齢リストは必要ありません)。リスト:

List<Person> people=new ArrayList<Person>();
//take  people info from console and add it to the list:
Person person=new Person(age,name,etc);
people.add(person);
for(Person p:people){
    if(p.getAge<18){//say something
     }
    else{//say something
    }
}
于 2013-08-13T16:33:15.423 に答える
0

コードを開発するための非常に基本的な方法を使用しています。

おっとの最高の機能を使用していません。「クラス

  1. プログラムで最も重要なエンティティは、乗客の詳細です。

  2. そのため、名前と年齢を 変数として、passenger(String name,int age) および getDetails() メソッド使用クラス Passenger を作成することをお勧めします。

  3. なぜ何度もスキャナーオブジェクトを作成したのですか.一度スキャナーオブジェクトを作成すると、すべての場合に使用できます。
  4. リストまたはLinkedListを1つだけ使用してください。パッセンジャーオブジェクトを保存してから、印刷中にそれを反復処理することをお勧めします。

  5. コードをどのようにでも機能させることができますが、そのコードを操作することはできません

于 2013-08-13T16:57:28.527 に答える