Lenguaje Perl. Ejercicios sobre el manejo de Cursores. Es importante elaborar los programas que a continuación se presentan, una vez el estudiante halla revisado la teoría expuesta en los capítulos 9 y 11. Cursores en Memoria y Cursores en disco duro. Estos ejercicios se deben adicionar a los ejercicios propuestos en el numeral 11.1.8

Ejercicio 1.

Elabore un programa, usando un cursor en disco duro, donde cada registro almacena la siguiente información:

Nombre de un pasajero,contador,ciudad

El primer campo corresponde al nombre de una persona que viaja en la aerolinea LandScape.

$contador almacena el número de veces que este pasajero ha viajado en la aerolinea.
$ciudad almacena la ciudad a donde viaja el pasajero.
Las opciones del menú que debe trabajar la aplicación son:

i. Inicializar el cursor
p. Insertar un pasajero
l. Listar todos los pasajeros
v. Listar el pasajero que mas viaja
r. Retirar un pasajero del cursor
f. Listar el cursor secuencialmente



La primera opción, inicializa el cursor. No olvide que el registro 0(cero) debe almacenar dos datos:
El primer dato almacena la posición donde esta el primer pasajero en la lista y el segundo dato la posición del próximo registro disponible donde se puede almacenar un pasajero.

La segunda opción, debe capturar los datos de un pasajero e insertarlo en el cursor. En caso de no existir, se debe insertar el pasajero e inicializar en 1 la variable $contador. En caso de existir se debe sumar 1 a la variable $contador. Tambien se debe almacenar en la variable $ciudad la ciudad donde viaja el pasajero.

La tercera opción debe listar todos los pasajeros incluidos en el cursor y la cuarta opción solo debe listar el pasajero que mas ha viajado. (-Se debe recorrer todo el cursor y determinar cual es el registro donde la variable $contador tiene el mayor valor.-)

La opción retirar, debe pedir por teclado el nombre de un pasajero y retirarlo del cursor. Si no existe se imprimirá el aviso correspondiente y si existe debe retirarlo del cursor e insertar el registro donde se almacenaba el pasajero retirado, en la lista de registros disponibles.

La última opción, se utiliza para ver que información tiene el cursor en cualquier momento. Se debe listar secuencialmente, mostrando todos los datos incluidos en cada registro. Todos los apuntadores de la lista de datos y de la lista de registros disponibles deben apuntar correctamente.
Ejercicio 2.

Elabore un programa, usando un cursor en disco duro, donde cada registro almacena la siguiente información:

dd/mm/aaaa,contador,número de pasajeros del vuelo

El primer campo corresponde a la fecha en la cual hicieron uno o varios vuelos los aviones de la aerolinea LandScape.

$contador almacena el número e veces que se ha efectuado un vuelo en esa fecha.
$numero almacena el número de pasajeros que volaron en esa fecha

Las opciones del menú que debe trabajar la aplicación son:

i. Inicializar el cursor
p. Insertar un vuelo
l. Listar todos los vuelos
v. Listar en que fecha se hicieron mas vuelos
r. Retirar un vuelo del cursor
f. Listar el cursor secuencialmente


La primera opción, inicializa el cursor. No olvide que el registro 0(cero) debe almacenar dos datos:
El primer dato almacena la posición donde estan los datos del primer vuelo en la lista y el segundo dato la posición del próximo registro disponible donde se puede almacenar los datos del próximo vuelo.

La segunda opción, debe capturar los datos de un vuelo e insertarlos en el cursor. En caso de No existir, se debe insertar el vuelo e inicializar en 1 la variable $contador. En caso de existir se debe sumar 1 a la variable $contador. Tambien se debe almacenar en la variable $numero el número de pasajeros que utilizaron ese vuelo en esa fecha.

La tercera opción debe listar todos los vuelos incluidos en el cursor y la cuarta opción solo debe listar la fecha en la cual se hicieron mas vuelos. (-Se debe recorrer todo el cursor y determinar cual es el registro donde la variable $contador tiene el mayor valor.-)

La opción retirar, debe pedir por teclado la fecha de un vuelo y retirarlo del cursor. Si no existe se imprimirá el aviso correspondiente y si existe debe retirarlo del cursor e insertar el registro donde se almacenaba el vuelo retirado, en la lista de registros disponibles.

La última opción, se utiliza para ver que información tiene el cursor en cualquier momento. Se debe listar secuencialmente, mostrando todos los datos incluidos en cada registro. Todos los apuntadores de la lista de datos y de la lista de registros disponibles deben apuntar correctamente.
Ejercicio 3.

Elabore un programa, usando un cursor en disco duro, donde cada registro almacena la siguiente información:

código de la materia,contador,costo

El primer campo corresponde al código de una materia.

$contador almacena el número de estudiantes que se inscriben para cursar la materia
$costo almacena la sumatoria de los valores de todos los estudiantes que se inscribieron para cursar esa materia.

Las opciones del menú que debe trabajar la aplicación son:

i. Inicializar el cursor
p. Insertar una materia
l. Listar todas las materias
v. Listar la materia donde existen inscritos mas estudiantes
d. Listar la materia donde mas se recaudo dinero
r. Retirar una materia
f. Listar el cursor secuencialmente


La primera opción, inicializa el cursor. No olvide que el registro 0(cero) debe almacenar dos datos:
El primer dato almacena la posición donde estan los datos de la primera materia en la lista y el segundo dato la posición del próximo registro disponible donde se pueden almacenar los datos de la siguiente materia en el cursor.

La segunda opción, debe capturar los datos de una materia e insertarlos en el cursor. En caso de No existir, se debe insertar la materia e inicializar en 1 la variable $contador. En caso de existir se debe sumar 1 a la variable $contador. Tambien se debe acumular el valor pagado por el alumno al inscribir la materia, en la variable $costo

La tercera opción debe listar todas las materias incluidas en el cursor y la cuarta opción solo debe listar la materia en la cual existen matriculados el mayor número de estudiantes. (-Se debe recorrer todo el cursor y determinar cual es el registro donde la variable $contador tiene el mayor valor.-)

La quinta opción solo debe listar la materia en la cual se recaudo mas dinero. (-Se debe recorrer todo el cursor y determinar cual es el registro donde la variable $costo tiene el mayor valor.-)

La opción retirar, debe pedir por teclado el código de una materia y retirarla del cursor. Si no existe se imprimirá el aviso correspondiente y si existe debe retirarla del cursor e insertar el registro donde se almacenaba la materia retirada, en la lista de registros disponibles.

La última opción, se utiliza para ver que información tiene el cursor en cualquier momento. Se debe listar secuencialmente, mostrando todos los datos incluidos en cada registro. Todos los apuntadores de la lista de datos y de la lista de registros disponibles deben apuntar correctamente.
Ejercicio 4.

Elabore un programa, usando un cursor en disco duro, donde cada registro almacena la siguiente información:

Librería,libro1,libro2,libro3,libro4,libro5,libro6

El primer campo corresponde al nombre de una librería.

$libro1....$libro6 son 6 contadores que almacenan el número de 6 libros que comercializa la librería.

Las opciones del menú que debe trabajar la aplicación son:

i. Inicializar el cursor
p. Insertar una librería
l. Listar todas las librerías
v. Listar la librería donde mas se vendieron libros
r. Retirar una librería
f. Listar el cursor secuencialmente


La primera opción, inicializa el cursor. No olvide que el registro 0(cero) debe almacenar dos datos:
El primer dato almacena la posición donde estan los datos de la primera librería en la lista y el segundo dato la posición del próximo registro disponible donde se pueden almacenar los datos de la siguiente librería en el cursor.

La segunda opción, debe capturar los datos de una librería e insertarlos en el cursor. Se debe leer por teclado tanto el nombre de la librería como el libro (libro1, libro2, ....) que se ha vendido. En caso de No existir, se debe insertar la librería e inicializar en 0 las variables $libro1 .... $libro6 excepto el contador que corresponde al libro que se vendío. El contador correspondiente se debe inicializar en 1.
En caso de existir se debe sumar 1 a la variable correspondiente al libro que se vendío. Por ejemplo si la librería A hizo la siguientes ventas:

A libro1
A libro6
A libro1
A libro6
A libro6

se debe sumar 2 al contador $libro1 y 3 al contador $libro6.

La tercera opción debe listar todas las librerías incluidas en el cursor y la cuarta opción solo debe listar la librería en la cual se vendieron mas libros (-Se debe recorrer todo el cursor y determinar cual es el registro donde la suma de las variables $libro1...$libro6 tiene el mayor valor.-)

La opción retirar, debe pedir por teclado el nombre de una librería y retirarla del cursor. Si no existe se imprimirá el aviso correspondiente y si existe debe retirarla del cursor e insertar el registro donde se almacenaba la librería retirada, en la lista de registros disponibles.

La última opción, se utiliza para ver que información tiene el cursor en cualquier momento. Se debe listar secuencialmente, mostrando todos los datos incluidos en cada registro. Todos los apuntadores de la lista de datos y de la lista de registros disponibles deben apuntar correctamente.