Package hu.u_szeged.nbo.geometria.main

Source Code of hu.u_szeged.nbo.geometria.main.GeomResult

/*
* Created on Dec 16, 2003
*/
package hu.u_szeged.nbo.geometria.main;

import hu.u_szeged.nbo.geometria.element.GeomPlace;
import hu.u_szeged.nbo.geometria.element.GeomTeam;
import hu.u_szeged.nbo.geometria.element.GeomWork;
import hu.u_szeged.nbo.geometria.type.GeomHalmaz;
import hu.u_szeged.nbo.geometria.type.GeomPack;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;

/**
* @author Sindely D�niel
*/
public class GeomResult {
 
  private int utazasiDarab = 0;
  private int utazasiOsszKoltseg = 0;
  private int elvegzettMunkakSzama = 0;
  private int elvegzetlenMunkakSzama = 0;
  private int elvegzettMunkakOsszideje = 0;
  private int elvegzetlenMunkakOsszideje = 0;
  private int[] eroforrasKihasznaltsagDb = new int[11];
  private int[] eroforrasKihasznaltsag = new int[11];
  private int szummaEroforrasTeljesIdo = 0;
  private int szummaEroforrasLefoglaltIdo = 0;
  private int szummaVeszteseg = 0;   
 
  /**
   * Writes the result to the consol.
   *
   */
  public String writeOut(String outFileName){
    String result = "";
    try {
      System.out.println("A WRITEOUT-BAN...");
      FileWriter out = new FileWriter(outFileName);
      BufferedWriter buf = new BufferedWriter(out);
      Iterator iter;
      GeomResources res = GeomResources.getInstance();
     
      for(int i=0; i<eroforrasKihasznaltsag.length; i++){
        eroforrasKihasznaltsagDb[i] = 0;
        eroforrasKihasznaltsag[i] = 0;
      }
     
      System.out.println();
      System.out.println("Utemezes:");
      result+="Utemezes:\n";
      iter = res.getTeams().iterator();
      while(iter.hasNext()){
        GeomTeam team = (GeomTeam)iter.next();
        GeomPlace place = team.getBasicPlace();
        int lefoglaltIdo = 0;
        write(buf,"");
        result+="\n";
        write(buf,"E" + team.getId()+" ("+place.getName()+"):");
        result+="E" + team.getId()+" ("+place.getName()+"):\n";
        for(int j=1; j<=team.getHozzarendeltMunkak().gmMeret(); j++){
          GeomPack pack = (GeomPack)team.getHozzarendeltMunkak().gmIedikElem(j);
          GeomPlace newplace = pack.getWork().getPlace();
          if(!newplace.equals(place)){
            int utazasiKoltseg = res.matrixRoadCost.getElementByIndex(place.getId(), newplace.getId());
            write(buf,"    utazas: " + newplace.getName() + " (ktg:"+ utazasiKoltseg +")");
            result+= "    utazas: " + newplace.getName() + " (ktg:"+ utazasiKoltseg +")\n";
            lefoglaltIdo += utazasiKoltseg;
            place = newplace;
          }
          lefoglaltIdo += pack.getEnd()-pack.getBegin();
          write(buf,"  M" + pack.getWork().getId()+"  [" + pack.getBegin() + "-" + pack.getEnd() + "]");
          result+= "  M" + pack.getWork().getId()+"  [" + pack.getBegin() + "-" + pack.getEnd() + "]\n";
        }
        int teljesIdo = team.getIdoablak().getY()-team.getIdoablakEredetiKezdete();
        szummaEroforrasTeljesIdo += teljesIdo;
        szummaEroforrasLefoglaltIdo += lefoglaltIdo;
        int kihasznaltsag = (100*lefoglaltIdo) / teljesIdo;
        write(buf,"  kihasznaltsag: " + kihasznaltsag+"% (" + lefoglaltIdo+"/"+teljesIdo+")");
        result+= "  kihasznaltsag: " + kihasznaltsag+"% (" + lefoglaltIdo+"/"+teljesIdo+")\n";
        eroforrasKihasznaltsagDb[(kihasznaltsag+9)/10]++;
        eroforrasKihasznaltsag[(kihasznaltsag+9)/10] += lefoglaltIdo;
      }
     
      write(buf,"");
      result+="\n";
      write(buf,"Ki nem osztott munkak:");
      result+="Ki nem osztott munkak:\n";
      iter = res.getWorks().iterator();
      while(iter.hasNext()){
        GeomWork work = (GeomWork)iter.next();
        if(work.getHozzarendeltEroforras() == null){
          write(buf,"  M" + work.getId());
          result+="  M" + work.getId()+"\n";
        }
      }
     
      vesztesegSzamitas(res.getWorks());
     
      write(buf,"");
      result+= "\n";
      write(buf,"Utazasok szama: " + utazasiDarab);
      result+="Utazasok szama: " + utazasiDarab + "\n";
      write(buf,"Utazasok osszkoltsege: " + utazasiOsszKoltseg);
      result+= "Utazasok osszkoltsege: " + utazasiOsszKoltseg + "\n";
      write(buf,"Osszveszteseg: " + szummaVeszteseg);
      result+= "Osszveszteseg: " + szummaVeszteseg + "\n";
      write(buf,"Elvegzett munkak szama: " + elvegzettMunkakSzama);
      result+= "Elvegzett munkak szama: " + elvegzettMunkakSzama + "\n";
      write(buf,"Elvegzett munkak osszideje: " + elvegzettMunkakOsszideje);
      result+= "Elvegzett munkak osszideje: " + elvegzettMunkakOsszideje + "\n";
      write(buf,"Elvegzetlen munkak szama: " + elvegzetlenMunkakSzama);
      result+="Elvegzetlen munkak szama: " + elvegzetlenMunkakSzama + "\n";
      write(buf,"Elvegzetlen munkak osszideje: " + elvegzetlenMunkakOsszideje);
      result+="Elvegzetlen munkak osszideje: " + elvegzetlenMunkakOsszideje + "\n";
      write(buf,"");
      result+="\n";
      write(buf,"Elvegzett munkak aranya: "+(100*elvegzettMunkakSzama/(elvegzettMunkakSzama+elvegzetlenMunkakSzama))+"% ("+elvegzettMunkakSzama+"/"+(elvegzettMunkakSzama+elvegzetlenMunkakSzama)+")");
      result+="Elvegzett munkak aranya: "+(100*elvegzettMunkakSzama/(elvegzettMunkakSzama+elvegzetlenMunkakSzama))+"% ("+elvegzettMunkakSzama+"/"+(elvegzettMunkakSzama+elvegzetlenMunkakSzama)+")\n";
      write(buf,"Elvegzett munkak idoaranya: "+(100*elvegzettMunkakOsszideje/(elvegzettMunkakOsszideje+elvegzetlenMunkakOsszideje))+"% ("+elvegzettMunkakOsszideje+"/"+(elvegzettMunkakOsszideje+elvegzetlenMunkakOsszideje)+")");
      result+="Elvegzett munkak idoaranya: "+(100*elvegzettMunkakOsszideje/(elvegzettMunkakOsszideje+elvegzetlenMunkakOsszideje))+"% ("+elvegzettMunkakOsszideje+"/"+(elvegzettMunkakOsszideje+elvegzetlenMunkakOsszideje)+")\n";
      write(buf,"Eroforrasok kihasznaltsaga osszesen: "+(100*szummaEroforrasLefoglaltIdo/szummaEroforrasTeljesIdo)+"% ("+szummaEroforrasLefoglaltIdo+"/"+szummaEroforrasTeljesIdo+")");
      result+="Eroforrasok kihasznaltsaga osszesen: "+(100*szummaEroforrasLefoglaltIdo/szummaEroforrasTeljesIdo)+"% ("+szummaEroforrasLefoglaltIdo+"/"+szummaEroforrasTeljesIdo+")\n";
      write(buf,"Eroforrasok kihasznaltsaga reszletesen: ");
      result+="Eroforrasok kihasznaltsaga reszletesen: \n";
      write(buf,"       0%:  "+eroforrasKihasznaltsagDb[0]+" db");
      result+="       0%:  "+eroforrasKihasznaltsagDb[0]+" db\n";
      for(int i=1; i<eroforrasKihasznaltsag.length; i++){
        write(buf,"  "+(i==1?" ":"")+(i*10-9)+"-"+(i==10?"":" ")+(i*10)+"%:  "+
          eroforrasKihasznaltsagDb[i]+" db"+
          (eroforrasKihasznaltsagDb[i]==0?"":(", osszido: "+eroforrasKihasznaltsag[i])));
        result+="  "+(i==1?" ":"")+(i*10-9)+"-"+(i==10?"":" ")+(i*10)+"%:  "+
        eroforrasKihasznaltsagDb[i]+" db"+
        (eroforrasKihasznaltsagDb[i]==0?"":(", osszido: "+eroforrasKihasznaltsag[i]));
        result+="\n";
      }
      buf.close();
      out.close();
    } catch (IOException e) {
      e.printStackTrace();
    }
    return result;
  }

  /**
   *
   */
  private void vesztesegSzamitas(GeomHalmaz halmaz) {
    Iterator iter = halmaz.iterator();
    while(iter.hasNext()){
      GeomWork work = (GeomWork)iter.next();
      if(work.getKezdesiIdo()!=-1){
        szummaVeszteseg += work.getEgysegnyiVeszteseg()*work.getKezdesiIdo();
      }else{
        /// el nem kezdett munk�k
        szummaVeszteseg += work.getEgysegnyiVeszteseg()*GeomResources.getInstance().getNagyT();
      }
    }
   
  }

  /**
   *
   *
   */
  private void write(BufferedWriter buf, String string) throws IOException{
    System.out.println(string);
    buf.write(string);
    buf.newLine();
  }
 
  /**
   * @param utazasiDarab The utazasiDarab to set.
   */
  public void addUtazasiDarab() {
    this.utazasiDarab++;
  }

  /**
   * @param utazasiOsszKoltseg The utazasiOsszKoltseg to set.
   */
  public void addUtazasiOsszKoltseg(int utazasiKoltseg) {
    this.utazasiOsszKoltseg += utazasiKoltseg;
  }

  /**
   * @param elvegzetlenMunkakSzama The elvegzetlenMunkakSzama to set.
   */
  public void addElvegzetlenMunkakSzama() {
    this.elvegzetlenMunkakSzama++;
  }

  /**
   * @param elvegzettMunkakSzama The elvegzettMunkakSzama to set.
   */
  public void addElvegzettMunkakSzama() {
    this.elvegzettMunkakSzama++;
  }

  /**
   * @param elvegzetlenMunkakOsszideje The elvegzetlenMunkakOsszideje to set.
   */
  public void addElvegzetlenMunkakOsszideje(int munkaIdeje) {
    this.elvegzetlenMunkakOsszideje += munkaIdeje;
  }

  /**
   * @param elvegzettMunkakOsszideje The elvegzettMunkakOsszideje to set.
   */
  public void addElvegzettMunkakOsszideje(int munkaIdeje) {
    this.elvegzettMunkakOsszideje += munkaIdeje;
  }

}
TOP

Related Classes of hu.u_szeged.nbo.geometria.main.GeomResult

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.