Tarea 2

Anuncio
Universidad Técnica Federico Santa María
Departamento de Informática
Campus SAntiago
TAREA 2
Almacenamiento y Recuperación de la Información
Profesor
Ayudantes
:
:
José Luis Martí L.
Alberto Maluje, Boris Blanco, Guido González
Objetivos:
• Conocer el sistema de archivos XML y sus potencialidades básicas
• Conocer el lenguaje C# y algunas de sus características
• Conocer y aplicar el lenguaje nativo de consultas LINQ del Framework .Net 3.5
• Conocer el trabajo en ambientes visuales
Introducción:
Al parecer a Sansanito’s le gustó el sistema implementado por los alumnos. Los ayudantes
contentos con esto deciden mejorar su trabajo ofreciéndole al VideoClub una versión mejorada.
Esta incluiría un entorno gráfico más decente que el anterior, sin dudarlo deciden nuevamente
abusar de su poder y decirle a los alumnos de ARI que se pongan a trabajar lo antes posible.
Desarrollo:
La tarea consiste en la implementación de el programa descrito en la Tarea 1. La implementación se
realizará en varios archivos XML que contienen los datos del sistema y será escrita en lenguaje C#
utilizando la herramienta Microsoft Visual Studio 2008 que trabaja con el framework
.NET 3.5.
Para el desarrollo de esta tarea se utilizarán los siguientes archivos:
Peliculas.xml:
Archivo de tipo secuencia ordenado en base al atributo id_pelicula (atributo primario
autoincremental) que contenga todos los datos de esta.
<Peliculas>
…
<película id = “1”>
<nombre>Saw1</nombre>
<año>2004</año>
<genero>Terror</genero>
<clasificación>14+</clasificación>
<stock>3</stock>
<elenco>…</elenco>
<id_local>1</id_local>
<costo>790</costo>
</película>
<película id = “2”>
<nombreTransformers</nombre>
<año>2007</año>
<genero>Ficción</genero>
<clasificación>TE</clasificación>
<stock>4</stock>
<elenco>Megan Fox…</elenco>
<id_local>1</id_local>
<costo>1200</costo>
</película>
…
</Peliculas>
Clientes.xml:
Archivo secuencial desordenado, que contenga los datos de cada cliente con el fin de que cada
cliente pueda ser socio.
<Clientes>
…
<cliente rut =”1134567”>
<nombres>Guido González</nombres>
<dirección>Av.Blanco Encalada #xxxx</dirección>
<comúna>Santiago</comuna>
<teléfono>3456778</teléfono>
<fechanac>13/09/1989</fechanac>
</cliente>
…
</Clientes>
Empleados.xml:
Archivo secuencial ordenado en base a id_empleado (primaria y autoincremental), cada empleado
debe estar asociado a un Local.
<Empleados>
…
<empleado id=”1”>
<nombre>Alberto Maluje</nombre>
<teléfono>3456788</teléfono>
<id_local>1</id_local>
</empleado>
…
</Empleados>
Arriendos.xml:
Archivo secuencial ordenado en base a id_arriendo (primaria y autoincremental), cada arriendo
debe estar asociado a una película, a un empleado y a un cliente, además debe tener un rango de
devolución (0 si esta arrendada/ 1 si ya fue devuelta) cada vez que la película es arrendada en el
stock la película se debe restar 1 y cuando es devuelta se debe sumar 1.
<Arriendos>
…
<arriendo id =”1”>
<id_pelicula> 1</id_pelicula>
<id_empleado>2</id_empleado>
<rut_cliente>1234567</rut_cliente>
<fecha>20/10/2010</fecha>
<devolución>0</devolución>
</arriendo>
…
</Arriendos>
Locales.dat:
Archivo secuencial ordenado en base a Id_local (primaria y autoincremental). Con los datos de cada
local.
<Locales>
…
<local id =”1”>
<dirección>Av. Vicuña Mackena 3939</dirección>
<teléfono>3456788</teléfono>
<sector>oriente</sector>
</local>
…
</Locales>
El sistema debe contestar a las siguientes consultas usando las funciones de LINQ:
1. Stock de película con nombre “XXX” en el Local
2. Listado de películas del género “YYY” en todos los locales
3. “Top Five” Empleados que han realizado mas arriendos en el último mes donde se
muestren sus datos y los datos del local al cual pertenece.
4. “Top Ten” Películas arrendadas.
5. Listado de Películas asociadas a cliente de RUT “XXX”.
Para agilizar la respuesta de algunas de las consultas se les solicita a los alumnos crear un índice de
grupos en base al género de las películas.
<IndiceGrupos>
…
<index genero = Terror>
<id_peliculas>1 2 3 5 7 11</id_peliculas>
</index>
…
</IndiceGrupos>
Requerimientos:
•
•
•
•
•
•
•
•
•
Ingreso, modificación y eliminación de Películas en el Sistema (10%)
Ingreso, modificación y eliminación de Clientes en el Sistema (10%)
Ingreso, modificación y eliminación de Empleados en el Sistema (10%)
Ingreso, modificación y eliminación de Locales en el Sistema (10%)
Registro de Arriendos (10%)
Creación y uso de índices (10%)
Uso de LINQ para responder las consultas (10%)
Consultas requeridas (20%)
Orden y buena programación (10%)
Entrega:
La tarea se realizará en grupos de 2 personas máximo. La entrega de la tarea tiene plazo máximo
el día 26 de Octubre de 2010 a las 23:59:59. Luego de esa hora, se descuentan 10 puntos por
cada hora de atraso. La tarea debe ser enviada al mail [email protected] indicando
claramente el número de grupo y los integrantes.
Posterior a la entrega se realizará un control para evaluar lo aprendido. Este control será tomado la
clase siguiente a la fecha de entrega de la tarea. La nota de la tarea será NF = 0,75*NT +
0,25*NC si Nota Control > 39. En caso contrario, la nota final de la tarea será 0.
Nota: La tarea debe ser enviada desde una casilla USM (@alumnos.inf.utfsm.cl o
@alumnos.usm.cl), no desde la universidad GMAIL o similares.
Se deben enviar los siguientes archivos:
- Código fuente de la tarea. Por favor enviar la carpeta donde trabajaron, con la solución y el código
fuente. Sin las carpetas DEBUG o RELEASE. Esto a fin de reducir el tamaño del envío.
- La tarea será revisada en Visual Studio 2008, este IDE está disponible para todos los alumnos en
el Laboratorio de Programación Avanzada (LPA).
- Un archivo README.TXT con todos los supuestos, comentarios y detalles que deseen agregar al
desarrollo de su tarea.
- La tarea debe ser enviada en un archivo .rar con el nombre tarea2-ARI-XX.rar, donde XX es el
número de grupo correspondiente.
- Por cada warning obtenido en la compilación de su proyecto, se descontaran 5 puntos. Si la
tarea NO compila, será evaluada con nota 0.
Nota 2: dado que la creatividad genera tareas de tamaño poco razonable (dado el peso de las
imágenes) se solicita que envíen la tarea partida en archivos de tamaño no superior a 1 MB no
en un mismo correo, esto con fin de no tener problemas con el servidor de correo.
Las consultas deben ser enviadas al mail [email protected] .La información sobre
correcciones, notas y nuevas fechas estará disponible en el sitio Web
http://www. arisantiago.blogspot.com
Anexo: LINQ para XML
Para mayor información sobre este lenguaje embebido en .NET 3.5, consultar:
http://en.wikipedia.org/wiki/Linq
http://www.hookedonlinq.com/MainPage.ashx
http://msdn.microsoft.com/netframework/future/linq/
http://msdn.microsoft.com/en-us/library/bb387098.aspx
Diseño del problema:
Descargar