martes, 22 de febrero de 2011

programa #2: manejo de tiempo de un parqueadero

parte logica del programa


/*
* Solicitud de creacion de programa que sume y reste dos tiempos (t1 y t2).
*/

/**
* David Loaiza
* jesùs Suàrez
*/
package Logica;
import java.lang.*;
public class Tiempo {

private int hora, minutos, segundos;
private int dia, mes , anno;
public Tiempo ()
{
dia=mes=anno=0;
hora=minutos=segundos=0;
}
/////////////// definicion funciones set
public void sets(int segundos)
{
this.segundos= segundos;
}
public void setm (int minutos)
{
this.minutos= minutos;
}
public void seth(int hora)
{
this.hora= hora;
}
public void setd(int dia)
{
this.dia= dia;
}
public void setme(int mes)
{
this.mes=mes;
}
public void seta(int anno)
{
this.anno=anno;
}
//////////////// definicion funciones get
public int geth()
{
return hora;
}
public int getm()
{
return minutos;
}
public int gets()
{
return segundos;
}
public int getd()
{
return dia;
}
public int getme()
{
return mes;
}
public int geta()
{
return anno;
}


public Tiempo sumar (Tiempo hora2)
{
Tiempo aux;
aux= new Tiempo ();
aux.sets( segundos+ hora2.gets());
aux.setm( minutos + hora2.getm());
aux.seth( hora+ hora2.geth());
aux.setd( dia + hora2.getd());
aux.setme( mes+ hora2.getme());
aux.seta( anno+ hora2.geta());
aux= acomodartiempo(aux);
return aux;
}
public Tiempo restar (Tiempo hora1)
{
Tiempo aux;
aux= new Tiempo ();
aux.sets( segundos- hora1.gets());
aux.setm( minutos - hora1.getm());
aux.seth( hora- hora1.geth());
aux.setd( dia - hora1.getd());
aux.setme( mes- hora1.getme());
aux.seta( anno- hora1.geta());

aux=acomodartiempo(aux);
return aux;
}
public Tiempo acomodartiempo ( Tiempo aux )
{
if( aux.gets() >=60)
{
aux.setm(aux.getm()+( aux.gets()/60));
aux.sets(aux.gets() %60);
}
if( aux.getm() >=60)
{
aux.seth(aux.geth()+( aux.getm()/60));
aux.setm(aux.getm() %60);
}
if( aux.geth() >=24)
{
aux.setd(aux.getd()+( aux.geth()/24));
aux.seth(aux.geth() %24);
}
if( aux.getd() >31)
{
aux.setme(aux.getme()+( aux.getd()/31));
aux.setd(aux.getd() %31);
}
if( aux.getme() >12)
{
aux.seta(aux.geta()+( aux.getme()/12));
aux.setme(aux.getme() %12);
}

return aux;
}
}





parte de presentacion:
/*
programa de manejo de tiempo de un parqueadero . prte presentacion.

*/

package Presentacion;
import java.io.*;
import java.lang.*;
import Logica.Tiempo;

/**
* David Loaiza 20101078061
* Jesús Suárez 20101078100
*/
public class Formulario {
// aplico mas funciones static aca para reutilizar el codigo
public static void main (String args []) throws IOException
{
Tiempo resT= new Tiempo();

Tiempo t1=new Tiempo();
Tiempo t2=new Tiempo();
System.out.println(" FECHA DE ENTRADA");
t1=recibirdatos(t1);
System.out.println(" FECHA DE SALIDA");
t2=recibirdatos(t2);



System.out.println("hora de entrada");
mostrardatos(t1);
System.out.println("hora de salida");
mostrardatos(t2);

resT= t1.sumar(t2);
System.out.println("Resultado de sumar los tiempos");
mostrardatos(resT);

resT= t2.restar(t1);
System.out.println("diferencia de los tiempos");
mostrardatos(resT);

}
///////////////////////////////////
// funcion que imprime los datos del objeto
public static void mostrardatos(Tiempo res)
{
System.out.println("segundos: " + res.gets());
System.out.println("minutos: " + res.getm());
System.out.println("horas: " + res.geth());
System.out.println("dias: " + res.getd());
System.out.println("mes: " + res.getme());
System.out.println("año: " + res.geta());

}
//////////////////////////////
// funcion que recibe datos del objwto
public static Tiempo recibirdatos(Tiempo aux) throws IOException
{
System.out.println(" digite la hora de entrada");
System.out.println(" segundos :");
do{
aux.sets(leer());
if( aux.gets()>=60)
{
System.out.println("error escriba de nuevo");
}
}while(aux.gets()>=60);

System.out.println(" minutos :");
do{
aux.setm(leer());
if( aux.getm()>=60)
{
System.out.println("error escriba de nuevo");
}
}while(aux.gets()>=60);


System.out.println(" horas :");
do{
aux.seth(leer());
if( aux.geth()>=24)
{
System.out.println("error escriba de nuevo");
}
} while(aux.geth()>=24);
System.out.println(" dias :");
do{
aux.setd(leer());
if( aux.getd()>31)
{
System.out.println("error escriba de nuevo");
}
} while(aux.getd()>31);
System.out.println(" mes(el mes se escribe numericamente) :");
do{
aux.setme(leer());
if( aux.getme()>12)
{
System.out.println("error escriba de nuevo");
}
} while(aux.getme()>12);
System.out.println(" año :");
aux.seta(leer());

return (aux);
}
public static int leer()throws IOException
{
InputStreamReader entrada = new InputStreamReader(System.in);
BufferedReader lectura=new BufferedReader (entrada);
String cadena= lectura.readLine();
return (Integer.parseInt(cadena));
}
}


imagen del programa compilado desde consola

No hay comentarios:

Publicar un comentario