Page 1 of 3

Java stand selector LEPA

Posted: Thu Sep 15, 2016 8:29 pm
by oscar6662
Hello peypole I started learning java because programming is the future and I see a better one programmin than making 3d terminals with blender. ( I Wanna be an ATCO in Eurocontrol). So basicly what I made for the moment is a littlet beginner program that you put XXXYYY (XXX=AIRLINE YYY=ATYPE) and it basicly it gives you a random stand of the various stands thas airline can be. My second step is storing all the used stands in an array and then retruning and having a condition that the random factor will randomize but with mor variables.
Version.

Help is appreciated this is not easy at all.

BTW I will post the code when it stops telling me this stupid error thats is not true because in eclipse it works fine.

Re: Java stand selector LEPA

Posted: Fri Sep 16, 2016 6:49 pm
by oscar6662

Code: Select all

package little;
import java.util.Scanner;

public class Program {

   public static void main(String[] args) {
      // TODO Auto-generated method stub
      String youraircraft;
      
      Scanner OK = new Scanner(System.in);
      
      System.out.println("enter the aircraft type pelase");
      youraircraft=OK.nextLine();
      System.out.println("your slected aircraft is " + youraircraft);
      
      if(youraircraft.equals("BAW320")) {
         int m=8;int n=22;
         int r=(int)((Math.random()*(n-m))+m);
         System.out.println("Go to stand " +r);

      } else if(youraircraft.equals("GECX")){
         int m=306;int n=318;
         int r=(int)((Math.random()*(n-m))+m);
         System.out.println("Go to stand " +r);
         
      } else if(youraircraft.equals("MON320")){
         int m=1;int n=6;int k=104; int f=109;
         int r=(int)((Math.random()*(n-m-k-f))+m+f);
         System.out.println("Go to stand " +r);
         
      } else if(youraircraft.equals("RYRUK738")){
         int m=100;int n=103;
         int r=(int)((Math.random()*(n-m))+m);
         System.out.println("Go to stand " +r);
         
      } else if(youraircraft.equals("BER320")){
         int m=98;int n=60;
         int r=(int)((Math.random()*(n-m))+m);
         System.out.println("Go to stand " +r);
         
      } else if(youraircraft.equals("TUI738")){
         int m=86;int n=80;
         int r=(int)((Math.random()*(n-m))+m);
         System.out.println("Go to stand " +r);
         
      } else if(youraircraft.equals("NLY320")){
         int m=50;int n=44;
         int r=(int)((Math.random()*(n-m))+m);
         System.out.println("Go to stand " +r);
         
      } else if(youraircraft.equals("VLG320")){
         int m=86;int n=98;
         int r=(int)((Math.random()*(n-m))+m);
         System.out.println("Go to stand " +r);
         
      } else if(youraircraft.equals("EDW320")){
         int m=80;int n=84;
         int r=(int)((Math.random()*(n-m))+m);
         System.out.println("Go to stand " +r);
         
      } else if(youraircraft.equals("AEA738")){
         int m=98;int n=90;
         int r=(int)((Math.random()*(n-m))+m);
         System.out.println("Go to stand " +r);
         
      } else if(youraircraft.equals("BEEX")){
         int m=1;int n=12;
         int r=(int)((Math.random()*(n-m))+m);
         System.out.println("Go to stand " +r);   
         
      } else if(youraircraft.equals("GMI320")){
         int m=70;int n=66;
         int r=(int)((Math.random()*(n-m))+m);
         System.out.println("Go to stand " +r);
         
      } else if(youraircraft.equals("GMI738")){
         int m=70;int n=66;
         int r=(int)((Math.random()*(n-m))+m);
         System.out.println("Go to stand " +r);
   
      } else if(youraircraft.equals("CFG320")){
         int m=54;int n=50;
         int r=(int)((Math.random()*(n-m))+m);
         System.out.println("Go to stand " +r);
   
      } else if(youraircraft.equals("CFG757")){
         int m=56;int n=58;
         int r=(int)((Math.random()*(n-m))+m);
         System.out.println("Go to stand " +r);
         
      } else if(youraircraft.equals("AFRA320")){
         int m=38;int n=40;
         int r=(int)((Math.random()*(n-m))+m);
         System.out.println("Go to stand " +r);   
         
      } else if(youraircraft.equals("DLH320")){
         int m=40;int n=44;
         int r=(int)((Math.random()*(n-m))+m);
         System.out.println("Go to stand " +r);
         
      } else if(youraircraft.equals("RYR738")){
         int m=158;int n=150;
         int r=(int)((Math.random()*(n-m))+m);
         System.out.println("Go to stand " +r);
         
      } else if(youraircraft.equals("ANEX")){
         int m=153;int n=150;
         int r=(int)((Math.random()*(n-m))+m);
         System.out.println("Go to stand " +r);
   
      } else if(youraircraft.equals("LZB320")){
         int m=108;int n=109;
         int r=(int)((Math.random()*(n-m))+m);
         System.out.println("Go to stand " +r);   
         
      } else if(youraircraft.equals("EWE320")){
         int m=68;int n=64;
         int r=(int)((Math.random()*(n-m))+m);
         System.out.println("Go to stand " +r);   
         
      } else if(youraircraft.equals("LZB320")){
         int m=108;int n=109;
         int r=(int)((Math.random()*(n-m))+m);
         System.out.println("Go to stand " +r);
         
      } else if(youraircraft.equals("EZY320")){
         int m=108;int n=109;
         int r=(int)((Math.random()*(n-m))+m);
         System.out.println("Go to stand " +r);
         
      } else if(youraircraft.equals("EZYUK320")){
         int m=154;int n=152;
         int r=(int)((Math.random()*(n-m))+m);
         System.out.println("Go to stand " +r);   
         
      } else if(youraircraft.equals("GWI320")){
         int m=80;int n=84;
         int r=(int)((Math.random()*(n-m))+m);
         System.out.println("Go to stand " +r);
         
      } else if(youraircraft.equals("IBE320")){
         int m=82;int n=86;
         int r=(int)((Math.random()*(n-m))+m);
         System.out.println("Go to stand " +r);   
         
      } else if(youraircraft.equals("KLM738")){
         int m=82;int n=86;
         int r=(int)((Math.random()*(n-m))+m);
         System.out.println("Go to stand " +r);   
         
         
      } else{
         System.out.println("ashole");
               
         
      }
   }

}


...

Copright Oscar Berneguer

Re: Java stand selector LEPA

Posted: Fri Sep 16, 2016 7:13 pm
by oscar6662
LAST modification contains random number but only even (must of stands are only even)

Code: Select all

} else if(youraircraft.equals("TUI738")){
         Random rand = new Random();
         int randomNum = 16+rand.nextInt(56/16) *2;
         System.out.println(randomNum);

Re: Java stand selector LEPA

Posted: Fri Sep 16, 2016 7:19 pm
by jwocky
Try to think about how you can keep aircraft names and stands dynamic

Re: Java stand selector LEPA

Posted: Fri Sep 16, 2016 7:22 pm
by oscar6662
Dynamic, what do you mean?

Re: Java stand selector LEPA

Posted: Fri Sep 16, 2016 7:27 pm
by jwocky
You ask always for a hard coded aircraft like "TUI738"
That is a a 737-800 belonging to TUI

Now, if you split the string you got from the keyboard (look up String.substring()), into two parts, the airline and the aircraft, you can compare in a loop against an array of strings.

Code: Select all

for (int i=0; i<numberofairlines; i++) {
   if (airline.equals(airlines[i]) {
      ... next step would be look up the stands for this airline only ...
   }
}


That means, whenever you get a new airline on your airport, you only need to add this airline to a list of airlines, not add another hundred ifs.

Re: Java stand selector LEPA

Posted: Fri Sep 16, 2016 7:43 pm
by oscar6662
yeah then there isnt any way for each arline a specific group of stands, the only advantage is that you can put all the arlines toghtether that have same stands.
Am I wrong?

Re: Java stand selector LEPA

Posted: Fri Sep 16, 2016 7:47 pm
by OPFOR77
Take it a step further and use a multidimensional array, so all the data is stored together and only one loop is needed. So (not a java programmer)

Code: Select all

for (int i=0; i<numberofairlines; i++) {
   if (airline.equals(airlines[i][0]) {
         int m=airlines[i][1];int n=airlines[i][2];
         int r=(int)((Math.random()*(n-m))+m);
         System.out.println("Go to stand " +r);
   }
}


So all you'd have to do is setup an array like:

array[x][0] = "airline"
array[x][1] = starting_gate
array[x][2] = ending_gate

You could possibly make it even faster using a map/dictionary. Not a java guy, so YMMV.

Re: Java stand selector LEPA

Posted: Fri Sep 16, 2016 7:49 pm
by IAHM-COL
You don't need to nest conditional with else-if statements,
It is actually less computer intensive if you use simpler conditionals; and reserve nested elseifs for those cases that you really need to (as in the first conditional must be false, in order to evaluate a second one)

So, basically, to begin with, (still not most optimized, since you could probably create a function that applies to your class, to manage that amount of returns), again, to begin with, I recommend you go the simple if way, like this:

Code: Select all

package little;
import java.util.Scanner;

public class Program {

   public static void main(String[] args) {
      // TODO Auto-generated method stub
      String youraircraft;
     
      Scanner OK = new Scanner(System.in);
     
      System.out.println("enter the aircraft type please");
      youraircraft=OK.nextLine();
      System.out.println("your slected aircraft is " + youraircraft);
     
      if(youraircraft.equals("BAW320")) {
         int m=8;int n=22;
         int r=(int)((Math.random()*(n-m))+m);
         System.out.println("Go to stand " +r);
   }
   
      if(youraircraft.equals("GECX")){
         int m=306;int n=318;
         int r=(int)((Math.random()*(n-m))+m);
         System.out.println("Go to stand " +r);
      }
         
      if(youraircraft.equals("MON320")){
         int m=1;int n=6;int k=104; int f=109;
         int r=(int)((Math.random()*(n-m-k-f))+m+f);
         System.out.println("Go to stand " +r);
      }

   }

}

Re: Java stand selector LEPA

Posted: Fri Sep 16, 2016 7:52 pm
by jwocky
Lets go there step by step

OPFOR is right, you use a multidimensional array later to get all the stands per airline
but before you can do that, bring the 1 dimensional to run with all the airlines, then, when you did that, expand your program the way OPFOR suggested and you have already a pretty flexible solution. But please, for learning purposes, lets go step by step.