Ola galera bom dia!
estou implementando uma aplicacao java para estatistica, os metodos estao prontos mas preciso de uma interface grafica
e tambem preciso que o usuario entre com os valores, pois minha aplicacao esta com valores estaticos ou seja ja tem os valores, gostaria que alguem em ajudasse a criar uma interface onde o usuario insere os valores.
ai esta meu codigo fonte.
package aplicacao;
import java.util.Arrays;
import java.util.HashMap;
import javax.swing.JOptionPane;
public class Estatistica {
private double array[];
public double getMediaAritmetica() {
double total = 0;
for (int counter = 0; counter < array.length; counter++)
total += array[counter];
return total / array.length;
}
public double getSomaDosElementosAoQuadrado() {
double total = 0;
for (int counter = 0; counter < array.length; counter++)
total += Math.pow(array[counter], 2);
return total;
}
public double getMediaAritmetica(double array[]) {
double total = 0;
for (int counter = 0; counter < array.length; counter++)
total += array[counter];
return total / array.length;
}
public void ordenar() {
Arrays.sort(array);
}
public void imprimeArray() {
JOptionPane.showMessageDialog(null, "\nElementos do Array: ");
for (int count = 0; count < array.length; count++)
JOptionPane.showMessageDialog(null, array[count] + " ");
}
// Array não pode conter valores duplicados
/*
*
*
* public int buscaPor(int value) {
*
* return Arrays.binarySearch(array, value);
*
* }
*/
public double getMediana() {
this.ordenar();
int tipo = array.length % 2;
if (tipo == 1) {
return array[((array.length + 1) / 2) - 1];
} else {
int m = array.length / 2;
return (array[m - 1] + array[m]) / 2;
}
}
public double getModa() {
HashMap map = new HashMap();
Integer i;
Double moda = 0.0;
Integer numAtual, numMaior = 0;
for (int count = 0; count < array.length; count++) {
i = (Integer) map.get(new Double(array[count]));
if (i == null) {
map.put(new Double(array[count]), new Integer(1));
} else {
map.put(new Double(array[count]), new Integer(i.intValue() + 1));
numAtual = i.intValue() + 1;
if (numAtual > numMaior) {
numMaior = numAtual;
moda = new Double(array[count]);
}
}
}
return moda;
}
public void setArray(double[] array) {
this.array = array;
}
}
Principal
package aplicacao;
import javax.swing.JOptionPane;
public class Cliente {
public static void main(String[] args) {
Estatistica e = new Estatistica();
double array[] = { 1, 1, 1, 2, 3, 3, 3, 3 };
e.setArray(array);
// Marca o início do tempo
JOptionPane.showMessageDialog(null, "\n mediana: " + e.getMediana());
JOptionPane.showMessageDialog(null,
"\n Media Aritmética: " + e.getMediaAritmetica());
JOptionPane.showMessageDialog(null, "\n Moda: " + e.getModa());
}
}
package aplicacao;
import java.util.Arrays;
import java.util.HashMap;
import javax.swing.JOptionPane;
public class Estatistica {
private double array[];
public double getMediaAritmetica() {
double total = 0;
for (int counter = 0; counter < array.length; counter++)
total += array[counter];
return total / array.length;
}
public double getSomaDosElementosAoQuadrado() {
double total = 0;
for (int counter = 0; counter < array.length; counter++)
total += Math.pow(array[counter], 2);
return total;
}
public double getMediaAritmetica(double array[]) {
double total = 0;
for (int counter = 0; counter < array.length; counter++)
total += array[counter];
return total / array.length;
}
public void ordenar() {
Arrays.sort(array);
}
public void imprimeArray() {
JOptionPane.showMessageDialog(null, "\nElementos do Array: ");
for (int count = 0; count < array.length; count++)
JOptionPane.showMessageDialog(null, array[count] + " ");
}
// Array não pode conter valores duplicados
/*
*
*
* public int buscaPor(int value) {
*
* return Arrays.binarySearch(array, value);
*
* }
*/
public double getMediana() {
this.ordenar();
int tipo = array.length % 2;
if (tipo == 1) {
return array[((array.length + 1) / 2) - 1];
} else {
int m = array.length / 2;
return (array[m - 1] + array[m]) / 2;
}
}
public double getModa() {
HashMap map = new HashMap();
Integer i;
Double moda = 0.0;
Integer numAtual, numMaior = 0;
for (int count = 0; count < array.length; count++) {
i = (Integer) map.get(new Double(array[count]));
if (i == null) {
map.put(new Double(array[count]), new Integer(1));
} else {
map.put(new Double(array[count]), new Integer(i.intValue() + 1));
numAtual = i.intValue() + 1;
if (numAtual > numMaior) {
numMaior = numAtual;
moda = new Double(array[count]);
}
}
}
return moda;
}
public void setArray(double[] array) {
this.array = array;
}
}
package aplicacao;
import javax.swing.JOptionPane;
public class Cliente {
public static void main(String[] args) {
Estatistica e = new Estatistica();
double array[] = { 1, 1, 1, 2, 3, 3, 3, 3 };
e.setArray(array);
// Marca o início do tempo
JOptionPane.showMessageDialog(null, "\n mediana: " + e.getMediana());
JOptionPane.showMessageDialog(null,
"\n Media Aritmética: " + e.getMediaAritmetica());
JOptionPane.showMessageDialog(null, "\n Moda: " + e.getModa());
}
}
Beeem melhor!
Olá wesleysilva
A maneira mais simples para você fazer a GUI é continuar usando JOptionPane mesmo. Assim:
suaVariavel = JOptionPane.showInputDialog("Digite o valor");
Ou se preferir pode usar JFrame, JLabel e JTextField, também é fácil.
:thumbup: