简单的机票预订java

时间:2013-08-13 16:20:31

标签: java

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内检查机票可用性,现在我只能得到一个人的年龄。我需要遍历每个人并打印他们的年龄。我应该使用while循环吗?

谢谢。

4 个答案:

答案 0 :(得分:2)

但是你只占一个人?你应该使用一个循环来吸引超过一个人。其次,你应该有一个OOP人员类。 让我们来回答你的问题: 获取人员属性后,您应该创建一个包含这些信息的人员。并将其添加到人员列表中(不需要年龄列表)。一旦您将人员列入列表,您可以在列表中进行迭代:

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
    }
}

答案 1 :(得分:1)

可能最好使用for循环。

即。

for (each ticket) {
    Ask for age
}
...etc...

答案 2 :(得分:0)

这更像是设计课程。

为年龄创建私有布尔实例,例如private boolean isAdult;

在该类实例的构造函数中初始化它,然后您只需使用getter 即可查看年龄是否有效。

If yes, move on with other calculation;
else just return with an error message.

希望这有帮助。

答案 3 :(得分:0)

您正在使用非常基本的方式来开发代码。

您没有使用oops的最佳功能。 “班级

  1. 您计划中最重要的实体是乘客详情。

  2. 您最好使用名称和年龄创建一个乘客类作为变量和方法 passenger(String name,int age) getDetails()

  3. 为什么你多次创建扫描仪对象。一旦创建了扫描仪对象,它就可以在所有情况下使用。
  4. 只使用一个List或LinkedList,我建议存储乘客对象。然后在打印过程中迭代它。

  5. 您可以代码以任何方式工作,但您无法使用该代码