Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.10 KB | None | 0 0
  1. import java.io.*;
  2.  
  3. public class Schranke extends Thread {
  4.     private String name;
  5.     private int timeOpen;
  6.     private int timeClosed;
  7.     private Boolean abort;
  8.    
  9.     public Schranke(String name, int timeOpen, int timeClosed, Boolean abort) {
  10.         this.name = name;
  11.         this.timeOpen = timeOpen;
  12.         this.timeClosed = timeClosed;
  13.         this.abort = abort;
  14.     }
  15.    
  16.     public synchronized boolean getAbort() {
  17.         return abort.booleanValue();
  18.     }
  19.    
  20.     public synchronized void setAbort() {
  21.         abort = true;
  22.     }
  23.    
  24.     public void run() {
  25.         do {
  26.             try {  
  27.                 System.out.println(name + ": Start Öffnen.");
  28.                 sleep(4000);
  29.                 System.out.println(name + ": Ende Öffnen.");
  30.                 sleep(timeOpen*1000);
  31.                 System.out.println(name + ": Start Schließen.");
  32.                 sleep(3000);
  33.                 System.out.println(name + ": Ende Schließen.");
  34.                 sleep(timeClosed*1000);
  35.             }
  36.             catch (InterruptedException e) {}
  37.         } while (!getAbort());
  38.     }
  39.    
  40.  
  41.     public static void main(String[] args) {
  42.        
  43.         System.out.println("--- Schranken-Simulator 3000 ---");
  44.         System.out.println();
  45.        
  46.         try {
  47.             BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  48.             System.out.print("Wie viele Schranken möchten Sie simulieren? ");
  49.             int anzSchranken = Integer.parseInt(br.readLine());
  50.            
  51.             int[][] zeiten = new int[anzSchranken][2];
  52.             for(int i = 0; i < anzSchranken; i++) {
  53.                 System.out.printf("Wie lange soll Schranke %d geöffnet bleiben? ", i+1);
  54.                 zeiten[i][0] = Integer.parseInt(br.readLine());
  55.                 System.out.printf("Wie lange soll Schranke %d geschlossen bleiben? ", i+1);
  56.                 zeiten[i][1] = Integer.parseInt(br.readLine());
  57.             }
  58.            
  59.             System.out.println("Zum Beenden 'q' drücken und mit Enter bestätigen.");
  60.             System.out.println("Das Programm endet nachdem die Schranken geschlossen sind.");
  61.             System.out.println();
  62.            
  63.             Boolean abort = new Boolean(false);
  64.             for(int i = 0; i < anzSchranken; i++) {
  65.                 new Schranke("Schranke " + (i+1), zeiten[i][0], zeiten[i][1], abort).start();
  66.             }
  67.             while (!abort) {
  68.                 if ((char)br.read() != 'q') {
  69.                     abort = true;
  70.                 }
  71.             }
  72.         }
  73.         catch(IOException e) {}
  74.        
  75.     }
  76.    
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement