Example #1
0
  /**
   * Ciclo di gestione delle variabili.
   *
   * @throws IOException
   */
  private static void data_cycle() throws IOException {
    boolean data_cycle = true;
    while (data_cycle) {
      out.print("data>> ");
      String cmd2 = in.readLine().trim();
      if (cmd2.equals("")) {
        continue;
      } else if (cmd2.equals("exit")) {
        data_cycle = false;
        out.println("exit data menu...\n");
        continue;
      }
      String[] p = cmd2.split(" ");
      // si stampano le variabili
      if (p[0].equals("variables")) {
        // si stampano le variabili
        for (Variable varia : data.getVariables().values()) {
          out.println("\tID: " + varia.getId() + " - N: " + varia.getN());
        }
        continue;
      }
      if (p.length < 2) {
        out.println("\tInserire parametro variable\n");
        continue;
      }
      String v = p[1];
      try {
        // comandi
        switch (p[0]) {
          case "create":
            // si aggiunge la variabile
            data.addVariable(v);
            out.println("\tCreata variabile: " + v + "\n");
            break;
          case "create-xy":
            if (p.length < 3) {
              out.println("data>> Inserire parametri:\n" + " nome variabile, valore di X\n");
              continue;
            }
            double x = Double.parseDouble(p[2]);
            // si aggiunge la variabile
            data.addVariableXY(v, x);
            out.println("\tCreata variabile: " + v + "\n");
            break;
          case "remove":
            // rimuove la variabile
            if (data.removeVariable(v)) {
              out.println("\tRimossa variabile: " + v + "\n");
            } else {
              out.println("variabile non trovata: " + v);
            }
            break;
          case "values":
            // si stampano i valori
            Variable va = data.getVariable(v);
            for (double d : va.getMeasures()) {
              out.println(df.format(d));
            }
            out.println();
            break;
          case "evaluate":
            // si stampano i valori statistici
            Variable var = data.getVariable(v);
            double[] e = var.evaluate();
            out.println("N: ...................." + df.format(e[0]));
            if (var instanceof VariableXY) {
              out.println("X: ...................." + df.format(((VariableXY) var).getX()));
            }
            out.println("Media: ................" + df.format(e[1]));
            out.println("Varianza: ............." + df.format(e[2]));
            out.println("Varianza Media: ......." + df.format(e[3]));
            out.println("Deviazione ST: ........" + df.format(e[4]));
            out.println("Deviazione ST Media: .." + df.format(e[5]));
            out.println();
            break;
          case "add-values":
            if (!data.containsVariable(v)) {
              out.println("Creare prima la variabile...");
              continue;
            }
            Variable var2 = data.getVariable(v);
            out.println("Inserire un valore e premere invio. (exit) per uscire...");
            // si inseriscono i valori
            boolean ok = true;
            int i = 1;
            while (ok) {
              out.print("\tvalue-" + var2.getId() + "-" + i + ">> ");
              String s = in.readLine();
              if (s.equals("")) {
                continue;
              }
              if (s.equals("exit")) {
                ok = false;
                break;
              }
              double m = Double.parseDouble(s);
              var2.addMeasure(m);
              i++;
            }
            out.println();
            break;
          case "class-set":
            // si legge il terzo parametro
            if (p.length < 4) {
              out.println(
                  "data>> Inserire parametri:\n"
                      + " larghezza intervallo, freq relativa (true/false)\n");
              continue;
            }
            double inte = Double.parseDouble(p[2]);
            boolean fr_rel = Boolean.parseBoolean(p[3]);
            Variable var3 = data.getVariable(v);
            ClassSet class_set = var3.getClassSet(inte, fr_rel);
            out.println(class_set);
            break;
          case "class-set-n":
            // si legge il terzo parametro
            if (p.length < 4) {
              out.println(
                  "data>> Inserire parametri:\n"
                      + " numero di intervalli, freq relativa (true/false)\n");
              continue;
            }
            int inte2 = Integer.parseInt(p[2]);
            boolean fr_rel2 = Boolean.parseBoolean(p[3]);
            Variable var4 = data.getVariable(v);
            ClassSet class_set2 = var4.getClassSetNIntervals(inte2, fr_rel2);
            out.println(class_set2);
            break;
          case "class-set-s":
            // si legge il terzo parametro
            if (p.length < 4) {
              out.println(
                  "data>> Inserire parametri:\n"
                      + " larghezza intervallo, freq relativa (true/false)\n");
              continue;
            }
            double sigma_factor = Double.parseDouble(p[2]);
            boolean fr_rel3 = Boolean.parseBoolean(p[3]);
            Variable var5 = data.getVariable(v);
            ClassSet class_set3 = var5.getClassSetSigmaFactor(sigma_factor, fr_rel3);
            out.println(class_set3);
            break;
          case "gauss-y":
            Variable var8 = data.getVariable(v);
            ClassSet set = var8.getLast_class_set();
            List<Double> y = var8.getGaussianY();
            Set<Double> xs = set.getFreq_map().keySet();
            Iterator it = xs.iterator();

            for (int j = 0; j < set.getNumberOfBins(); j++) {
              out.println("\t" + df.format(it.next()) + " - " + df.format(y.get(j)));
            }
            out.println();
            break;
          case "set-x":
            if (p.length < 3) {
              out.println("data>> Inserire parametri:\n" + " id variabile, X da inserire\n");
              continue;
            }
            Variable var6 = data.getVariable(v);
            if (var6 instanceof VariableXY) {
              ((VariableXY) var6).setX(Double.parseDouble(p[2]));
            } else {
              out.println("data>> Inserire variabile di tipo XY\n");
              continue;
            }
            break;
          case "export-cvs":
            if (p.length < 2) {
              out.println("data>> Inserire parametri:\n" + " id variabile\n");
              continue;
            }
            Variable var7 = data.getVariable(v);
            var7.exportCVS(path);
            out.println(
                "Salvata variabile "
                    + var7.getId()
                    + " in "
                    + path
                    + File.separator
                    + var7.getId());
            break;
          default:
            out.println("Inserire comando valido!");
        }
      } catch (Exception e) {
        out.println(e.getMessage());
        continue;
      }
    }
  }