Member 13013613 Ответов: 1

Мой ответ не синхронизирован и не может запустить N для следующего


Здравствуйте, кто-нибудь может помочь мне с кодом. Есть 2 вопроса.

Для идентификации пассажира я написал 0, затем BI - код страны,095-номер рейса, 01-номер. багажа

а потом, когда я побегу, он скажет::
bi0950
[0 с багажом(багажами) [bi0950]]

1) вопросы: Если я снова введу B и введу детали со следующим пассажиром 1, BI - это код страны,095-номер рейса, 02-номер. багажа.

после того, как я побегу, он скажет::
bi0950
bi0951
[0 with baggage(s) [bi0950, bi0950, bi0951], 1 with baggage(s) [bi0950, bi0950, bi0951]]

Как вы можете видеть, это не так,как пассажир 0 предположим, что у него есть 1 багаж, который является bi0950, пассажир 1 должен быть bi0951, bi0952, но в конце концов, пассажир 0 также затронут.

Вопрос 2:
и следующая строка будет: введите команду B-багаж, n-далее, q-выход

Я вставляю "n" и запускаю, и ошибка выскакивает следующим образом:
java.util.NoSuchElementException
at java.util.LinkedList$ListItr.next(Unknown Source)
at baggageSys.next(baggageSys.java:43)
at baggageSys.main(baggageSys.java:97)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:272)

что-нибудь починить здесь?.. спасибо

Что я уже пробовал:

import java.util.*;

public class baggageSys{
  
  public static String getUser_command(){
    Scanner keyboard = new Scanner(System.in);
    System.out.print("Enter command B-baggage, n-next, q-quit");
    String s = keyboard.nextLine();
    return s;
  }

  public static String getUser_flight(){
     Scanner keyboard = new Scanner(System.in);
     System.out.println("Please enter the flight number");
     String s = keyboard.nextLine();
     return s;
  }

  public static String getPassenger(){
     Scanner keyboard = new Scanner(System.in);
     System.out.println("Please enter passenger name");
     String s = keyboard.nextLine();
     return s;
  }

   public static String getUser_country(){
     Scanner keyboard = new Scanner(System.in);
     System.out.println("Please enter the country code");
     String s = keyboard.nextLine();
     return s;
  }

   public static int getUser_number(){
     Scanner keyboard = new Scanner(System.in);
     System.out.println("Please enter number of baggage");
     int s = keyboard.nextInt();
     return s;
  }


   public static String next(ListIterator<passenger> passenger){
     String k = "";
     passenger.next();
     return k;


   }

   public static String makeBaggage(String country, String flight, int num){
     return country + flight + num;
   }

  public static void main(String args[]) {

    LinkedList<passenger> passenger = new LinkedList<passenger>();
    ListIterator<passenger> iterator = passenger.listIterator();
    LinkedList<string> baggage = new LinkedList<string>();

    String command = "";

    while (!command.equals("q")){
      command = getUser_command();

     if(command.equals("B") || command.equals("b")){
       String p = "";
       p = getPassenger();
       passenger.add(new Passenger(p));

      // command = getUser_command();

       String country = "";
       country = getUser_country();


       String flight = "";
       flight = getUser_flight();


       int amount = 0;
       amount = getUser_number();


       String[] bg = new String[amount];

       for(int i = 0; i < amount; i++){
         bg[i] = makeBaggage(country, flight, i);
         baggage.add(bg[i]);
         System.out.println(bg[i]);

       passenger.getLast().setBaggages(baggage);
       }

       System.out.println(passenger);


     } else if(command.equals("n")){
       next(iterator);

     }else
       System.out.println("Enter 'q' to end the program");

     }
    
  }
  
public static class Passenger {

    String passengers;
    List<string> baggage;  

    public Passenger(String passengers) {
        this.passengers = passengers;
        baggage = Collections.emptyList();
    }

    public void setBaggages(List<string> baggage) {
        this.baggage = baggage;
    }

    @Override
    public String toString() {
        return passengers + " with baggage(s) " + baggage;
    }
}
}

1 Ответов

Рейтинг:
1

Richard MacCutchan

Я не могу понять проблему 1, боюсь, что код не так прост для понимания. Вторая проблема заключается просто в том, что вы не инициализировали ListIterator И даже если бы вы это сделали, это, кажется, не служит никакой цели. Я бы предложил пойти туда Учебные Пособия По Java™ [^] и еще кое-что изучаю.


Richard MacCutchan

Нет, мне очень жаль, но это такой плохо сконструированный кусок кода, что я не знаю, с чего начать.