Está en la página 1de 13

TECNOLOGÍA SUPERIOR EN

DESARROLLO DE SOFTWARE.

CUARTO NIVEL

PROGRAMACIÓN ORIENTADA A
OBJETOS II

PROFESOR:
MSC. ISMELIS CASTELLANOS LÓPEZ

ALUMNO:
ALVARO CALDERÓN ECHEVERRÍA

2021
PROGRAMACIÓN ORIENTADA A OBJETOS II– UNIDAD III

UNIDAD III - TAREA # 3


Tarea virtual No-3
Tema: Colecciones de datos del tipo cola.
Objetivo: Resolver de ejercicios mediante la aplicación de colecciones de datos de tipo la
estructura de cola.
Actividad: Implemente un proyecto de consola en Java para simular un servidor de gestión
de impresión de una impresora conectada a la red. La impresora puede recibir varias
peticiones desde diferentes ordenadores. Las peticiones serán impresas por orden de
llegada. Cada petición incluye la siguiente información:
- id (String) de la máquina que solicita la impresión (por ejemplo, “I3493”)
- el nombre del documento a imprimir (por ejemplo, file1.pdf).
- nivel de prioridad de la petición (Baja - 0, Media - 1, Alta - 2).
- número de páginas del documento.
- número de copias.
Implemente el siguiente diseño de clases:
1. La clase componente RequestImpresion con los atributos anteriormente descritos y los
métodos de comportamiento necesarios como: constructor parametrizable, métodos getter y
setter, método toString e implemente la interfaz Comparable<T>.
2. La clase compuesta ServerRequest que tiene por atributo una cola, con prioridad, de objetos
de la clase componente RequestImpresion y además debe implementar los siguientes métodos
de comportamiento:
a. addRequest: toma una petición como entrada y la añade a la cola con prioridad de
peticiones. Dicho elemento insertado se situará en orden correspondiente al valor del
atributo nivel de prioridad de los objetos de la clase RequestImpresion.
b. printWork: coge la primera petición y muestra sus datos (id, nombre del fichero, su nivel
de prioridad, cantidad de páginas y número de copias a imprimir) por consola (únicamente
simula la impresión de la petición). La petición, al ser mostrada, debe ser eliminada del
conjunto de peticiones de la cola con prioridad.

TERCER NIVEL ALVARO CALDERÓN ECHEVERRÍA


PROGRAMACIÓN ORIENTADA A OBJETOS II– UNIDAD III

c. getNumRequest(): devuelve el número total de peticiones recibidas hasta el momento para


imprimir.
d. showAll(): muestra todas las peticiones y sus datos (id, nombre del fichero, su nivel de
prioridad, cantidad de páginas y número de copias a imprimir) que no han sido impresas
aún.
e. printAll(): imprime (mostrar los datos) de todas las peticiones. Después de mostrar las
peticiones, estas deben ser eliminadas.
3. Implemente en la clase de consola el método main que incluya un menú de opciones para las
llamadas necesarias de todos los métodos, descritos anteriormente, de un objeto de la clase
compuesta ServerRequest.

CÓDIGO FUENTE:
CLASE IMPRESIONES:
package tarea.pkg3.asce;
public class IMPRESIONES implements Comparable<IMPRESIONES>
{
private String Idpc;
private String nombre_documento;
private int prioridad;
private int paginas;
private int copias;

@Override
public int compareTo(IMPRESIONES t)
{
if (prioridad<t.getPrioridad())
{
return -1;
} else if(prioridad>t.getPrioridad())

TERCER NIVEL ALVARO CALDERÓN ECHEVERRÍA


PROGRAMACIÓN ORIENTADA A OBJETOS II– UNIDAD III

{
return 1;
}else
{
return 0;
}
}

public IMPRESIONES(String Idpc, String nombre_documento, int prioridad, int paginas, int
copias)
{
this.Idpc = Idpc;
this.nombre_documento = nombre_documento;
this.prioridad = prioridad;
this.paginas = paginas;
this.copias = copias;
}

public String getIdpc()


{
return Idpc;
}

public void setIdpc(String Idpc)


{
this.Idpc = Idpc;
}

public String getNombre_documento()

TERCER NIVEL ALVARO CALDERÓN ECHEVERRÍA


PROGRAMACIÓN ORIENTADA A OBJETOS II– UNIDAD III

{
return nombre_documento;
}

public void setNombre_documento(String nombre_documento)


{
this.nombre_documento = nombre_documento;
}

public int getPrioridad()


{
return prioridad;
}

public void setPrioridad(int prioridad)


{
this.prioridad = prioridad;
}

public int getPaginas()


{
return paginas;
}

public void setPaginas(int paginas)


{
this.paginas = paginas;
}

TERCER NIVEL ALVARO CALDERÓN ECHEVERRÍA


PROGRAMACIÓN ORIENTADA A OBJETOS II– UNIDAD III

public int getCopias()


{
return copias;
}

public void setCopias(int copias)


{
this.copias = copias;
}

@Override
public String toString() {

return "COLA DE IMPRESION[" + "ID_PC=" + Idpc + ", NOMBRE ARCHIVO=" +


nombre_documento + ", PRIMORIDAD=" + prioridad + ", # PAGINAS=" + paginas + ", #
COPIAS=" + copias + ']';
}
}
CLASE PRINCIPAL TAREA3ASCE
package tarea.pkg3.asce;
/**
*
* @author Alvaro Calderón Echeverría. */
import java.util.Scanner;
public class TAREA3ASCE
{
public static void main(String[] args)
{
int opc;

TERCER NIVEL ALVARO CALDERÓN ECHEVERRÍA


PROGRAMACIÓN ORIENTADA A OBJETOS II– UNIDAD III

String tecla;
Scanner input = new Scanner(System.in);
Scanner teclado = new Scanner(System.in);
COLADEIMPRESION<IMPRESIONES> cola = new COLADEIMPRESION<>();
do
{
do
{
System.out.println("SIMULADOR DE COLA DE IMPRESION-ASCE");
System.out.println("1. AÑADIR UNA IMPRESION");
System.out.println("2. IMPRIMIR EL PRIMER ARCHIVO EN COLA");
System.out.println("3. CANTIDAD ELEMENTOS EN COLA");
System.out.println("4. MOSTRAR COLA DE IMPRESION");
System.out.println("5. IMPRIMIR TODOS LOS DOCUMENTOS EN COLA");
System.out.println("6. SALIR");
System.out.print("ELIJA UNA OPCION(1-6)==> ");
opc = input.nextInt();
}while(opc < 1 || opc > 6);
switch(opc)
{
case 1:
String idpc;
String nomdoc;
int pri;
int pag;
int copia;
System.out.print("INGRESE ID. DE LA COMPUTADORA==> ");
input.nextLine();
idpc = input.nextLine();

TERCER NIVEL ALVARO CALDERÓN ECHEVERRÍA


PROGRAMACIÓN ORIENTADA A OBJETOS II– UNIDAD III

System.out.print("INGRESE NOMBRE DEL DOCUMENTO==> ");


nomdoc = input.nextLine();
System.out.print("INGRESE PRIORIDAD (1=ALTA,2=MEDIA,3=BAJA
(NUMERO ENTERO ENTRE 1-3))==> ");
pri = input.nextInt();
System.out.print("INGRESE NÚMERO DE PAGINAS DEL DOCUMENTO==> ");
pag = input.nextInt();
System.out.print("INGRESE NÚMERO COPIAS A IMPRIMIR==> ");
copia = input.nextInt();
cola.agregarimpresion(new IMPRESIONES(idpc,nomdoc,pri,pag,copia));
System.out.println(" ");
System.out.println("PRESIONE UNA TECLA PARA CONTINUAR...");

try
{
tecla = teclado.nextLine();
}
catch(Exception e)
{}
break;
case 2:
cola.atenderimpresion();
System.out.println(" ");
System.out.println("PRESIONE UNA TECLA PARA CONTINUAR...");
try
{
tecla = teclado.nextLine();
}
catch(Exception e)

TERCER NIVEL ALVARO CALDERÓN ECHEVERRÍA


PROGRAMACIÓN ORIENTADA A OBJETOS II– UNIDAD III

{}
break;
case 3:
System.out.println("HAY " + cola.impresionesporatender() + " ARCHIVOS EN
COLA DE ESPERA");
System.out.println(" ");
System.out.println("PRESIONE UNA TECLA PARA CONTINUAR...");
try
{
tecla = teclado.nextLine();
}
catch(Exception e)
{}
break;
case 4:
cola.mostrarimpresionesencola();
System.out.println(" ");
System.out.println("PRESIONE UNA TECLA PARA CONTINUAR...");
try
{
tecla = teclado.nextLine();
}
catch(Exception e)
{}
break;
case 5:
cola.atendertodaslasimpresiones();
System.out.println(" ");
System.out.println("PRESIONE UNA TECLA PARA CONTINUAR...");

TERCER NIVEL ALVARO CALDERÓN ECHEVERRÍA


PROGRAMACIÓN ORIENTADA A OBJETOS II– UNIDAD III

try
{
tecla = teclado.nextLine();
}
catch(Exception e)
{}
break;
case 6:
System.exit(0);
}
}while (true);
}
}

TERCER NIVEL ALVARO CALDERÓN ECHEVERRÍA


PROGRAMACIÓN ORIENTADA A OBJETOS II– UNIDAD III

EJECUCIÓN DEL PROGRAMA


MENU PRINCIPAL

OPCIÓN 1:

TERCER NIVEL ALVARO CALDERÓN ECHEVERRÍA


PROGRAMACIÓN ORIENTADA A OBJETOS II– UNIDAD III

OPCIÓN 2:

OPCIÓN 3:

OPCIÓN 4:

TERCER NIVEL ALVARO CALDERÓN ECHEVERRÍA


PROGRAMACIÓN ORIENTADA A OBJETOS II– UNIDAD III

OPCIÓN 5:

COLA LUEGO DE EJECUTAR LA OPCIÓN 5:

TERCER NIVEL ALVARO CALDERÓN ECHEVERRÍA

También podría gustarte