Метод последовательных сравнений

Дипломная работа - Менеджмент

Другие дипломы по предмету Менеджмент

° и область анализа расположены на разных вкладках. Однако предложенный альтернативный вариант не является оптимальным с точки зрения минимизации временных интервалов, так как при таком расположении основных областей, пользователь будет вынужден совершать лишние перемещения мыши между указанными областями и лишние клики по рабочей области.

 

 

 

Таким образом, реорганизация анализируемого интерфейса не целесообразна. Спроектированный интерфейс является оптимальным, лаконичным и простым в использовании.

 

 

4.Листинг

 

4.1 Класс CombinationGenerator

class CombinationGenerator {int[] a;int n;int r;BigInteger numLeft;BigInteger total;CombinationGenerator(int n, int r) {(r > n) {new IllegalArgumentException();

}(n < 1) {new IllegalArgumentException();

}.n = n;.r = r;= new int[r];nFact = getFactorial(n);rFact = getFactorial(r);nminusrFact = getFactorial(n - r);= nFact.divide(rFact.multiply(nminusrFact));();

}

//------

// Reset

//------void reset() {(int i = 0; i < a.length; i++) {[i] = i;

}= new BigInteger(total.toString());

} // Return number of combinations not yet generated

//------------------------------BigInteger getNumLeft() {numLeft;

}

//-----------------------------

// Are there more combinations?

//-----------------------------boolean hasMore() {numLeft.compareTo(BigInteger.ZERO) == 1;

} // Return total number of combinations

//--------------------------BigInteger getTotal() {total;

}

//------------------

// Compute factorial

//------------------static BigInteger getFactorial(int n) {fact = BigInteger.ONE;(int i = n; i > 1; i--) {= fact.multiply(new BigInteger(Integer.toString(i)));

}fact;

}

//--------------------------------

// Generate next combination (algorithm from Rosen p. 286)

//----------------------------------int[] getNext() {(numLeft.equals(total)) {= numLeft.subtract(BigInteger.ONE);a;

}i = r - 1;(a[i] == n - r + i) {-;

}[i] = a[i] + 1;(int j = i + 1; j < r; j++) {[j] = a[i] + j - i;

}= numLeft.subtract(BigInteger.ONE);

return a;

}

}

 

4.2 Класс ConditionPanel

 

public class ConditionPanel extends javax.swing.JPanel {ConditionPanel() {();

}void setCondition(int indices[], int num) {s;= " " + (indices[0] + 1) + " > ";(int i = 1; i < indices.length - 1; i++) {+= (indices[i] + 1) + " + ";

}+= (indices[indices.length - 1] + 1);.setText("" + num + ". " + s);

}void check() {.setSelected(!jCheckBox1.isSelected());

}isSelected() {

return jCheckBox1.isSelected();

}

}

 

4.3 Класс MainFrame

 

public class MainFrame extends javax.swing.JFrame {

/** Creates new form MainFrame */MainFrame() {();.setCellRenderer(new ListCellRenderer() {Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {comp = (Component)value;.setBackground(isSelected ? Color.LIGHT_GRAY : Color.white);comp;

}

});.addMouseListener(new MouseAdapter() {

@Overridevoid mouseReleased(MouseEvent e) {.get(jList1.getSelectedIndex()).check();.updateUI();super.mouseReleased(e);

}

});.setValue(2);

}Vector();[] lastNumIndex = new int[value];(int num : lastNumIndex) {.out.println(num);

}(int i = 3; i <= value; i++) {[] indices;x = new CombinationGenerator(value, i);(x.hasMore()) {= x.getNext();.add(indices.clone());

}

}.sort(conditions, new Comparator() {int compare(int[] o1, int[] o2) {( o1[0] < o2[0] ) {-1;

} else if( o1[0] == o2[0] ) {(o1.length < o2.length) {-1;

} else {0;

}

} else {1;

}

}

});= new Vector();num = 1;(int[] indices : conditions) {list = new ConditionPanel();.setCondition(indices, num);++;.add(list);

}.setListData(vec);.updateUI();

 

}void jSpinner1StateChanged(javax.swing.event.ChangeEvent evt) {.setModel(new DefaultTableModel((Integer)jSpinner1.getValue(), 3) [] canEdit = new boolean [] {, true, true

};

@Overrideboolean isCellEditable(int rowIndex, int columnIndex) {canEdit [columnIndex];

}

@OverrideString getColumnName(int column) {name = "";(column) {0:= "№";;1:= "цель";;2:= "оценка";;

}name;

}

});(int i = 0; i < (Integer)jSpinner1.getValue(); i++){s = "" + (1-0.1*i);.setValueAt(i + 1, i, 0);.setValueAt("цель " + (i + 1), i, 1);.setValueAt(s, i, 2);

}

}float[] values;void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {.updateUI();count = (Integer)jSpinner1.getValue();= new float[count];(int i = 0; i < count; i++) {[i] = Float.parseFloat((String) jTable1.getModel().getValueAt(i, 2));

}(jRadioButton1.isSelected()) {();

} else {();

}

}

}void manualSolve() {i = checkConditions();(i !=-1){.showMessageDialog(this, (i + 1) + " правило не выполнилось. Скорректируйте оценки");

}{();.showMessageDialog(this, "Принятые оценки корректны");

}

}void automaticSolve() {();.add(0);(int i = 1; i < conditions.size(); i++) {[] currentIndex = conditions.get(i);[] previousIndex = conditions.get(i - 1);(currentIndex[0] == previousIndex[0]

&& currentIndex.length == previousIndex.length) {(isConditionSelected(i) != isConditionSelected(i - 1)) {

JOptionPane.showMessageDialog(this, "Уловия не могут быть выполнены при данных значениях оценок !!!");

return;

}

}(currentIndex[0] == previousIndex[0]

&& currentIndex.length > previousIndex.length) {(isConditionSelected(i) == true && isConditionSelected(i - 1) == false) {

JOptionPane.showMessageDialog(this, "Уловия не могут быть выполнены при данных значениях оценок !!!");

return;

}

}(currentIndex.length != previousIndex.length) {.add(i);

}

}

{first = 0; sublist = ind.subList(first, first + size);.reverse(sublist);.addAll(sublist);+= size;

}= sortedInd;

}n = ind.size();delta = 0.01f;(int i = 0; i values[cond[0] + 1]) {[cond[0]] = value;

} else {.showMessageDialog(this, "Уловия не могут быть выполнены при данных значениях оценок");

return;

}

} else {value = getSumm(conditionNum, values) + delta;(cond[0]==0){[cond[0]] = value;

} else {d = value - values[cond[0]];[cond[0]] = value;(int j = 0; j < cond[0]; j++) {[j] += d;

}

}

}

}

}();.showMessageDialog(this, "Принятые оценки корректны");

}int checkConditions() {checkConditions(conditions.size()-1, values);

}boolean isConditionSelected(int numCondition){vec.get(numCondition).isSelected();

}int checkConditions(int lastCondition, float[] values) {(int i = 0; i <= lastCondition; i++) {selected = isConditionSelected(i);(calculute(i, values) == !selected) {i;

}

}-1;

}boolean calculute(int i, float[] values) {[] indices = conditions.get(i);leftValue = values[indices[0]];summ = 0;(int j = 1; j < indices.length; j++) {+= values[indices[j]];

}leftValue > summ;

}float getSumm(int i, float[] values) {[] indices = conditions.get(i);summ = 0;(int j = 1; j < indices.length; j++) {+= values[indices[j]];

}summ;

}void norm() {count = values.length;val = values[0];(int i = 0; i < count; i++) {[i] = values[i] / val;.setValueAt("" + values[i], i, 2);

}

}

}

 

Выводы

 

Основное преимущество методов экспертных оценок - возможность их применения в условиях повышенного риска и неопределенности. Эта неопределенность чаще всего является следствием вероятного характера исследуемых явлений, невозможности то?/p>