INSTITUTO DE CIENCIAS Y ALTA ALTA TECNOLOGÍA CIBERTEC DIRECCIÓN ACADÉMICA CARRERAS PROFESIONALES CURSO CICLO SECCIONES SEMESTRE PROFESORES
: : : : :
INTRODUCCION A LA ALGORITMIA PRIMERO TODAS 2013-1 TODOS
PROYECTO DE INTRODUCCION A LA ALGORITMIA 1. FUNDAMENTACIÓN
El curso de Introducción a la Algoritmia brinda a los alumnos conceptos, técnicas y metod metodolo ología gíass para para el diseño diseño de algori algoritmo tmoss eficac eficaces es que abarca abarcan n dos dos aspect aspectos os importantes. Por un lado, resuelven problemas de acuerdo con los requerimientos especificados teniendo en cuenta aspectos de eficiencia. Por otro lado, resuelven problemas de la mejor forma posible, considerando el uso adecuado de recursos como la memoria y tiempo de proceso. 2. GENERALIDADES
En este proyecto será importante el trabajo coordinado del grupo. De esta forma, los alum alumno noss podr podrán án enco encont ntra rarr dive divers rsas as alte altern rnat ativ ivas as de solu soluci ción ón a los los prob proble lema mass planteados y elegir la mejor. 3. OBJETIVO
Aplicar los conceptos aprendidos en el curso a la solución de un problema computacional concreto comenzando por la creación de una solución algorítmica y terminando con su implementación en el lenguaje de programación Java. 4. NUMERO DE INTEGRANTES POR GRUPO
El proyecto será desarrollado grupalmente en la que cada grupo estará compuesto de5 alumno alumnoss del del mism mismo o turn turno o de labo labora rato tori rio o. Los Los inte integr gran ante tess del del grup grupo o permanecerán permanecerán hasta la finalización finalización del curso no habiendo la posibilidad de cambios de grupos. Cada grupo deberá elegir a un coordinador que lo represente. 5.
DEFINICIÓN DEL PROYECTO: EMPRESA DE EXTINTORES
En el presente proyecto se le pide diseñar un programa para una empresa que vende extintores. Considere que la empresa solo tiene 5 tipos de extintores de 12kg para los cuales se tiene la siguiente declaración mínima de variables globales:
// Datos dela primera marca String tipo0 = “PQS”; double precio0 = 120; int stock0 = 50; // Datos de la segunda marca String tipo1 = “AGUA”; double precio1 = 150; int stock1 = 100; // Datos de la tercera marca String tipo2= “C02”; double precio2 = 180; int stock2 = 80; // Datos de la cuarta marca String tipo3 = “HALOTRON”; double precio3 = 200; int stock3 = 50; // Datos de la quinta marca String tipo4 = “ACETATO”; double precio4 = 250; int stock4 = 100; // Porcentajes de descuento // Valores por defecto double d1 = 5.0; double d2 = 7.0; double d3 = 8.0; double d4 = 9.0;
El programa presentará el siguiente menú: Menú Principal
Mantenimiento Ventas Configurar descuentos Reportes
A continuación se detallan las diversas opciones del programa.
Menú Principal: Mantenimiento Al seleccionar esta opción se mostrará el panel del Menú Mantenimiento. Menú Mantenimiento • • • • •
Consultar Producto Modificar Producto ListarProductos Ingresar stock Salir
Menú Principal: Ventas Al seleccionar esta opción se mostrará el panel de venta de extintores. En una venta sólo se podrán vender varias unidades de un mismo tipo de extintor. El panel contendrá como mínimo los siguientes elementos: Un JComboBox para seleccionar el tipo de extintor a vender. Un JTextField para ingresar la cantidad de extintores a vender. Un botón Vender para efectuar la venta. Un JTextArea para imprimir la boleta de venta al hacer clic en el botón Vender. Un botón Salir para salir del panel y volver al Menú Principal. • • • •
•
La boleta de venta incluirá la siguiente información: • • • • • • •
Nombre de la empresa Tipo de extintor Cantidad de extintores vendidos Importe compra Importe de descuento. Importe a pagar. Obsequio
La empresa efectúa descuentos sobre el importe de compra de acuerdo a la siguiente tabla: Cantidad de extintores adquiridos 1a5 6 a 10 11 a 15 Más de 15
Porcentaje de descuento d1 % d2 % d3 % d4 %
Los porcentajes de descuento se obtienen de las variables globales d1, d2, d3 y d4. La empresa otorga premios a los clientes que compren extintores de acuerdo con la siguiente tabla:
Tipo de extintor PQS AGUA
obsequio 2 mangueras de incendio de 10mt c/u por cada 5 extintores 1 gabinete de chapa con frente de vidrio por cada 10 extintores
Menú Principal: Configurar descuentos Al seleccionar esta opción se mostrará el panel de configuración de descuentos. El panel contendrá como mínimo los siguientes elementos: • • • •
Un JLabel por cada intervalo de descuento. Un JTextField por cada porcentaje de descuento Un botón Guardar para guardar los cambios efectuados Un botón Salir para salir del panel y volver al Menú Principal.
Al entrar al panel se cargarán automáticamente los porcentajes de descuento que se encuentran en las variables d1, d2, d3 y d4. El usuario del programa podrá modificar los porcentajes cargados en los JTextField. Al pulsar el botón Guardar, se procederá a guardar los valores de los JTextField en las variables d1, d2, d3 y d4. Debe validar que la información sea la correcta antes de guardar los valores.
Menú Principal: Reportes Al seleccionar esta opción se mostrará un panel con el que se podrá obtener reportes. El panel contendrá como mínimo los siguientes elementos: • • • •
Un JComboBox para seleccionar el tipo de reporte. Un botón Ver para visualizar el reporte seleccionado. Un botón Salir para salir del panel y volver al Menú Principal. Un JTextArea para imprimir el reporte solicitado.
Los reportes a seleccionar del JComboBox serán los siguientes:
Ventas por extintores Mostrará un reporte indicando por cada tipo de extintor: número de ventas, número de unidades vendidas e importe total acumulado. Además, en la parte final del reporte mostrará el importe total acumulado general (suma de los importes totales acumulados de cada tipo de extintor). El reporte será similar al siguiente:
UNIDADES VENDIDAS E IMPORTE TOTAL ACUMULADO POR EXTINTOR
Tipo
: PQS
Número de ventas
: 2
Unidades vendidas
: 10
Importe total acumulado
: S/.1,100.0
Tipo
:
Número de ventas
: 5
Unidades vendidas
: 40
AGUA
Extintor estrella Mostrará un reporte indicando la mayor cantidad total de unidades vendidas entre los diversos tipos de extintores y el tipo de extintor que alcanzó dicha cantidad. Si la mayor cantidad total de unidades vendidas es compartida por más de un tipo de extintor, se deberá mostrar los tipos de todos ellos. El reporte será similar al siguiente: EXTINTOR ESTRELLA
Cantidad total de unidades vendidas de PQS
: 120
Cantidad total de unidades vendidas de AGUA
: 75
Cantidad total de unidades vendidas de CO2
: 120
Cantidad total de unidades vendidas de HALOTRON
: 100
Extintor con venta óptima Mostrará un reporte indicando los tipos de extintores con venta óptima. Se considera que un tipo de extintor tiene venta óptima si la cantidad total de unidades vendidas de dicho extintor es mayor que el 50% de su stock inicial. El reporte será similar al siguiente: EXTINTOR CON VENTA ÓPTIMA
Tipo de extintor: PQS Stock inicial
: 50
Cantidad total extintores vendidos
: 30(60.0% del stock)
Tipo de extintor: AGUA Stock inicial
: 100
Menú Mantenimiento: Consultar extintor Al seleccionar esta opción se mostrará un panel en el que se podrá consultar el precio del extintor. El panel contendrá como mínimo los siguientes elementos: • • • •
Un JComboBox para seleccionar el tipo de extintor. Un JTextField deshabilitado para mostrar el precio del extintor. Un botón Cargar para cargar el precio del extintor. Un botón Salir para salir del panel y volver al Menú Mantenimiento.
Menú Mantenimiento: Modificar extintor Al seleccionar esta opción se mostrará un panel en el que se podrá modificar el precio del extintor. El panel contendrá como mínimo los siguientes elementos: • •
Un JComboBox para seleccionar el tipo de extintor. Un JTextField para mostrar el precio del extintor.
Un botón Cargar para cargar el precio del extintor Un botón Grabar para grabar el cambio efectuado. Un botón Salir para salir del panel y volver al Menú Mantenimiento.
• • •
Menú Mantenimiento: Listar extintor Esta opción mostrará un panel con un listado de todos los extintores mostrando por cada uno de ellos: tipo, precio y stock. El panel contendrá como mínimo los siguientes elementos: Un botón Listar para mostrar el listado solicitado. Un JTextArea para imprimir el listado solicitado. Un botón Salir para salir del panel y volver al Menú Mantenimiento.
• • •
Menú Mantenimiento: Ingresar stock Al seleccionar esta opción se mostrará un panel en el que se podrá ingresar cierta cantidad de unidades de un tipo de extintor. El panel contendrá como mínimo los siguientes elementos: Un JComboBox para seleccionar el tipo de extintor. Un JTextField para escribir la cantidad de extintores a ingresar Un JTextArea para mostrar un reporte sobre el ingreso efectuado. Un botón Ingresar para efectuar el ingreso del stock. Un botón Salir para salir del panel y volver al Menú Mantenimiento.
• • • • •
Una vez efectuado el ingreso se imprimirá en el JTextArea un reporte mostrando: Nombre del extintor para el que se ingresó el stock. Cantidad de unidades ingresadas. Stock anterior, esto es, el stock antes del ingreso. Stock actual, esto es, el stock después del ingreso
• • • •
Menú Mantenimiento: Salir Al pulsar este botón se regresará al Menú Principal. Consideraciones generales Valide todas las situaciones de error mostrando mensajes adecuados. No se permite el uso de arreglos. En el desarrollo del proyecto se deberá usar métodos y programación modular. Se tomará en cuenta la calidad del algoritmo en la calificación.
6. PRESENTACIÓN FORMAL DEL TRABAJO
La presentación formal del trabajo constará de un Informe Impreso y de un CD o DVD de acuerdo a las siguientes especificaciones: Formato del informe impreso
Para el documento impreso, anillado y en original, considerar lo siguiente: •
•
Anillado en formato A4, impreso sobre papel Bond. Configuración de páginas: superior 3 cms, inferior 3 cms, derecho 2.5 cms, e izquierdo 2.5 cms.
•
La tapa del trabajo deberá ser de mica transparente y la contratapa de color.
•
Partes del documento: o
Carátula o portada: título del proyecto (centrado), nombre del curso (centrado), nombre del profesor (centrado), ciclo, aula y semestre (centrado), nombre del coordinador del grupo (justificado al margen izquierdo), nombre de los integrantes del grupo (justificado al margen izquierdo) y en las últimas líneas deberá ir centrado lo siguiente: CARRERAS PROFESIONALES CIBERTEC SEDE NORTE, 2013
o
Una hoja en blanco antes de la contratapa para las respectivas observaciones.
o
Índice o tabla de contenido con su respectiva numeración.
o
Presentación.
o
Cuerpo del proyecto.
GUI de todo el proyecto (pantallas capturadas).
Explicación del funcionamiento de cada pantalla
o
Conclusiones.
o
Recomendaciones
o
Bibliografía.
o
Adjuntar un sobre en la contratapa para colocar el dispositivo magnético solicitado (disco compacto) debidamente rotulado. No se aceptarán dispositivos sueltos
Formato del CD o DVD •
•
Elementos a incluir: o
Todo el proyecto completo con la estructura del IDE JCreator (workspace, proyecto, archivos: .java, .class, etc)
o
Todo el código fuente de su proyecto en un archivo de Word (fuentes.doc)
o
Todo el documento impreso en un archivo de Word ( documento.doc)
La tapa y la etiqueta del CD o DVD tendrán el siguiente formato:
CARRERA DE COMPUTACI Ó N E INFORM Á TICA
ESCUELA DE TECNOLOG Í A
ISTP CIBERTEC
T Í TULO DEL PROYECTO NOMBRE DE LOS ALUMNOS SEMESTRE 2013 I
TAPA DEL CD O DVD SOBRESCRIBA EL T Í TULO DEL PROYECTO SOBRESCRIBA LO S APELLIDOS Y NOMBRES DE LOS INTEGRANTES DEL EQUIPO X ° CICLO SOBRESCRIBA EL CICLO EN EL QUE SE ENCUENTRA.
CARRERA DE COMPUTACI Ó N E INFORM Á TICA
T Í TULO DEL PROYECTO NOMBRE Y APELLIDO DE LOS ALUMNOS SEMESTRE 2013 I
ESCUELA DE TECNOLOG Í A ISTP CIBERTEC
ETIQUETA DEL CD O DVD ETIQUETA DEL CD O DVD SOBRESCRIBA EL T Í TULO DEL PROYECTO. SOBRESCRIBA LOS APELLIDOS Y NOMBRES DE LOS INTEGRANTES DEL EQUIPO. X ° CICLO SOBRESCRIBA EL CICLO EN EL QUE SE ENCUENTRA.
7. CRITERIOS DE EVALUACIÓN DEL PROYECTO
La nota final de proyecto se obtendrá de acuerdo a los siguientes criterios: Nota Grupal CD con el código fuente terminado al 100% Informe impreso que describe la funcionalidad
: 08 puntos : 02 puntos
Nota Individual Sustentación del proyecto
: 10 puntos
• •
•
El puntaje obtenido es proporcional al nivel de avance que el grupo haya logrado. Por ejemplo,si un grupo terminó todo el proyecto (100% de avance) y presenta el informe según lo solicitado, logrará un máximo de 10 puntos a nivel grupal y un máximo de 10 puntos a nivel individual por sustentar el proyecto. Pero, si un grupo avanzó al 60% y presenta el informe, logrará un máximo de 6 puntos a nivel grupal y un máximo de 6 puntos a nivel individual por sustentar el proyecto, considerando que se va a sustentar un código incompleto y, por lo tanto, su nota máxima posible será 12. 8. SUSTENTACION DEL PROYECTO
La sustentación del proyecto se realizará en la semana 16 y tiene carácter obligatorio para todos los alumnos ya que es nota individual. Si un alumno no se presenta a la sustentación recibirá la nota 0 (cero). La sustentación consiste en responder en forma individual a las preguntas formuladas por el profesor del curso (de laboratorio) sobre el código fuente presentado. La calificación se realizará de acuerdo a los siguientes porcentajes: Elemento Mantenimiento Consultar 15% Modificar 15% Listar 10% Ingresar Stock 15% Ventas Vende y reduce stock 5% Calcula descuentos 5% Calcula obsequio 5% Configurar descuentos Reportes Ventas 1% Estrella 7% Optima 7%
Porcentaje respecto de 20 55%
15%
15% 15%
El día de la sustentación, se sorteará a primera hora el ingreso de los grupos al laboratorio, por lo que, todos los integrantes de cada grupo deben asistir puntualmente. Así, si el turno de laboratorio es de 07:10 a 09:40, el sorteo se hará a las 07:40. Si el grupo está incompleto o no se presenta para el momento del sorteo, recibirá un (01) punto en contra en la calificación final. Por otro lado, la entrega del informe impreso se hará en el momento del sorteo, no se aceptará presentaciones posteriores. De no tener el informe listo, se perderá los dos (02) puntos correspondientes.