Está en la página 1de 4

Pag.

# 1

EJERCICIOS PARA REPASO POO Con C# 1. Implemente en C# el patrn de diseo denominado SINGLETON, que consiste en una clase que permite trabajar siempre con una nica instancia de ella durante la ejecucin del programa. Esta clase no permite la creacin directa de objetos mediante el operador new, sino que proporciona un mtodo que devuelve siempre un mismo objeto de esa clase. Una manera de implementarlo se describe con los siguientes pasos: a) Hacer privado (private) el constructor de la clase (Esto impide generar objetos directamente con el operador new). b) Dentro de la clase, declarar una variable privada y esttica del mismo tipo que la clase. Nota: No inicializarla con un nuevo objeto, solo declararla. (Este es el nico objeto que va a existir de esta clase). c) Dentro de la clase, declarar un mtodo pblico y esttico que devuelve un valor del tipo de la clase. (Este mtodo funcionar como si fuera el creador de objetos de esta clase). d) Dentro del mtodo del inciso (c), se utiliza una condicin: Si la variable del inciso (b) aun no se le ha asignado ningn objeto (es decir, es == null), se asigna un nuevo objeto a esa variable. Posteriormente, simplemente se regresa la variable del inciso (b). (Con esto la clase se asegura de que el programa siempre use el mismo objeto).

2. Realizar un programa para llevar el control de inventario de libros (en memoria). El programa agrega, consulta, elimina y lista los datos de los libros tecleados por el usuario. Los datos de cada libro son: Isbn, Titulo, Autor, Precio, Existencia. a) Utilizar una clase Libro que implemente la siguiente interfaz: interface ILibro { string Isbn { get; set; } string Titulo { get; set; } string Autor { get; set; } double Precio { get; set; } int Existencia { get; set; } string ConsultarDatos(); } b) Utilizar una clase Inventario que implemente la siguiente interfaz: interface IInventario { bool Agregar(Libro lib); bool Eliminar(Libro lib); List<Libro> ObtenerListado(); Libro ConsultarLibro(string isbn); } Nota: Al Agregar un libro al inventario, validar que el Isbn del libro no haya sido capturado previamente. Las siguientes imgenes son ejemplos de cmo puede implementar este programa utilizando Windows Forms. Observe en la tercera figura como se utiliza un control dataGridView para mostrar el listado de libros en el inventario, pero bien se pudo haber hecho de otra manera menos elaborada, como por ejemplo, utilizando un listBox, o un MessageBox . En este ejercicio, utilizar: - Propiedades - Mtodos que reciben parmetros y/o devuelven valores. - Composicin - Interfaces e implementacin de interfaces - Una manera de almacenar objetos en memoria como una Lista genrica (List<> ).

Pag. # 2

Este es un groupBox que agrupa los cuadros de texto. Los cuadros de texto estn deshabilitados para escritura (Propiedad ReadOnly = true)

Este es un dataGridView, con las siguientes columnas configuradas en tiempo de diseo: Isbn, Titulo, Autor, Precio, Existencia.

Pag. # 3

3. Realizar un programa para consultar si un alumno obtiene beca o no, dependiendo de una serie de datos acerca de l que deben ser capturados. El programa debe llevar un registro de los datos de todas las personas que han solicitado la beca y del resultado de su solicitud. Los datos que se deben tomar en cuenta para cada alumno son: Nombre del alumno, promedio, nmero de dependientes econmicos, ingresos mensuales ($), estado civil (Soltero, Casado, Viudo, Divorciado), y nivel (Licenciatura, o Posgrado). El programa debe proporcionar una manera de listar los datos de a) Todos los alumnos b) nicamente los alumnos de licenciatura c) nicamente los alumnos de posgrado que han solicitado beca (y el resultado de la solicitud). NOTA: Los criterios para asignar beca son los siguientes: Tipo de alumno Licenciatura Se otorga beca solo si 1) Es casado, y gana menos de 10,000 y tiene uno o mas dependientes econmicos. 2) O bien, si su promedio es superior a 9 sin importar nada mas. 1) Gana menos de 10,000 y tiene mas de un dependiente econmico, y su promedio es 8.5 o superior.

Posgrado

En este ejercicio se deben utilizar, entre otras caractersticas: - Polimorfismo - Herencia - Una clase abstracta con una propiedad y un mtodo abstractos (en la clase base). - Sobre-escritura de mtodos y propiedades (override) en las clases derivadas - Mtodos que devuelven valores. - Propiedades auto-completadas. - Una manera de almacenar los datos de objetos en memoria (por ejemplo una lista genrica List<> ) 4. Realizar un programa para capturar el nombre y salario de empleados. El programa va a mostrar los empleados que se van capturando en un listBox y permitir borrar el empleado seleccionado. El programa debe actualizar internamente (Dentro de la clase) los datos de los empleados activos para reflejar: a) Su cantidad (numero de instancias activas en el listBox, que no han sido eliminadas). b) La suma total de sus salarios c) El salario promedio de los empleados activos. Utilice elementos estticos para esto. La siguiente figura muestra una posible implementacin de este programa:

Pag. # 4

El botn de Invocar al recolector de basura es necesario para fines de hacer un refresh a los datos. Aun cuando el empleado es borrado de la lista, el destructor no se ejecuta hasta que el recolector de basura entra en accin; y en este programa, el constructor y el destructor son los encargados de actualizar los datos de los empleados activos. Para invocar al recolector de basura, incluya estas instrucciones: System.GC.Collect(); System.GC.WaitForPendingFinalizers(); Para este ejercicio, utilizar una clase Empleado con: Variables estticas privadas Propiedades estticas pblicas para acceder a las variables estticas privadas. Un mtodo esttico (AcercaDe() ) Un constructor con parmetros (nombre y salario) Un destructor Sobreescritura del mtodo ToString(): public override string ToString() con el objetivo de reflejar en el listBox el nombre y el salario del empleado que se ha agregado.

EJERCICIOS CON UML a) Realizar el diagrama de la Clase del problema #1 (Patrn Singleton). Tome en cuenta los elementos estticos, pblicos y privados. b) Realizar el diagrama de las clases involucradas en el problema #2. Incluya las interfaces, la realizacin de ellas, y la agregacin para representar la relacin entre el inventario y los libros. c) Realizar un diagrama de secuencias para el caso de Agregar un libro al inventario del problema #2. d) Represente en un diagrama de clases la relacin de herencia entre las clases del problema #3. Si lo desea, puede incluir las propiedades y mtodos de cada clase. e) Realizar un diagrama de actividades para el caso de Imprimir solo los alumnos de licenciatura del problema #3.

También podría gustarte