domingo, 24 de noviembre de 2013

Manejo de herencia y polimorfismo java

Este otro programa en java es un ejemplo del manejo de herencias y polimorfismo, en esta ocasión el programa imprime los datos dediferentes publicaciones como lo son libros, revistas y periódicos.

Clase main

public class main {
public static void main (String [] args) {
publicacion obj1 = new publicacion (123, 12.78f, "27/agosto/2013");
libro obj2 = new libro(1);
periodico obj3 = new periodico (111, 23.4f, "29/agosto/2013");
obj3.nomperiodico = "cancha";
revista obj4 = new revista(111, 23.4f, "28/agosto/2013");
obj4.numArt = "25";
System.out.println(obj1.fecha);
System.out.println(obj2.autor);
System.out.println(obj3.fecha);
System.out.println(obj4.fecha);
obj1.toprint();
obj2.toprint();
obj3.toprint();
obj4.toprint();


}
}
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Clase libro

public class libro extends publicacion {
public String nombrelibro;
public String editorial;
public String TipoPasta;
public String ISBN;
public String autor;
//constructor
public libro (int p) {
super(p);
if ( p == 1 ) this.autor = "R. A, G. Palacios";
else this.autor = "Quien sabe";
}
public libro (int a, float b, String c) {
super(a, b, c);
this.nombrelibro = "Aqui va el nombre del libro";
this.editorial = "La misma de siempre";
this.TipoPasta = "dura";
this.ISBN = "Aqui va el ISBN";
this.autor = "R. A. G. Palacios";
}
public void  toprint() {
System.out.println("libro: " + this.nombrelibro + " Autor:  " + this.autor);
}

}

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Clase periodico

public class periodico extends publicacion {
public int numarticulos;
public String nomperiodico;
public periodico (int a,float b, String c) {
super(a,b,c);
}
public void toprint () {
System.out.println("Periodico: " + this.nomperiodico + " Fecha:  " + this.getFecha());
}
}

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Clase publicacion

public class publicacion {
//atributos
private int numpaginas;
private float precio;
String fecha;
//constructor
public publicacion (int NP) {
this.numpaginas = NP;
}
public publicacion () {
}
public publicacion (int NP, float P, String Fe) {
this.numpaginas = NP;
this.precio = P;
this.fecha = Fe;
}
// polimorfismo
public void toprint () {
System.out.println(" numero de paginad: " + this.numpaginas);
System.out.println("precio: "  + this.precio);
System.out.println("fecha: " +  this.fecha);
}

public int getNumpaginas() {
return numpaginas;
}

public void setNumpaginas(int numpaginas) {
this.numpaginas = numpaginas;
}

public float getPrecio() {
return precio;
}

public void setPrecio(float precio) {
this.precio = precio;
}

public String getFecha() {
return fecha;
}

public void setFecha(String fecha) {
this.fecha = fecha;
}
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Clase revista
public class revista extends publicacion {
public String numArt;
public String autores;
public revista (int a, float b, String c) {
super (a, b, c);
}
public void  toprint () {
System.out.println("Revista: " + this.numArt + " De fecha:  " + this.getFecha());
}
}



operaciones basicas en java

Este sencillo programa muestra como hacer las operaciobes basica (suma, resta, multiplicacion y division) en java.

Clase main

public class main {
public static void main( String[] args ){
    numero p = new numero();
  System.out.printf(" Suma 5 + 3 = %f\n", p.suma (5, 3));
  System.out.printf(" Resta 5 - 3 = %f\n", p.resta (5, 3));
  System.out.printf(" Multiplicacion 5 * 3 = %f\n", p.multiplicacion (5, 3));
  System.out.printf(" Division 8 / 2 = %f\n", p.division (8, 2));
}

}

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

clase numero
public class numero  {
public double suma (int x, int y) {
return x + y;
}
public double resta (int x, int y) {
return x - y;
}
public double multiplicacion (int x, int y){
return x * y ;
}
public double division (int x, int y) {
return x / y; 
}
}
}

Matrices

Este pequeño ejemplo de matrices consiste en programa que pide nombre, matricula y calificacion de 10 alumnos y al final los imprime.

Clase matrices

import java.util.Random;
import java.util.Scanner;
import java.util.Vector;

public class matrices {


private static Vector<registro> Datos;
static String n;
static Double ma;
static Double c;
public static void main (String  args []) {
Datos = new Vector<registro>();
registro  temp;
Scanner sc = new Scanner (System.in);

for (int j = 0; j < 10; j++){

System.out.println("Introduzca la matricula: ");
ma = sc.nextDouble();
System.out.println("Introduzca el nombre: ");
n = sc.next();
System.out.println("Introduzca la calificacion: ");
c = sc.nextDouble();
temp = new registro();
//ma = (Double)(Math.random() * 100000);
temp.setMatri(ma);
temp.setCal(c);
temp.setNom("Nombre " + n);
//System.out.println(temp);
Datos.addElement(temp);
}
for (int i1 = 0; i1 < Datos.size(); i1++) {

System.out.println(Datos.elementAt(i1).toString());

}
}



}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

clase registro

public class registro {

private Double matri;
private String nom;
private double cal;
public Double getMatri() {
return matri;
}
public void setMatri(Double ma) {
this.matri = (double) ma;
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public double getCal() {
return cal;
}
public void setCal(double cal) {
this.cal = cal;
}
public String toString () {
return( String.valueOf( this.matri )+ " " + this.nom + " " + this.cal);
}
}

Fechas en java

El siguiente codigo en java es un ejemplo del manejo del metodo de fechas en java.

Clase main
import java.util.*;
public class sum extends mostrar {
static String mes, dia, anio;
public sum (){
Calendar fecha = Calendar.getInstance();
fecha.add(Calendar.DATE, 50);
 mes = Integer.toString(fecha.get(Calendar.MONTH));
 anio = Integer.toString(fecha.get(Calendar.YEAR));
 dia = Integer.toString(fecha.get(Calendar.DATE));

}
public static String getMes() {
return mes;
}
public static void setMes(String mes) {
ope.mes = mes;
}
public static String getDia() {
return dia;
}
public static void setDia(String dia) {
ope.dia = dia;
}
public static String getAnio() {
return anio;
}
public static void setAnio(String anio) {
ope.anio = anio;
}

public void toprint() {
System.out.println(this.getDia()+"/"+this.getMes()+"/"+this.getAnio()+": sumando 50 dias");
}

}

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
clase cambio


import java.util.Calendar;

public class cambio {
static String mes, dia, anio;
public static void cambio () {
Calendar fecha = Calendar.getInstance();
fecha.set(3,8,2013);
 mes = Integer.toString(fecha.get(Calendar.MONTH));
 anio = Integer.toString(fecha.get(Calendar.YEAR));
 dia = Integer.toString(fecha.get(Calendar.DATE));
 System.out.println (dia + "/" + mes +"/" + anio + ": Fecha cambiada");
}

}

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
clase diferencia

import java.util.*;

public class diferencia {

long dif,difs,difm,difh,difd,difme;
public long getDif() {
return dif;
}
public void setDif(long dif) {
this.dif = dif;
}
public void dife (){

Calendar fe1 = Calendar.getInstance();
Calendar fe2 = Calendar.getInstance();

fe1.set(2013, 2, 18);
fe2.set(2013, 10, 2);

       long milis1 = fe1.getTimeInMillis();
       long milis2 = fe2.getTimeInMillis();
      dif = milis2 - milis1;
      difs = dif / 1000;
  difm = dif / (60 * 1000);
      difh = dif / (60 * 60 * 1000);
      difd = dif / (24 * 60 * 60 * 1000);
      difme = dif / (12 * 60 * 60 * 1000);
     
     

   }
public long getDifs() {
return difs;
}
public void setDifs(long difs) {
this.difs = difs;
}
public long getDifm() {
return difm;
}
public void setDifm(long difm) {
this.difm = difm;
}
public long getDifh() {
return difh;
}
public void setDifh(long difh) {
this.difh = difh;
}
public long getDifd() {
return difd;
}
public void setDifd(long difd) {
this.difd = difd;
}
public void toprint () {
System.out.println("En milisegundos: " + this.getDif() + " milisegundos.");
        System.out.println("En segundos: " + this.getDifs() + " segundos.");
        System.out.println("En minutos: " + this.getDifm() + " minutos.");
        System.out.println("En horas: " + this.getDifh() + " horas.");
        System.out.println("En dias: " + this.getDifd() + " dias.");
        System.out.println("En meses: " + this.getDifme() + " meses.");
}
public long getDifme() {
return difme;
}
public void setDifme(long difme) {
this.difme = difme;
}


}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

clase mostrar

import java.io.*;
import java.util.Calendar;


public class mostrar {
static String mes,anio,dia;
public  void mostrar () {
 
 Calendar fecha = Calendar.getInstance();
 mes = Integer.toString(fecha.get(Calendar.MONTH));
 anio = Integer.toString(fecha.get(Calendar.YEAR));
 dia = Integer.toString(fecha.get(Calendar.DATE));
 System.out.println (dia + "/" + mes +"/" + anio + ": Fecha actual");
 
}

}

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

clase ope
import java.util.*;
public class ope extends mostrar { 
static String mes, dia, anio;
public ope (){
Calendar fecha = Calendar.getInstance();
fecha.add(Calendar.DATE, -50);
 mes = Integer.toString(fecha.get(Calendar.MONTH));
 anio = Integer.toString(fecha.get(Calendar.YEAR));
 dia = Integer.toString(fecha.get(Calendar.DATE));
 
}
public static String getMes() {
return mes;
}
public static void setMes(String mes) {
ope.mes = mes;
}
public static String getDia() {
return dia;
}
public static void setDia(String dia) {
ope.dia = dia;
}
public static String getAnio() {
return anio;
}
public static void setAnio(String anio) {
ope.anio = anio;
}
public void toprint() {
System.out.println(this.getDia()+"/"+this.getMes()+"/"+this.getAnio()+": Restado 50 dias");
}

}

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

clase sum
import java.util.*;
public class sum extends mostrar { 
static String mes, dia, anio;
public sum (){
Calendar fecha = Calendar.getInstance();
fecha.add(Calendar.DATE, 50);
 mes = Integer.toString(fecha.get(Calendar.MONTH));
 anio = Integer.toString(fecha.get(Calendar.YEAR));
 dia = Integer.toString(fecha.get(Calendar.DATE));
 
}
public static String getMes() {
return mes;
}
public static void setMes(String mes) {
ope.mes = mes;
}
public static String getDia() {
return dia;
}
public static void setDia(String dia) {
ope.dia = dia;
}
public static String getAnio() {
return anio;
}
public static void setAnio(String anio) {
ope.anio = anio;
}
public void toprint() {
System.out.println(this.getDia()+"/"+this.getMes()+"/"+this.getAnio()+": sumando 50 dias");
}

}



Estadisticas en java

El siguente codigo corresponde a un programa en java que realiza diversas operaciones de estadistica. emplea el uso de diferentes constructores

Clase main: es la clase principal y la que se ejecutara para hacer correr el programa

public class Main {
       public static void main(String[] argc) {
      Estad p = new Estad();
      System.out.printf("Factorial de 5 = %.0f\n", p.Factorial(5));
      System.out.printf("Permutacion 5, 3 = %.0f\n", p.Permutacion(5, 3));
      System.out.printf("Combinacion 5, 3 = %.0f\n", p.Combinacion(5, 3));
      System.out.printf("Binomial 20, 3, 0.5 puntual= %f\n", p.Binomial(20, 3, 0.5, false));
      System.out.printf("Binomial 20, 14, 0.5 acumulado= %f\n", p.Binomial(20, 14, 0.5, true));
      System.out.printf("Normal 1.75 1.85, 1.80, 0.05 = %f\n", p.Normal(1.75, 1.85, 1.80, 0.05));      
      System.out.printf("Poison 20, 3, 5  Poisson= %f\n", p.Poisson(20, 3, 5));  
      System.out.printf("Hipergeometrica 10, 15, 20, 7, 5,  Hipergeometrica = %f\n", p.Hipergeometrica( 20, 10, 15, 7, 5));  
       }

}

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Clase estad: en esta clase se encuentran todas las operaciones que el programa ha de realizar.

public class Estad {
public double Factorial( int n ) {
if( n == 0 ) return 1;
return n * Factorial( n - 1 );
}
    public double Permutacion( int n, int r ) {
    return( this.Factorial( n ) / this.Factorial( n - r ));
    }
    
    public double Combinacion( int n, int r ) {
    return( this.Factorial( n ) / ( this.Factorial( n - r ) * this.Factorial( r )));
    }
    
    public double Binomial( int n, int r, double p, boolean acum ) {
    double acumulado;
    if( acum ) {
    acumulado = 0.0;
    for( int i = 0; i <= r; i++ ) {
    acumulado += this.Combinacion( n,  i ) * Math.pow(p, i) * Math.pow( (1.0 - p), (n - i));    
    }
    return acumulado;
    } else {
    return( this.Combinacion( n,  r ) * Math.pow(p, r) * Math.pow( (1.0 - p), (n - r)));
    }
    }
    
    public double Normal( double linf, double lsup, double media, double sigmma) {
    double parte1, parte2, dx, area1 = 0.0, area2 = 1.0;
    int celdas = 50;
    parte1 = 1.0 / ( sigmma * Math.sqrt(2.0 * Math.PI));
    while(Math.abs(area1 - area2) > 0.0000001) {
    area2 = area1;
    area1 = 0.0;
    celdas *= 2;
    dx = (double)Math.abs(linf - lsup) / celdas;
    for( double i = linf; i < lsup; i += dx ) {
    parte2 = (i - media) / sigmma;
    area1 += ( parte1 * Math.pow(Math.E, ( -1.0/2.0 * Math.pow(parte2, 2) ))) * dx; 
    }
    }
    return area1;
    }
    
    public double Poisson (int n, int p, int k){
    return  Math.pow(2.71828, n*p) * ((Math.pow(n*p, k)/this.Factorial(k)));
    
    }

        
    public double Hipergeometrica (int N, int N1, int N2, int n, int k) {
    return  ((this.Factorial(N1) / (this.Factorial(k)*this.Factorial(N1-k)))) * ( this.Factorial(N2) / (this.Factorial(n-k) * this.Factorial(N2- (n-k))))  / ( this.Factorial(N) / ( this.Factorial(n) * (this.Factorial(N-n)))); 
   
    }

}


Agenda en java

En este ejemplo de java se emplea el uso de la herencia y correspon de a la elaboración de una agenda sencilla.

Clase main

public class main {
public static void main (String [] args) {
amigo amigo1 = new amigo ("Alan", "Cueva Mora", "84546482", "Chacualo");
trabajo trabajo1 = new trabajo ("Pedro", "Santos Calderon", "83569810", "M.C. Producciones", "psc@mcproducciones.mx");
amigo amigo2 = new amigo ("Paula ","Enriquez"," Morales", "54290219");
trabajo trabajo2 = new trabajo ("Pablo", "Alanis Sanchez", "83719310", "Museo de la Fauna", "p.alanis@gmail.com");
amigo amigo3 = new amigo ("Misael", "Ramirez Rodriguez", "83719749", "misa");
trabajo trabajo3 = new trabajo ("Sandra", "Martinez Arredondo", "82348974", "Servicios italiano", "sandracontacto@hotmail.com");
amigo1.mostrar();
trabajo1.mostrar();
amigo2.mostrar();
trabajo2.mostrar();
amigo3.mostrar();
trabajo3.mostrar();


}

}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Clase amigo

public class amigo extends contacto {
private String apodo;
public amigo (String nombre, String apellido, String telefono, String apodo){
super(nombre,apellido,telefono);
this.apodo = apodo;
}

public String getApodo() {
return apodo;
}

public void setApodo(String apodo) {
this.apodo = apodo;
}
public void  mostrar() {
System.out.println("Datos de amigo: " + getNombre() + "" + getApellido() + "" + getTelefono() + ""+ " apodado: " + getApodo() );
}

}
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
clase contacto

public class contacto {
private String nombre;
private String apellido;
private String telefono;

public contacto (String nombre, String apellido, String telefono){
this.nombre = nombre;
this.apellido = apellido;
this.telefono = telefono;
}

public String getNombre() {
return nombre;
}

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

public String getApellido() {
return apellido;
}

public void setApellido(String apellido) {
this.apellido = apellido;
}

public String getTelefono() {
return telefono;
}

public void setTelefono(String telefono) {
this.telefono = telefono;
}
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
clase trabajo

public class trabajo extends contacto {
private String negocio;
private String correo;
public trabajo (String nombre, String apellido, String telefono, String negocio, String correo){
super(nombre,apellido,telefono);
this.negocio = negocio;
this.correo = correo;
}

public String getNegocio() {
return negocio;
}

public void setNegocio(String negocio) {
this.negocio = negocio;
}

public String getCorreo() {
return correo;
}

public void setCorreo(String correo) {
this.correo = correo;
}
public void  mostrar() {
System.out.println("Datos de colega: " + getNombre() + "" + getApellido() + "" + getTelefono() + "" +  " empresa: " + getNegocio() + "" + getCorreo() );
}

}


Reloj digital en java

El siguente codigo muestra la estructura de un reloj en java.

Clase de prueba: esta clase es la que contiene el main y es usada para correr el programa
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
public class prueba {
public static void main (String[] args) throws InterruptedException {
maquinaria obj = new maquinaria ();
maquinaria relojtijuana = new maquinaria();
maquinaria relojandalucia = new maquinaria();
relojtijuana.setHoras (relojtijuana.getHoras() -2);
relojandalucia.setHoras(relojandalucia.getHoras() +7);
for (int i = 0; i < 100; i++){
obj.sleep(1000);
relojtijuana.sleep(1000);
relojandalucia.sleep(1000);
obj.segundero();
relojtijuana.segundero();
obj.toprint();
relojtijuana.toprint();
relojandalucia.segundero();
relojandalucia.toprint();

System.out.println (obj.getHoras()+ ":" + obj.getMinutos()+ ":" + obj.getSegundos());
}
}
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Clase maquinaria en esta clase se encuentra la escructura en si del reloj, lo que lo hace funcionar.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
import java.util.Calendar;

public class maquinaria extends Thread{ //proporciona el control del segundero
private int horas;
private int minutos;
private int segundos;

public void segundero () {
this.segundos++;
if (this.segundos >59) {
this.segundos = 0;
this.minutos++;
}
if (this.minutos > 59) {
this.minutos = 0;
this.horas++;

}
if (this.horas > 23) {
this.horas = 0;

}

}

public void toprint () {
System.out.println (this.horas + ":" + this.minutos + ":" + this.segundos);

}

public int getHoras() {
return horas;
}

public void setHoras(int horas) {
this.horas = horas;
}

public int getMinutos() {
return minutos;
}

public void setMinutos(int minutos) {
this.minutos = minutos;
}

public int getSegundos() {
return segundos;
}

public void setSegundos(int segundos) {
this.segundos = segundos;
}

public maquinaria () {
Calendar actual = Calendar.getInstance();
this.horas = actual.get(Calendar.HOUR_OF_DAY);
this.minutos = actual.get(Calendar.MINUTE);
this.segundos = actual.get(Calendar.SECOND);

}

}
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Clase relojdigital esta clase hereda la clase maquinaria y muestra un reloj tipo digital
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Font;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class rdigital extends JFrame{
private static JTextField displayReloj1;
private static JTextField displayReloj2;
private static JTextField displayReloj3;
private static JLabel etiqueta1;
private static JLabel etiqueta2;
private static JLabel etiqueta3;
public rdigital (String texto) {
super (texto); 
setSize (200,400);
setVisible(true);
setLayout (new FlowLayout ());
etiqueta1 = new JLabel ("Monterrey");
add(etiqueta1);
displayReloj1 = new JTextField("                 ");
displayReloj1.setFont(Font.decode("Arial-NORMAL-20"));
displayReloj1.setEditable(false);
add( displayReloj1);
etiqueta2 = new JLabel ("Tijuana");
add(etiqueta2);
displayReloj2 = new JTextField("                 ");
displayReloj2.setFont(Font.decode("Arial-NORMAL-20"));
displayReloj2.setEditable(false);
add( displayReloj2);
etiqueta3 = new JLabel ("Andalucia");
add(etiqueta3);
displayReloj3 = new JTextField("                        ");
displayReloj1.setFont(Font.decode("Arial-NORMAL-20"));
displayReloj3.setEditable(false);
add( displayReloj3);
}
public static void main(String[] args) {
rdigital mio = new rdigital("ventanita");
mio.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

EL reloj corriendo en consola


lunes, 11 de noviembre de 2013

Lista enlazada

clase de nodo

[code]
public class nodo{

private Object dato;
private nodo nodo;

public nodo(){
 dato = null;
 nodo nodo = null;
}
public nodo(Object dato){
 this();
 this.dato = dato;
}
public void setDato(Object dato){
 this.dato = dato;
}

public Object getDato(){
 return dato;
}

public void setNodo(nodo nodo){
 this.nodo = nodo;
}

public nodo getNodo(){
 return nodo;
}
}
[/code]

clase lista

[code]

public class lista{
private nodo cabecera;
private int tamaño;

public lista(){
 tamaño = 0;
 cabecera = new nodo();
}

public int getTamaño(){
 return tamaño;
}

public boolean addDato(Object dato){
 nodo nodoUltimo = getUltimoNodo();
 if(dato != null && nodoUltimo != null){
  nodoUltimo.setNodo(new nodo(dato));
  tamaño ++;
  return true;
 }else{
  return false;
 }
}

private nodo getUltimoNodo(){
 nodo nodoUltimo = null;
 if(cabecera != null){
  nodoUltimo = cabecera;
  while(nodoUltimo.getNodo() != null){
   nodoUltimo = nodoUltimo.getNodo();
  }
 }
 return nodoUltimo;
}

public Object getDato(int pos){
 nodo nodoUltimo = null;
 int contador = 0;
 Object dato = null;
 if(cabecera != null){
  nodoUltimo = cabecera;
  do{
   nodoUltimo = nodoUltimo.getNodo();
   if(contador == pos){
    dato = nodoUltimo.getDato();
    break;
   }else{
    contador++;
   }  
  }while(nodoUltimo.getNodo() != null);
 }
 return dato;
}
}

[/code]

clase main

[code]

public class main {
public static void main(String []args){
 lista lista = new lista();

 //Adjuntando datos
 lista.addDato(2);
 lista.addDato(4);
 lista.addDato(8);
 lista.addDato(16);

 System.out.println("-------Imprimiendo datos-------");

 for(int i = 0;i < lista.getTamaño();i ++){
  System.out.println(lista.getDato(i));
 }
}
}
[/code]