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