lunes, 29 de agosto de 2011

Clase Moto (Puntos Extra)

**Entrega 1** - Entrada Corregida - Puntos Extra

  • Eliminado el Pseudo-código, se agrego el código del programa.


Este es el código de la tarea de la moto para puntos extras en taller:

Clase moto

public class moto 
{
 
private String placa; 
private boolean motor; //Encencido o apagado
private int velocidad = 0; //Inicia en 0 , termina en 300
private int bateria = 200; 

//Constructor de la clase moto
public moto(String placa, boolean motor , int velocidad, int bateria)
{
 this.placa = placa;
 this.motor = motor;
 this.velocidad = velocidad;
 this.bateria = bateria;
}

//Metodos
//Regresa un String con el valor de la placa
public String ret_placa() 
{
  return placa;
}

//Regresa el valor del estado del motor
public boolean ret_motor() 
{
 return motor;
}

//Regresa la velocidad de la moto
public int ret_velocidad() 
{
 return velocidad;
}

//Regresa el valor de la bateria
public int ret_bateria() 
{
 return bateria;
}

//Metodo que puede manipular el incremento o decremento de velocidad*/
public void mod_velocidad(int vel) 
{
 this.velocidad = this.velocidad + vel;
}

public void mod_bateria(int bat)
{
 this.bateria =this.bateria + bat;
}

//Metodo para manipular el encendido o apagado
public void set_motor(boolean estado)  
{
 this.motor = estado;
}

//Cambiar el valor de la velocidad de la moto
public void set_velocidad(int velocid) 
{
 this.velocidad = velocid;
}


}



Clase Main

import java.util.Scanner;

public class Main {

 
 public static void main(String[] args)
 {
  int op = 1;
  Scanner entra = new Scanner(System.in);
  
  moto Moto = new moto ("R2RG9", false, 0, 200); 
  
  while (op != 5 )
  {
  
  System.out.println("Placa:" + Moto.ret_placa());
  System.out.printf("Estado del motor:");
  if (Moto.ret_motor() == true)
  System.out.println("Prendido");
  else
     System.out.println("Apagado");
  System.out.println("Velocidad actual:" + Moto.ret_velocidad()+ " Km/h");
  System.out.println("Bateria:" + Moto.ret_bateria());
  System.out.println("");
  System.out.println("Seleccione:");
  System.out.println("1.Prender Moto");
  System.out.println("2.Apagar Moto");
  System.out.println("3.Acelerar");
  System.out.println("4.Frenar");
  System.out.println("");
  op = entra.nextInt();
  
  switch (op)
  {
  case 1:
   if (Moto.ret_bateria() > 0 )
   {
    
   if (Moto.ret_motor() == false)
   {
   Moto.set_motor(true);
   Moto.mod_bateria(-50);
   }
   
   else
   {
    System.out.println("La moto ya esta prendida.");
   }
   
  }
  
  else 
  {
   System.out.println("La vida de la Bateria se ha terminado.");
  }
   break;
   
  case 2:
   if (Moto.ret_motor() == true )
   {
   Moto.set_velocidad(0);
   Moto.set_motor(false);
   }
   
   else
   {
    System.out.println("La moto ya esta apagada.");
   }
   break;
   
  case 3:
   
  if ( Moto.ret_motor() == true )
  {
   if (Moto.ret_velocidad() < 300 )
   {
   Moto.mod_velocidad(+20);
   }
   else
   {
    System.out.printf("La velocidad de la moto esta al maximo.\n\n");
   }
  }
  
  else {
   System.out.println("La moto esta apagada.");
  }
   break;
   
  case 4:
  
   if ( Moto.ret_motor() == true )
   {
    if (Moto.ret_velocidad() > 0 )
    {
    Moto.mod_velocidad(-20);
    }
    
   }
   
   else {
    System.out.println("La moto esta apagada.");
   }
   
   break;
   
  default:
   
   break;
   
  }
  
  System.out.println("------------------------");
  } 
  
 }
 
}

Definición del Proyecto & Clases y Metodos

**Entrega 1**

Mi proyecto que tengo pensado hacer es un Gestor de Contactos, en donde se pueden almacenar datos de personas. Hice un borrador mas o menos hasta donde tengo pensando llegar con mi proyecto, si en el transcurso de las semanas se me ocurren mas cosas las iré añadiendo. Aquí un ejemplo de como se vería mi programa.



Tiene algunas cosas que pienso cambiar, por ejemplo los datos del usuario, puede que agregue mas campos.

La opción Exportar la tengo pensada para exportar los datos a una base de datos externa, puede que sea SQL aunque aun no conozco mucho del tema, esa seria una cosa que ando pensando agregar. En la pantalla de usuario viene un cuadro que dice extra, ese botón tambien estoy pensando en ponerlo o no, serviría para añadir notas del contacto, o algún otro campo secundario. En donde dice tipo, en realidad quería poner categoría del contacto, si es familiar, amigo etc.. y en el cuadro que aparece , tengo pensado que ahí irá una fotografía de la persona, y también el posible tamaño que tendría la foto en pixeles (300x200). La barra purpura seria movible por si el usuario quiere ver mas contactos y los cuadritos verdes significa que es una barra desplegable o de scroll, para ver la lista completa. 

Algunas opciones como "buscar", "ordenar", "cambiar letra", irían en edición o en opciones. El programa también permite crear categorías de contactos , algo así como en el MSN para tener ordenados los contactos. Lo demás que no explico aquí es auto explicito. 



CLASES, MÉTODOS, ATRIBUTOS 


1. Clase Contacto (Pública) -> Maneja la información de los contactos


    (Privados)Atributos: Nombre, Categoría, Dirección, Teléfono, Cumpleaños, Imagen 

    (Públicos) Metodos: Añadir, Borrar, Mover, Borrar





2. Clase Categoría (Publica) -> Es la clase que maneja las categorías de contactos.


   (Privados) Atributos: nombre_categoria, icono, contacto

   (Publicos) Metodos: añadir categoría, borrar categoría, modificar categoría.


Otros métodos:
  • archivo-nuevo: Permite crear un archivo.
  • abrir-archivo: Abre un archivo.
  • guarda-archivo: Guarda el archivo para ser leído posteriormente.
  • buscar-contacto: Proporcionando una palabra busca en la base de datos y filtra los que tengan ese dato.
  • cambiar-color: Cambia el color visual de los datos, el fondo u otra característica gráfica.
  • ordenar: Ordena los contactos alfabéticamente de la A - Z.




Por ahora creo que son suficientes, en el caso de que se me ocurra alguna corrección o que se me pase algo , modificare esta entrada después.





Herramientas

**Entrega 1** - Entrada Corregida 

**Corrección


  • Eliminé Emacs de las herramientas. Para trabajar con Java en Ubuntu utilicé el gedit el cual ya viene incluido en Ubuntu.
  • Agregué los links de referencia que faltaban.


Hola a todos, este es mi primer post sobre las herramientas que estare utilizando para llevar acabo el proyecto, por ahora solo he considerado estas, aunque tambien creo que utilizaré algun programa para los diagramas UML en caso de usarlos (lo mas probable).

Aqui mis herramientas actuales:
  • Ubuntu 10.04.3 
  • Librerias para Java (Openjdk-6-jdk)
  • getEdit (Editor de Texto incluido en ubuntu)




Ubuntu 10.04.3


La version de ubuntu 10.04.3 es la que usaré, actualmente esta la 11.04 pero al parecer como es beta, aun tiene algunas fallas, de hecho no la pude instalar en mi usb, mejor preferí descargar la 10.04 y me funciona muy bien.






Openjdk-6-jdk


Son las librerias para poder programar en Java. Mas abajo pondré como se instalan por si alguien tuvo problemas, ya que en algunos tutoriales aparece que se instala directamente con el comando "sudo apt-get install Openjdk-6-jdk". En mi caso no funcionó, tuve que actualizar el "apt-get" antes de descargarlo.





Gedit

El editor de texto para trabajar con Java (y con otros lenguajes). Ya viene incluido en Ubuntu.




Umbrello


Software para trabajar con diagramas UML.








Instalación

Instalando Java

Este minitutorial lo hice en el caso de que no puedas instalar Java directamente usando el comando sudo apt-get install openjdk-6-jdk.



Para instalar los programas anteriores estos fueron los pasos que realicé.

1. Actualizar "apt-get" (en el caso de ser necesario), ya que a mi no me dejaba instalar las librerias de java porque habian algunas librerias que faltaban y como recomendacion, la consola me mostro el mensaje que intentara actualizar usando el comando


sudo apt-get update 




Si les pregunta algo le ponen una S, para confirmar. Ya despues de actualizar el "apt-get" podemos instalar las librerias de Java, para eso escribimos el siguiente
comando en la consola:


sudo apt-get install openjdk-6-jdk


Le ponemos la S y al final se verá algo como esto:




Ahora ya podemos compilar archivos java.


 Instalando Umbrello

Para poder Instalar umbrello, primero abrimos la consola y después tecleamos el siguiente comando:

sudo apt-get install umbrello

Con este comando, se empezará a instalar umbrello, con el cual podremos trabajar los diagramas UML. Cuando lo instalemos veremos una pantalla similar a la siguiente:





Referencias:

http://fernando-webblog.blogspot.com/2008/05/umbrello-uml-modeller.html
http://www.slideshare.net/maxkalavera/taller-oop-presentacion
http://www.taringa.net/posts/linux/11556168/Como-instalar-Java-en-Ubuntu-y-Linux-MInt.html


miércoles, 10 de agosto de 2011

Entrada de Prueba








Este será mi blog para la materia de  





Taller de Programación Orientada a Objetos

  





Martes M1 - M2