Prueba regresion lineal

2,450 views
2,310 views

Published on

1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total views
2,450
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
38
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Prueba regresion lineal

  1. 1. Fecha de Entrega: 01 de diciembre de 2011. Integrantes: -Robert Calbul Yevilao. -Camilo Friz Gómez. -Jonathan Lincoqueo. -Diego Tapia .
  2. 2. Actividades de Aplicación:Objetivos: Desarrollar una aplicación basada en la arquitectura Cliente-Servidorde tres niveles (MVC: Modelo-Vista-Controlador). Debe presentar dos alternativasde solución al problema de ayudar a ajustar una curva, usando regresión lineal,para lo cual, la aplicación debe permitir al usuario ingresar los puntos (x,y) en unabase de datos MySql.Paso 1: Ejemplos Entrada/Salida: ENTRADA > [PROGRAMA] > Salida 12.5,1.3 > [PROGRAMA] > Éxito al ingresar. 12,10 > [PROGRAMA] > Éxito al ingresar. 1.0,1.5 > [PROGRAMA] > Éxito al ingresar. Abc,1.5 A > [PROGRAMA] > Error en el ingreso de datos. ABC,d-c > [PROGRAMA] > Error en el ingreso de datos. 1-5,1-2 > [PROGRAMA] > Error en el ingreso de datos. @1,# > [PROGRAMA] > Error en el ingreso de datos. 12.1,10.1 > [PROGRAMA] > Éxito al ingresar. 10 > [PROGRAMA] > Error en el ingreso de datos. 1.2 > [PROGRAMA] > Error en el ingreso de datos. > [PROGRAMA] > Error en el ingreso de datos. 2,45,67 > [PROGRAMA] > Error en el ingreso de datos. 0012,0010 > [PROGRAMA] > Éxito al ingresar. 1 2,1,2 > [PROGRAMA] > Error en el ingreso de datos. Tres,cuatro > [PROGRAMA] > Error en el ingreso de datos.
  3. 3. Diagramas de Clases:
  4. 4. Puebla en swing.Diagrama Clases
  5. 5. Prueba en consola
  6. 6. Diagrama flujos programa swingDiagrama de flujos- programa consola
  7. 7. Codigo Fuente Programa swing:
  8. 8. import com.mysql.jdbc.PreparedStatement;import conexion.conexion;import java.awt.Color;import java.sql.SQLException;import java.util.logging.Level;import java.util.logging.Logger;import javax.swing.*;import java.awt.event.*;import java.sql.ResultSet;import java.util.*;import javax.swing.table.DefaultTableModel;public class Prueba21 implements ActionListener{ String tabla; conexion con; JFrame ventana=new JFrame( "Regresion lineal" ); 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();
  9. 9. JPanel p2= new JPanel();JPanel p3= new JPanel();int contador=0;String funcion; private JButton consulta; private JLabel jLabel2; private JLabel jLabel3; private JLabel jLabel4; private JTextField texto_a; private JTextField texto_b; private JTextField texto_r; public JPanel panel1(JPanel jPanel1){ jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder()); jLabel4 = new JLabel(); texto_r = new JTextField(); texto_b = new JTextField(); jLabel3 = new JLabel(); jLabel2 = new JLabel(); texto_a = new JTextField(); consulta = new JButton(); jPanel1.setLayout(null);
  10. 10. jLabel4.setText( "R²:" ); consulta.setText( "consultar datos" ); jLabel3.setText( "b: " ); jLabel2.setText( "a: " ); jPanel1.add(consulta); jPanel1.add(jLabel4); jPanel1.add(texto_r); jPanel1.add(texto_b); jPanel1.add(jLabel3); jPanel1.add(jLabel2); jPanel1.add(texto_a); consulta.addActionListener(this); jPanel1.setBackground(Color.white); jPanel1.setBounds(380, 20, 300, 140); texto_a.setBounds(50, 80, 230, 20); texto_r.setBounds(50, 110, 230, 20); consulta.setBounds(20, 10, 130, 23); jLabel3.setBounds(20, 80, 47, 20); texto_b.setBounds(50, 50, 230, 20); jLabel2.setBounds(20, 50, 47, 14); jLabel4.setBounds(20, 110, 190, 14);return jPanel1;}private JButton eliminar_fila;
  11. 11. private JButton eliminar_fila_n;private JTextField fila_ingreso;private JLabel jLabel10;private JLabel jLabel11;private JLabel jLabel9;public JPanel panel2(JPanel jPanel2){ jPanel2 = new JPanel(); jLabel9 = new JLabel(); eliminar_fila = new JButton(); eliminar_fila_n = new JButton(); fila_ingreso = new JTextField(); jLabel10 = new JLabel(); jLabel11 = new JLabel(); jPanel2.setBorder(javax.swing.BorderFactory.createEtchedBorder()); jPanel2.setLayout(null); jLabel9.setText( "Eliminar fila anterior" ); eliminar_fila.setText( "OK" ); eliminar_fila_n.setText( "OK" ); jLabel10.setText( "ingrese n° de fila" ); jLabel11.setText( "Eliminar fila " ); jPanel2.add(jLabel9);
  12. 12. jPanel2.add(eliminar_fila); jPanel2.add(eliminar_fila_n); jPanel2.add(jLabel11); jPanel2.add(jLabel10); jPanel2.setLayout(null); jPanel2.add(fila_ingreso); eliminar_fila.addActionListener(this); eliminar_fila_n .addActionListener(this); jPanel2.setBackground(Color.white); jPanel2.setBounds(380, 170, 300, 130); jLabel11.setBounds(20, 20, 100, 14); jLabel10.setBounds(20, 40, 110, 20); fila_ingreso.setBounds(130, 40, 50, 20); eliminar_fila_n.setBounds(200, 40, 80, 20); eliminar_fila.setBounds(80, 100, 130, 23); jLabel9.setBounds(50, 80, 180, 14);return jPanel2;}private JButton guardar_salir;private JLabel jLabel1;private JLabel jLabel8;private JPanel jPanel3;public JPanel panel3(JPanel jPanel3,String e[],Object[][] matriz){
  13. 13. jScrollPane1 = new JScrollPane(); jTable1 = new JTable(); jTable1.setModel(new DefaultTableModel(matriz,e)); modelo=(DefaultTableModel) jTable1.getModel(); jScrollPane1.setViewportView(jTable1); guardar_salir = new JButton(); jLabel1 = new JLabel(); jLabel8 = new JLabel(); jPanel3.setLayout(null); guardar_salir.setText( "guardar y salir" ); jLabel1.setText( "tabla de datos" ); jLabel8.setText( "jonathan Lincoqueo - Camilo Friz - Robert Calbul - DiegoTapia" ); jPanel3.add(guardar_salir); jPanel3.add(jLabel1); jPanel3.add(jLabel8); jPanel3.add(jScrollPane1); guardar_salir.addActionListener(this); jTable1.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent e)
  14. 14. { int fila = jTable1.rowAtPoint(e.getPoint()); fila_ingreso.setText( "" +fila); }}); jPanel3.setBackground(Color.white); jPanel3.setBounds(0, 0, 690, 450); jLabel1.setBounds(21, 5, 144, 19); jScrollPane1.setBounds(10, 32, 340, 390); jLabel8.setBounds(60, 430, 620, 14); guardar_salir.setBounds(420, 330, 230, 70);return jPanel3;}Prueba21(String tabla,String funcion) throws SQLException{ this.funcion=funcion; this.tabla=tabla; Object[][] filas= {{null,null}}; String enunciados[]={ " x " , " y " }; panel3(p1,enunciados,filas); p1.add(panel1(p2)); p1.add(panel2(p3)); if(funcion.equals( "select " )){ llenar_tabla(); } ventana.setLayout(null);
  15. 15. ventana.add(p1); ventana.setSize(700,500); ventana.setVisible(true); jTable1.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent evt) { if(modelo.getValueAt(contador,0)!=null &&modelo.getValueAt(contador,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(); while (rs.next()) {
  16. 16. System.out.println(rs.getDouble(2)+ " " +rs.getDouble(3)); modelo.addRow(new Object[0]); modelo.setValueAt(rs.getDouble(2)+ "" ,contador,0); modelo.setValueAt(rs.getDouble(3)+ "" ,contador,1); contador++; } modelo.removeRow(modelo.getRowCount()-1); contador--; 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(); } } public void generar_listas(){
  17. 17. try{ for(int filas=0;filas<=contador;filas++){ double datos_x=Double.parseDouble(modelo.getValueAt(filas,0)+ "" ); double datos_y=Double.parseDouble(modelo.getValueAt(filas,1)+ "" ); lista.add(new x_e_y(filas,datos_x,datos_y)); System.out.println( "raro muy raro" ); }}catch(NumberFormatException e){JOptionPane.showMessageDialog(null,"ingrese solo numeros y/o valide losnumerosn validacion == enter","Error",JOptionPane.ERROR_MESSAGE);}} } public void actionPerformed(ActionEvent e) { Object fuente = e.getSource(); if (fuente==eliminar_fila && modelo.getRowCount()!=0){ modelo.removeRow(modelo.getRowCount()-1); contador--; } if (fuente==eliminar_fila_n && modelo.getRowCount()!=0){ modelo.removeRow(Integer.parseInt(fila_ingreso.getText())); fila_ingreso.setText( "" ); contador--; } if (fuente==guardar_salir) {
  18. 18. contador--; lista.clear(); generar_listas(); try { insertar(); } catch (SQLException ex) { Logger.getLogger(Prueba21.class.getName()).log(Level.SEVERE, null,ex); } } if (fuente==consulta){ lista.clear(); generar_listas(); if(!funcion.equals( "select" )) { contador --; } calculo(); } } public void calculo(){ double promedio_x=0,promedio_y=0,suma_x=0,suma_y=0,suma_x_e_y=0; contador++; double x_menos_promedio_x[]=new double[contador]; double y_menos_promedio_y[]=new double[contador];
  19. 19. for (Iterator <x_e_y>datos= lista.iterator(); datos.hasNext();){ x_e_y e= datos.next(); System.out.println( "x" +e.getX()); suma_x+=e.getX(); suma_y+=e.getY();}promedio_x=suma_x/contador;promedio_y=suma_y/contador;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;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];}
  20. 20. double resultado_b=(suma_x_e_y/suma_x_cuadrado); doubleresultado_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); } }
  21. 21. FUENTE PROGRAMA CONSOLA:
  22. 22. MODELADO BASE DE DATOS:
  23. 23. CAPTURAS:Programa en swing
  24. 24. Programa consola

×