miércoles, 20 de febrero de 2019

PROGRAMACION ORIENTADO OBJETOS EN JAVA

PROGRAMACION ORIENTADO OBJETOS EN JAVA 
===========================================


Ejercicio 1:
=========
Cree un proyecto nuevo de nombre P01E01. Cree un paquete nuevo de nombre modelo y diseñe una clase de nombre Producto con los siguientes atributos privados: código (cadena), descripción (cadena), precio (real) y con los métodos públicos get/set. Cree un nuevo paquete de nombre vista y diseñe la GUI en un Panel de nombre PanelPrincipal para el ingreso de los datos con el siguiente diseño:
Cada vez que hace clic en el botón Nuevo debe crear un objeto de la clase Producto y mostrar la información de sus atributos. Cada vez que hace clic en el botón Borrar debe borrar la información del área de texto, de las cajas de texto y enfocar el ingreso en la caja de texto del código.

Solucion:
---------------

Diseñamos una clase, de nombre Producto
Con los siguientes atributos privados: código (cadena), descripción (cadena), precio (real) y los métodos públicos get/set. Considere un constructor implícito.

public class Producto {
// atributos privados
private String codigo,
private String descripcion;
private double precio;

// métodos get
public String getCodigo(){return codigo;}
public String getDescripcion(){return descripcion;}
public double getPrecio(){ return precio;}
// métodos set

public void setCodigo(String c){ codigo =c;}
public void setDescripcion(String d){ descripcion=d;}
public void setPrecio(double p){ precio=p;}
}

Damos doble clic en el botón Nuevo para programar su acción:

private void btnNuevoActionPerformed(java.awt.event.ActionEvent evt) {
// crea un objeto nuevo de la clase Producto
  Producto nuevo = new Producto();

// lee los valores de la GUI y los coloca como atributos del objeto
  nuevo.setCodigo(leeCodigo());
  nuevo.setDescripcion(leeDescripcion());
  nuevo.setPrecio(leePrecio());

// muestra la información del nuevo objeto
  lista(nuevo);
}

// métodos que leen los datos de la GUI
private String leeCodigo(){return txtCodigo.getText();}
private String leeDescripcion(){return txtDescripcion.getText();}
private double leePrecio(){return Double.parseDouble(txtPrecio.getText());}

// método que muestra la información de un objeto de la clase Producto
private void lista(Producto p){
  imprime("Codigo\t:"+p.getCodigo());
  imprime("Descripcion\t:"+p.getDescripcion());
  imprime("Precio\t:"+p.getPrecio());
}

// método que muestra una cadena en el objeto de salida de la GUI
private void imprime(String s){
  txtSalida.append(s+"\n");
}

Regresamos al diseño y hacemos doble clic en el botón Borrar para programar su acción:
private void btnBorrarActionPerformed(java.awt.event.ActionEvent evt) {
  txtSalida.setText("");
  txtCodigo.setText("");
  txtDescripcion.setText("");
  txtPrecio.setText("");
  txtCodigo.requestFocus();
}

En el paquete vista
Coloque distribución BorderLayout, vaya a la ficha Source y escriba lo que está en negrita:
public class Principal extends javax.swing.JFrame {
public Principal() {
  initComponents();
  add(new PanelPrincipal());
  setSize(600,200);
}
Ejecute su aplicación.



Ejercicio 2:
=========
Realice un formulario que permita el ingreso de Nombres y Apellidos, Curso, Nota 1, Nota2, Nota 3 y que se Muestre en un Area de Texto la suma de notas, promedio, la condicion del promedio si es mayor o igual a 10.5 esta aprobado o desaprobado y el estado del promedio "0-5(Pesimo)",  "6-10(Malo)", "11-15(Regular)" , "16-18(Bueno) y "19-20(Excelente)""

Solucion:
------------
Diseñe la GUI en un JFrame de nombre JFEstudiante para el ingreso de los datos.



Diseñamos una clase, de nombre Estudiant
Con los siguientes atributos privados: nombre (cadena), apellidos (cadena), curso (cadena), nota1, nota 2 y nota 3 (double) y los métodos públicos get/set.


public class Estudiante {

    private String nombre;
    private String apellidos;
    private String curso;
    private double nota1;
    private double nota2;
    private double nota3;

    public Estudiante(String nombre, String apellidos, String curso, double nota1, double nota2, double nota3) {
        this.nombre = nombre;
        this.apellidos = apellidos;
        this.curso = curso;
        this.nota1 = nota1;
        this.nota2 = nota2;
        this.nota3 = nota3;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getApellidos() {
        return apellidos;
    }

    public void setApellidos(String apellidos) {
        this.apellidos = apellidos;
    }

    public String getCurso() {
        return curso;
    }

    public void setCurso(String curso) {
        this.curso = curso;
    }

    public double getNota1() {
        return nota1;
    }

    public void setNota1(double nota1) {
        this.nota1 = nota1;
    }

    public double getNota2() {
        return nota2;
    }

    public void setNota2(double nota2) {
        this.nota2 = nota2;
    }

    public double getNota3() {
        return nota3;
    }

    public void setNota3(double nota3) {
        this.nota3 = nota3;
    }

    public double getSumaNotas() {
        return this.getNota1() + this.getNota2() + this.getNota3();
    }

    public double getPromedioNotas() {
        double promedio = (this.getNota1() + this.getNota2() + this.getNota3()) / 3;
        return promedio;
    }

    public String getCondicionPromedio(double prom) {
        String condicion = "";
        if (prom >= 10.5) {
            condicion = "aprobado";
        }
        else {
            condicion = "desaprobado";
        }
        return condicion;
    }

    public String getEstadoPromedio(double prom) {
        String estado = "";
        if (prom >= 0 && prom <= 5) {
            estado = "Pesimo";
        }
        else if (prom >= 6 && prom <= 10) {
            estado = "Malo";
        }
        else if (prom >= 11 && prom <= 15) {
            estado = "Regular";
        }
        else if (prom >= 16 && prom <= 18) {
            estado = "Bueno";
        }
        else if (prom >= 19 && prom <= 20) {
            estado = "Excelente";
        }
        return estado;
    }
}

Damos doble clic en el botón Procesar para programar su acción:

// crea un objeto e de la clase Estudiante
   Estudiante e = new Estudiante(leeNombres(),leeApellidos(),leeCurso(),leeNota1(),leeNota2(),leeNota3());
     
// muestra la información del objeto
   listaEstudiante(e);


//metodos que leen los datos de la GUI
    private String leeNombres(){
        return txtNombres.getText();
    } 
 
    private String leeApellidos(){
        return txtApellidos.getText();
    }
 
    private String leeCurso(){
        return cboCurso.getSelectedItem().toString();
    }
 
    private double leeNota1() {
        return Double.parseDouble(txtNota1.getText());
    }

    private double leeNota2() {
        return Double.parseDouble(txtNota2.getText());
    }
 
    private double leeNota3(){
        return Double.parseDouble(txtNota3.getText());
    }

// método que muestra la información de un objeto de la clase Estudiante
private void listaEstudiante(Estudiante e){
        imprimir("Nombres y Apellidos:\t" + e.getNombre() + e.getApellidos());
        imprimir("Curso:\t\t" + e.getCurso());
        imprimir("Nota1:\t\t"+e.getNota1());
        imprimir("Nota2:\t\t"+e.getNota2());
        imprimir("Nota3:\t\t"+e.getNota3());
        imprimir("Suma Notas:\t\t"+e.getSumaNotas());
        imprimir("Promedio Notas:\t"+e.getPromedioNotas());
        imprimir("Condicion del Promedio:\t" +e.getCondicionPromedio(e.getPromedioNotas()));
        imprimir("Estado Promedio:\t" + e.getEstadoPromedio(e.getPromedioNotas()));
    }

// método que muestra una cadena en el objeto de salida de la GUI
  private void imprimir(String cad){
        txtSalida.append(cad+"\n");
      }

Regresamos al diseño y hacemos doble clic en el botón Limpiar para programar su acción:
private void btnLimpiarActionPerformed(java.awt.event.ActionEvent evt) {
  limpiar();
}

void limpiar(){
         this.txtNombres.setText(null);
         this.txtApellidos.setText(null);
         this.cboCurso.setSelectedIndex(0);
         this.txtNota1.setText(null);
         this.txtNota2.setText(null);
         this.txtNota3.setText(null);
         this.txtSalida.setText(null);
         txtNombres.requestFocus();
}

Hacemos doble clic en el botón Cerrar para programar su acción:
private void btnCerrarActionPerformed(java.awt.event.ActionEvent evt) {                                       
       cerrar();
    } 

  void cerrar(){
        this.dispose();
    }

jueves, 7 de febrero de 2019

Elevado consumo de CPU por el proceso System en WINDOWS 10

Elevado consumo de CPU por el proceso System en Windows 10

El consumo de CPU por el proceso System que a su vez es el archivo ntoskrnl.exe (NT Kernel & System)

1. Revisar y actualizar todos los drivers de su PC o Laptop

2. La ruta en la cual modificaremos el archivo Start es:
Equipo\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TimeBrokerSvc

Modificar el Archivo Start -> Valor:4

Instalar Powershell 7

Instalar Powershell Version 7 -------------------------------------- $> winget search powershell $> winget install Microsoft.Powershe...