Académique Documents
Professionnel Documents
Culture Documents
lineal
Fecha: 24-06-2012
Nombres:
Freddy Crdenas
Sebastin Muoz
Juan Carlos Vergara
Actividades de Aplicacin:
>
15.2,3.3
>
11,40
[PROGRAMA]
[PROGRAMA]
>
2,0,1,5
>
[PROGRAMA]
>
Abc,2,4 S
>
ABC,d-c
>
Salida
>
xito al ingresar
>
xito al ingresar
[PROGRAMA]
>
xito al ingresar
[PROGRAMA]
>
Error al ingreso
[PROGRAMA]
>
Error al ingreso
1-2,1-3
>
[PROGRAMA]
>
Error al ingreso
@1#
>
[PROGRAMA]
>
Error al ingreso
12.1,11.2
>
[PROGRAMA]
>
Error al ingreso
System.out.println("prox"+promedio_x);
System.out.println("proy"+promedio_y);
int i=0;
for (Iterator <x_e_y>datos= lista.iterator(); datos.hasNext();){
x_e_y e= datos.next();
suma_x_e_y+=(e.getX()-promedio_x)*(e.getY()-promedio_y);
x_menos_promedio_x[i]=(e.getX()-promedio_x);
y_menos_promedio_y[i]=(e.getY()-promedio_y);
i++;
}
double suma_x_cuadrado=0,suma_y_cuadrado=0;
System.out.println("sumassss"+suma_x_e_y);
for(int jj=0;jj<contador;jj++){
suma_x_cuadrado+=((x_menos_promedio_x[jj])*(x_menos_promedio_x[jj]));
suma_y_cuadrado+= y_menos_promedio_y[jj]* y_menos_promedio_y[jj];
}
double resultado_b=(suma_x_e_y/suma_x_cuadrado);
double
resultado_r=((suma_x_e_y*suma_x_e_y)/(suma_x_cuadrado*suma_y_cuadrado));
double resultado_a=(promedio_y-(resultado_b*promedio_x));
texto_b.setText(""+resultado_b);
texto_a.setText(""+resultado_a);
texto_r.setText(""+resultado_r);
} }
Diagrama de clases.
com.mysql.jdbc.PreparedStatement;
conexion.conexion;
java.awt.Color;
java.sql.SQLException;
java.util.logging.Level;
java.util.logging.Logger;
javax.swing.*;
import
import
import
import
java.awt.event.*;
java.sql.ResultSet;
java.util.*;
javax.swing.table.DefaultTableModel;
/**
*
* @author Juan Vergara
*/
public class Prueba21 implements ActionListener
{
String tabla;
conexion con;
boolean estado;
JFrame ventana=new JFrame("Regresion lineal");
int control=0;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
DefaultTableModel modelo;
List <x_e_y> lista=new ArrayList <x_e_y>();
JScrollPane j=new JScrollPane();
JPanel p1= new JPanel();
JPanel p2= new JPanel();
JPanel p3= new JPanel();
int contador=0;
String funcion;
private
private
private
private
private
private
private
JButton consulta;
JLabel jLabel2;
JLabel jLabel3;
JLabel jLabel4;
JTextField texto_a;
JTextField texto_b;
JTextField texto_r;
JButton eliminar_fila;
JButton eliminar_fila_n;
JTextField fila_ingreso;
JLabel jLabel10;
JLabel jLabel11;
JLabel jLabel9;
private
private
private
private
JButton guardar_salir;
JLabel jLabel1;
JLabel jLabel8;
JPanel jPanel3;
"};
panel3(p1,enunciados,filas);
p1.add(panel1(p2));
if(funcion.equals("select")){
llenar_tabla();
final String a=funcion;
}
ventana.setLayout(null);
ventana.add(p1);
ventana.setSize(700,500);
ventana.setVisible(true);
jTable1.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent evt) {
control=contador;
if(estado)
contador++;
if(modelo.getValueAt(control
,0)!=null&&modelo.getValueAt(control ,1)!=null){
modelo.addRow(new Object[0]);
contador++;
}
}
});
}
public void llenar_tabla() throws SQLException{
con=new conexion();
PreparedStatement select= (PreparedStatement)
con.getConexionMysql().prepareStatement(""
+ "select * from "+this.tabla);
ResultSet rs = select.executeQuery();
// extract data from the ResultSet
while (rs.next()) {
modelo.addRow(new Object[0]);
modelo.setValueAt(rs.getDouble(2)+"",contador,0);
modelo.setValueAt(rs.getDouble(3)+"",contador,1);
contador++;
estado=true;
}
if(contador!=0){
contador--;
estado=false;
}
modelo.removeRow(modelo.getRowCount()-1);
con.closeConexionMysql();
}
public void insertar() throws SQLException{
con=new conexion();
PreparedStatement delete= (PreparedStatement)
con.getConexionMysql().prepareStatement(""
+ "delete from "+this.tabla+";");
delete.executeUpdate();
PreparedStatement insert= (PreparedStatement)
con.getConexionMysql().prepareStatement(""
+"INSERT INTO "+this.tabla+"(x,y)values(?,?);");
for (Iterator <x_e_y>datos= lista.iterator(); datos.hasNext();){
x_e_y e= datos.next();
insert.setDouble(1,e.getX());
insert.setDouble(2,e.getY());
insert.executeUpdate();
}
}
boolean estado2=true;
public
void generar_listas(){
for(int filas=0;filas<contador;filas++){
try{
double
datos_x=Double.parseDouble(modelo.getValueAt(filas,0)+"");
double
datos_y=Double.parseDouble(modelo.getValueAt(filas,1)+"");
lista.add(new x_e_y(datos_x,datos_y));
estado2=true;
}
catch(NumberFormatException e){
JOptionPane.showMessageDialog(null,"ingrese solo numeros y/o
"
+ "valide los numeros\n validacion == enter",
"Error",JOptionPane.ERROR_MESSAGE);
estado2=false;
}
}
}
@Override
public void actionPerformed(ActionEvent e) {
Object fuente = e.getSource();
if (fuente==eliminar_fila && modelo.getRowCount()!=0){
modelo.removeRow(modelo.getRowCount()-1);
contador--;
control--;
}
int i=0;
for (Iterator <x_e_y>datos= lista.iterator(); datos.hasNext();){
x_e_y e= datos.next();
suma_x_e_y+=(e.getX()-promedio_x)*(e.getY()-promedio_y);
x_menos_promedio_x[i]=(e.getX()-promedio_x);
y_menos_promedio_y[i]=(e.getY()-promedio_y);
i++;
}
double suma_x_cuadrado=0,suma_y_cuadrado=0;
System.out.println("sumassss"+suma_x_e_y);
for(int jj=0;jj<contador;jj++){
suma_x_cuadrado+=((x_menos_promedio_x[jj])*(x_menos_promedio_x[jj]));
suma_y_cuadrado+= y_menos_promedio_y[jj]* y_menos_promedio_y[jj];
}
double resultado_b=(suma_x_e_y/suma_x_cuadrado);
double
resultado_r=((suma_x_e_y*suma_x_e_y)/(suma_x_cuadrado*suma_y_cuadrado));
double resultado_a=(promedio_y-(resultado_b*promedio_x));
/*
if(suma_x_e_y==0 ||suma_x_cuadrado==0){
resultado_a=promedio_y;
resultado_r=1;
}*/
texto_b.setText(""+resultado_b);
texto_a.setText(""+resultado_a);
texto_r.setText(""+resultado_r);
} }
package prueba2;
import com.mysql.jdbc.PreparedStatement;
import com.mysql.jdbc.exceptions.MySQLSyntaxErrorException;
import conexion.conexion;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
/**
*
* @author Juan Vergara
*/
public final class opciones_de_inicio implements ActionListener{
JFrame ventana=new JFrame("programa Regrecion lineal");
JPanel p;
opciones_de_inicio(){
ventana.setLayout(null);
ventana.setSize(600,250);
p=new JPanel();
p.setLayout(null);
p.setBackground(Color.white);
p.add(boton2);
p.add(texto2);
p.add(texto);
p.add(text);
p.setSize(600,250);
ventana.add(p);
ventana.setResizable(false);
ventana.setVisible(true);
boton2.addActionListener(this);
boton2.setVisible(true);
texto2.setVisible(true);
boton2.setBounds(410, 79, 144, 23);
texto2.setBounds(10, 79, 230, 14);
text.setBounds(230, 79, 144, 20);
boton2.setText("Aceptar");
texto2.setText("Ingrese Nombre de la tabla");
}
JPanel p2=new JPanel();
JLabel texto=new JLabel();
JLabel texto2=new JLabel();
JTextField text=new JTextField();
JButton boton2=new JButton("aceptar");
public static void main(String argc []){
opciones_de_inicio i=new opciones_de_inicio();
}
public void crear_tabla(String nombre) throws SQLException{
conexion con=new conexion();
try {
PreparedStatement insert1 = (PreparedStatement)
con.getConexionMysql().prepareStatement(""
+ "create table "+nombre
+ " (id int not null auto_increment primary key ,"
+ " x double not null ,"
+ " y double not null)");
insert1.executeUpdate();
con.closeConexionMysql();
}
catch(MySQLSyntaxErrorException e){
JOptionPane.showMessageDialog(null,"la tabla ya existe o el nombre no
es valido"
+ "","Error",JOptionPane.ERROR_MESSAGE);
}
}
@Override
public void actionPerformed(ActionEvent e) {
Object fuente = e.getSource();
if(fuente==boton2){
try {
crear_tabla(text.getText());
Prueba21 p=new Prueba21(text.getText(),"insert");
text.setText("");
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null,"la base de datos ya
existe o el nombre no es valido"
+ "","Error",JOptionPane.ERROR_MESSAGE);
}
}
}
}
Class x_e_y.
package prueba2;
public class x_e_y {
double x;
double y;
public x_e_y( double x, double y) {
this.x = x;
this.y = y;
}
Clase main
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;
/**
*
* @author alexander
*/
public class Rxxyy {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
int a;
String s=l.nextLine();
if(s.equalsIgnoreCase("si")){
System.out.println("ingrese cantidad de puntos a ingresar");
a = l.nextInt();
String info1;
System.out.println("desea calcular regreecion lineal");
System.out.println("SI/NO");
info1 = l.next();
while (info1.equalsIgnoreCase("si")) {
" +
System.out.println("valor de b es
" +
regresion.a);
regresion.b);
System.out.println("********************** ");
System.out.println("Indice de correlacin R" +
regresion.correlacion());
info1="no";
}
String info;
System.out.println("desea guardar en la base de datos");
System.out.println("SI/NO");
info = l.nextLine();
if (info.equalsIgnoreCase("si")){
ConexionMysql conMysql = new ConexionMysql();
try {
String cpersona = "insert into rxy values(?,?)";
for (int c = 0; c < a; c++) {
PreparedStatement ps =
conMysql.getConexionMysql().prepareStatement(cpersona);
ps.setDouble(1, xa[c]);
ps.setDouble(2, ya[c]);
int g = ps.executeUpdate();
} catch (SQLException e) {
System.out.println("Error en la consulta a nuestra Base de Datos:
" + e.getMessage());
} finally {
conMysql.closeConexionMysql();
}
}
} else
{
int cont=0;
ConexionMysql conMysql = new ConexionMysql();
try {
Statement st = conMysql.getConexionMysql().createStatement();
ResultSet rs = st.executeQuery("select * from rxy");
while (rs.next()) {
//guardamos en un arraylist del tipo personas los registros
de la tabla personas//
//lista_puntos.add(new personas(rs.getString("rut"),
rs.getString("nombre"), rs.getInt("edad")));
cont++;
//mostramos los registros de la tabla persona//
}
while (rst.next()) {
listax.add(rs.getDouble("x"));
listay.add(rs.getDouble("y"));
//dx[in]=Double.parseDouble(rst.getString(1));
// dy[in]=Double.parseDouble(rst.getString(2));
// in++;
}
while(ity.hasNext())
{
dy[ina]=listax.get(ina);
ina++;
}
" + reg.a);
System.out.println("valor de b es
" + reg.b);
System.out.println("********************** ");
System.out.println("Indice de correlacin R" +
reg.correlacion());
} catch (SQLException e) {
System.out.println("Error en la consulta a nuestra Base de Datos:
" + e.getMessage());
} finally {
conMysql.closeConexionMysql();
}
}
}
}
Clase regrecion
package rxxyy;
/**
*
* @author alexander
*/
public class Regresion {
private double[] x;
private double[] y;
private int n;
public double a, b;
//nmero de datos
//pendiente y ordenada en el origen
b=(n*pxy-sx*sy)/(n*sx2-sx*sx);
a=(sy-b*sx)/n;
}
public double correlacion(){
//valores medios
double suma=0.0;
for(int i=0; i<n; i++){
suma+=x[i];
}
double mediaX=suma/n;
suma=0.0;
for(int i=0; i<n; i++){
suma+=x[i];
}
double mediaY=suma/n;
//coeficiente de correlacin
double pxy, sx2, sy2;
pxy=sx2=sy2=0.0;
for(int i=0; i<n; i++){
pxy+=(x[i]-mediaX)*(y[i]-mediaY);
sx2+=(x[i]-mediaX)*(x[i]-mediaX);
sy2+=(y[i]-mediaY)*(y[i]-mediaY);
}
return pxy/Math.sqrt(sx2*sy2);
}
Clase conexin
package rxxyy;
import com.mysql.jdbc.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public ConexionMysql() {
this.CnxMysql = conectar();
}
System.out.println("conectado a Mysql.");
return conMysql;
Capturas:
Aplicacin Swing.
Programa en Consola:
Conclusiones
La aplicacin basada en la arquitectura Cliente-Servidor, el grupo desarrollo
una solucin para poder lograr los objetivos planteados logrando conocer y
operar satisfactoriamente sobre la arquitectura cliente-servidor. Utilizando los
elementos claves para el desarrollo de este, presentando soluciones
satisfactorias para cumplir con lo desarrollado anteriormente a travs de la
problemtica planteada, siendo estos objetivos alcanzados satisfactoriamente
con la ayuda de diferentes programas (NetBean, MYSQL), teniendo una
relacin e interaccin del usuario y la aplicacin.