Ejercicio C01 - La centralita: Episodio II

Curiosidad
La serie española de Netflix "Las chicas del cable" se centra principalmente en la vida de cuatro mujeres teleoperadoras de la Compañía de telefonía, y aunque en un inicio el oficio de operador telefónico fuese destinado a los hombres - jóvenes que hasta entonces se habían encargado de entregar telegramas - rápidamente pasó a ser un trabajo principalmente realizado por mujeres, porque era un oficio para el que se necesitaba un alto nivel de paciencia y conllevaba mucho estrés y muchos de los antiguos trabajadores no se acabaron de adaptar a la nueva tarea. Las operadoras se encargaban de conectar de manera manual las llamadas para poner en contacto a los interlocutores, y aunque la serie esté ambientada en la década de 1920, en España ya había operadoras telefónicas desde el año 1886 y en Cuba incluso antes, en 1877. Durante casi todo el siglo XX, hasta 1988, España tuvo centrales manuales hasta que finalmente acabó automatizando completamente el servicio telefónico. La última central manual de España fue la de Polopos, un pueblo de la provincia de Granada.
Para trabajar de operadora telefónica las mujeres debían cumplir ciertos requisitos: debían tener entre 18 y 27 años, no llevar gafas, estar solteras y ser capaces de estirar los brazos hasta un mínimo de 155 centímetros. Aparte de estos requisitos también debían superar ciertas pruebas de aptitud.
Y así como en la serie se representa a las telefonistas como un referente feminista, esto también fue una realidad: las primeras mujeres en trabajar como operadoras telefónicas marcaron un antes y un después en el mercado laboral para las mujeres, porque se salían de los estándares que hasta entonces se les habían marcado y lograron hacerse un hueco en el mundo laboral, mundo que en aquellos años estaba dominado completamente por hombres. Sin embargo, su carrera laboral como telefonistas acostumbraba a ser bastante corta, ya que una vez casadas las mujeres no podían seguir trabajando como telefonistas.
Consigna
Partir del ejercicio La centralita: Episodio I y modificar la jerarquía de clases para obtener:
Llamada
- La clase
Llamadaahora será abstracta. Tendrá definida la propiedad de sólo lecturaCostoLlamadaque también será abstracta. - El método
Mostrardeberá ser declarado como virtual, protegido y retornará unstringque contendrá los atributos propios de la claseLlamada. - El operador
==comparará dos llamadas y retornarátruesi las llamadas son del mismo tipo (utilizar el métodoEquals, sobrescrito en las clases derivadas) y los números de destino y origen son iguales en ambas llamadas.
Local
- Sobrescribir el método
Mostrar. Será protegido. Reutilizará el código escrito en la clase base y además agregará la propiedadCostoLlamada, utilizando unStringBuilder. - El método
Equalsretornarátruesólo si el objeto que recibe es de tipoLocal. - El método
ToStringreutilizará el código del métodoMostrar.
Provincial
- El método
Mostrarserá protegido. Reutilizará el código escrito en la clase base y agregará los datos defranjaHorariayCostoLlamadaal texto de retorno. UtilizarStringBuilder. - El método
Equalsretornarátruesólo si el objeto que recibe es de tipoProvincial. - El método
ToStringreutilizará el código del métodoMostrar.
Centralita
- El método
Mostrarpasará a ser privado y será llamado por la sobrescritura del métodoToString. - El método
AgregarLlamadaes privado. Recibe una instancia deLlamaday la agrega a la lista de llamadas. - El operador
==retornarátruesi la centralita contiene la llamada en su lista genérica. Utilizar la sobrecarga del operador==de la claseLlamada. - El operador
+invocará al métodoAgregarLlamadasólo si la llamada no está registrada en laCentralita. Utilizar la sobrecarga del operador==deCentralita.
Reescribir el método Main para que:
- Sólo agregue mediante el operador
+. - Sólo muestre los datos de
Centralitauna vez ordenados.
Agregar un proyecto de tipo Windows Forms App y generar el siguiente formulario principal FrmMenu, que tendrá como único atributo una Centralita:
Agregar los formularios FrmLlamador y FrmMostrar:
- Recibirán en su constructor a la instancia de
Centralitacreada enFrmMenu. FrmLlamadortendrá una propiedad de sólo lectura que expondrá dichaCentralita, a fin de volver a ser leída por el formulario de menú una vez terminada la acción.
Si se presiona el botón btnGenerarLlamada abrir un nuevo formulario de forma modal:
- Si la llamada comienza con #, es provincial. Si la llamada no comienza con #, se deberá poner el combo
cmbFranjaen estado deshabilitado. - La fuente de
txtNroDestinoserá 16. EsteTextBoxsólo se podrá cargar mediante el panel numérico. - El panel numérico se encontrará dentro de un
Groupboxcon el título "Panel". - El
TextBoxsituado por debajo del botónbtnLimpiarserá eltxtNroOrigen. - La duración será un número aleatorio entre 1 y 50.
- El costo, en caso de necesitarlo, será un número aleatorio entre 0,5 y 5,6.
- El combo
cmbFranja, situado al final del formulario, será el encargado de colocar una franja horaria a las llamadas provinciales. Cargar desde elEnumeradoutilizando el siguiente código:
// Carga
cmbFranja.DataSource = Enum.GetValues(typeof(Franjas));
// Lectura
Franjas franjas;
Enum.TryParse<Franjas>(cmbFranja.SelectedValue.ToString(), out franjas);
Si se presiona alguno de los botones btnFacturacionTotal, btnFacturacionLocal o btnFacturacionProvincial, abrir un formulario sólo con un RichTextBox y la información correspondiente impresa en él.
- El formulario tendrá un atributo del tipo
TipoLlamada, y una propiedad de sólo escritura para cargarle datos y así saber qué llamadas mostrar.
Todos los formularios deberán aparecer centrados, el principal en la pantalla y el resto con respecto al principal.
Resolución
| Video | Código |
|---|