lab02_enunciado
DESCRIPTION
CCNATRANSCRIPT
7/18/2019 Lab02_Enunciado
http://slidepdf.com/reader/full/lab02enunciado 1/3
PONTIFICIA UNIVERSIDAD CATOLICA DEL PERÚIngeniería de las Telecomunicaciones
Segundo laboratorio de Software para Telecomunicaciones 1
Semestre: 2014-1
Tema: Clases (Definición de atributos, métodos y constructores)
Duración: 1 hora con 50 min.
Está permitido el uso de material de impreso, el material digital deberá ser descargado en la PC.
Se prohíbe el uso de memorias USB, tener el chat abierto u correo electrónico.
Caso: Tarificador de Llamadas
Se pide desarrollar un programa que procese tramas de una central telefónica las cuales tienen el siguiente
formato:
<8_digitos>-<4_digitos>:<3_digitos>:<3_digitos>:<2_digitos>:<9_digitos>
Donde:
<8_digitos> -> Hacen referencia a la fecha de llamada en formato YYYYMMDD
<4_digitos> -> Hacen referencia a la hora en formato HHMM
<3_digitos> -> Duración en segundos (Valor máximo 960 segundos)
<3_digitos> -> Anexo que hizo la llamada
<2_digitos> -> Código de área
<9_digitos> -> Número telefónico destino
Notas:
- El número telefónico puede ser:
Número Fijo: este tiene los dos primeros dígitos con el valor de 00. Ejemplo: 004501235.
Número Celular: este siempre inicia en 9. Ejemplo: 912354698.
Estas tramas son procesadas para generar diversos reportes al usuario final. Se pide implementar un
programa que cumpla con lo siguiente:
1. (4 puntos) Defina la clase Llamada, esta clase debe definir lo siguiente:
(1 punto) Atributos.
(0.5 puntos) Métodos get (no implementar métodos set).
(0.5 puntos) Un único constructor que reciba todos los parámetros necesarios para
inicializar todos los atributos de esta (Esta clase NO debe implementar el constructor por
defecto).
(0.5 puntos) Método isLlamadaCelular el cual devolverá true o false dependiendo si el
número destino es un número celular.
(0.5 puntos) Método isLlamadaLimaCallao el cual devolverá true o false dependiendo si el
número destino es fijo y además corresponde al código de área de Lima y Callao (01).
(1 punto) Método isLlamadaAnioSiguiente el cual devolverá true si es que a la hora de
inicio en que se realizó la llamada más la duración de esta nos devuelve una hora
correspondiente al día siguiente del siguiente anho; en caso contrario devolverá false. Por
ejemplo: Si el día de hoy (20141231 a las 2350) un usuario hace una llamada de 15 minutos
entonces este método devolverá true.
7/18/2019 Lab02_Enunciado
http://slidepdf.com/reader/full/lab02enunciado 2/3
PONTIFICIA UNIVERSIDAD CATOLICA DEL PERÚIngeniería de las Telecomunicaciones
2. (1 punto) Defina la clase ParseadorTrama, esta clase debe definir lo siguiente:
(1 punto) El método llamado parsear el cual recibe como parámetro una cadena de una
trama y devuelve un objeto de tipo Llamada. Para poder invocar este método no senecesita crear una instancia de la clase ParseadorTrama.
3. (6.0 puntos) Defina la clase Llamadas. Esta clase debe ser capaz de almacenar objetos de tipo
Llamada (utilizar un arreglo como atributo). La idea de esta clase es facilitar el uso de operaciones
con arreglos; para ello, implemente lo siguiente:
a. (0.5 puntos) El método agregarLlamada. Este método recibe un objeto de tipo Llamada.
b. (0.5 puntos) El método obtenerLlamada. Este método recibe el índice del objeto de tipo
Llamada a retornar.
c. (0.5 puntos) El método contarLlamadas. Este método retorna la cantidad actual de
llamadas que se dispone en el objeto de tipo AlmacenLlamada.
d.
(4.5 puntos) El ordenarLlamadas. Este método ordena las llamadas que se tienen en lainstancia actual por los siguientes criterios: fecha, anexo, duración y código de área de
manera ascendente (no es necesario crear un arreglo temporal ya que este método altera
el arreglo original).
4. (7.0 puntos.) Defina la clase OperacionesLlamadas. Esta clase debe cumplir con lo siguiente:
a. (0.5 puntos) Definir un único constructor el cual recibe un objeto de tipo Llamadas y guarda
su referencia en un atributo.
b. (2 puntos) El método listarLlamadasLimaCARangoAnho . Este método recibe el tipo de
llamada (1: fijo o 2: celular), anho inicio y anho fin en formato YYYY y devuelve un objeto de
tipo Llamadas, este objeto tiene todas las llamadas cuya fecha de llamada este en el rangode anhos, sean de Lima y Callao y tipo de llamada dados como parámetros.
c. (2 puntos) El método obtNumeroLlamadasAnhoSgt . Este retorna la cantidad de llamadas
cuya fecha de finalización (fecha-hora de inicio + duración) cae en el siguiente año.
d. (2.5 puntos) El método listarNLlamadasArea. Este método recibe un código de área y un
número entero positivo. El método retorna un objeto de tipo Llamadas el cual contiene las
N primeras referencias de tipo Llamada(N es el número entero positivo pasado como
parámetro) que sean del anexo dado y que están ordenadas por los siguientes criterios:
fecha, anexo, duración y código de área.
Seguir los siguientes pasos para resolver esta pregunta:
a)
Crear un objeto de tipo Llamadas.
b)
De todas las llamadas, las que sean del anexo dado como parámetro agregarlas al
objeto creado en el punto (a), esto es invocar a su método agregarLlamada.
c) Invocar al método ordenarLlamadas del objeto creado en el punto (a).
d) Crear otro objeto de tipo Llamadas pero que tenga agregado las N primeras llamadas
del objeto llamadas creado en el punto (a) y retornar este nuevo objeto.
7/18/2019 Lab02_Enunciado
http://slidepdf.com/reader/full/lab02enunciado 3/3
PONTIFICIA UNIVERSIDAD CATOLICA DEL PERÚIngeniería de las Telecomunicaciones
5. (2 punto) Defina la clase Aplicacion, esta clase define lo siguiente en su método main:
Se pide implementar un menú (a partir del comentario //TODO) que permita lo siguiente:
Registrar una trama
Listar las llamadas de Lima/Callao en un rango de años.
Obtener la cantidad de llamadas cuya fecha de finalización fue el año siguiente
Listar las N primeras llamadas hechas desde el anexo Y
San Miguel, 11 de Abril de 2014