Todo lo necesario para sobrevivir en la carrera de Ing. en Informática, Vespertino

27 jun 2007

Tarea Proyecto Automotriz

Para que funcione el cambio de precio, se deben realizar modificaciones en las clases Auto y Camioneta, si no, no funciona por la "visibilidad" de los objetos.

Dejo aquí la tarea resuelta :-)

Suerte!



// ************************************************* //
public class Auto {

private String marca;
private int anho;
private String color;
private Registro registroAuto;

/** constructor por defecto */
public Auto() {
this.marca = "desconcida";
this.anho = 0;
this.color = "desconocido";
/** por defecto se tomara que el precio es CERO y
* que NO es usado */
registroAuto = new Registro(0,false);
}
/** constructor por paso de parametros */
public Auto(String marca, int año, String color, double precio, boolean esUsado) {
this.marca = marca;
this.anho = anho;
this.color = color;
registroAuto = new Registro(precio,esUsado);
}

public int getAnho() {
return anho;
}
public void setAnho(int año) {
this.anho = anho;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getMarca() {
return marca;
}
public void setMarca(String marca) {
this.marca = marca;
}

//-----------------------
// -- Esto es necesario para la tarea
public void setPrecio(double precio) {
this.registroAuto.setPrecio(precio);
}

public double getPrecio() {
return this.registroAuto.getPrecio();
}

public boolean getEsUsado() {
return this.registroAuto.getEsUsado();
}

}

// ************************************************* //


/**
*
*/
public class Camioneta {
private String marca;
private int año;
private double capacidadKilos;
private Registro registroCamioneta;

public Camioneta(String marca, int año, double capacidadKilos, double precio, boolean esUsado) {
this.marca = marca;
this.año = año;
this.capacidadKilos = capacidadKilos;
registroCamioneta = new Registro(precio,esUsado);
}

public Registro getRegistroCamioneta() {
return registroCamioneta;
}
public void setRegistroCamioneta(Registro registroCamioneta) {
this.registroCamioneta = registroCamioneta;
}
public double getCapacidadKilos() {
return capacidadKilos;
}
public void setCapacidadKilos(double capacidadKilos) {
this.capacidadKilos = capacidadKilos;
}
public int getAño() {
return año;
}
public void setAño(int año) {
this.año = año;
}
public String getMarca() {
return marca;
}
public void setMarca(String marca) {
this.marca = marca;
}

//-----------------------
// -- Esto es necesario para la tarea
public void setPrecio(double precio) {
this.registroCamioneta.setPrecio(precio);
}

public double getPrecio() {
return this.registroCamioneta.getPrecio();
}

public boolean getEsUsado() {
return this.registroCamioneta.getEsUsado();
}

}


// ************************************************* //


/**
*/
public class Registro {
private double precio;
private boolean esUsado;

public Registro(double precio, boolean esUsado) {
this.precio = precio;
this.esUsado = esUsado;
}
public double getPrecio() {
return precio;
}
public void setPrecio(double precio) {
this.precio = precio;
}
public boolean getEsUsado() {
return esUsado;
}
public void setEsUsado(boolean esUsado) {
this.esUsado = esUsado;
}

}


// ************************************************* //
/**
*
*/
public class Automotora
{
// instance variables - replace the example below with your own
private static int maxAutos = 10;
private static int maxCamionetas = 5;

private static Auto[] coleccionAutos;
private static Camioneta[] coleccionCamionetas;
private static int numAutos;
private static int numCamionetas;

/**
* Constructor for objects of class Automotora
*/
public void Automotora()
{
// inicializa arreglos
} // Constructor
//-------------------------------------------------------------
/**
*
*/
public static boolean agregaAuto( Auto car)
{
boolean retorno;

if( numAutos < coleccionAutos.length ) {
coleccionAutos[numAutos++] = car;
retorno = true;
} else {
// Excede el numero de autos que soporta
Tipicas.mensaje("No se puede agregar más autos!");
retorno = false;
}

return retorno;
}

//-------------------------------------------------------------
/**
*
*/
public static boolean agregaCamioneta( Camioneta car)
{
boolean retorno;

if( numCamionetas < coleccionCamionetas.length ) {
coleccionCamionetas[numCamionetas++] = car;
retorno = true;
} else {
// Excede el numero de Camionetas que soporta
Tipicas.mensaje("No se puede agregar más Camionetas!");
retorno = false;
}

return retorno;
}

//-------------------------------------------------------------
/**
*
*/
public static void buscaAutoColor( String paramColor )
{
for (int i=0; i < numAutos; i++) {
if ( coleccionAutos[i].getColor() == paramColor) {
Tipicas.mensaje( "\nAuto en posición: " + i);
Tipicas.mensaje( " marca : "+ coleccionAutos[i].getMarca());
Tipicas.mensaje( " es de color " + paramColor + "\n");
} // endif

} // for
} // fin de buscaAutoColor

//-------------------------------------------------------------
/**
*
*/
public static void reducePrecio( Auto[] paramLista, double paramRebaja )
{
int x=0;
double nuevoPrecio;

while ( paramLista[x] != null ) {
nuevoPrecio = paramLista[x].getPrecio() - paramRebaja;
paramLista[x].setPrecio( nuevoPrecio );
x++;
} // wend
} // fin de reducePrecio

//--------//
/**
*
*/
public static void reducePrecio( Camioneta[] paramLista, double paramRebaja )
{
int x=0;
double nuevoPrecio;

while ( paramLista[x] != null ) {
nuevoPrecio = paramLista[x].getPrecio() - paramRebaja;
paramLista[x].setPrecio( nuevoPrecio );
x++;
} // wend
} // fin de reducePrecio


//-------------------------------------------------------------
/**
*
*/
public static void imprimeUsados()
{
int x=0;

Tipicas.mensaje("Lista de autos usados");
while ( coleccionAutos[x] != null ) {
if ( coleccionAutos[x].getEsUsado() )
{
Tipicas.mensaje( coleccionAutos[x].getMarca()+":");
Tipicas.mensaje( "año: " +coleccionAutos[x].getAnho()+"\n");
}
x++;
} // wend

x=0;
Tipicas.mensaje("Lista de camionetas usadas");
while ( coleccionCamionetas[x] != null ) {
if ( coleccionCamionetas[x].getEsUsado() )
{
Tipicas.mensaje( coleccionCamionetas[x].getMarca()+":");
Tipicas.mensaje( " año: "+ coleccionCamionetas[x].getAño()+"\n");
}
x++;
} // wend


} // fin de reducePrecio

//----------------------------------------------------
/**
*
*/
public static void main(String[] args)
{
Auto miAuto;
Auto miCamioneta;
//------ inicializo -------//
coleccionAutos = new Auto[maxAutos];
coleccionCamionetas = new Camioneta[maxCamionetas];
numAutos = 0;
numCamionetas = 0;


miAuto = new Auto( "Yaris", 2002, "Azul", 4123123, true);

agregaAuto( miAuto );
buscaAutoColor( "Azul" );

reducePrecio( coleccionCamionetas, 100000 );

} // main

}

// ************************************************* //
/**
* Funciones utiles que es bueno tener tener siempre a mano
*
* @author Mauricio Latorre
*/
import java.io.*;

public class Tipicas
{


//------------------------------------------
public static String ingresaString( String mensaje ) {
String retorno="";

System.out.print(mensaje);
try {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
// resultado
retorno = in.readLine();
}
catch (Exception e) {
System.out.print("Error al leer teclado");
} // fin del try


return retorno;

} // Fin de metodo


//------------------------------------------
public static void mensaje( String mensaje ) {
System.out.print(mensaje);
} // Fin de metodo

}

3 comentarios:

Exekyelipliz dijo...

ya mauricio aca te mando la URL del foro ayer el profe iso clase y trato de explicar el array di un codigo el cual ta un pokito modificado ya :

http://duoc.yoo7.com

registrese los k vean el post la validacion es por el correo que indican y si desean io creo los usuario de una pero m mandan una lista el mail exekyel18@hotmail.com

Exekyelipliz dijo...

public class App
{

public static void main (String[] args)
{
String nombre="";
String rut="";
String prut;
boolean bandera= true;
int indice=0;
int indice2=0;
int op, i=0;

Persona[] ArregloPersona =new Persona[10];

while(bandera==true)
{
System.out.println("1");
System.out.println("2");
System.out.println("3");
System.out.println("4");
//los case
op=Leer.datoInt();

switch(op)
{
case 1:
System.out.println("rut");
rut=Leer.dato();
System.out.println("nombre");
nombre=Leer.dato();

Persona PPersona=new Persona(nombre, rut);

if (ArregloPersona[indice]==null)
{
ArregloPersona[indice]=PPersona;

indice++;
}break;

case 2:

System.out.println("ingrese rut");
prut=Leer.dato();

while(indice <= 10)

if(prut==ArregloPersona[indice2].getRut())

System.out.println("el rut es:" +ArregloPersona[indice].getRut());

else

indice2++;


if(indice2 ==10)
System.out.println("nota");

case 3:

for (i = 0; i <=9 ; i++){

System.out.println("la persona es:"+ArregloPersona[i].getNombre()+""+ArregloPersona[i].getRut());
}break;

case 4: bandera=false;


}
}
}
}

-----------------------------------
este es el k emitio el profe no el k ta modificado con agregados, si no el k ta nuevamente estructurado por problemas de mala escritura o caxa tenia el for asi

for i=0 to 9

Exekyelipliz dijo...

aps para k no te tiren error de null debes indicarle despues de los for en el case 2 y 3 lo sgte:

if(ArregloPersona[i]!=null)
{
sop

}
por k si en el caso k encuentra un lugar vacio tira un error y frena el progrma y su funcionamiento, asi te ahorro tiempo si te sirve.