Foros del Web » Programación para mayores de 30 ;) » Java »

Ejercicios en java

Estas en el tema de Ejercicios en java en el foro de Java en Foros del Web. ido ayuda con unos ejercicios de programación, para un curso que me esta costando la cordura. Tras mucho pensar en como hacerlos di con una ...
  #1 (permalink)  
Antiguo 28/02/2013, 10:41
 
Fecha de Ingreso: febrero-2013
Mensajes: 3
Antigüedad: 11 años, 2 meses
Puntos: 0
Ejercicios en java

ido ayuda con unos ejercicios de programación, para un curso que me esta costando la cordura. Tras mucho pensar en como hacerlos di con una solución plausible, pero me he encontrado con problemas de nuevo .

Desarrollar un programa que simule el interfaz software de entrada a una tarjeta de red siguiendo las siguientes especificaciones.

La entrada está implementada mediante dos tipos de buffers. Un primer buffer donde van entrando todas las tramas según van llegando, que tiene un espacio máximo de 4 tramas. Y un segundo buffer de espacio ilimitado que tiene tres puertos (entendiendo por puertos, zonas de almacenamiento distintas). La entrada debe implementar un mecanismo para mostrar el contenido de sus buffers.
Cuando el primer buffer se llene, enviará al segundo buffer de forma automática las primeras 2 tramas con mayor prioridad. Y así sucesivamente.
Existen distintos tipos de tramas, aunque de momento solo tendremos en cuenta las tramas TCP y UDP (en el futuro puede que tengamos que soportar más). Ahora bien, todas las tramas sean del tipo que sean, contienen el puerto al que van dirigidas (1, 2 o 3), su prioridad (de 1 a 10, siendo 1 la mayor prioridad) y el contenido de la trama.

Nota: ante dos tramas con el mismo valor de prioridad, tendrá más prioridad aquella cuyo contenido esté por delante siguiendo el orden del abecedario.

Por último, crearemos una clase Actividad7 donde instanciaremos el sistema de entrada a la tarjeta de red y le enviaremos 6 tramas de distintos tipos y con puertos y prioridades aleatorias. Una vez se hayan enviado 5 tramas, se mostrará el contenido de los buffers del sistema de entrada.

Realizar previamente el Diagrama de Clases UML.

Clase InterfazRed

Cita:
public class InterfazRed {

//Atributos
private Buffer1 bf1 = new Buffer1();
private Buffer2 bf2 = new Buffer2();

public void agregarTrana(Object trama) {
if(bf1.getTamanio() <4) {
bf1.agregarTrama(trama);

}else{
//Extraer las dos primeras tramas del primer buffer
bf2.agregarTrama(bf1.extraerTramaMasPrioritaria()) ;
bf2.agregarTrama(bf1.extraerTramaMasPrioritaria()) ;
bf1.agregarTrama(trama);
}
}//Fin funcion

public void mostrarBuffers(){
bf1.mostrarContenido();
bf2.mostrarContenido();
}
}
Clase Buffer1
Cita:
i
Cita:
mport java.util.ArrayList;
import java.util.Iterator;
import java.util.Collections;

public class Buffer1{
//Atributos
private ArrayList<Object> buffer01 = new ArrayList<Object>();

public void agregarTrama(Object trama){
buffer01.add(trama);
ordTramaPrioridad();
}
public Object extraerTramaMasPrioritaria(){
Object trama = buffer01.get(0);
buffer01.remove(0);
return trama;
}
public int gerTamanio(){
return buffer01.size();
}
public void ordTramaPrioridad(){
Collections.sort(buffer01, new OrdenarTramaPorPrioridad());
}
public void mostrarContenido(){

System.out.println("============================== =============================");
System.out.println(" CONTENIDO DEL PRIMER BUFFER [BUFFER1]");
System.out.println("============================== =============================");

Iterator<Object> it = buffer01.iterator();

while(it.hasNext()){

Object obj;
obj = it.next();

if(obj.getClass().getName().equals("tramaTCP")){
tramaTCP tcpAux;
tcpAux = (tramaTCP)obj;
System.out.println("--Trama TCP-----------------------");
System.out.println("PUERTO: " + tcpAux.getPuerto());
System.out.println("PRIORIDAD: " + tcpAux.getPrioridad());
System.out.println("CONTENIDO: " + tcpAux.getContenido());
System.out.println("--Trama TCP-----------------------");
}else{

tramaUDP udpAux;
udpAux = (tramaUDP)obj;
System.out.println("--Trama UDP-----------------------");
System.out.println("PUERTO: " + udpAux.getPuerto());
System.out.println("PRIORIDAD: " + udpAux.getPrioridad());
System.out.println("CONTENIDO: " + udpAux.getContenido());
System.out.println("--Trama UDP-----------------------");
}
}
}
}//Fin clase
Clase Buffer2
Cita:
import java.util.ArrayList;
import java.util.Iterator;

public class Buffer2 {

private ArrayList<Object> puerto01 = new ArrayList<Object>();

private ArrayList<Object> puerto02 = new ArrayList<Object>();

private ArrayList<Object> puerto03 = new ArrayList<Object>();


// Otros metodos
public void agregarTrama(Object trama){
Trama obj = (Trama)trama;
switch(obj.getPuerto()) {
case 1:
puerto01.add(trama);
break;
case 2:
puerto02.add(trama);
break;
case 3:
puerto03.add(trama);
break;
}
}//Fin funcion

public void mostrarContenido(){

System.out.println("============================== ===========================");
System.out.println("CONTENIDO DEL SEGUNDO BUFFER (BUFFER2)");
System.out.println("============================== ===========================");

System.out.println("Tramas en Puerto 01");
Iterator<Object> iterador = puerto01.iterator();
leerPuerto(iterador);
System.out.println("Tramas en Puerto 02");
iterador = puerto02.iterator();
leerPuerto(iterador);
System.out.println("Tramas en Puerto 03");
iterador = puerto03.iterator();
leerPuerto(iterador);
}

private void leerPuerto(Iterator<Object> it){
while(it.hasNext()){

Object obj;
obj = it.next();

if(obj.getClass().getName().equals("tramaTCP")){
tramaTCP tcpAux;
tcpAux = (tramaTCP)obj;
System.out.println("--Trama TCP-----------------------");
System.out.println("PUERTO: " + tcpAux.getPuerto());
System.out.println("PRIORIDAD: " + tcpAux.getPrioridad());
System.out.println("CONTENIDO: " + tcpAux.getContenido());
System.out.println("--Trama TCP-----------------------");
}else{

tramaUDP udpAux;
udpAux = (tramaUDP)obj;
System.out.println("--Trama UDP-----------------------");
System.out.println("PUERTO: " + udpAux.getPuerto());
System.out.println("PRIORIDAD: " + udpAux.getPrioridad());
System.out.println("CONTENIDO: " + udpAux.getContenido());
System.out.println("--Trama UDP-----------------------");
}
}
}
}//Fin clase
Clase OrdenarTramaPorPrioridad

Cita:
import java.util.Comparator;

public class OrdenarTramaPorPrioridad implements Comparator<Object>{
// Ordena las tramas primero por prioridad y despues por contenido.
public int compare (Object obj1, Object obj2){
Trama trama1 = (Trama)obj1;
Trama trama2 = (Trama)obj2;

if(trama1.getPrioridad() == trama2.getPrioridad()){
return trama1.getContenido().compareToIgnoreCase(trama2.g etContenido());
}else{
return trama1.getPrioridad() = trama2.getPrioridad();
}
}
}//Fin clase
CLase Trama

Cita:
public class Trama{
//ATRIBUTOS
private int puerto; //1,2 o 3
private int prioridad; //De 1 (max) a 10(min)
String contenido = "VACIO";

//Constructor
public Trama(int p, int pri, String co){
puerto =p;
prioridad = pri;
contenido = co;
}

//SETTERS
public void setPuerto(int param){
puerto = param;
}
public void setPrioridad(int param){
prioridad = param;
}
public void setContenido(String param){
contenido = param;
}

//GETTERS
public int getPuerto(){
return puerto;
}
public int getPrioridad(){
return prioridad;
}
public String getContenido(){
return contenido;
}
}
Clases TramaUDP y TCP

Cita:
public class tramaTCP extends Trama{
private String id = "Soy trama TCP";

//Constructor
public tramaTCP(int p, int pri, String co){
super(p,pri,co);
}
public String getId(){
return id;
}
}


public class tramaUDP extends Trama{

private String id = "Soy trama UDP";

//Constructor
public tramaUDP(int p, int pri, String co){
super(p,pri,co);
}
public String getId(){
return id;
}
}
  #2 (permalink)  
Antiguo 28/02/2013, 10:45
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Ejercicios en java

¿Cuales son los problemas exactamente?
¿Las clases que pones ahi son las que tú has hecho?
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #3 (permalink)  
Antiguo 28/02/2013, 11:23
 
Fecha de Ingreso: febrero-2013
Mensajes: 3
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Ejercicios en java

El problema esta en que no logro arreglar los errores de compilacion de las clases IntezFazRed y OrdenarTramaPorPrioridad, si me pudierais dar una solucion viable os lo agradeceria

Etiquetas: clase, ejercicios, metodo, programa, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:34.