【发布时间】:2018-04-02 14:56:54
【问题描述】:
所以我有这个任务是为了模拟在登机口等候的乘客,我们需要创建一个包含不同选项的菜单。为此,我们必须有两个类和一个主程序,并且整个事情都基于一个队列。我的问题是程序中最基本的部分,即在队列中添加乘客,无法正常工作,并且在添加乘客后提示显示时显示以下内容:
队列: airport.Passenger@55f96302
忽略程序远未完成的事实,这就是我目前所拥有的:
主要:
public class Airport {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
PassengerQueue queue1= new PassengerQueue();
Passenger[] ArrayOfPassenger = new Passenger[20];
Scanner input= new Scanner (System.in);
String optionMenu;
for (int i = 0; i < 20; i++)
ArrayOfPassenger[i]= new Passenger();
char letter;
do {
System.out.println("Enter display option [A-add passenger, V- view passenger queue, D- delete passenger from queue, S- store passengerQueue data into file, L- load passengerQueue data from file] or 'X' to stop: ");
optionMenu = input.next();
letter = optionMenu.charAt(0);
switch (letter) {
case 'A':
queue1.AddPassenger();
break;
case 'V':
queue1.display();
case 'D':
break;
case 'S':
break;
case 'L':
break;
}
} while (letter != 'X');
}
}
客舱:
public class Passenger {
private String firstName;
private String surname;
private int secondsInQueue;
Scanner input= new Scanner(System.in);
/**
*
* @return
*/
public String getname() {
return firstName= " "+surname;
}
public void setName (String fName, String sName) {
firstName = fName;
surname = sName;
}
public Passenger () {
firstName = "";
surname = "";
}
}
乘客队列类:
public class PassengerQueue {
Scanner input= new Scanner(System.in);
private Passenger[] qArray =new Passenger [20];
private int first = 0;
private int last = 0;
private int maxStayInQueue;
static final int MAX_QUEUE_SIZE = 20;
public PassengerQueue() {
for (int i = 0;i < 20; i++)
qArray[i]= new Passenger();
}
public void AddPassenger() {
System.out.println("Enter passenger's First Name:");
String FirstName = input.next();
System.out.println("Enter passenger's surname:");
String Surname= input.next();
qArray[last].setName(FirstName, Surname);
last++;
if(last == qArray.length){
last = 0;
}
}
public void display() {
System.out.println("The queue: ");
for(int i = first; i < last; i++)
System.out.println(qArray[i]);
}
public boolean isEmpty() {
return first == 0;
}
public boolean isFull() {
return last == 19;
}
}
我的问题是我在这里做错了什么,在 queue1 中分配值时,我可以做些什么来解决它?我一直在努力理解一段时间,但我不知道。
【问题讨论】: