home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 21 / IOPROG_21.ISO / SOFT / JSL.ZIP / JSL20 / examples / priosys / PrioSysMain.java < prev    next >
Encoding:
Java Source  |  1998-02-20  |  2.2 KB  |  87 lines

  1.  
  2. package examples.priosys;
  3.  
  4.  
  5. import simula.*;
  6. import simula.simset.simulation.* ;
  7. import simula.Lang ;
  8. /**
  9.  * Main program for priority system simulation
  10.  * @author Andrea Poltronieri
  11.  * @version 1.0 12 Feb 1998
  12.  */
  13.  
  14. public class PrioSysMain extends SimulationMain {
  15.  
  16.  
  17.  
  18.  
  19. /**
  20. * @param _simulation The active Simulation
  21. * @exception simula.SimulaException Any exception from Korretto API
  22. */
  23.  
  24.     public PrioSysMain(Simulation _simulation) throws SimulaException {
  25.       super(_simulation);
  26.     }
  27. /**     
  28.   * Executes the main program for the simulation
  29. */
  30.     public void run() {
  31.         try {
  32.             PrioSysSimulation sim=(PrioSysSimulation)this.sim ;
  33.             //Local variables 
  34.                 
  35.             Lang.outtext("Number of types of customer?") ;
  36.             sim.k = Lang.inint() ;
  37.             Lang.outtext("Number of servers ?") ;
  38.             sim.c = Lang.inint() ;
  39.                 
  40.             //Dimension arrays
  41.             // Should be [1..k]; index 0 is ignored
  42.             sim.numthrough = new int[sim.k + 1] ;            
  43.             // Should be [1..k]
  44.             sim.sojourn = new double[sim.k + 1] ;            
  45.                 
  46.                 
  47.             // Should be [1..k]
  48.             sim.queue = new simula.simset.Head[sim.k + 1] ;            
  49.                 
  50.             // main program actions start here 
  51.             Lang.outtext("Random generator seed (odd) ?") ;
  52.             sim.seed = Lang.inint() ;
  53.             Lang.outtext("Simulation length ?") ;
  54.             sim.simtime = Lang.inreal() ;
  55.             sim.top = 1 ;
  56.  
  57.             // Activate arrivals processes
  58.             for (sim.i=1; sim.i<=sim.k; sim.i++){
  59.                 sim.queue[sim.i] = new simula.simset.Head() ;
  60.                 sim.activate (new Arrivals(sim, sim.i)) ;
  61.             }
  62.             sim.available = new simula.simset.Head() ;
  63.  
  64.             // Activate servers
  65.             for(sim.i=1; sim.i<=sim.c; sim.i++) {    
  66.                 sim.activate (new Server(sim)) ;
  67.             }
  68.  
  69.             //System.out.println("Holding main!");
  70.             sim.hold(sim.simtime) ;
  71.             //System.out.println("Simulation complete!");
  72.  
  73.             for (sim.i=1; sim.i<=sim.k; sim.i++){
  74.                 Lang.outtext("The average sojourn for type") ;
  75.                 Lang.outint(sim.i,3) ;
  76.                 Lang.outtext("Customer is") ;
  77.                 Lang.outfix(((double)(sim.sojourn[sim.i])/((double)(sim.numthrough[sim.i]))),3,10) ;
  78.                 Lang.outimage() ;
  79.              } 
  80.             sim.end() ;
  81.             System.exit(0) ;
  82.         } catch(SimulaException e) {
  83.             Lang.outtext(" Exception :> " + e+e.getMessage());
  84.          System.exit(1);
  85.         }
  86.     }
  87. }