viernes, 2 de diciembre de 2016

Ejemplo 4 : Composición

public classCirculo {
Punto origen;intradio;publicCirculo(intx, inty, intradio) {
origen = newPunto(x,y);this.radio = radio;
}
public voidmostrar() {
origen.mostrar();System.out.println("radio = " + radio);
}
public static void main(String args[]) {
Circulo cir= newCirculo(5, 5, 9);System.out.println( "visualizar datos del circulo" );cir.mostrar();
 }
}

Ejemplo 3 de composición

Capa  1
  public classPunto {intx;inty;publicPunto(intx, inty){
this.x = x;this.y = y;
}

publicPunto() {// llamada al otro constructorthis(-1, -1);
 }

public voidmostrar(){
System.out.println(“x = “ + x +” y = “ + y);
}

public static void main(String args[]) {
Punto pun1 = newPunto();Punto pun2 = newPunto(2,3);System.out.println( "visualizar datos del punto" );pun1.mostrar();pun2.mostrar();
}

}

Ejemplo 2 : Composición

package Datos;

public class Punto {
int x;
int y;
public Punto (int x, int y){
this.x=x;
this.y=y;
public Punto(y, y){
this(-1,-1); //Llamada al otro constructor
}

}
}

Capa 2

package Visualización;

import Datos.Punto;

public class Rumpunto {
Punto pun1= new Punto();
Punto pun2= new Punto(2,3);
}

Ejemplo 2 Asociación

Capa 1

package Asociacion;

public class Taxi {
private Conductor conductor;
private String matricula;

public Taxi(Conductor conductor, String matricula){
this.conductor=conductor;
this.matricula=matricula;
}

public void printMatricula(){
System.out.println(matricula);
}

public void printlConductor(){
String nombreConductor=conductor.getNombre();
System.out.println(nombreConductor);
}
}

Capa 2

package Asociacion;

public class Conductor {
private String nombre;

public Conductor(String nombre){
this.nombre=nombre;
}

public String getNombre() {
return nombre;
}


}

Capa 3

package Asociacion;

public class RunConductor {
public static void main(String [] args){
Conductor miConductor=new Conductor("Angie");
Taxi miTaxi=new Taxi(miConductor, "ABC-123");
miTaxi.printlConductor();
miTaxi.printMatricula();
}
}

Restaurante: Tres paquetes

Primera Capa

package Datos;

import logica.Mesas;

public class Restaurante {

private Mesas [] mesa;

public Mesas[] getMesa() {
return mesa;
}

public void setMesa(Mesas[] m) {
this.mesa = m;
}

}

Segunda Capa


package logica;

public class Mesas {
private String pedido;
private double valor;
private String Estado;
private double CuentaT;
 
public double getCuentaT() {
return CuentaT;
}
public void setCuentaT(double cuentaT) {
CuentaT = cuentaT;
}
public Mesas(String p, String e, double v){
pedido=p;
valor=v;
Estado=e;
}
public String getPedido() {
return pedido;
}
public void setPedido(String pedido) {
this.pedido = pedido;
}
public double getValor() {
return valor;
}
public void setValor(double valor) {
this.valor = valor;
}
public String getEstado() {
return Estado;
}
public void setEstado(String estado) {
Estado = estado;
}
 
 
}
Tercera Capa

package logica;
import java.util.Scanner;
import java.util.Random;

import Datos.Restaurante;

public class Metodos {
Scanner kai= new Scanner(System.in);
Restaurante [][] restaurante= new Restaurante[2][5];
Mesas [] m= new Mesas[11];
Restaurante r= new Restaurante();
public void MenúPrincipal(){
boolean again=true;
int mesaobt=0;
 while (again==true){
System.out.println("¡Buenos días!, bienvenido al restaurante \"Delicias kai\"");
System.out.println("¿qué desea hacer?");
System.out.println("<1> Obtener una mesa");
 System.out.println("<2> Mostrar cuenta");
  System.out.println("<3> Mostrar recaudo total (Opción sólo para administradores) ");
  System.out.println("<4> Hasta luego.");
 
int opc=kai.nextInt();
switch(opc){  
case 1 : 
ObtenerMesa();
mesaobt=1;
break;
case 2:
if (mesaobt==1){
Cuenta();
}
else{
System.out.println("Su petición no puede ser ejecutada porque no ha obtenido una mesa todavía");
}
break;
case 3:
if(mesaobt==1){
Total();
}
else {
System.out.println("Lo siento, pero parece que aún no han habido clientes, trata más tarde de nuevo.");
}
break;
case 4:
System.out.println("Muchas gracias por su compra, espero nos veamos pronto de nuevo.");
again=false;
break;
default:System.out.println("Lo siento, pero no hay realmente una opción así, por favor intenta otra");
}
}
}
public void Total(){
double RT = 0;
for (int i=0; i<=10;i++){
RT= RT+ m[i].getCuentaT();
}
System.out.println("El día de hoy se han recaudado $"+RT);
}
public void Cuenta(){
System.out.println("Ingrese el número de su mesa, por favor");
int r=kai.nextInt();
System.out.println("Mesa #"+r+" \nTiene una cuenta de $"+m[r].getCuentaT());
m[r].setEstado("Vacío");
}
public void LlenarI(){
String p, e;
double v;
 
for (int k=0;k<m.length;k++){
p="Ninguno";
e="Vacío";
v=0;
m[k]=new Mesas(p,e,v);
       }
      
}
public void ObtenerMesa(){
Random rnd = new Random();
boolean again=true;
while (again==true){
int random2 =(int)(rnd.nextDouble() * 10 + 1);
System.out.println(random2);
if(m[random2].getEstado().equals("Vacío")){
m[random2].setEstado("Lleno");
System.out.println("Su mesa es la  #"+ (random2));
Menú (random2);
again=false;
}
else{
System.out.println("La mesa #"+random2+" está ocupada.");
}
 
}
 
}
public void Menú(int r){
boolean again=true;
double Cuenta=0;
while(again==true){
System.out.println("¿Qué desea comer?");
System.out.println("<1> Pollo y bebida ($26.000)");
System.out.println("<2> Pescado y bebida($41.000)");
System.out.println("<3> Carne y bebida($39.000)");
System.out.println("<4> Nada más");
int opc1=kai.nextInt();
switch(opc1){
case 1: 
m[r].setPedido("Pollo y bebida");
Cuenta=Cuenta+26000;
break;
case 2: 
m[r].setPedido("Pescado y bebida");
Cuenta=Cuenta+41000;
break;
case 3:
m[r].setPedido("Carne y bebida");
Cuenta=Cuenta+39000;
break;
case 4:
System.out.println("Está bien, espere su orden con calma.");
again=false;
break;
}
}
m[r].setCuentaT(Cuenta);
}
}

Cuarta Capa

package Visualizaciójn;
import java.util.Scanner;
import logica.Metodos;

public class RumRestaurante {
static Scanner kai= new Scanner(System.in);
public static void main(String[]args){
Metodos m= new Metodos();
m.LlenarI();
m.MenúPrincipal();
}
}

Ejemplo 2 Try- Catch

Ejemplo :

JOptionPane.showMessageDialog(null, "¡Bienvenido a Kai Restaurant!");
while(again==true){
srtopón=JOptionPane.showInputDialog(" Seleccione qué desea hacer: \n<1> Obtener una mesa. \n<2>Pagar la cuenta. \n <3> Salir.");
try{
opcion=Integer.parseInt(srtopón);
}
catch(NumberFormatException ex){
JOptionPane.showMessageDialog(null, "Lo siento, pero solamente se permite el dígito de números en esta elección");
}

Ejemplo Try- Catch

Primera capa y única capa

public class Try1{
public static void main (String[]args){
int [] array= new int[20];
try{

array[-3]=24;//Si le pones el - te da una excepción
}
catch(Exception e){
System.out.println("No se puede");
}
//Si hay varios catch solo toma el primero, el segundo no
finally{
System.out.println(array[3]);
System.out.println("Fin");
}
}
}

Quiz: Colecciones

Primera clase
package Datos;

publicclass Ciclista {
       privateStringNombre;
       privateStringNacionalidad;
       privateDoubleTiempo;
      
             public Ciclista(StringNombre, StringNacionalidad, doubleTiempo){
                    this.Nombre=Nombre;
                    this.Nacionalidad=Nacionalidad;
                    this.Tiempo=Tiempo;
             }
       publicStringgetNombre() {
             returnNombre;
       }
       publicvoidsetNombre(Stringnombre) {
             Nombre = nombre;
       }
       publicStringgetNacionalidad() {
             returnNacionalidad;
       }
       publicvoidsetNacionalidad(Stringnacionalidad) {
             Nacionalidad = nacionalidad;
       }
       publicDoublegetTiempo() {
             returnTiempo;
       }
       publicvoidsetTiempo(Doubletiempo) {
             Tiempo = tiempo;
       }
      
      

}

Segunda Clase

package Lógica;
importjava.util.ArrayList;
importjava.util.HashSet;

importjavax.swing.JOptionPane;
importDatos.Ciclista;
publicclass Campeonato {
       HashSet<Ciclista>ciclistas= newHashSet<Ciclista>();
       HashSet<String>Nombres= newHashSet<String>();
       HashSet<String>Nacionalidad= newHashSet<String>();
       publicvoidMenu(){
             intopcion = 0, veces=0;
            
             booleanagain=true;
             JOptionPane.showMessageDialog(null, "¡Hola!, Bienvenido al campeonato Internacional de ciclismo.");
             while(again==true)  {
                    Stringopcn =JOptionPane.showInputDialog("Por favor seleccione qué desea hacer:\n <1>Ingresar Jugador. \n<2>Hacer carrera.\n<3>Mostrar por equipos.\n<4>Salir.");
                   
                    try{
                           opcion= Integer.parseInt(opcn);
                    }
                    catch(NumberFormatExceptione){
                           JOptionPane.showMessageDialog(null, "Lo siento, solo puede digitar opciones que sean números");
                    }
                   
                    switch(opcion){
                           case 1:
                                  N();
                                 
                           break;
                           case 2:
                                  if (ciclistas.size()>=4){
                                        hacerCarrera();
                                  }
                                  else{
                                        JOptionPane.showMessageDialog(null, "Lo siento, pero debe inscribir a mínimo cuatro participantes antes de poder hacer la carrera.\nHasta ahora hay   "+ciclistas.size());
                                  }
                                 
                           break;
                           case 3:
                                  JOptionPane.showMessageDialog(null, "¡Hola!, este método está en construcción por fallos técnicos, lo sentimos");
                           break;
                           case 4:
                                  again=false;
                           break;
                                 
                                 
                    }
             }
                   
       }
       publicvoid N(){
             booleanotravez=true;
            
             while(otravez==true){
                    Stringnombre =JOptionPane.showInputDialog("Digite el nombre del ciclista:");
                   
                    for(Stringn:Nombres){
                          
                           if (n==nombre){
                                  JOptionPane.showMessageDialog(null, "Lo siento, pero el nombre " +n+" Ya está en la lista, digite otro nombre, por favor");
                           }
                           else{
                                  añadirCiclista(nombre);
                                  Nombres.add(nombre);
                                  otravez=false;
                                 
                           }
                          
                    }
             }
            
            
       }
       publicvoidañadirCiclista(Stringnombre){
                    Stringnacionalidad =JOptionPane.showInputDialog("Digite la nacionalidad del ciclista");
                    Nacionalidad.add(nacionalidad);
                    Ciclista v=newCiclista(nombre, nacionalidad, 0);
                    ciclistas.add(v);
       }
      
       publicvoidhacerCarrera(){
             doublett, tiem, tttt;
             for (Ciclista n: ciclistas){
                    StringTiempo =JOptionPane.showInputDialog("Digite el tiempo del ciclista"+ n);
                    tiem=Double.parseDouble(Tiempo);
                    tt=tt+tiem;
             }
             tttt=tt/2;
             JOptionPane.showMessageDialog(null, "El tiempo promedio es"+tttt);
       }





Tercera Clase
package Visualización;

importLógica.Campeonato;

publicclassRumCampeonato {
       publicstaticvoidmain(String[]args){
       Campeonato c= new Campeonato ();
       c.Menu();
       }
       publicvoidhacerCarrera(){
             doubleTo=0, n;
             for (Ciclista n: ciclistas){
                    StringTiempo =JOptionPane.showInputDialog("Digite el tiempo del ciclista"+ n);
                   
                    To=Tiempo+To;
             }
       }
}