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

  1.  
  2. package examples.machine;
  3.  
  4.  
  5. import simula.*;
  6. import simula.random.* ;
  7. import simula.simset.* ;
  8. import simula.simset.simulation.* ;
  9. import simula.Lang ;
  10.  
  11. /**
  12.  * Main program for machine simulation
  13.  * @author Andrea Poltronieri
  14.  * @version 1.0 12 Feb 1998
  15.  */
  16.  
  17. public class MachineMain extends SimulationMain {
  18.  
  19.  
  20.  
  21.  
  22. /**
  23. * @param _simulation The active Simulation
  24. * @exception simula.SimulaException Any exception from Korretto API
  25. */
  26.  
  27.     public MachineMain(Simulation _simulation) throws SimulaException {
  28.       super(_simulation);
  29.     }
  30. /**     
  31.   * Executes the main program for the simulation
  32. */
  33.     public void run() {
  34.         try {
  35.             MachineSimulation sim=(MachineSimulation)this.sim ;
  36.             // main program actions ;
  37.             Lang.outtext("Failure ratio [mean time between failures]") ;
  38.             sim.brk=Lang.inreal() ;
  39.             Lang.outtext("Repairman speed [machines repaired per unit of time]") ;            
  40.             sim.rep=Lang.inreal() ;
  41.             Lang.outtext("Simulation length [units of time]") ;
  42.             sim.simtime=Lang.inreal() ;
  43.             Lang.outtext("Number of machines") ;
  44.             sim.m=Lang.inint() ;
  45.             Lang.outtext("Number of repairmen") ;
  46.             sim.r=Lang.inint() ;
  47.             Lang.outtext("Random seed (odd)") ;
  48.             sim.seed=Lang.inint() ;
  49.  
  50.             sim.broken=new Head() ;
  51.             sim.available=new Head() ;
  52.             for(sim.i=1;sim.i<=sim.m;sim.i++)
  53.                 sim.activate(new Machine(sim)) ;
  54.             for(sim.i=1;sim.i<=sim.r;sim.i++)
  55.                 sim.activate(new RepairMan(sim));
  56.             sim.hold(sim.simtime) ; 
  57.             Lang.outtext("The average inoperative period is [mean downtime per machine]") ;
  58.             Lang.outfix((double)(sim.downtime)/(double)(sim.breaks),3,10) ;
  59.             Lang.outimage() ;
  60.             sim.end() ;            
  61.             System.exit(0) ;
  62.         } catch(SimulaException e) {
  63.             Lang.outtext(" Exception :> " + e+e.getMessage());
  64.          System.exit(1);
  65.         }
  66.     }
  67. }