Skip to content

Instantly share code, notes, and snippets.

@tembleking
Created March 11, 2014 11:54
Show Gist options
  • Save tembleking/9484233 to your computer and use it in GitHub Desktop.
Save tembleking/9484233 to your computer and use it in GitHub Desktop.
Examen Java 1hCFGS [28/02/2014]
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];
}
}
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; }
}
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; }
}
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; }
}
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));
}
}
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