Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de...

34
Faculdade Sumaré, Trabalho de PPI - 3 o Semestre, Turma de Ciências da Computação 184_0012_141_M1_A. Cálculo Estatístico São Paulo, 2015

Transcript of Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de...

Page 1: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

Faculdade Sumaré,

Trabalho de PPI - 3o Semestre,

Turma de Ciências da Computação

184_0012_141_M1_A.

Cálculo Estatístico

São Paulo, 2015

Page 2: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

2

Faculdade Sumaré,

Trabalho de PPI - 3o Semestre,

Turma de Ciências da Computação

184_0012_141_M1_A.

Cálculo Estatístico

Andrio Lino Feijo – RA 1312413

Carlos Felix dos Santos – RA 1417022

Hugo Vinicius de Melo Silva – RA 1415321

José Eduardo de Araujo Nunes – RA 1413355

Kleber Ramos Freitas Leite – RA 1310267

São Paulo, 2015

Page 3: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

Sumário

1. Introdução................................................................................................................................. 2

2. Objetivo .................................................................................................................................... 2

3. Justificativa ............................................................................................................................... 2

4. Resumo ..................................................................................................................................... 2

5. Integração das disciplinas ......................................................................................................... 3

6. Apêndice A – Tela da Interface do Programa ............................................................................ 3

7. Apêndice B – Código fonte do programa ................................................................................... 4

Page 4: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

2

1. Introdução

Existem muitas coisas que somos capazes de fazer, construir belas edificações, decifrar o DNA humano, identificar matérias atomicamente minúsculas como o Bosson de Higgs, desenvolver o pensamento quântico e suas metodologias de cálculos avançados, preparar toda uma estrutura de dados conhecida por “Big Data”. Para que tudo isso seja possível, nós precisamos analisar uma quantidade substancial de dados.

Sem utilizar um método adequado, não é simples trabalhar com um volume de informações da ordem de centenas de dados. Mas para muitas análises que encontramos no dia-a-dia, trabalhamos com amostras de centenas, milhares e milhões de dados, como por exemplo, quais são os programas de TV assistidos em determinado estado ou os dados do IBGE sobre a renda de toda a população de um país.

Esse é o momento que a estatística se prova eficaz e nos ampara, pois oferece um método organizado e eficiente que permite resumir e apresentar essas informações de maneira que auxilie na compreensão e interpretação destes dados.

2. Objetivo

Colocar em prática o conteúdo trabalhado durante as aulas, tanto em programação quanto em estatística, com o objetivo de obter uma plataforma simples onde serão feitos os cálculos estatísticos a partir de determinada entrada, produzindo como resultado tabelas e gráficos dinâmicos, que podem ser utilizados para a conferência de um exercício, na resolução de um problema real ou em testes e refinamento de dados.

3. Justificativa

Os alunos e professores se beneficiarão com uma ferramenta de precisão na sala de aula, que os ajude a ganhar tempo e também a visualizar com maior detalhe e em tempo hábil as diversas resoluções de um mesmo exercício, facilitando a alteração de variáveis pré-determinadas de cálculos e aprimorando o processo ensino-aprendizagem durante as aulas, tão bem quanto auxiliando as estimativas e análises de estatísticas diversas.

4. Resumo

Buscamos nesse projeto efetuar o desenvolvimento de um software para a área de estatística que calcule as frequências: Absoluta (f), Absoluta Relativa (fr), Acumulada (F) e Acumulada Relativa (Fr) de variáveis discretas e contínuas, que produza os gráficos de barras e os polígonos de frequência, para o caso de variáveis contínuas, haverá a possibilidade de alterar a amplitude das classes (h) e o ponto inicial do agrupamento para aprimorar os resultados nesses gráficos, obtendo de forma rápida e prática a melhor visualização possível dos resultados calculados.

Page 5: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

3

5. Integração das disciplinas

Será desenvolvida a integração das seguintes disciplinas fundamentais para a execução do projeto:

Laboratório de Programação: para produzir os algoritmos do projeto em Java; Matemática II: simplificando fórmulas e obtendo desempenho nos cálculos

matemáticos; Estrutura de Dados: cerceando o horizonte acerca das melhores práticas em

programação para que possamos compor um algoritmo simples e eficaz; Estatística: cujo conteúdo didático será a base para a realização desse projeto.

6. Apêndice A – Tela da Interface do Programa

Page 6: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

4

7. Apêndice B – Código fonte do programa

/*

* Trabalho de PPI da Faculdade Sumaré, turma de Ciências da Computação,

3.o Semestre.

* Cálculos Estatísticos

*/

package estatistica;

import java.awt.Desktop;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.awt.print.PrinterException;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.OutputStreamWriter;

import java.net.URL;

import java.text.DecimalFormat;

import java.text.MessageFormat;

import java.util.Vector;

import javax.swing.ButtonGroup;

import javax.swing.JCheckBox;

import javax.swing.JFileChooser;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JRadioButton;

import javax.swing.JTable;

import javax.swing.filechooser.FileNameExtensionFilter;

import javax.swing.table.DefaultTableModel;

/**

*

* @author Eduardo Nunes

*/

public class JanelaPrincipal extends javax.swing.JPanel {

// Estrutura a tabela para a quantidade de classes

Double[] l = new Double[15];

Double[] L = new Double[15];

Double[] Pm = new Double[15];

int[] f = new int[15];

int[] F = new int[15];

Double[] fr = new Double[15];

Double[] Fr = new Double[15];

Double[] fx = new Double[15];

Double[] Vr = new Double[15];

int N, k, h;

Double media, mediana, variancia, desviopadrao, coeficientevar;

String moda;

boolean range = false;

DecimalFormat df = new DecimalFormat("###.##");

/**

* Creates new form JanelaPrincipal

*/

public JanelaPrincipal() {

Page 7: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

5

initComponents();

}

private void CalcularTabela() {

LimparTabelaInterna();

// Se não tiver ROL, calcular ROL (com base nos dados brutos)

if (jTextField4.getText().length() < 1 &&

jTextArea1.getText().length() > 0) {

CalcularROL();

}

// Se tiver ROL, calcula a tabela com os dados baseados no ROL

if (jTextField4.getText().length() > 0) {

String vt[] = jTextField4.getText().split(" ");

Double dados[] = new Double[vt.length];

int teste;

for (int i=0; i<vt.length; i++) {

dados[i]=Double.parseDouble(vt[i]);

teste = (int) Math.round(dados[i]);

//verifica se são todos inteiros, se tiver casa decimal é

variável quantitativa contínua:

if (Math.abs(dados[i] - teste) != 0) {

range = true;

}

}

vt = null;

// Definições e cálculos de N, k e h.

N = dados.length; // Amostra.

k = 1; // Quantidade de classes

//h = 0; // Amplitude de classe

try {

h = Integer.parseInt(jTextField2.getText());

} catch (Exception ex) {

h = 0;

}

if (h > 0) { range = true; }

// se temp <> dados[i] entao k++

// senao temp = dados[i]

Double temp = dados[0];

if (range == false) {

//estima valor de k contando os valores únicos no rol

for (int i=0; i < dados.length; i++) {

if (Math.abs(temp - dados[i]) != 0) {

k++;

temp = dados[i];

}

if (k == 16) { // Passou do limite, tabela com

amplitude de classe.

range = true;

break;

}

}

}

// Monta a tabela de dados quantitativos discretos

if (range == false) {

int j=0;

Page 8: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

6

for (int i=0; i<dados.length; i++) {

// Analise de dados:

if (l[j] == null) { //se o dado for nulo, adiciona

o valor

l[j] = dados[i];

f[j] = 1;

} else {

if (Math.abs(l[j] - dados[i]) == 0) { //se os dados

sao iguais:

f[j]++;

} else { //se o dado não for nulo,

adiciona o proximo valor

if (j < k-1) { // se a tabela não explodiu o

limite de k, adiciona valor

j++;

l[j] = dados[i];

f[j]++;

} else { //se a tabela explodiu o limite

do k, fazer nova tabela para dados quantitativos contínuos (com amplitude

de classe).

range = true;

break;

}

}

}

}

}

// Monta tabela com dados quantitativos contínuos (range =

true)

if (range == true) {

LimparTabelaInterna();

// Calcular k e h

int calcK = (int) Math.ceil(Math.sqrt(dados.length));

if (calcK < 6) { calcK = 5; }

int calcH = (int) Math.ceil((dados[dados.length-1] -

dados[0]) / calcK);

int menorH = (int) Math.ceil((dados[dados.length-1] -

dados[0]) / 15);

// Verifica se o menorH vai realmente dar certo (ñ estourar

a lista)

// PEGA l[0] + k*h E TEM QUE SER MENOR QUE L[dados.length-

1]

if ((dados[0] + (15*menorH)) - dados[dados.length-1] < 0.1)

{

menorH++;

}

// Tenta obter valor de h se existir na tela

try {

h = Integer.parseInt(jTextField2.getText());

if (menorH > h) {

h = menorH;

}

} catch (Exception ex) {

h = calcH;

}

k = (int) Math.ceil((dados[dados.length-1] - dados[0]) /

h);

if (k > 15) { //nao sei pq o k foi maior, então corrige k e

h.

Page 9: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

7

k = 15;

h = (int) Math.ceil((dados[dados.length-1] - dados[0])

/ k);

}

// Montagem da tabela

int j = 0;

for (int i=0; i<dados.length; i++) {

// Analise de dados:

if (l[j] == null) { //se o dado for nulo,

adiciona o valor e calcula o

// Forçar limite inferior da primeira classe ?

if (jTable1.getValueAt(0, 0) == null) {

l[j] = Math.floor(dados[i]);

} else {

String l0[] = jTable1.getValueAt(0,

0).toString().split("-");

l[j] = Double.parseDouble(l0[0]);

}

L[j] = l[j] + h;

f[j] = 1;

} else {

if (dados[i] < L[j]) { //se o dado pertence ao

intervalo, aumenta o f:

f[j]++;

} else if (((dados[i] > L[j]) || (Math.abs(L[j] -

dados[i]) == 0)) && j == k-1) { //caso o dado seja igual o limite do

intervalo, criar nova classe.

j++;

k++;

l[j] = L[j-1];

L[j] = l[j] + h;

f[j]++;

} else { //se o dado não pertence ao

intervalo, adiciona o proximo valor de classe

i--;

j++;

l[j] = L[j-1];

L[j] = l[j] + h;

}

}

}

}

// Aqui a tabela está pronta e correta (variáveis discretas ou

variáveis contínuas)

// Calculamos agora o F, fr, Fr e Pm onde aplicável.

CalcularFfrFr();

} else {

// encontra qual coluna está preenchida, e sai na primeira que

encontrar,

// assim se a tabela inteira estiver preenchida, utiliza

geralmente a `f` como referência.

for (int i=0;i<jTable1.getColumnCount()-2; i++) {

if (!jTable1.getColumnName(i).equalsIgnoreCase("Variável"))

{

try {

jTable1.getValueAt(0,i).toString();

if (!jTable1.getValueAt(0,i).toString().isEmpty())

{

Page 10: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

8

if (PopulaTabela(jTable1.getColumnName(i))) {

CalcularFfrFr();

}

break;

}

} catch (Exception ex) { continue; }

}

}

}

}

private void DesenharTabela() {

DefaultTableModel dtm = new DefaultTableModel(0, 0);

String header[] = new String[] { "Variável", "f", "F", "fr", "Fr",

"Pm", "f.x", "Variância" };

if (L[0] == null) {

header = new String[] { "Variável", "f", "F", "fr", "Fr",

"f.x", "Variância" };

}

dtm.setColumnIdentifiers(header);

jTable1.setModel(dtm);

// calcula sigmafx

double sigmafx=0;

for (int i = 0; i < k; i++) {

sigmafx+=fx[i];

}

if (!jTextField3.getText().equalsIgnoreCase(String.valueOf(k))) {

jTextField3.setText(String.valueOf(k)); // Classes

}

jTextField2.setText(String.valueOf(h)); // Amplitude de

classe

jTextField1.setText(String.valueOf(N)); // Amostras

jTextField8.setText(String.valueOf(df.format(sigmafx))); //

Somatória f.x

media=sigmafx/N;

jTextField5.setText(String.valueOf(df.format(media))); // Calcula a

média

CalculaMediana();

jTextField6.setText(String.valueOf(df.format(mediana))); // Calcula

a mediana

CalculaModa();

jTextField7.setText(moda); // Calcula a moda

// desenha a tabela

double sigmavar = 0.0;

for (int i = 0; i < k; i++) {

if (L[0] == null) {

Vr[i] = f[i] * Math.pow((l[i]-media),2);

sigmavar+=Vr[i];

dtm.addRow(new Object[] {

df.format(l[i]), f[i], F[i], df.format(fr[i]) + "

%", df.format(Fr[i]) + " %", df.format(fx[i]), df.format(Vr[i])

});

} else {

Vr[i] = f[i] * Math.pow((Pm[i]-media),2);

sigmavar+=Vr[i];

dtm.addRow(new Object[] {

df.format(l[i]) + "-" + df.format(L[i]), f[i],

Page 11: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

9

F[i], df.format(fr[i]) + " %", df.format(Fr[i]) + " %", df.format(Pm[i]),

df.format(fx[i]), df.format(Vr[i])

});

}

}

variancia=sigmavar/(N-1);

desviopadrao=Math.sqrt(variancia);

coeficientevar = desviopadrao / media * 100;

jTextField9.setText(String.valueOf(df.format(variancia)));

jTextField10.setText(String.valueOf(df.format(desviopadrao)));

jTextField11.setText(String.valueOf(df.format(coeficientevar)) + "

%");

jTextField12.setText(String.valueOf(df.format(sigmavar)));

jButton13.setEnabled(true);

jButton11.setEnabled(true);

jButton5.setEnabled(true);

//jButton3.setEnabled(true); // grafico de barras

//jButton4.setEnabled(true); // grafico de poligonos

}

private void CalcularROL() {

jTextField4.setText(jTextArea1.getText().replaceAll(";", " "));

jTextField4.setText(jTextField4.getText().replaceAll("\\s+","

"));

jTextField4.setText(jTextField4.getText().replaceAll(",","."));

jTextField4.setText(jTextField4.getText().replaceFirst("^ ",

""));

String vt[] = jTextField4.getText().split(" ");

Double dados[] = new Double[vt.length];

int teste;

for (int i=0; i<vt.length; i++) {

dados[i]=Double.parseDouble(vt[i]);

teste = (int) Math.round(dados[i]);

//verifica se são todos inteiros, se tiver casa decimal é

variável quantitativa contínua:

if (Math.abs(dados[i] - teste) != 0) {

range = true;

}

}

vt = null;

// Ordena os dados

Double temp;

for (int i=0; i<dados.length-1; i++) {

if (dados[i] > dados[i+1]) {

temp = dados[i];

dados[i] = dados[i+1];

dados[i+1] = temp;

i = -1;

}

}

temp = null;

// Monta o ROL dos dados

jTextField4.setText(null);

for (int i=0; i<dados.length; i++) {

jTextField4.setText(jTextField4.getText() + dados[i] + "

");

Page 12: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

10

}

jTextField4.setText(jTextField4.getText().replaceAll(".0 ", "

").trim());

}

private void CalcularFfrFr() {

// Calculamos agora o F, fr, Fr e Pm onde aplicável.

// k = qtde classes; N = amostra; h = amplitude classe;

// menor = dados[0]; maior = dados[dados.length];

for (int i=0;i<k;i++) {

if (i == 0) {

F[i] = f[i];

fr[i] = (double) f[i] / N * 100;

Fr[i] = fr[i];

} else {

F[i] = F[i-1] + f[i];

fr[i] = (double) f[i] / N * 100;

Fr[i] = Fr[i-1] + fr[i];

}

if (L[i] != null) {

Pm[i] = (l[i] + L[i]) / 2;

fx[i] = Pm[i] * f[i];

} else {

fx[i] = l[i] * f[i];

}

}

DesenharTabela();

}

private void CalculaMediana() {

// Encontra a mediana

// Se N for par entao é o N/2 e N/2 +1 posicao pos1+pos2 /2 que da

a mediana

// Se N for impar entao é o item da posicao N/2

// pega pela tabela F

float pos1 = (float)N/2, pos2 = pos1+1;

Double num1 = null, num2 = null;

int j=0;

for (int i=0; i<F.length; i++) {

if (l[i] == null) {

break;

}

if (pos1 <= F[i] && num1 == null) {

num1 = l[i];

j = i;

}

if (pos2 <= F[i] && num2 == null) {

num2 = l[i];

}

}

if (L[0] == null) { // Mediana para dados discretos;

if (N%2 == 0) { // N é par

mediana = (num1+num2)/2;

} else { // N é impar

mediana = num1;

}

} else { // Mediana para dados continuos:

// formula: Mediana = l[pos_do_i] + (( pos1 - F[pos_do_i -1] )

Page 13: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

11

/ f[pos_do_i] ) * h;

if (j > 0) {

mediana = l[j] + (double) ( (double) ( pos1 - F[j-1] ) /

f[j] ) * h;

} else {

mediana = l[j] + (double) ( (double) pos1 / f[j] ) * h;

}

}

}

private void CalculaModa() {

// Encontra a moda

// moda[i][0] = o numero (l[i])

// moda[i][1] = vezes que se repete (f[i]]

// 1.o acha a maior freq abs.

// 2.o acha os outros que tem essa mesma freq abs.

// 3.o se somando todos os valores dos numeros nao passar da

amostra

// ai todos os moda[0] sao os numeros da moda.

// if (moda[0][1]*moda.lenght < N)

String strModa = "";

Double[][] modas = new Double[15][2];

int j=0;

for (int i=0; i<f.length; i++) { // Encontra o maior valor da moda

(parte 1)

if (l[i] == null) {

break;

}

if (i == 0) {

modas[0][1] = (double) f[0];

} else {

if (f[i] > modas[0][1]) {

modas[0][1] = (double) f[i];

j = i;

}

}

}

if (L[0] == null) {

for (int i=0; i<f.length; i++) { // Encontra outros valores de

i (parte2)

if (f[i] == modas[0][1]) {

modas[i][0] = (double) l[i];

modas[i][1] = (double) f[i];

}

}

float somaTotal = 0;

for (int i=0; i<15; i++) { // Soma todos os valores de moda[1]

verificando se é menor que N e já compõe a string de saida. (parte3)

if (modas[i][0] != null) {

strModa += String.valueOf(df.format(modas[i][0])) + "

";

somaTotal += modas[i][1];

}

}

if (somaTotal < N) {

moda = strModa.trim();

} else {

moda = null;

}

} else { // Moda para dados quantitativos continuos

int d1=0, d2=0;

Page 14: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

12

if (j > 0) {

d1 = f[j] - f[j-1];

} else {

d1 = f[j];

}

if (j < f.length) {

d2 = f[j] - f[j+1];

} else {

d2 = f[j];

}

moda = df.format(l[j] + (double) (d1 / (double) (d1+d2)) * h);

// formula: Moda = l[pos_do_i] + ( d1 / (d1+d2)) * h;

}

}

private boolean PopulaTabela(String frequencia) {

int c = 0, v = 0;

for (int i=0; i<jTable1.getColumnCount(); i++) {

if (jTable1.getColumnName(i).equals(frequencia)) {

c = i;

} else if

(jTable1.getColumnName(i).equalsIgnoreCase("Variável")) {

v = i;

}

}

if (frequencia.equals("f")) {

String celula;

k = 0;

h = 0;

N = 0;

for (int i=0; i<15; i++) {

try {

celula = jTable1.getValueAt(i, v).toString();

String valor[] = celula.replace(" ", "").split("-");

if ((i>0) && (h > 0)) {

// já tem h, faz o incremento automático

l[i] = L[i-1];

L[i] = l[i] + h;

} else {

l[i] = Double.parseDouble(valor[0]);

if (valor.length == 2) {

L[i] = Double.parseDouble(valor[1]);

h = (int) Math.round(L[i] - l[i]);

}

}

celula = jTable1.getValueAt(i, c).toString();

f[i] = Integer.parseInt(celula);

k++;

N+=f[i];

} catch (Exception ex) { //Gambiarra da preguiça: só

precisa digitar a primeira linha da variavel

try {

celula = jTable1.getValueAt(i, c).toString();

if ((i>0) && (h > 0)) {

// já tem h, faz o incremento automático

l[i] = L[i-1];

L[i] = l[i] + h;

}

f[i] = Integer.parseInt(celula);

k++;

Page 15: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

13

N+=f[i];

} catch (Exception ex2) { continue; }

}

}

} else if (frequencia.equals("F")) {

String celula;

k = 0;

h = 0;

N = 0;

for (int i=15; i>=0; i--) {

try {

if (i == 0) {

F[i] = Integer.parseInt(jTable1.getValueAt(i,

c).toString());

f[i] = F[i];

} else {

f[i] = Integer.parseInt(jTable1.getValueAt(i,

c).toString()) - Integer.parseInt(jTable1.getValueAt(i-1, c).toString());

}

k++;

N+=f[i];

} catch (Exception ex3) { continue; }

}

for (int i=0; i<15; i++) {

try {

celula = jTable1.getValueAt(i, v).toString();

String valor[] = celula.replace(" ", "").split("-");

if ((i>0) && (h > 0)) {

// já tem h, faz o incremento automático

l[i] = L[i-1];

L[i] = l[i] + h;

} else {

l[i] = Double.parseDouble(valor[0]);

if (valor.length == 2) {

L[i] = Double.parseDouble(valor[1]);

h = (int) Math.round(L[i] - l[i]);

}

}

} catch (Exception ex) { //Gambiarra da preguiça: só

precisa digitar a primeira linha da variavel

try {

celula = jTable1.getValueAt(i, c).toString();

if ((i>0) && (h > 0)) {

// já tem h, faz o incremento automático

l[i] = L[i-1];

L[i] = l[i] + h;

}

} catch (Exception ex2) { continue; }

}

}

} else if (frequencia.equals("fr")) {

if (jTextField1.getText().length() == 0) {

JOptionPane.showMessageDialog(this, "Erro: É preciso

indicar o tamanho da amostra (N) para utilizar a tabela direta na

frequência fr.", "Quantidade de amostras desconhecida",

JOptionPane.ERROR_MESSAGE);

return false;

}

String celula;

k = 0;

h = 0;

Page 16: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

14

N = 0;

double pccheck = 0.0;

for (int i=15; i>=0; i--) {

try {

fr[i] = verifica.decimal(jTable1.getValueAt(i,

c).toString().replace("%", "").replace("\\s+", ""));

pccheck += fr[i];

f[i] = Integer.parseInt(verifica.redondo(fr[i] / 100 *

Integer.parseInt(jTextField1.getText()),0));

k++;

N+=f[i];

} catch (Exception ex3) { continue; }

}

if ((pccheck < 99) || ( pccheck > 101)) {

JOptionPane.showMessageDialog(this, "Erro: Os valores da

tabela fr não somam 100%.", "Erro nos dados", JOptionPane.ERROR_MESSAGE);

return false;

}

if (N != Integer.parseInt(jTextField1.getText())) {

JOptionPane.showMessageDialog(this, "Aviso: Inconsistência

no cálculo do total de amostras.\nValor informado: " +

jTextField1.getText() + "\nValor calculado: " + N, "Quantidade de amostras

inconsistente", JOptionPane.WARNING_MESSAGE);

}

for (int i=0; i<15; i++) {

try {

celula = jTable1.getValueAt(i, v).toString();

String valor[] = celula.replace(" ", "").split("-");

if ((i>0) && (h > 0)) {

// já tem h, faz o incremento automático

l[i] = L[i-1];

L[i] = l[i] + h;

} else {

l[i] = Double.parseDouble(valor[0]);

if (valor.length == 2) {

L[i] = Double.parseDouble(valor[1]);

h = (int) Math.round(L[i] - l[i]);

}

}

} catch (Exception ex) { //Gambiarra da preguiça: só

precisa digitar a primeira linha da variavel

try {

celula = jTable1.getValueAt(i, c).toString();

if ((i>0) && (h > 0)) {

// já tem h, faz o incremento automático

l[i] = L[i-1];

L[i] = l[i] + h;

}

} catch (Exception ex2) { continue; }

}

}

} else if (frequencia.equals("Fr")) {

if (jTextField1.getText().length() == 0) {

JOptionPane.showMessageDialog(this, "Erro: É preciso

indicar o tamanho da amostra (N) para utilizar a tabela direta na

frequência Fr.", "Quantidade de amostras desconhecida",

JOptionPane.ERROR_MESSAGE);

return false;

}

String celula;

k = 0;

Page 17: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

15

h = 0;

N = 0;

double pccheck = 0.0;

for (int i=15; i>=0; i--) {

try {

if (i == 0) {

fr[i] = verifica.decimal(jTable1.getValueAt(i,

c).toString().replace("%", "").replace("\\s+", ""));

} else {

fr[i] = verifica.decimal(jTable1.getValueAt(i,

c).toString().replace("%", "").replace("\\s+", "")) -

verifica.decimal(jTable1.getValueAt(i-1, c).toString().replace("%",

"").replace("\\s+", ""));

}

pccheck += fr[i];

f[i] = Integer.parseInt(verifica.redondo(fr[i] / 100 *

Integer.parseInt(jTextField1.getText()),0));

k++;

N+=f[i];

} catch (Exception ex3) { continue; }

}

if ((pccheck < 99) || ( pccheck > 101)) {

JOptionPane.showMessageDialog(this, "Erro: Os valores da

tabela Fr não somam 100%.", "Erro nos dados", JOptionPane.ERROR_MESSAGE);

return false;

}

if (N != Integer.parseInt(jTextField1.getText())) {

JOptionPane.showMessageDialog(this, "Aviso: Inconsistência

no cálculo do total de amostras.\nValor informado: " +

jTextField1.getText() + "\nValor calculado: " + N, "Quantidade de amostras

inconsistente", JOptionPane.WARNING_MESSAGE);

}

for (int i=0; i<15; i++) {

try {

celula = jTable1.getValueAt(i, v).toString();

String valor[] = celula.replace(" ", "").split("-");

if ((i>0) && (h > 0)) {

// já tem h, faz o incremento automático

l[i] = L[i-1];

L[i] = l[i] + h;

} else {

l[i] = Double.parseDouble(valor[0]);

if (valor.length == 2) {

L[i] = Double.parseDouble(valor[1]);

h = (int) Math.round(L[i] - l[i]);

}

}

} catch (Exception ex) { //Gambiarra da preguiça: só

precisa digitar a primeira linha da variavel

try {

celula = jTable1.getValueAt(i, c).toString();

if ((i>0) && (h > 0)) {

// já tem h, faz o incremento automático

l[i] = L[i-1];

L[i] = l[i] + h;

}

} catch (Exception ex2) { continue; }

}

}

} else {

JOptionPane.showMessageDialog(this, "Aviso: A programação para

Page 18: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

16

calcular com base na tabela " + frequencia.toString() + " ainda não está

concluída.", "Recurso ainda não disponível", JOptionPane.WARNING_MESSAGE);

return false;

}

return true;

}

private void LimparTabela() {

LimparTabelaInterna();

DefaultTableModel dtm = new DefaultTableModel(0, 0);

String header[] = new String[] { "Variável", "f", "F", "fr", "Fr",

"f.x", "Variância" };

dtm.setColumnIdentifiers(header);

dtm.setNumRows(15);

jTable1.setModel(dtm);

int k;

try {

k = Integer.parseInt(jTextField3.getText());

} catch (Exception ex) {

k = 15;

}

}

private void LimparTabelaInterna() {

range = false;

for (int i=0; i<15; i++) {

l[i] = null;

L[i] = null;

f[i] = 0;

F[i] = 0;

fr[i] = null;

Fr[i] = null;

Pm[i] = null;

fx[i] = null;

Vr[i] = null;

}

}

private void LimparMedias() {

this.jTextField5.setText("");

this.jTextField6.setText("");

this.jTextField7.setText("");

}

private void LimparDados() {

this.jTextArea1.setText("");

}

private void LimparROL() {

this.jTextField4.setText("");

}

private void LimparNKH() {

jTextField1.setText("");

jTextField2.setText("");

jTextField3.setText("");

}

private void LimparVariancia() {

Page 19: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

17

jTextField9.setText("");

jTextField10.setText("");

jTextField11.setText("");

jTextField12.setText("");

}

/**

*

* This method is called from within the constructor to initialize the

form.

* WARNING: Do NOT modify this code. The content of this method is

always

* regenerated by the Form Editor.

*/

@SuppressWarnings("unchecked")

// <editor-fold defaultstate="collapsed" desc="Generated Code">

private void initComponents() {

buttonGroup1 = new javax.swing.ButtonGroup();

jScrollPane1 = new javax.swing.JScrollPane();

jTable1 = new javax.swing.JTable();

jButton1 = new javax.swing.JButton();

jScrollPane2 = new javax.swing.JScrollPane();

jTextArea1 = new javax.swing.JTextArea();

jLabel1 = new javax.swing.JLabel();

jLabel2 = new javax.swing.JLabel();

jLabel3 = new javax.swing.JLabel();

jLabel4 = new javax.swing.JLabel();

jTextField1 = new javax.swing.JTextField();

jTextField2 = new javax.swing.JTextField();

jTextField3 = new javax.swing.JTextField();

jLabel5 = new javax.swing.JLabel();

jTextField4 = new javax.swing.JTextField();

jLabel6 = new javax.swing.JLabel();

jLabel7 = new javax.swing.JLabel();

jLabel8 = new javax.swing.JLabel();

jTextField5 = new javax.swing.JTextField();

jTextField6 = new javax.swing.JTextField();

jTextField7 = new javax.swing.JTextField();

jButton2 = new javax.swing.JButton();

jButton3 = new javax.swing.JButton();

jButton4 = new javax.swing.JButton();

jLabel9 = new javax.swing.JLabel();

jLabel10 = new javax.swing.JLabel();

jTextField8 = new javax.swing.JTextField();

jLabel11 = new javax.swing.JLabel();

jLabel12 = new javax.swing.JLabel();

jLabel13 = new javax.swing.JLabel();

jTextField9 = new javax.swing.JTextField();

jTextField10 = new javax.swing.JTextField();

jTextField11 = new javax.swing.JTextField();

jButton11 = new javax.swing.JButton();

jLabel14 = new javax.swing.JLabel();

jTextField12 = new javax.swing.JTextField();

jButton13 = new javax.swing.JButton();

jButton5 = new javax.swing.JButton();

jButton6 = new javax.swing.JButton();

setMaximumSize(null);

jTable1.setModel(new javax.swing.table.DefaultTableModel(

Page 20: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

18

new Object [][] {

{null, null, null, null, null, null, null},

{null, null, null, null, null, null, null},

{null, null, null, null, null, null, null},

{null, null, null, null, null, null, null},

{null, null, null, null, null, null, null},

{null, null, null, null, null, null, null},

{null, null, null, null, null, null, null},

{null, null, null, null, null, null, null},

{null, null, null, null, null, null, null},

{null, null, null, null, null, null, null},

{null, null, null, null, null, null, null},

{null, null, null, null, null, null, null},

{null, null, null, null, null, null, null},

{null, null, null, null, null, null, null},

{null, null, null, null, null, null, null}

},

new String [] {

"Variável", "f", "F", "fr", "Fr", "f.x", "Variância"

}

) {

Class[] types = new Class [] {

java.lang.String.class, java.lang.String.class,

java.lang.String.class, java.lang.String.class, java.lang.String.class,

java.lang.String.class, java.lang.String.class

};

boolean[] canEdit = new boolean [] {

true, true, true, true, true, false, false

};

public Class getColumnClass(int columnIndex) {

return types [columnIndex];

}

public boolean isCellEditable(int rowIndex, int columnIndex) {

return canEdit [columnIndex];

}

});

jTable1.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_ALL_COLUMNS);

jTable1.setAutoscrolls(false);

jTable1.setDropMode(javax.swing.DropMode.ON);

jTable1.setMaximumSize(new java.awt.Dimension(525, 240));

jTable1.setMinimumSize(new java.awt.Dimension(525, 240));

jTable1.setRowHeight(17);

jTable1.setRowMargin(2);

jTable1.getTableHeader().setResizingAllowed(false);

jScrollPane1.setViewportView(jTable1);

jButton1.setText("Calcular");

jButton1.setToolTipText("<html>3 fontes ordenadas de

cálculo:<br>\n1. Baseado no ROL, quando não existir:<br>\n2. Baseado nos

Dados Brutos, quando não existir:<br>\n3. Baseado na Tabela, assumindo a

primeira coluna preenchida entre f, fr, F, Fr.</html>");

jButton1.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton1ActionPerformed(evt);

}

});

jTextArea1.setColumns(20);

Page 21: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

19

jTextArea1.setFont(new java.awt.Font("Tahoma", 0, 11)); // NOI18N

jTextArea1.setRows(5);

jTextArea1.setToolTipText("<html>Separe os dados por espaço, enter

ou ponto e vírgula.<br>Para casa decimais use ponto ou vírgula.</html>");

jScrollPane2.setViewportView(jTextArea1);

jLabel1.setText("Dados brutos:");

jLabel1.setToolTipText("<html>Separe os dados por espaço, enter ou

ponto e vírgula.<br>Para casa decimais use ponto ou vírgula.</html>");

jLabel2.setText("Amostras (N):");

jLabel3.setText("Amplitude de classe (h):");

jLabel4.setText("Quantidade de classes (k):");

jLabel5.setText("ROL:");

jLabel5.setToolTipText("Dados Brutos perfeitamente ordenados.");

jTextField4.setToolTipText("Dados Brutos perfeitamente

ordenados.");

jLabel6.setText("Média:");

jLabel6.setToolTipText("Valores destoantes do conjunto podem

distorcer o resultado.");

jLabel7.setText("Mediana:");

jLabel7.setToolTipText("50% dos dados são menores e 50% dos dados

maiores que esse valor.");

jLabel8.setText("Moda:");

jLabel8.setToolTipText("Valor(es) que mais se repete(m) na

amostra.");

jTextField5.setToolTipText("Valores destoantes do conjunto podem

distorcer o resultado.");

jTextField6.setToolTipText("50% dos dados são menores e 50% dos

dados maiores que esse valor.");

jTextField7.setToolTipText("Valor(es) que mais se repete(m) na

amostra.");

jButton2.setText("Limpar");

jButton2.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton2ActionPerformed(evt);

}

});

jButton3.setText("Barras");

jButton3.setEnabled(false);

jButton3.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton3ActionPerformed(evt);

}

});

jButton4.setText("Polígono");

jButton4.setEnabled(false);

jButton4.setMaximumSize(new java.awt.Dimension(63, 23));

Page 22: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

20

jButton4.setMinimumSize(new java.awt.Dimension(63, 23));

jButton4.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton4ActionPerformed(evt);

}

});

jLabel9.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N

jLabel9.setText("Gerar Gráficos:");

jLabel10.setText("Σ (f.x)");

jLabel11.setText("Variância:");

jLabel12.setText("Desvio Padrão:");

jLabel13.setText("<html><p align=\"right\">Coeficiente de

Variação:</p></html>");

jButton11.setText("Amplitude do desvio");

jButton11.setEnabled(false);

jButton11.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton11ActionPerformed(evt);

}

});

jLabel14.setText("Σ var");

jButton13.setText("Exportar tabela...");

jButton13.setToolTipText("Salvar dados em arquivo no formato

.csv");

jButton13.setEnabled(false);

jButton13.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton13ActionPerformed(evt);

}

});

jButton5.setText("Imprimir tabela...");

jButton5.setEnabled(false);

jButton5.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton5ActionPerformed(evt);

}

});

jButton6.setText("Sobre...");

jButton6.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton6ActionPerformed(evt);

}

});

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);

this.setLayout(layout);

layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jScrollPane1)

.addGroup(layout.createSequentialGroup()

Page 23: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

21

.addContainerGap()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEAD

ING)

.addGroup(layout.createSequentialGroup()

.addComponent(jLabel9)

.addGap(20, 20, 20)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEAD

ING, false)

.addComponent(jButton3,

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,

Short.MAX_VALUE)

.addComponent(jButton4,

javax.swing.GroupLayout.PREFERRED_SIZE, 84,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(jLabel10)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jTextField8,

javax.swing.GroupLayout.PREFERRED_SIZE, 59,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(34, 34, 34)

.addComponent(jLabel14)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jTextField12,

javax.swing.GroupLayout.PREFERRED_SIZE, 59,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addContainerGap())

.addGroup(layout.createSequentialGroup()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEAD

ING)

.addComponent(jScrollPane2,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel1))

.addGap(32, 32, 32)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEAD

ING)

.addGroup(layout.createSequentialGroup()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEAD

ING)

.addComponent(jButton1,

javax.swing.GroupLayout.PREFERRED_SIZE, 90,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jButton2,

javax.swing.GroupLayout.PREFERRED_SIZE, 90,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addGap(32, 32, 32)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEAD

ING)

.addComponent(jLabel2,

Page 24: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

22

javax.swing.GroupLayout.Alignment.TRAILING)

.addComponent(jLabel3,

javax.swing.GroupLayout.Alignment.TRAILING)

.addComponent(jLabel4,

javax.swing.GroupLayout.Alignment.TRAILING))

.addGap(6, 6, 6)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENT

ER)

.addComponent(jTextField1,

javax.swing.GroupLayout.PREFERRED_SIZE, 59,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jTextField2,

javax.swing.GroupLayout.PREFERRED_SIZE, 59,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jTextField3,

javax.swing.GroupLayout.PREFERRED_SIZE, 59,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addGap(32, 32, 32)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAI

LING, false)

.addGroup(javax.swing.GroupLayout.Alignment.LEADING,

layout.createSequentialGroup()

.addGap(12, 12, 12)

.addComponent(jLabel6))

.addComponent(jLabel7)

.addComponent(jLabel8))

.addGap(6, 6, 6)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENT

ER)

.addComponent(jTextField5,

javax.swing.GroupLayout.PREFERRED_SIZE, 59,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jTextField6,

javax.swing.GroupLayout.PREFERRED_SIZE, 59,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jTextField7,

javax.swing.GroupLayout.PREFERRED_SIZE, 59,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addGap(32, 32, 32)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAI

LING)

.addComponent(jLabel11)

.addComponent(jLabel13,

javax.swing.GroupLayout.PREFERRED_SIZE, 80,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel12))

.addGap(6, 6, 6)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENT

ER)

.addComponent(jTextField11,

javax.swing.GroupLayout.PREFERRED_SIZE, 59,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jTextField9,

javax.swing.GroupLayout.PREFERRED_SIZE, 59,

javax.swing.GroupLayout.PREFERRED_SIZE)

Page 25: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

23

.addComponent(jTextField10,

javax.swing.GroupLayout.PREFERRED_SIZE, 59,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addContainerGap(30, Short.MAX_VALUE))

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,

layout.createSequentialGroup()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAI

LING)

.addGroup(layout.createSequentialGroup()

.addGap(0, 0, Short.MAX_VALUE)

.addComponent(jLabel5)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jTextField4,

javax.swing.GroupLayout.PREFERRED_SIZE, 554,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(layout.createSequentialGroup()

.addGap(61, 61, 61)

.addComponent(jButton13)

.addGap(18, 18, 18)

.addComponent(jButton5)

.addGap(18, 18, 18)

.addComponent(jButton6)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(jButton11,

javax.swing.GroupLayout.PREFERRED_SIZE, 162,

javax.swing.GroupLayout.PREFERRED_SIZE)))

.addGap(21, 21, 21))))))

);

layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,

layout.createSequentialGroup()

.addGap(12, 12, Short.MAX_VALUE)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASE

LINE)

.addComponent(jLabel1)

.addComponent(jLabel5)

.addComponent(jTextField4,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEAD

ING)

.addGroup(layout.createSequentialGroup()

.addGap(30, 30, 30)

.addComponent(jButton1)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jButton2))

.addGroup(layout.createSequentialGroup()

.addGap(21, 21, 21)

Page 26: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

24

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENT

ER)

.addComponent(jTextField11,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jTextField5,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jTextField1,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENT

ER)

.addComponent(jTextField2,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jTextField6,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jTextField9,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel11))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENT

ER)

.addComponent(jTextField3,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jTextField7,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jTextField10,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel12)))

.addGroup(layout.createSequentialGroup()

.addGap(24, 24, 24)

.addComponent(jLabel6))

.addGroup(layout.createSequentialGroup()

.addGap(24, 24, 24)

.addComponent(jLabel2))

.addGroup(layout.createSequentialGroup()

.addGap(50, 50, 50)

.addComponent(jLabel7))

.addGroup(layout.createSequentialGroup()

Page 27: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

25

.addGap(50, 50, 50)

.addComponent(jLabel3))

.addGroup(layout.createSequentialGroup()

.addGap(76, 76, 76)

.addComponent(jLabel8))

.addGroup(layout.createSequentialGroup()

.addGap(76, 76, 76)

.addComponent(jLabel4))

.addGroup(layout.createSequentialGroup()

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEAD

ING)

.addComponent(jScrollPane2,

javax.swing.GroupLayout.PREFERRED_SIZE, 96,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel13,

javax.swing.GroupLayout.PREFERRED_SIZE, 36,

javax.swing.GroupLayout.PREFERRED_SIZE))))

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEAD

ING)

.addGroup(layout.createSequentialGroup()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEAD

ING)

.addGroup(layout.createSequentialGroup()

.addGap(18, 18, 18)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEAD

ING)

.addComponent(jButton3,

javax.swing.GroupLayout.PREFERRED_SIZE, 14,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel9,

javax.swing.GroupLayout.PREFERRED_SIZE, 32,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addGap(0, 0, Short.MAX_VALUE))

.addGroup(layout.createSequentialGroup()

.addGap(2, 2, 2)

.addComponent(jButton11,

javax.swing.GroupLayout.PREFERRED_SIZE, 18,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 16,

Short.MAX_VALUE)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASE

LINE)

.addComponent(jButton4,

javax.swing.GroupLayout.PREFERRED_SIZE, 14,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jTextField8,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel10)

.addComponent(jLabel14)

.addComponent(jTextField12,

javax.swing.GroupLayout.PREFERRED_SIZE,

Page 28: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

26

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE))))

.addGap(8, 8, 8))

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,

layout.createSequentialGroup()

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASE

LINE)

.addComponent(jButton13,

javax.swing.GroupLayout.PREFERRED_SIZE, 28,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jButton5,

javax.swing.GroupLayout.PREFERRED_SIZE, 28,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jButton6,

javax.swing.GroupLayout.PREFERRED_SIZE, 28,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addGap(18, 18, 18)))

.addComponent(jScrollPane1,

javax.swing.GroupLayout.PREFERRED_SIZE, 283,

javax.swing.GroupLayout.PREFERRED_SIZE))

);

jLabel3.getAccessibleContext().setAccessibleName("Amplitude de

classe (h)");

jLabel3.getAccessibleContext().setAccessibleDescription("");

jLabel12.getAccessibleContext().setAccessibleDescription("");

jLabel14.getAccessibleContext().setAccessibleName("Σ Variância");

}// </editor-fold>

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

CalcularTabela();

}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

JCheckBox checkDados = new JCheckBox();

checkDados.setText("Dados Brutos");

checkDados.setSelected(true);

JCheckBox checkROL = new JCheckBox();

checkROL.setText("ROL");

checkROL.setSelected(true);

JCheckBox checkNKH = new JCheckBox();

checkNKH.setText("Valores N, k, h");

checkNKH.setSelected(true);

JCheckBox checkMedias = new JCheckBox();

checkMedias.setText("Médias");

checkMedias.setSelected(true);

JCheckBox checkTabela = new JCheckBox();

checkTabela.setText("Tabela");

checkTabela.setSelected(true);

if (JOptionPane.showOptionDialog(this, new Object[] { checkDados,

checkROL,checkNKH, checkMedias, checkTabela }, "Limpar dados",

JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, null,

null) == 0) {

Page 29: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

27

if (checkDados.isSelected()) {

LimparDados();

}

if (checkROL.isSelected()) {

LimparROL();

}

if (checkNKH.isSelected()) {

LimparNKH();

}

if (checkMedias.isSelected()) {

LimparMedias();

}

if (checkTabela.isSelected()) {

LimparTabela();

jTextField8.setText(null);

}

LimparVariancia();

jButton13.setEnabled(false);

jButton11.setEnabled(false);

jButton5.setEnabled(false);

jButton4.setEnabled(false);

jButton3.setEnabled(false);

}

}

private void jButton11ActionPerformed(java.awt.event.ActionEvent evt) {

if (jTextField10.getText().equalsIgnoreCase("")) {

JOptionPane.showMessageDialog(this, "Calcule alguma coisa!",

"Erro na tabela.", JOptionPane.ERROR_MESSAGE);

} else {

if (N<30) {

JOptionPane.showMessageDialog(this, "A regra empírica da

amplitude do desvio padrão só é válida para amostras maiores que 30.",

"Amplitude do desvio padrão", JOptionPane.INFORMATION_MESSAGE);

}

JOptionPane.showMessageDialog(this,

"68% dos dados (1 desvio padrão) estão entre "

+ df.format(media + desviopadrao) + " e "

+ df.format(media - desviopadrao) + ".\n"

+ "95% dos dados (2 desvios padrão) estão entre "

+ df.format(media + 2*desviopadrao) + " e "

+ df.format(media - 2*desviopadrao) + ".\n"

+ "99,7% dos dados (3 desvios padrão) estão entre "

+ df.format(media + 3*desviopadrao) + " e "

+ df.format(media - 3*desviopadrao) + ".\n"

, "Regra empírica da amplitude do desvio padrão",

JOptionPane.PLAIN_MESSAGE);

}

}

private void jButton13ActionPerformed(java.awt.event.ActionEvent evt) {

try {

JFileChooser fileChooser = new JFileChooser();

fileChooser.setName("tabela.csv");

fileChooser.setFileFilter(new FileNameExtensionFilter("CSV

(separado por ponto-e-vírgula) (*.csv)", "csv"));

if (fileChooser.showSaveDialog(this) ==

JFileChooser.APPROVE_OPTION) {

File file = fileChooser.getSelectedFile();

if (!file.toString().endsWith(".csv")) {

Page 30: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

28

file = new File(file.getAbsolutePath() + ".csv");

}

if (!file.exists()) {

file.createNewFile();

}

BufferedWriter bw = new BufferedWriter(new

OutputStreamWriter(new FileOutputStream(file.getAbsoluteFile()),

"8859_1"));

int colvar = 10, colfx = 10;

for (int i=0; i<15; i++) {

try {

String linha = "";

String header = "";

for (int j=0; j<jTable1.getColumnCount(); j++) {

if (i == 0) {

header += jTable1.getColumnName(j) + ";";

if

(jTable1.getColumnName(j).equalsIgnoreCase("Variância")) {

colvar = j;

} else if

(jTable1.getColumnName(j).equalsIgnoreCase("f.x")) {

colfx = j;

}

}

linha += jTable1.getValueAt(i, j).toString() +

";";

}

if (i == 0) {

bw.write(header);

}

bw.newLine();

bw.write(linha);

} catch (Exception ex) { continue; }

}

// soma de fx e variancia

String linha = "";

for (int j=0; j<jTable1.getColumnCount(); j++) {

if (j == colvar) {

linha += jTextField12.getText();

}

if (j == colfx) {

linha += jTextField8.getText();

}

linha += ";";

}

bw.newLine();

bw.write(linha);

linha = "";

for (int j=0; j<jTable1.getColumnCount() -5; j++) {

linha += ";";

}

bw.newLine();

bw.write(";;" + linha);

// media, mediana, moda

// variancia, desvio padrao, coeficiente de variacao

Page 31: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

29

bw.newLine();

bw.write(";Média:;" + jTextField5.getText() +

";;Variância:;" + jTextField9.getText() + linha);

bw.newLine();

bw.write(";Mediana:;" + jTextField6.getText() + ";;Desvio

Padrão:;" + jTextField10.getText() + linha);

bw.newLine();

bw.write(";Moda:;" + jTextField7.getText() + ";;Coeficiente

de Variação:;" + jTextField11.getText() + linha);

bw.close();

}

} catch (IOException e) { }

}

private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {

try {

DefaultTableModel model = (DefaultTableModel)

jTable1.getModel();

// Acha as colunas onde vão as somatórias

int colvar=0,colfx=1;

for (int j=0; j<jTable1.getColumnCount(); j++) {

if (jTable1.getColumnName(j).equalsIgnoreCase("Variância"))

{

colvar = j;

} else if

(jTable1.getColumnName(j).equalsIgnoreCase("f.x")) {

colfx = j;

}

}

// Cria a linha com somatoria fx e variância

Vector linha = new Vector();

for (int i=0; i<jTable1.getColumnCount(); i++) {

if (i == colvar) {

linha.add("Σ " + jTextField12.getText());

} else if (i == colfx) {

linha.add("Σ " + jTextField8.getText());

} else {

linha.add("");

}

}

// Adiciona os valores calculados na tabela para impressão.

model.addRow(linha);

model.addRow(new Object[] { null });

model.addRow(new Object[] {

null, "Média:", jTextField5.getText(), null,

"Variância:", jTextField9.getText()

});

model.addRow(new Object[] {

null, "Mediana:", jTextField6.getText(), null,

"Desvio Padrão:", jTextField10.getText()

});

model.addRow(new Object[] {

null, "Moda:", jTextField7.getText(), null, "Coef.

Variação:", jTextField11.getText()

});

// Imprime

; jTable1.print(JTable.PrintMode.FIT_WIDTH, // FIT_WIDTH todas

Page 32: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

30

as colunas em uma page

new MessageFormat("Tabela de Distribuição de

Frequências:"),

new MessageFormat(""));

// Remove as linhas adicionais

model.removeRow(model.getRowCount()-1);

model.removeRow(model.getRowCount()-1);

model.removeRow(model.getRowCount()-1);

model.removeRow(model.getRowCount()-1);

model.removeRow(model.getRowCount()-1);

} catch (PrinterException e) {

JOptionPane.showMessageDialog(this, e.getMessage(), "Erro na

impressão", JOptionPane.ERROR_MESSAGE);

}

}

private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {

JLabel about = new JLabel();

about.setText( "<html>Programa desenvolvido como projeto de PPI da

Faculdade Sumaré pelos"

+ "<br>alunos de Ciências da Computação do 3.o

Semestre M1 em maio/2015:<br>"

+ "<ul style=\"list-style-type:none\">"

+ "<li>José Eduardo de Araujo Nunes, RA

1413355</li>"

+ "<li>Hugo Vinicius de Melo Silva, RA

1415321</li>"

+ "<li>Kleber Ramos Freitas Leite, RA 1310267</li>"

+ "<li>Carlos Felix dos Santos, RA 1417022</li>"

+ "<li>Andrio Lino Feijo, RA 1312413</li>"

+ "</ul><br>"

+ "Agradecimentos especiais aos colaboradores:<br>"

+ "<ul style=\"list-style-type:none\">"

+ "<li>Cristiane Grala Roldão</li>"

+ "<li>Roberta Simielli ❤</li>"

+ "<li>William Martins de Souza</li>"

+ "<li>Marcos de Araujo Lopes</li>"

+ "</ul><br></html>");

JLabel url = new JLabel();

url.setText("<html>Visite-nos: <a

href='http://turma2017.orienta.com.br'>http://turma2017.orienta.com.br</a><

/html>");

url.addMouseListener(new MouseAdapter() {

public void mouseClicked(MouseEvent e)

{

try {

Desktop.getDesktop().browse(new

URL("http://turma2017.orienta.com.br").toURI());

} catch (Exception eX) { }

}

});

JOptionPane.showOptionDialog(this, new Object[] { about, url },

"Sobre o Programa", JOptionPane.DEFAULT_OPTION,

JOptionPane.INFORMATION_MESSAGE, null, null, null);

}

Page 33: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

31

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {

JLabel texto = new JLabel();

texto.setText("Escolha de qual frequência gerar o gráfico.");

ButtonGroup grupo = new ButtonGroup();

JRadioButton checkf = new JRadioButton();

checkf.setText("f: Frequência Absoluta");

checkf.setSelected(true);

grupo.add(checkf);

JRadioButton checkF = new JRadioButton();

checkF.setText("F: Frequência Acumulada");

grupo.add(checkF);

JRadioButton checkfr = new JRadioButton();

checkfr.setText("fr: Frequência Relativa");

grupo.add(checkfr);

JRadioButton checkFr = new JRadioButton();

checkFr.setText("Fr: Frequência Relativa Acumulada");

grupo.add(checkFr);

if (JOptionPane.showOptionDialog(this, new Object[] {

texto, checkf,

checkF, checkfr, checkFr

}, "Gerar

gráfico de barras ou histograma", JOptionPane.OK_CANCEL_OPTION,

JOptionPane.QUESTION_MESSAGE, null, null, null) == 0) {

if (checkf.isSelected()) {

System.out.println("Grafico f");

}

if (checkF.isSelected()) {

System.out.println("Grafico F");

}

if (checkfr.isSelected()) {

System.out.println("Grafico fr");

}

if (checkFr.isSelected()) {

System.out.println("Grafico Fr");

}

}

}

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {

JLabel texto = new JLabel();

texto.setText("Escolha de qual frequência gerar o gráfico.");

ButtonGroup grupo = new ButtonGroup();

JRadioButton checkf = new JRadioButton();

checkf.setText("f: Frequência Absoluta");

checkf.setSelected(true);

grupo.add(checkf);

JRadioButton checkF = new JRadioButton();

checkF.setText("F: Frequência Acumulada");

grupo.add(checkF);

JRadioButton checkfr = new JRadioButton();

checkfr.setText("fr: Frequência Relativa");

grupo.add(checkfr);

JRadioButton checkFr = new JRadioButton();

checkFr.setText("Fr: Frequência Relativa Acumulada");

grupo.add(checkFr);

if (JOptionPane.showOptionDialog(this, new Object[] {

texto, checkf,

checkF, checkfr, checkFr

}, "Gerar

Page 34: Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de ...facsumare.nunes.net.br/00519_62/Trabalho PPI.pdf · Faculdade Sumaré, Trabalho de PPI - 3o Semestre, Turma de Ciências

32

gráfico de polígono", JOptionPane.OK_CANCEL_OPTION,

JOptionPane.QUESTION_MESSAGE, null, null, null) == 0) {

if (checkf.isSelected()) {

System.out.println("Grafico f");

}

if (checkF.isSelected()) {

System.out.println("Grafico F");

}

if (checkfr.isSelected()) {

System.out.println("Grafico fr");

}

if (checkFr.isSelected()) {

System.out.println("Grafico Fr");

}

}

}

// Variables declaration - do not modify

private javax.swing.ButtonGroup buttonGroup1;

private javax.swing.JButton jButton1;

private javax.swing.JButton jButton11;

private javax.swing.JButton jButton13;

private javax.swing.JButton jButton2;

private javax.swing.JButton jButton3;

private javax.swing.JButton jButton4;

private javax.swing.JButton jButton5;

private javax.swing.JButton jButton6;

private javax.swing.JLabel jLabel1;

private javax.swing.JLabel jLabel10;

private javax.swing.JLabel jLabel11;

private javax.swing.JLabel jLabel12;

private javax.swing.JLabel jLabel13;

private javax.swing.JLabel jLabel14;

private javax.swing.JLabel jLabel2;

private javax.swing.JLabel jLabel3;

private javax.swing.JLabel jLabel4;

private javax.swing.JLabel jLabel5;

private javax.swing.JLabel jLabel6;

private javax.swing.JLabel jLabel7;

private javax.swing.JLabel jLabel8;

private javax.swing.JLabel jLabel9;

private javax.swing.JScrollPane jScrollPane1;

private javax.swing.JScrollPane jScrollPane2;

private javax.swing.JTable jTable1;

private javax.swing.JTextArea jTextArea1;

private javax.swing.JTextField jTextField1;

private javax.swing.JTextField jTextField10;

private javax.swing.JTextField jTextField11;

private javax.swing.JTextField jTextField12;

private javax.swing.JTextField jTextField2;

private javax.swing.JTextField jTextField3;

private javax.swing.JTextField jTextField4;

private javax.swing.JTextField jTextField5;

private javax.swing.JTextField jTextField6;

private javax.swing.JTextField jTextField7;

private javax.swing.JTextField jTextField8;

private javax.swing.JTextField jTextField9;

// End of variables declaration

}