lunes, 29 de agosto de 2011

Esqueleto de clases

Taller de programación orientada a objetos

El proyecto que realizaré es de un videoclub, en donde se realicen rentas y ventas de películas. Para dicho proyecto necesito usar una base de datos en donde se almacenen los datos del videoclub, como los datos de los empleados, de los clientes y de las películas.

El lenguaje en donde realizaré este proyecto es Java, para la base de datos utilizaré MySQL.


Las clases, atributos y métodos de mi proyecto son:

Clase principal: Videoclub.
Visibilidad: pública.
Atributos: empleados (empleados), clientes (clientes), películas (películas), ventas (ventas) y rentas (rentas).
Visibilidad: privada.
Métodos: crear().
Visibilidad: pública.

Clase: Empleado.
Visibilidad: pública.
Atributos: número (no_empleado), nombre (nom_empleado) y contraseña (contraseña).
Visibilidad: privada.
Métodos: consultar().
Visibilidad: pública.

Clase: Cliente.
Visibilidad: pública.
Atributos: número (no_cliente), nombre (nom_cliente), colonia (colonia), calle (calle), número de calle (no_dir), código postal (cp_dir) y teléfono (tel_cliente).
Visibilidad: privada.
Métodos: registrar().
Visibilidad: pública.

Clase: Película.
Visibilidad: pública.
Atributos: número (no_pel), título (título), material (material), situación (situacion), género (genero), clasificación (clasificacion), costo de venta (costo_vta), costo de renta (costo_rta), cantidad de películas de venta (cantpel_vta) y cantidad de películas de renta (cantpel_rta).
Visibilidad: privada.
Métodos: vender(), rentar(), registrar() y eliminar().
Visibilidad: pública.

Clase: Ticket de venta.
Visibilidad: pública.
Atributos: número de ticket de venta (no_tvta), número de cliente (no_cliente), número de empleado (no_empleado), nombre de empleado (nom_empleado), número de película (no_pel), costo de venta (costo_vta), título de la película (título), cantidad de películas vendidas (cant_vta), fecha de venta (fecha), subtotal (subtotal) y total (total).
Visibilidad: privada.
Métodos: imprimir().
Visibilidad: pública.

Clase: Ticket de renta.
Visibilidad: pública.
Atributos: número de ticket de renta (no_trta), número de cliente (no_cliente), número de empleado (no_empleado), nombre de empleado (nom_empleado), número de película (no_pel), costo de renta (costo_rta), título de la película (título), cantidad de películas rentadas (cant_rta), fecha de renta (fecha), fecha límite de renta (fechaLimRta), fecha de entrega (fechaEntrega), multa (multa), subtotal (subtotal) y total (total).
Visibilidad: privada.
Métodos: imprimir ().
Visibilidad: pública.

En la clase Empleado, se requiere el número de empleado y su contraseña para que el empleado pueda acceder a la base de datos.
El método consultar(), es el método con el cual el Empleado podrá consultar la base de datos.

En la clase Cliente, se requieren los atributos ya mencionados para registrar al cliente en la base de datos.
El método registrar() es para registrar a los clientes en la base de datos.

En la clase Película, el número de la película es el número con el que se identificara cada película que haya en el videoclub. El material puede ser VHS, DVD o Blu-ray. La situación de la película significa si la película esta disponible, o si esta rentada.
Los métodos vender() y rentar() se utilizarán cuando se realicen ventas y rentas respectivamente de las películas.
Los métodos agregar() y eliminar() se utilizarán para dar de alta una película y para eliminar una película respectivamente.

La clase TicketVenta contiene los atributos que aparecerán en un Ticket de venta al realizarse una venta.
El método imprimir() hará que se muestre el Ticket de la venta.

La clase TicketRenta contiene los atributos que aparecerán en un Ticket de renta al realizaese una renta.
El método imprimir() hará que se muestre el Ticket de la renta.

Por el momento las clases anteriores, son las clases que he observado en mi proyecto. Si después observo mas clases, las añadiré a mi proyecto.

Código de esqueleto de clases en Java
public class Videoclub{   //clase principal Videoclub
private String empleados;
private String clientes; //atributos
private String peliculas;
private String ventas;
private String rentas;

public Videoclub(){
//constructor
}

public void crear(){ //metodo
}

public class Empleado{ //clase Empleado
private int no_empleado;
private String nom_empleado; //atributos
private int contraseña;

public Empleado(){
//constructor
}

public void consultar(){ //metodo
}
}

public class Cliente{ //clase Cliente
private int no_cliente;
private String nom_cliente; //atributos
private String colonia;
private String calle;
private int no_dir;
private int cp_dir;
private int tel_cliente;

public Cliente(){
//constructor
}

public void registrar(){ //metodo
}
}

public class Pelicula{ //clase Pelicula
private int no_pel;
private String titulo;
private String material;
private String situacion; //atributos
private String genero;
private String clasificacion;
private double costo_vta;
private double costo_rta;
private int cantpel_vta;
private int cantpel_rta;

public Pelicula(){
//constructor
}

public void vender(){ //metodo
}

public void rentar(){ //metodo
}

public void agregar(){ //metodo
}

public void eliminar(){ //metodo
}
}

public class TicketVenta{ //clase TicketVenta
private int no_tvta;
private int no_cliente;
private int no_empleado;
private String nom_empleado;
private int no_pel; //atributos
private double costo_vta;
private String titulo;
private int cant_vta;
private String fechaVta;
private double subtotal;
private double total;

public TicketVenta(){
//constructor
}

public void imprimir(){ //metodo
}
}

public class TicketRenta{ //clase TicketRenta
private int no_trta;
private int no_cliente;
private int no_empleado;
private String nom_empleado;
private int no_pel;
private double costo_rta;
private String titulo;
private int cant_rta; //atributos
private String fechaRta;
private String fechaLimRta;
private String fechaEntrega;
private double multa;
private double subtotal;
private double total;

public TicketRenta(){
//constructor
}

public void imprimir(){ //metodo
}
}
}
Referencia

Saludos.

Implementación de una clase

Taller de programación orientada a objetos

El programa que realicé es el siguiente:

Clase: Figura
Visibilidad: public.

Atributos: base, altura, lado, area, areac, perimetro y perimetroc.
Visibilidad: private.

Métodos: area() y perimetro().
Visibilidad: public.

Código
import java.util.Scanner;

public class Figura{ //clase
private static int base;
private static int altura;
private static int lado;
private static int area; //atributos
private static int areac;
private static int perimetro;
private static int perimetroc;

public Figura(){ //constructor
this.base=base;
this.altura=altura;
this.lado=lado;
area();
perimetro();
}
public int area(){ //metodo
area = base * altura;
areac = lado * lado;
return area;
}
public int perimetro(){ //metodo
perimetro = 2*base + 2*altura;
perimetroc = 4 * lado;
return perimetro;
}
public static void main(String args[]){
Figura rectangulo, cuadrado;
rectangulo = new Figura(); //objeto rectangulo tipo Figura
cuadrado = new Figura(); //objeto cuadrado tipo Figura
Scanner leer = new Scanner(System.in);
int opc, a, p, ac, pc;

do{
System.out.println("");
System.out.println("\t\t\t 1.- Area y perimetro (Rectangulo)");
System.out.println("\t\t\t 2.- Area y perimetro (Cuadrado)");
System.out.print("Opcion a elegir: ");
opc = leer.nextInt();

if(opc==1){
System.out.print("Base: ");
base = leer.nextInt();
System.out.print("Altura: ");
altura = leer.nextInt();
a = rectangulo.area();
p = rectangulo.perimetro();
System.out.println("Area: "+ area +", " +"Perimetro: "+ perimetro);
}
if(opc==2){
System.out.print("Lado: ");
lado = leer.nextInt();
ac = cuadrado.area();
pc = cuadrado.perimetro();
System.out.println("Area: "+ areac +" ," +"Perimetro: "+ perimetroc);
}
}while(opc<=2); } }


El programa calcula el area y el perimetro de dos figuras: rectangulo y cuadrdado. Por dicha razón incluí los métodos area() y perimetro().
El contructor no recibe parametros.
En cada método estan las instrucciones a realizar según el objeto que se seleccione.
En la función principal main se crean los 2 objetos tipo Figura, el rectangulo y el cuadrado.
En la opción del rectangulo se manda a llamar a los métodos area() y perimetro() y se imprime el area y el perimetro del rectangulo. Lo mismo se realiza con la opción cuadrado, es decir, se mandan a llamar a los métodos area() y perimetro() y se imprime el area y el perimetro del cuadrado.

Imagen



Referencias:
Referencia 1
Referencia 2

Saludos.

jueves, 18 de agosto de 2011

Instalación de herramientas

Taller de Programación Orientada a Objetos

En esta entrada explicare como instalar las herramientas que estare utilizando en Taller de Programación Orientada a Objetos para mi proyecto.

Utilizare el sistema operativo xubuntu 11.04, muy parecido a Ubuntu.


Para editar codigo utilizare el editor de textos, Emacs.

Descarga e instalación de Emacs.


Primero abrimos la terminal y escribimos emacs, y se mostrarán los paquetes que contengan el nombre "emacs". El primer paquete es el que descargaremos e instalaremos, es decir, emacs23.

Ahora para descargar e instalar ese paquete de emacs23, tecleamos en la terminal lo siguiente:

sudo apt-get install emacs23

Se mostrara algo asi en la terminal:

Después de terminada la descarga y la instalación, tecleamos emacs en la terminal y se abrirá dicho editor.

Listo, se ha instalado Emacs.

Para realizar algun programa en Emacs en cualquier lenguaje de programación, escribimos lo sguiente en la terminal:
emacs nombreprograma.extensión
Es decir, se escribe emacs, despues el nombre de nuestro programa con la extensión del lenguaje. Por ejemplo para hacer un programa en C, colocamos en la terminal lo siguiente:
emacs programa.c
Descarga e instalación de JAVA

JAVA será el lenguaje orientado a objetos que estare utilizando.

Para comenzar la descarga e instalación de JAVA, tecleamos en la terminal javac, que es el compilador de JAVA, nos aparecerán varios paquetes, pero el que descargaremos e instalaremos es openjdk-6-jdk.


Ahora para descargar e instalar el paquete openjdk-6-jdk, tecleamos en la terminal lo siguiente:
sudo apt-get install openjdk-6-jdk
Se mostrará algo asi en la terminal:


Después de terminada la descarga y la instalación, tecleamos en la terminal java y se mostrará algo asi:


Ahora tecleamos javac en la terminal, y se mostrará algo asi:


Esto quiere decir que se ha instalado correctamente el compilador de JAVA.

Para compilar algun programa hecho en JAVA se tecla lo siguiente en la terminal:
javac nombreprograma.java
Para ejecutar el programa se escribe en la terminal lo siguiente:
java nombreprograma
API de JAVA (En inglés).

Descarga e instalación de MySQL
MySQL es un gestor de base de datos y además es un software libre. Utilizaré MySQL para crear bases de datos para mi proyecto.

Para descargar e instalar MySQL debemos instalar dos paquetes.
Tecleamos en la terminal lo siguiente:
sudo apt-get install mysql-server mysql-client
Al instalarse MySQL se pedirá una contraseña del administrador root.
Al terminar la descarga y la instalación se mostrará algo asi:

Para entrar a MySQL, nos conectamos como root, tecleando lo siguiente en la terminal:
mysql -u root -p
Se pedirá la contraseña que escribimos cuando se instaló MySQL.
Después de conectarnos como root nos aparecerá lo siguiente:

Ahora ya estamos en MySQL. Para crear una base de datos tecleamos lo siguiente:
create database nombredelabasededatos;
Para salir de MySQL, tecleamos exit en la terminal.


Descarga e instalación de Umbrello

Umbrello es una herramienta que permite crear diagramas UML para ayudar en la creación de un software. Permite generar automáticamente un código a partir de la creación de un diagrama en los lenguajes: C++, JAVA, Python, IDL, Pascal/Delphi, Ada, Perl, entre otros. También crea diagrmas a parir de la importación de código de los lenguajes anteriores.
Para descargar e instalar Umbrello, tecleamos lo siguiente en la terminal:
sudo apt-get install umbrello
Después de instalado Umbrello, tecleamos en la terminal Umbrello, y se abrirá dicha herramienta.



Descarga e instalación de BOUML

Bouml es una aplicación UML que permite definir y generar código en C++, JAVA, ldl, PHP. Es una aplicación rápida que no requiere mucha memoria para manejar varios miles de clases.
Para descargar e instalar Bouml, tecleamos en la terminal lo siguiente:
sudo apt-get install bouml

Después de la instalación de bouml, tecleamos bouml en la terminal y se abrirá dicha aplicación.


Referencias:

Saludos.

martes, 9 de agosto de 2011

Taller de Programación Orientada a Objetos

_________________________________________________________

Taller de Programación Orientada a Objetos
_________________________________________________________