Created
March 11, 2014 11:54
-
-
Save tembleking/9484233 to your computer and use it in GitHub Desktop.
Examen Java 1hCFGS [28/02/2014]
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class Aula { | |
private Equipo[] equipos; | |
private String nombreAula; | |
public Aula(String nombreAula, Equipo[] equipos) | |
{ | |
this.nombreAula = nombreAula; | |
this.equipos = new Equipo[20]; | |
try | |
{ | |
for (int i = 0; i < 20; ++i) | |
this.equipos[i] = equipos[i]; // Posible NullPointerException | |
} catch (Exception e){ /* Nothing */ } | |
} | |
public Equipo[] getEquipos() { return equipos; } | |
public String getNombreAula() { return nombreAula; } | |
public void setEquipos(Equipo[] equipos) { this.equipos = equipos; } | |
public void setNombreAula(String nombreAula) { this.nombreAula = nombreAula; } | |
public Aula(String nombreAula) | |
{ | |
this.nombreAula = nombreAula; | |
this.equipos = new Equipo[20]; | |
} | |
public void newEquipo(int fila, int posicion, String nombreProcesador, double memoriaRAM, boolean funciona) | |
{ | |
int posicionEnArray = (((fila - 1)* 5) + posicion) - 1; | |
equipos[posicionEnArray] = null; // Borramos el antiguo objeto | |
equipos[posicionEnArray] = new Equipo(Equipo.createCodigoReferencia(nombreAula, fila, posicion), nombreProcesador, memoriaRAM, funciona); | |
} | |
public int getEquiposFuncionando() | |
{ | |
int equiposFuncionando = 0; | |
try | |
{ | |
for (int i = 0; i < 20; ++i) | |
if (this.equipos[i].isFunciona()) // Posible NullPointerException | |
equiposFuncionando++; | |
} catch (Exception e) { /* Nothing */ } | |
return equiposFuncionando; | |
} | |
public void simularEquipos() throws Exception | |
{ | |
int fila; | |
int posicion; | |
int arrayFilas[] = new int[3]; | |
int arrayPosicion[] = new int[3]; | |
String procesador = new String(); | |
boolean duplicatedFound; | |
for (int i = 0; i < 3; ++i) | |
{ | |
duplicatedFound = false; | |
fila = (int) ((Math.random() % 4) + 1); | |
posicion = (int) ((Math.random() % 5) + 1); | |
for (int j = 0; j < 3; ++j) | |
{ | |
if (arrayFilas[j] == fila || arrayPosicion[j] == posicion) | |
{ | |
--i; | |
duplicatedFound = true; | |
break; | |
} | |
} | |
switch ((int)(Math.random() % 3)) | |
{ | |
case 0: | |
procesador = "AMD Fusion"; | |
break; | |
case 1: | |
procesador = "Intel Core"; | |
break; | |
case 2: | |
procesador = "Intel Atom"; | |
break; | |
default: // Nunca deberia pasar | |
throw new Exception("Unhandled exception: procesador no se ha encontrado entre los valores 0 y 2"); | |
} | |
if (!duplicatedFound) | |
{ | |
newEquipo(fila, posicion, procesador, (int)((Math.random() % 4) + 1), (int)(Math.random() % 2) == 0); | |
} | |
} | |
} | |
public Equipo getEquipoAtLoc(int fila, int posicion) | |
{ | |
int posicionEnArray = (((fila - 1)* 5) + posicion) - 1; | |
return equipos[posicionEnArray]; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class Equipo implements Periferico { | |
private String codigoReferencia; | |
private String nombreProcesador; | |
private double memoriaRAM; | |
private boolean funciona; | |
private double altura; | |
private double anchura; | |
public Equipo() | |
{ | |
codigoReferencia = "AA11"; | |
nombreProcesador = ""; | |
memoriaRAM = 1; | |
funciona = true; | |
} | |
public Equipo(String codigoReferencia) | |
{ | |
this.codigoReferencia = codigoReferencia; | |
nombreProcesador = ""; | |
memoriaRAM = 1; | |
funciona = true; | |
} | |
public Equipo(String codigoReferencia, String nombreProcesador, double memoriaRAM) | |
{ | |
this.codigoReferencia = codigoReferencia; | |
this.nombreProcesador = nombreProcesador; | |
this.memoriaRAM = memoriaRAM; | |
funciona = true; | |
} | |
public Equipo(String codigoReferencia, String nombreProcesador, double memoriaRAM, boolean funciona) | |
{ | |
this.codigoReferencia = codigoReferencia; | |
this.nombreProcesador = nombreProcesador; | |
this.memoriaRAM = memoriaRAM; | |
this.funciona = funciona; | |
} | |
public String getCodigoReferencia() { return codigoReferencia; } | |
public String getNombreProcesador() { return nombreProcesador; } | |
public double getMemoriaRAM() { return memoriaRAM; } | |
public boolean isFunciona() { return funciona; } | |
public void setCodigoReferencia(String codigoReferencia) { this.codigoReferencia = codigoReferencia; } | |
public int setNombreProcesador(String nombreProcesador) | |
{ | |
this.nombreProcesador = nombreProcesador; | |
return ((this.nombreProcesador.toLowerCase().compareTo("amd fusion") == 0) || | |
(this.nombreProcesador.toLowerCase().compareTo("intel core") == 0) || | |
(this.nombreProcesador.toLowerCase().compareTo("intel atom") == 0)) | |
? 1 : 0; | |
} | |
public void setMemoriaRAM(double memoriaRAM) { this.memoriaRAM = memoriaRAM; } | |
public void setFunciona(boolean funciona) { this.funciona = funciona; } | |
private String getCodigoReferencia(String nombreClase, int numeroFila, int posicion) | |
{ | |
return nombreClase + String.valueOf(numeroFila) + String.valueOf(posicion); | |
} | |
public String getCodigoReferenciaPublico(String nombreClase, int numeroFila, int posicion) | |
{ | |
return getCodigoReferencia(nombreClase, numeroFila, posicion); | |
} | |
public static String createCodigoReferencia(String nombreClase, int numeroFila, int posicion) | |
{ | |
return nombreClase + String.valueOf(numeroFila) + String.valueOf(posicion); | |
} | |
@Override public double getAltura() { return altura; } | |
@Override public double getAnchura() { return anchura; } | |
@Override public void setAltura(double altura) { this.altura = altura; } | |
@Override public void setAnchura(double anchura) { this.anchura = anchura; } | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class EquipoPortatil extends Equipo { | |
private double horasDeAutonomia; | |
public EquipoPortatil(String codigoReferencia, String nombreProcesador, double memoriaRAM, boolean funciona, | |
double horasDeAutonomia) | |
{ | |
super(codigoReferencia, nombreProcesador, memoriaRAM, funciona); | |
this.horasDeAutonomia = horasDeAutonomia; | |
} | |
public double getHorasDeAutonomia() { return horasDeAutonomia; } | |
public void setHorasDeAutonomia(double horasDeAutonomia) { this.horasDeAutonomia = horasDeAutonomia; } | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class EquipoPortatilAntiguo extends EquipoPortatil { | |
private int anyosAntiguedad; | |
public EquipoPortatilAntiguo(String codigoReferencia, String nombreProcesador, double memoriaRAM, boolean funciona, | |
double horasDeAutonomia, int anyosAntiguedad) { | |
super(codigoReferencia, nombreProcesador, memoriaRAM, funciona, | |
horasDeAutonomia); | |
this.anyosAntiguedad = anyosAntiguedad; | |
} | |
public int getAnyosAntiguedad() { return anyosAntiguedad; } | |
public void setAnyosAntiguedad(int anyosAntiguedad) { this.anyosAntiguedad = anyosAntiguedad; } | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class ManejaEquipo { | |
public static void main(String[] args) { | |
Equipo miEquipo = new Equipo(); | |
System.out.println(miEquipo.setNombreProcesador("AMD Fusion")); | |
System.out.println(miEquipo.getCodigoReferenciaPublico("1h", 3, 2)); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public interface Periferico { | |
public double getAltura(); | |
public double getAnchura(); | |
public void setAltura(double altura); | |
public void setAnchura(double anchura); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment