• No se han encontrado resultados

Proyecto Programación II

N/A
N/A
Protected

Academic year: 2018

Share "Proyecto Programación II"

Copied!
7
0
0

Texto completo

(1)

Universidad Técnica Nacional Curso: Programación II

I Cuatrimestre de 2016

Proyecto Programado Valor 20%

Profesoras:

Laura Agüero Castro

Karlinna Chaves González

Ana Cecilia Odio Ugalde.

Fecha de entrega: Semana del 18 al 23 de abril en horario de clase. Fecha de avance: Diagrama de clases: 3 de marzo de 2016

I - Descripción del Problema

El dueño de un Rent a Car lo ha contratado para que le diseñe una aplicación que permita controlar el alquiler de los diferentes tipos de autos que alquila de acuerdo al tipo de cliente y forma de pago.

II – Descripción de requerimientos

1. El Rent a Car alquila tanto automóviles, como vehículos de doble tracción, cada uno en condiciones diferentes.

 De todos los vehículos se registra, su placa, modelo(año de fabricación), marca y estilo: Ejemplos:

Marca Estilo Toyota Corolla Toyota Prado Toyota Rav4 Nissan Sentra Nissan Versa Nissan Xtrail Nissan Pathfinder Hyundai Tucson Honda Accord etc.

 Todos los vehículos poseen un estado (Disponible, Alquilado). Inicialmente todos están disponibles.  Cada vehículo, posee un precio básico de alquiler diario diferente.

 De los automóviles adicionalmente se registra la cantidad de puertas (2 o 4).

 De los vehículos de doble tracción se registra la cantidad de pasajeros que caben en él.

2. Esta empresa también ha categorizado a los clientes que usan sus servicios en dos categorías: Cliente Regular y Cliente Frecuente.

 De todos los clientes se registra su cédula y nombre.

 De los clientes regulares se adiciona el número de teléfono.

 De los clientes frecuentes, se indica la cantidad de puntos que tiene acumulados

(2)

4. Para calcular el precio que se debe pagar por el alquiler del (de los) auto(s) se toman en cuenta los siguientes lineamientos:

4.1 Cada tipo vehículo, tiene un precio básico que se cobra por cada día de alquiler.

Tipo de Vehículo Precio básico diario

Automóvil 2000

Doble tracción 3000

4.2 Adicionalmente se efectúan diferentes cobros de acuerdo a lo siguiente:

Automóviles: adicional al precio del alquiler diario se cobra un monto de acuerdo a la antigüedad del auto. (El modelo corresponde al año de fabricación):

- Para automóviles del año actual, el precio se incrementa en 2000 colones más por día de alquiler. - Para automóviles con modelos anteriores al año actual, pero que no sean anteriores al año 2000,

el precio diario se incrementa en 1500 colones diarios.

- Para automóviles de años anteriores al 2000, el precio diario se incrementa en 1000 colones más por día de alquiler.

Nota: El año actual se debe tomar del Sistema Operativo.

También a los Automóviles de 4 puertas se les cobra un adicional de 500 colones diarios.

Doble Tracción: si el auto por alquilar se trata de un doble tracción, entonces se cobra un adicional al precio del alquiler diario que va de acuerdo a la cantidad de pasajeros que caben en él, de la siguiente forma:

- Para autos cuya capacidad es de máximo 5 pasajeros, se adiciona 5000 colones diarios.

- Para autos cuya capacidad es de más de 5 pasajeros, entonces se adiciona los mismos 5000 diarios, más 1000 colones diarios por cada espacio para pasajero adicional a los primeros 5 campos.

4.3 El monto a pagar por el seguro obligatorio se determina de la siguiente manera de acuerdo al tipo de auto (pago por día):

Automóviles:

Modelos anteriores a 2000: ₡ 1000 Modelos entre 2000 y 2005: ₡ 5000 Modelos mayores a 2005: ₡10000

Doble Tracción:

Modelo anterior a 2000: ₡ 5000 Modelo mayor o igual a 2000: ₡ 7000

4.4 El cliente podría optar por tomar un seguro para daños a terceros (éste seguro es opcional), en este caso para los automóviles se cobra ₡3000 diarios y vehículos de doble tracción, el monto diario es de ₡5000. Es posible que si el cliente va a alquilar varios autos, elija el seguro para unos pero no para otros.

5. En cada Alquiler un cliente se puede llevar varios autos de diferente tipo.

(3)

6. De acuerdo al tipo de Cliente, la empresa ofrece algunos descuentos sobre el total a pagar por el alquiler total del vehículo de la siguiente forma:

- Regular: No se le aplica ningún descuento.

- Frecuente: Se le hace un descuento de 300 colones por cada punto acumulado.

7. Cuando un cliente realiza un alquiler, se le emite un recibo de pago en el que se le desglosan todos los montos cobrados y el monto total a pagar. Los montos totales por el alquiler de los vehículos se pueden pagar de contado o crédito.

 Si el cliente paga de contado, se aceptan pagos en dólares, por tanto se debe efectuar la conversión correspondiente.(Utilice precio del dólar en ₡540)

 Si se paga con tarjeta de crédito se debe registrar el tipo de tarjeta, únicamente se aceptan: Visa, Master Card o American Express y el número correspondiente. Se debe realizar una validación de los datos de la tarjeta de acuerdo a como se indica más adelante.

Nota: Ya sea que el pago se efectúe de contado o crédito, se debe mostrar el monto en letras. Ejemplo: Siete mil quinientos ochenta y cinco

8. Cuando los clientes devuelven los carros con atraso de acuerdo a lo indicado cuando los alquilaron, se les cobrará una multa, según se detalla más adelante.

III- Diseño de la aplicación

1. El programa debe estar estructurado en 3 capas:

- Capa Vista o capa gráfica: Diseño de pantallas a través de las cuales se comunicará con el usuario - Capa de Lógica de Negocios: Diseño de las clases y sus relaciones.

- Capa de Persistencia o Acceso a datos: Diseño de la(s) clases que dan persistencia a los objetos. Para efectos de este curso se utilizará una capa de acceso a datos, utilizando archivos.

2. La aplicación debe presentar una pantalla principal en la que el usuario por medio de un menú pueda acceder a las diferentes funcionalidades de la aplicación de acuerdo al tipo de usuario.

 Para acceder a esta pantalla, se debe solicitar un código de usuario y una clave (la clave no se debe ver cuando se digita). Para que la clave sea válida, debe tener mínimo 5 dígitos y cada dígito debe ser el doble del anterior. Ej: 124862 (ya que el doble de 8 es 16, en la clave únicamente aparece el 6 (dígito de las unidades y es doble de 6 es 12, por eso aparece un 2 al final

 Se debe validar que el usuario exista y su clave sea correcta. Si el usuario se equivoca tres veces, el programa indicará que se va a cerrar porque alcanzó el máximo de intentos.

 La lista de usuarios se debe mantener en un objeto de tipo ArrayList que se pueda acceder al inicio de la aplicación sin necesidad de tener que ingresarlos cada vez que ésta se ejecute. Asegúrese de que en la lista aparezca el usuario con código de usuario “admin” y clave o password 123456 además de su lista de al menos 5 usuarios más.

3. Usuario administrador: Una vez que el usuario fue identificado correctamente, la aplicación presentará en pantalla, el menú mediante el cual, el administrador del sistema pueda acceder a todas las funcionalidades de la aplicación (Mantenimiento de Vehículos , Alquiler de Vehículos, Devolución de Vehículos, Reporte de Vehículos )

(4)

Opciones del menú:

5. Pantalla de Mantenimiento de Vehículos: Se debe diseñar una pantalla en la que el usuario pueda dar mantenimiento al inventario de vehículos que posee. La lista de vehículos se almacenará en un Archivo que se pueda acceder desde cualquier ventana de la aplicación. En esta pantalla de mantenimiento se debe permitir al usuario:

- Insertar un nuevo vehículo al inventario(el estado no lo indica el usuario, el programa lo incluye como disponible por default)

- Modificar la información de un vehículo (excepto la placa y el estado) - Eliminar totalmente un vehículo del inventario

- Consultar toda la información de un vehículo (incluyendo el estado)

6. Pantalla de alquiler de vehículos: Es la pantalla en la que el usuario digita la información necesaria para alquilar uno o más vehículos.

6.1 El número de Alquiler se debe generar automáticamente.

6.2 La fecha del Alquiler se obtendrá a partir de la fecha del sistema operativo.

6.3 Se solicita la información del cliente de acuerdo a su tipo (Regular, Frecuente).

Nota: Dado que no existe un mantenimiento de Clientes, mantenga al menos un ArrayList con clientes con el fin de que solamente se digite su cédula y el programa obtenga toda la información del mismo.

6.4 Cuando se presenta la ventana de alquiler de vehículos, el usuario selecciona mediante algún control gráfico, si desea buscar Automóviles o Vehículos de doble Tracción.

 Si el usuario escoge Automóvil, se le solicita la cantidad de puertas.

 Si el usuario escoge Doble Tracción se debe pedir la cantidad de pasajeros.

6.5 De acuerdo a la selección del usuario y las características del vehículo, la búsqueda debe mostrar en un objeto gráfico (tipo Combo, lista, tabla, o el que usted. elija) todos los vehículos existentes de ese tipo en el inventario (Archivo) y que no se encuentren alquilados. La aplicación debe permitir que el usuario seleccione uno o varios vehículos de diferente tipo, para rentar en un solo trámite de alquiler, es decir, si el usuario de nuevo presiona el control que le permita cambiar el tipo de vehículo, el objeto gráfico se actualizará de acuerdo a lo seleccionado.

6.6 La lista de los vehículos seleccionados para alquilar, se deben mostrar en algún objeto gráfico y permitir que se pueda eliminar alguna línea, si es que el usuario decide no llevarse alguno de los vehículos ya seleccionados.

6.7 En un trámite de alquiler el cliente puede llevarse rentados varios vehículos de diferente tipo.

6.8 Todos los vehículos alquilados durante un único trámite, se llevarán por la misma cantidad de días, la cual se debe indicar al programa para efectos de cálculos

6.9 En el Alquiler se debe indicar la fecha esperada de devolución, de acuerdo a la fecha actual y a la cantidad de días que se llevarán el vehículo.

6.10 También se debe indicar si el monto del Alquiler se cancelará de Contado o mediante Tarjeta de Crédito y de acuerdo a dicha selección se solicitará la información correspondiente.

(5)

 Las tarjetas de crédito que se aceptan son únicamente: Master Card

Visa

 Se debe solicitar el número de tarjeta, fecha de vencimiento (mes y año) y código de seguridad.  Los números de tarjeta deben estar formados por 16 dígitos para Visa y Master Card (solo

dígitos).

 Si la tarjeta es Visa debe iniciar con 4, si es Master Card con los números que se encuentran entre 51 y 55 inclusive.

 Se debe validar que el código de seguridad debe ser de 3 dígitos (solo dígitos).

 El número de tarjeta se debe validar de acuerdo a los lineamientos que se indican más adelante.

6.11 Todos los rubros que forman el cobro del alquiler (total por días, adicionales, seguros, etc.) se deben mostrar actualizados en pantalla, es decir, cada vez que se selecciona o elimina algún vehículo, se deben actualizar dichos campos.

6.12 Una vez seleccionados todos los vehículos e indicados todos los datos del alquiler, el usuario efectúa un evento que indique “Alquilar” (puede ser mediante un botón de comando). En este momento se muestra el toString () completo del Alquiler en un objeto jTextArea y se actualizan los campos con los totales.

6.13 Los vehículos alquilados se deben registrar como “Alquilado” en el archivo.

6.14 En total a pagar por el alquiler también debe aparecer en letras.

6.15 Si el pago es en dólares, se debe mostrar tanto el monto en colones como en dólares.

6.16 Se solicita al cliente el monto con el que cancelará, de esta forma se calculará y mostrará el monto de dinero a entregar como vuelto.

7. Pantalla de devolución de vehículos: En esta pantalla se digita la placa del auto a devolver. Dicho auto debe quedar de nuevo en el archivo con estado disponible.

Por cada día de atraso en la devolución, se debe cobrar 5000 colones. Para efectos de prueba, en este trámite, la fecha de devolución NO se debe obtener del sistema operativo, sino que el usuario la digita.

8. Pantalla de reportes:

8.1Reporte de Vehículos: Debe presentar la lista de todos los Vehículos que se encuentran en el archivo en un objeto gráfico como un JTable o JTextArea. Debe aparecer la información general y el estado del vehículo.

IV - Requisitos Técnicos

1. El proyecto se debe desarrollar en forma individual.

2. Desarrollar el diagrama de clases que corresponda al enunciado anterior y desarrolle la aplicación. 3. El lenguaje de desarrollo es Java utilizando el IDE Jdeveloper 11g Release 2

(6)

5. El programa debe estar estructurado en 3 capas:

Capa vista o aplicación gráfica(UI): Diseño de pantallas a través de las cuales se comunicará con el usuario

Capa de Lógica de Negocios (BLL): Diseño de las clases y sus relaciones.

Capa de Acceso a datos (DAO): Diseño de la(s) clases que dan persistencia a los objetos. Para efectos de este curso se utilizará una simulación de la capa de acceso a datos, utilizando archivos.

6. Para la presentación del proyecto, el archivo debe contar con varios vehículos con el fin de contar con suficientes datos para efectuar pruebas.

7. La interfaz con el usuario debe ser amigable y permitir que éste digite únicamente lo necesario, es decir, debe seleccionar las cosas por medio de objetos gráficos como los combo box, listas, botones de opción, etc.

8. Utilice las bondades de la interfaz gráfica para que el programa sea vistoso. Cada control gráfico tiene una funcionalidad que se ajusta a una situación específica (CheckBox, RadioButtons, etc.) 9. El programa debe efectuar todas las validaciones de entrada y capturar las excepciones de manera

que cuando se presente un error el programa no se descontinúe. 10. Debe crear el JAR para realizar su ejecución de forma más simple 11. Indente y comente el código fuente.

12. El proyecto se debe efectuar en forma individual y presentarlo a su profesor el día indicado. Proyectos iguales serán anulados

Opcional 10 puntos

Diseñe su aplicación de manera que el mantenimiento de Vehículos se efectúe en una Base de datos Sql Server.

Validación de la tarjeta de crédito

a. Una vez seleccionados en forma correcta los asientos, se procede a efectuar el cobro respectivo.

 Se debe revisar que la fecha de vencimiento de la tarjeta sea posterior a la fecha actual y que el código de seguridad sea un número de 3 dígitos. Además, dependiendo del tipo de tarjeta se debe validar que su número sea válido de la siguiente forma:

 Tarjetas Visa: 16 dígitos y el primero debe ser un 4. Ejemplo: 4552720412345678.

 Tarjetas Master Card: de igual manera están formados por 16 dígitos. Los dos primeros dígitos deben estar entre el 51 y el 55 inclusive. Ejemplos: 5588320123456789

 Una vez validado que el número de tarjeta inicie de acuerdo a las reglas de las compañías, se debe validar que dicho número también cumpla con las especificaciones de validez de acuerdo a los siguientes lineamientos.

Para que un número de tarjeta sea válido debe cumplir lo siguiente:

 El último dígito del número de tarjeta es el dígito de verificación (en el caso del siguiente ejemplo corresponde al dígito 7). Éste digito debe ser el resultado del siguiente algoritmo.

Paso1: Se recorre el número de tarjeta de derecha a izquierda a partir del penúltimo dígito, y en cada posición de por medio, se multiplica cada dígito por 2. Se van almacenando los resultados en otra estructura (arreglo, hilera, etc.).

 Paso 2: Cada número almacenado a partir del paso uno, se convierte en un solo dígito sumando sus 2 dígitos.

(7)

 Paso 4: La suma de los dígitos (73) se multiplica por 9

 Paso 5: Si el dígito de las unidades del resultado del paso anterior es igual al dígito de verificación el número de tarjeta es correcto.

Ejemplo:

Validar número de tarjeta: 4 4 8 5 7 3 6 1 9 0 4 6 8 1 3 7

No. Tarjeta 4 4 8 5 7 3 6 1 9 0 4 6 8 1 3 7 Paso1 Duplicar dígitos

cada 2 posiciones

8 4 16 5 14 3 12 1 18 0 8 6 16 1 6

Paso2 Convertir a un solo dígito

8 4 7 5 5 3 3 1 9 0 8 6 7 1 6

Paso3 Sumar los dígitos Suma = 73

Paso4 Multiplicar suma por 9 (R)

R= 73*9 = 657

Paso5 Validar dígito de verificación

Las unidades de 657 es 7. 7 es igual al dígito de verificación => Número de tarjeta correcto

Ejemplos de números de tarjeta válidos:

Visa: Master Card:

4485736190468137 5390395583964086

4539930121856504 5517858154140558

4929053880070445 5547444953800421

Referencias

Documento similar

Las planificaciones se pueden editar desde la pantalla principal pulsando en Editar en el menú que se abre al presionar el botón de más opciones de una planificación en

Si el usuario no es consciente de que la aplicación no se está ejecutando (es decir, no recibe los datos de glucosa del sensor y las alertas asociadas) y si no se

1. LAS GARANTÍAS CONSTITUCIONALES.—2. C) La reforma constitucional de 1994. D) Las tres etapas del amparo argentino. F) Las vías previas al amparo. H) La acción es judicial en

En cuarto lugar, se establecen unos medios para la actuación de re- fuerzo de la Cohesión (conducción y coordinación de las políticas eco- nómicas nacionales, políticas y acciones

D) El equipamiento constitucional para la recepción de las Comisiones Reguladoras: a) La estructura de la administración nacional, b) La su- prema autoridad administrativa

b) El Tribunal Constitucional se encuadra dentro de una organiza- ción jurídico constitucional que asume la supremacía de los dere- chos fundamentales y que reconoce la separación

Si el usuario desea añadir un nuevo alumno manualmente, solo debe pulsar el botón Añadir nuevo alumno (marcado con 1) que le llevará a una página donde se mostrará

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en