Fundamentos de Informática

Anuncio
Fundamentos de Informática
PRÁCTICA 2 (Alumnos con D.N.I. par)
El objetivo de esta práctica es realizar un programa para la gestión de reservas de una villa rural
durante el mes de Julio. La villa está compuesta por cinco casas rurales con la denominación Pino,
Roble, Nogal, Acacia y Cedro. El programa consta de 4 opciones principales que se describen a
continuación:
1. Creación de la temporada: esta opción se ejecutará sólo para crear el fichero “casas.txt” por
primera vez al comienzo de la temporada de reservas. El precio diario durante el mes es el mismo para
cada casa, pero difiere de una casa a otra. Por ello, en esta opción del programa sólo se preguntará el
precio diario de cada casa, el resto de información se creará automáticamente. El formato del fichero
es el siguiente: consta de dos líneas por cada casa (por tanto tendrá un total del 10 líneas): la primera
línea de cada casa contiene el nombre de la casa, un espacio en blanco y el precio en euros (float) de la
estancia diaria en la misma; la segunda línea contiene una lista con todos los días del mes que está
disponible la casa, que inicialmente serán del 1 al 31 ordenados de menor a mayor, separados por un
único espacio en blanco y terminada la lista por un retorno de carro justo después del último día. Si a
una casa no le quedan días disponibles aparecerá únicamente el valor cero en su lista de días
disponibles. Puede verse más abajo un ejemplo del contenido del fichero “casas.txt”.
2. Gestión de clientes: se encargará de gestionar los clientes de la villa rural. Para poder reservar
alguna casa rural es necesario que el cliente esté dado de alta y tenga saldo disponible. Los datos de
cada cliente se almacenan en un fichero llamado “clientes.txt”. Para cada cliente hay almacenadas dos
líneas: en la primera se almacena el dni, seguida de un espacio en blanco y el nombre completo del
cliente y la segunda el saldo en euros (float) disponible para ese cliente. Puede verse más abajo un
ejemplo del contenido del fichero “clientes.txt”. Esta opción tiene dos apartados: 1) Listado de
clientes, que mostrará por pantalla el listado de clientes junto con su saldo disponible; 2) Añadir saldo,
se pedirá el dni de un cliente y una cantidad para cargar saldo. Si el cliente existe se suma el saldo al
que ya tuviese acumulado y si no existe el cliente se pide su nombre completo y se crea la información
para ese cliente
3. Gestión de reservas: se pide el dni del cliente, el día deseado de entrada en la villa y el número de
noches de la estancia. Se buscará si existe el cliente. Si no existe se muestra información
correspondiente y se vuelve al menú principal. En caso contrario, se mostrarán por pantalla las
opciones posibles de reserva (de 1 a 5, una por cada posible casa) en las que el cliente tiene saldo
suficiente para pagar (ver el ejemplo de una posible ejecución) o bien se mostrará información de que
no hay disponibilidad para esas fechas o de que el cliente no tiene saldo para ninguna reserva. En el
caso de que exista alguna opción de reserva, se teclea la opción de la misma y se realizan las siguientes
tareas:
- Se modifica el fichero “casas.txt” para actualizar los días que quedan disponibles para la opción
elegida (se quitarán los días reservados)
- Se almacenan los datos de la reserva en fichero “reservas.txt”. Para ello se añaden al final de
dicho fichero dos líneas: la primera tendrá el dni del cliente, seguida de un espacio en blanco y el
nombre de la habitación; la segunda línea tendrá el día de entrada, un espacio en blanco, el
número de noches de la reserva, un espacio en blanco y el precio total de la estancia. Puede verse
más abajo un ejemplo del contenido del fichero “reservas.txt”
- Se modifica el fichero “clientes.txt” para actualizar el saldo del cliente después de descontarle el
precio de la estancia.
4. Cliente estrella: suponiendo que existen un máximo de 50 clientes distintos, esta opción imprimirá
por pantalla el dni y nombre del cliente que más dinero se ha gastado en reservas (habrá que consultar
el fichero “reservas.txt”.
NOTAS MUY IMPORTANTES
NOTA 1: No se podrá pasar simultáneamente el contenido de todo un fichero a un array en memoria.
Sólo se permite tener un array con el precio por día de cada casa.
NOTA 2: Deben usarse registros para procesar los datos de las casas, clientes y reservas.
Ejemplos del contenido de los ficheros:
“reservas.txt”
“casas.txt”
Pino 70.90
1 2 3 4 5 6 10 11 12 29 30
Roble 55.99
9 10 11 12 24 25 26
Nogal 99.00
1 2 3 11 12 13 21 22 23
Acacia 30.25
0
Cedro 45.39
30 31
…
87654321 Pino
7 3 212.70
25369235 Nogal
4 7 693.00
12345678 Acacia
1 31 937.75
87654321 Pino
13 16 1134.40
25369235 Pino
31 1 70.90
87654321 Cedro
1 29 1316.31
…
“clientes.txt”
12345678 Pepito Pérez
190.50
87654321 Menganito Ortiz
256.95
25369235 Talanito Díaz
170.45
...
Ejemplo de una posible ejecución de la opción de Gestión de Reservas
Gestión de Reservas
================
Introduce DNI: 25369235
Día llegada: 11
Número de noches: 2
Opciones posibles, acorde con el saldo del cliente:
1. Habitación Pino. Precio de la reserva: 141.80
2. Habitación Roble. Precio de la reserva: 111,98
Introduce la opción deseada: 1
Reserva efectuada(*). Pulse una tecla para volver al menú principal.
(*) Habría que actualizar todos los ficheros correspondientes
Descargar