martes, 9 de abril de 2013

programa para en empleados en java


public abstract class Empleado {
 
    public static double salbasic = 589500;
    public abstract double getSalario();
    public abstract String getInfo();

 
}
/////////////////////

public class EmpleadoAdmCasado extends Empleado {
private double salarioNeto;
private int edad ;
private String nombre;
public EmpleadoAdmCasado(String nombre, int edad)
{
    this.edad=edad;
    this.nombre = nombre;
    this.salarioNeto = Empleado.salbasic*3 - this.edad*1000;
}
    public double getSalario()
    {
     
        return this.salarioNeto;
    }

    public String getInfo() {
        return("Señor(a):: "+this.nombre +" tiene un salario de :"+ getSalario());
    }
}
////////////////////
public class EmpleadoAdmSoletro extends Empleado {

private double salarioNeto;
private int edad ;
private String nombre;
public EmpleadoAdmSoletro(String nombre, int edad, int añoactual)
{
    this.edad=edad;
    this.nombre = nombre;
    this.salarioNeto = Empleado.salbasic*3 + añoactual*100;
}
    public double getSalario() 
    {
        
        return this.salarioNeto;
    }

    public String getInfo() {
        return("Señor(a):: "+this.nombre +" tiene un salario de :"+ getSalario());
    }
}
/////////////////
public abstract class EmpleadosDocentes extends Empleado {
    public static final double salDocente = 589500*2; 
    public abstract double getSalario();
    public abstract String getInfo();
}
//////////
public class EmpleadoDocenteCatedra extends EmpleadosDocentes{
  private double salarioNeto;
private int edad ;
private String nombre;
public EmpleadoDocenteCatedra(String nombre, int edad)
{
    this.edad=edad;
    this.nombre = nombre;
    this.salarioNeto = EmpleadosDocentes.salDocente -edad*1000;
}
    @Override
    public double getSalario() 
    {
        
        return this.salarioNeto;
    }

    @Override
    public String getInfo() {
        return("Señor(a):: "+this.nombre +" tiene un salario de :"+ getSalario());
    }     
}
////////////////////
public class EmpleadoDocenteTcompleto extends EmpleadosDocentes {
  private double salarioNeto;
private int edad ;
private String nombre;
public EmpleadoDocenteTcompleto(String nombre, int edad)
{
    this.edad=edad;
    this.nombre = nombre;
    this.salarioNeto = EmpleadosDocentes.salDocente + EmpleadosDocentes.salDocente*0.4;
}
    public double getSalario() 
    {
        
        return this.salarioNeto;
    }

    public String getInfo() {
        return("Señor(a):: "+this.nombre +" tiene un salario de :"+ getSalario());
    }  
}
///////////////////////
public class EmpleadoDocenteTmedio extends EmpleadosDocentes {
      private double salarioNeto;
private int edad ;
private String nombre;
public EmpleadoDocenteTmedio(String nombre, int edad)
{
    this.edad=edad;
    this.nombre = nombre;
    this.salarioNeto = EmpleadosDocentes.salDocente + super.salDocente*0.2;
}
    @Override
    public double getSalario() 
    {
        
        return this.salarioNeto;
    }

    @Override
    public String getInfo() {
        return("Señor(a):: "+this.nombre +" tiene un salario de :"+ getSalario());
    }  
    
}
////////////////////////////////////////////// y la clase principa o root o raiz/////////////////
package ejercicio4;
import java.util.ArrayList;
import javabook.SimpleInput;


public class Principal {
        public static void main(String[] args) {
       ArrayList baseDatos = new ArrayList();
       int r = 0;
       String Nombre;
       int Edad;
       while (r!=1)
       {
           System.out.println("llene la base de datos");
           int eleccion = SimpleInput.getInteger("[1]Agregar Empleado Administrativo [2]Agregar Docente");
           Nombre = SimpleInput.getString("Nombre: ");
           Edad = SimpleInput.getInteger("Edad: ");
           if (eleccion ==1)
           {
             int  eleccion2 = SimpleInput.getInteger("[1]Casado [2]Soltero");
               if (eleccion2==1)
               {
                   Empleado nuevo = new EmpleadoAdmCasado(Nombre, Edad);
                   baseDatos.add(nuevo);
               }
               if (eleccion2 ==2)
               {
                   Empleado nuevo = new EmpleadoAdmSoletro(Nombre, Edad,2013);
                   baseDatos.add(nuevo);
               }
               
               
           }
           if (eleccion==2)
           {
               int eleccion3= SimpleInput.getInteger("[1]Docente Tiempo Completo [2]Medio Tiempo [3]De Catedra");
               if (eleccion3==1)
               {
                   Empleado nuevo = new EmpleadoDocenteTcompleto(Nombre, Edad);
                   baseDatos.add(nuevo);
                   System.out.println("el salario es "+ nuevo.getSalario());
               }
               if (eleccion3 ==2)
               {
                   Empleado nuevo = new EmpleadoDocenteTmedio(Nombre, Edad);
                   baseDatos.add(nuevo);
                   System.out.println("el salario es "+ nuevo.getSalario());
               }
               if (eleccion3==3)
               {
                   Empleado nuevo = new EmpleadoDocenteCatedra(Nombre, Edad);
                   baseDatos.add(nuevo);  
                   System.out.println("el salario es "+ nuevo.getSalario());
               }
           }
           r=SimpleInput.getInteger("digite [1] para terminar [2] para continuar");
       }
       
    }
    
}

herencia en java clase figura solucion ejercicio 3


package ejercicio3;

public abstract class figura {
    private  String nombre;
    private double area;
    public figura(){};
    public abstract double getArea();
    public abstract String getNombre();
    public abstract int getNumFiguras();  
}
////////////////////////////////////////////////////////////////

public class cuadrado extends figura {
    private double lado;
    public static int cantidadCuadrados=0;

public cuadrado()
{
    this.lado=2;
}
public cuadrado(double l)
{
    this.lado=l;
}
    @Override
    public double getArea() {
        return (this.lado*this.lado);
    }

    @Override
    public String getNombre() {
        return "cuadrado";
    }
        public int getNumFiguras()
    {
        return cantidadCuadrados;
    }
       public String toString()
    {
        return "cuadrado de lado " + this.lado;
    }
}
///////////////////////////////////////////////////////////////////////

public class triangulo extends figura{

    private double base, altura;
        public static int cantidadTriangulos=0;

    public triangulo()
    {
        this.base=2;
        this.altura=4;
    }
    public triangulo(double b,double a)
    {
        this.base = b;
        this.altura=a;
    }
    public double getArea() {
        return this.base*this.altura/2;
    }

    @Override
    public String getNombre() {
       return"triangulo";
    }

   
    public int getNumFiguras() {
        return cantidadTriangulos;
    }
    public String toString()
    {
        return "triangulo de base "+ this.base +" y altura " + this.altura;
    }
   
   
}
//////////////////////////////////////////////////////////////////
public class Rectangulo extends figura{
    private double base;
    private double altura;
    public static int cantidadRectangulos=0;
   
    public Rectangulo()
    {
     this.altura=2;
     this.base=4;
    }
    public Rectangulo(double b, double a)
    {
        this.base=b;
        this.altura=a;
    }
    public String getNombre()
    {
        return "rectangulo";
    }
        public int getNumFiguras()
    {
        return cantidadRectangulos;
    }

   
    public double getArea() {
        return base*altura;
        
    }
        public String toString()
    {
        return "Rectangulo de base "+ this.base +" y altura " + this.altura;
    }  
}


////////////////////////////////////////////////
public class Circulo extends figura{

    double r;
    public static int cantidadCirculos=0;
    public Circulo()
    {
        cantidadCirculos+=1;
        this.r=2;
    }
    public Circulo(double radio)
    {
        this.r= radio;
        cantidadCirculos+=1;
    }
    
    public double getArea() {
        return Math.PI*r*r;
    }

    
    public String getNombre() {
        return"circulo";
    }
    public int getNumFiguras()
    {
        return cantidadCirculos;
    }
    
    public String toString()
    {
        return "circulo de radio " + r;
    }

}
///////////////////////////////////////////////////////////////////


public class Vector {
    figura[] figuras;
    public static double sumatoriaAreas=0;
   public Vector(int tamañoVector)
   {
       figuras= new figura[tamañoVector];
   }
   public void addFiguras(int pos)
   {
       int eleccion = SimpleInput.getInteger("[1]circulo [2]cuadrado [3]triangulo [4]rectangulo");
       if (eleccion ==2)
       {
           figura c= new cuadrado(SimpleInput.getDouble("digite el lado"));
           figuras[pos]= c;
           sumatoriaAreas +=c.getArea();
           
       }
              if (eleccion ==1)
       {
           figura c= new Circulo(SimpleInput.getDouble("digite el radio"));
           figuras[pos]= c;
           sumatoriaAreas +=c.getArea();
       }
       if (eleccion ==3)
       {
           figura c= new triangulo(SimpleInput.getDouble("base"), SimpleInput.getDouble("altura"));
           figuras[pos]= c;
           sumatoriaAreas +=c.getArea();
       }
       if (eleccion ==4)
       {
           figura c= new Rectangulo(SimpleInput.getDouble("base"), SimpleInput.getDouble("altura"));
           figuras[pos]= c;
           sumatoriaAreas +=c.getArea();
       }
       
   }


    double getSumatoria() {
        return sumatoriaAreas;
    }

}
////////////////////////////////////////////
public class Buscar {
   public figura[] lista ;
   public  static String busqueda;
    
    public Buscar(figura[] v,String nombreFigura)
    {
        lista=v;
        busqueda=nombreFigura;
    }
    public int BuscarFigura(){
        int pos=-1;
        
      for(int i =0;i<lista.length;i++)
      {
            if(lista[i].getNombre().compareTo(busqueda)==0)
               
            {
               pos =i; 
            }
      }
       return pos;
        
    }
    
}
//////////////////////////////////////////////////
public class main3 {
    public static void main(String[] args) {
     boolean sw=true;
     double sumatoria=0;
     
     Vector v= new Vector(SimpleInput.getInteger("digite la cantidad de figuras a almacenar")); //Crea un objeto vector de
    
     //tipo object donde se almacenan todas las figuras
    
    
    
     //---------------------------------------
     //este es el ciclo for para llenar el vector con todas las figuras
     for(int i =0;i<v.figuras.length;i++)
     {
         v.addFiguras(i);  
     }
     
     
    double sumaAreas= v.getSumatoria();
    System.out.println("la suma de todas las areas ingresadas es de: "+ sumaAreas);
   
    //ciclo for para mostrar cada figura con sus atributos
    for(int i =0;i<v.figuras.length;i++)
     {
         v.figuras[i].toString();  
     }
    
    //este metodo a continuacion es para crear un menu de eleccion
    while (sw)
    { 
       Buscar b;
       System.out.println("[1] conocer area de una figura almacenada");
       System.out.println("[2] obtener propiedades de una figura");
       System.out.println("[3] obtener el numero de figuras que existen de un tipo");
       System.out.println("[4] buscar una figura y eliminar");
       System.out.println("[5] terminar");
       int eleccion = SimpleInput.getInteger("");
       if (eleccion == 1)
       {
           try{
          int posicion = SimpleInput.getInteger("posicion de la figura");
            System.out.println("el area del "+v.figuras[posicion-1]+" en la posicion "+posicion+" es: "+v.figuras[posicion-1].getArea());
            //este es un buscador de objetos y devuelve su posicion
           }
           catch(Exception e)
           {
               System.out.println("no exite tal posicion");
           }
            
       }
       if (eleccion == 2)
       {
           
          int pos = SimpleInput.getInteger("Posicion de la figura");
          if(pos<=v.figuras.length) {
               System.out.println("las propiedades de la figura en la pos "+pos+" es: " +v.figuras[pos-1].toString());
           }
            //este es un buscador de objetos y devuelve su posicion
          
          
            
       }
       if (eleccion == 3)
       {
          String nombre = SimpleInput.getString("nombre de la figura");
          
            b= new Buscar(v.figuras,nombre);
            int pos = b.BuscarFigura();
            if (pos!=-1){
            System.out.println("la cantidad de "+nombre+"s es:" +v.figuras[pos].getNumFiguras());
            //este es un buscador de objetos y devuelve su posicion
          
            }    
            
       }
      if (eleccion == 4)
       {
          String nombre = SimpleInput.getString("nombre de la figura");
          
            b= new Buscar(v.figuras,nombre);
            int pos = b.BuscarFigura();
            if (pos!=-1){
                if(v.figuras[pos].getNumFiguras()>1)
                {
                    v.figuras[pos] =null;
                }
                
            //este es un buscador de objetos y devuelve su posicion
          
            }           
       }
       
    }

            
    
 }

    
}

Clase Final no puede tener decendientes solucion ejercicio 1


public final class Ejercicio1 {
//Metodo Estatico osea que no hay que instanciar la clase para acceder a el, se puede acceder solo
con el nombre de la clase.getMaximo//
    public static int getMaximo(int[] m)
    {
        int maximo =-1000000000;
        for(int i = 0;i<m.length;i++)
        {
            if (m[i]>maximo)
            {
                maximo = m[i];
            }
        }
        return maximo;
    }
    public static int getMinimo(int[] m)
    {
        int minimo =1000000000;
        for(int i = 0;i<m.length;i++)
        {
            if (m[i]<minimo)
            {
                minimo = m[i];
            }
        }
        return minimo;
    }
    public static int getMedia(int[] m)
    { int media,sumatoria=0;
 
     for(int i = 0;i<m.length;i++)
        {
            sumatoria+=m[i];
        }
     media = sumatoria/m.length;
     return media;
     
    } 
}

//hasta este punto  la clase que no puede heredar


package ejercicio1;
import javabook.SimpleInput;  //esta es una libreria que tengo que me hace mas facil la lectura por consola , que se puede reemplazar con el java util scanner//
/**
 *
 * @author Paulo Andres Escobar
 */
public class main1 {
        public static void main(String[] args) {
        int tamaño = SimpleInput.getInteger("de que tamaño es su matriz");
        int[] ma;
        ma = new int[tamaño];
        int maximo =-1000000000;
        int minimo = 1000000000;
        int mediaAritmetica;
        int sumatoria=0;
        System.out.println("digite los valores de su matriz");
        for (int i=0;i<tamaño;i++)
        {
         
            ma[i]=SimpleInput.getInteger(": ");
        }
        System.out.println("el maxiomo es: "+Ejercicio1.getMaximo(ma));
       System.out.println("el minimo es: "+ Ejercicio1.getMinimo(ma));
       System.out.println("la media es: "+ Ejercicio1.getMedia(ma));
    }
         
}

viernes, 5 de abril de 2013

lista circular doblemente enlazada

primero que todo vamos a crear una clase de tipo libro


public class Libro {
    public String nombre,autor;
    public int codigo, copias_disponibles;
    public Libro anterior,siguiente;
    public static int contador =0;
    public Libro(String nombre, String autor,int copias)
    {
        contador++;
        this.codigo=contador;
        this.nombre=nombre;
        this.autor=autor;
        this.copias_disponibles=copias;
        this.anterior=null;
        this.siguiente=null;
    }
 
}

despues agregamos un Jform


T1 es el nombre del libro
T2 es el nombre del autor
t3 es el numero de copias disponibles
el boton ingresar base de datos se llama adicionarNuevoLibro
y tiene el siguiente codigo

Libro biblioteca = null; //este libro es la lista y  se declara antes del codigo del boton para asegurarse que la lista empezo vacia//


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

        Libro nuevo = new Libro(t1.getText(), t2.getText(), Integer.parseInt(t3.getText()));
        
        if (biblioteca==null)
        {
            biblioteca= nuevo;
            nuevo.siguiente=biblioteca;
            nuevo.anterior=biblioteca;
        }
        else
        {
            Libro apuntador = biblioteca;
            while(apuntador.siguiente!= biblioteca)
            {
                apuntador = apuntador.siguiente;
            }
            nuevo.anterior = apuntador;
            apuntador.siguiente= nuevo;
            nuevo.siguiente=biblioteca;
           biblioteca.anterior =nuevo;
            
            
            
        }
        t1.setText("");
        t2.setText("");
        t3.setText("");
    }

el boton  que dice ver base de datos se llama mostrarBaseDatos y realiza el siguiente codigo

    private void mostrarBaseDatosActionPerformed(java.awt.event.ActionEvent evt) {
        Libro apuntador3 = biblioteca;
        
        while (apuntador3.siguiente!=biblioteca)
        {
            jTextArea1.setText(jTextArea1.getText()+"Autor: "+apuntador3.autor+"Libro: "+apuntador3.nombre+"\n");
            apuntador3=apuntador3.siguiente;
        }
                jTextArea1.setText(jTextArea1.getText()+"Autor: "+apuntador3.autor+"Libro: "+apuntador3.nombre+"\n");

    }