[{"data":1,"prerenderedAt":716},["ShallowReactive",2],{"navigation_docs":3,"-actividades-act-09":412,"-actividades-act-09-surround":711},[4,18,43,118,160,200,231,320,346],{"title":5,"path":6,"stem":7,"children":8,"icon":17},"Evaluación","\u002Fintroduction","1.introduction\u002F1.index",[9,12],{"title":10,"path":6,"stem":7,"icon":11},"Método de Evaluación","i-iconamoon-cheque-bold",{"title":13,"path":14,"stem":15,"icon":16},"Plataforma de Aprendizaje","\u002Fintroduction\u002Fplataforma","1.introduction\u002F2.plataforma","i-lucide-book-marked","i-lucide-house",{"title":19,"icon":20,"path":21,"stem":22,"children":23,"page":42},"Entorno de desarrollo","i-codicon-edit-code","\u002Fide","2.ide",[24,28,33,37],{"title":25,"path":26,"stem":27,"icon":20},"¿Qué es un IDE?","\u002Fide\u002Fentorno","2.ide\u002F1.entorno",{"title":29,"path":30,"stem":31,"icon":32},"Estructura de un Proyecto","\u002Fide\u002Festructura","2.ide\u002F2.estructura","i-clarity-tree-view-line",{"title":34,"path":35,"stem":36,"icon":20},"La compilación en un IDE","\u002Fide\u002Fcompilacion","2.ide\u002F3.compilacion",{"title":38,"path":39,"stem":40,"icon":41},"Depuración de Código","\u002Fide\u002Fdepurar","2.ide\u002F4.depurar","i-lucide-bug",false,{"title":44,"icon":45,"path":46,"stem":47,"children":48,"page":42},"Clases y Objetos","i-catppuccin-java-class","\u002Fclases-objetos","3.clases-objetos",[49,53,57,62,66,70,74,78,83,88,92,96,101,106,110,114],{"title":50,"path":51,"stem":52},"Repaso previo a Clases y Objetos","\u002Fclases-objetos\u002Fpreview","3.clases-objetos\u002F00.preview",{"title":54,"path":55,"stem":56,"icon":45},"¿Qué es la Programación Orientada a Objetos (POO)?","\u002Fclases-objetos\u002Fpoo","3.clases-objetos\u002F01.poo",{"title":58,"path":59,"stem":60,"icon":61},"Diagramas de Clases y Objetos","\u002Fclases-objetos\u002Fdiagramas","3.clases-objetos\u002F02.diagramas","i-devicon-uml",{"title":63,"path":64,"stem":65,"icon":45},"Las Clases","\u002Fclases-objetos\u002Fclases","3.clases-objetos\u002F03.clases",{"title":67,"path":68,"stem":69,"icon":45},"Ámbito y Visibilidad","\u002Fclases-objetos\u002Fambito","3.clases-objetos\u002F04.ambito",{"title":71,"path":72,"stem":73,"icon":45},"Declaración e Instanciación de Objetos","\u002Fclases-objetos\u002Fobjetos","3.clases-objetos\u002F05.objetos",{"title":75,"path":76,"stem":77,"icon":45},"Clases Predefinidas en Java","\u002Fclases-objetos\u002Fpredefinidas","3.clases-objetos\u002F06.predefinidas",{"title":79,"path":80,"stem":81,"icon":82},"Paquetes en Java","\u002Fclases-objetos\u002Fpaquetes","3.clases-objetos\u002F07.paquetes","i-material-icon-theme-folder-java-open",{"title":84,"path":85,"stem":86,"icon":87},"Las Excepciones","\u002Fclases-objetos\u002Fexcepciones","3.clases-objetos\u002F08.excepciones","i-catppuccin-java-exception",{"title":89,"path":90,"stem":91,"icon":45},"La clase JOptionPane","\u002Fclases-objetos\u002Fjoptionpane","3.clases-objetos\u002F09.joptionpane",{"title":93,"path":94,"stem":95,"icon":45},"Constructores y Accesores","\u002Fclases-objetos\u002Fconstructores","3.clases-objetos\u002F10.constructores",{"title":97,"path":98,"stem":99,"icon":100},"Tipos Enumerados (Enums)","\u002Fclases-objetos\u002Fenumerados","3.clases-objetos\u002F11.enumerados","i-catppuccin-java-enum",{"title":102,"path":103,"stem":104,"icon":105},"Modificadores de acceso static y final","\u002Fclases-objetos\u002Fmodificadores","3.clases-objetos\u002F12.modificadores","i-mdi-chart-box",{"title":107,"path":108,"stem":109,"icon":105},"El casting en Java","\u002Fclases-objetos\u002Fcasting","3.clases-objetos\u002F13.casting",{"title":111,"path":112,"stem":113},"Las Expresiones Regulares","\u002Fclases-objetos\u002Fexpresiones-regulares","3.clases-objetos\u002F14.expresiones-regulares",{"title":115,"path":116,"stem":117,"icon":105},"Clases Genéricas en Java","\u002Fclases-objetos\u002Fclases-genericas","3.clases-objetos\u002F15.clases-genericas",{"title":119,"icon":120,"path":121,"stem":122,"children":123,"page":42},"Funciones (Métodos)","i-material-symbols-function","\u002Fmetodos","4.metodos",[124,128,132,136,140,144,148,152,156],{"title":125,"path":126,"stem":127},"Funciones Genéricas","\u002Fmetodos\u002Ffuncion-generica","4.metodos\u002F01.funcion-generica",{"title":129,"path":130,"stem":131},"Métodos de Instancia y de Clase","\u002Fmetodos\u002Finstancia-clase","4.metodos\u002F02.instancia-clase",{"title":133,"path":134,"stem":135},"Sobrecarga de Funciones","\u002Fmetodos\u002Fsobrecarga","4.metodos\u002F03.sobrecarga",{"title":137,"path":138,"stem":139},"Alcance de Variables y Métodos","\u002Fmetodos\u002Falcance","4.metodos\u002F04.alcance",{"title":141,"path":142,"stem":143},"Recursividad","\u002Fmetodos\u002Frecursividad","4.metodos\u002F05.recursividad",{"title":145,"path":146,"stem":147},"Puntero this","\u002Fmetodos\u002Fthis","4.metodos\u002F06.this",{"title":149,"path":150,"stem":151},"Los argumentos variables (varargs)","\u002Fmetodos\u002Fvarargs","4.metodos\u002F07.varargs",{"title":153,"path":154,"stem":155},"La clase Arrays","\u002Fmetodos\u002Farrays","4.metodos\u002F08.arrays",{"title":157,"path":158,"stem":159},"Predicados Simples y Compuestos en Java","\u002Fmetodos\u002Fpredicados","4.metodos\u002F09.predicados",{"title":161,"path":162,"stem":163,"children":164,"icon":199},"Herencia","\u002Fherencia","5.herencia\u002F01.index",[165,167,171,175,179,183,187,191,195],{"title":166,"path":162,"stem":163},"¿Qué es la herencia?",{"title":168,"path":169,"stem":170},"Sobreescritura de métodos y uso de `super`","\u002Fherencia\u002Fsobeescritura","5.herencia\u002F02.sobeescritura",{"title":172,"path":173,"stem":174},"Tipos de herencia","\u002Fherencia\u002Ftipos-herencia","5.herencia\u002F03.tipos-herencia",{"title":176,"path":177,"stem":178},"La clase Object en Java","\u002Fherencia\u002Fobject","5.herencia\u002F04.object",{"title":180,"path":181,"stem":182},"Polimorfismo","\u002Fherencia\u002Fpolimorfismo","5.herencia\u002F05.polimorfismo",{"title":184,"path":185,"stem":186},"Clases y Funciones Abstractas","\u002Fherencia\u002Fabstract","5.herencia\u002F06.abstract",{"title":188,"path":189,"stem":190},"Interfaces","\u002Fherencia\u002Finterfaces","5.herencia\u002F07.interfaces",{"title":192,"path":193,"stem":194},"Funciones e Interfaces","\u002Fherencia\u002Ffunciones-interfaces","5.herencia\u002F08.funciones-interfaces",{"title":196,"path":197,"stem":198},"Interfaces y Funciones Lambda","\u002Fherencia\u002Flambda-interface","5.herencia\u002F09.lambda-interface","i-material-symbols-heritage",{"title":201,"path":202,"stem":203,"children":204,"icon":199},"Arreglos","\u002Farreglos","6.arreglos\u002F01.index",[205,207,211,215,219,223,227],{"title":206,"path":202,"stem":203},"Los arreglos en Java",{"title":208,"path":209,"stem":210},"Los arreglos","\u002Farreglos\u002Farray","6.arreglos\u002F02.array",{"title":212,"path":213,"stem":214},"Matrices","\u002Farreglos\u002Fmatrices","6.arreglos\u002F03.matrices",{"title":216,"path":217,"stem":218},"Comparadores","\u002Farreglos\u002Fcomparator","6.arreglos\u002F04.comparator",{"title":220,"path":221,"stem":222},"Arreglos dinámicos: ArrayList","\u002Farreglos\u002Farraylist","6.arreglos\u002F05.arraylist",{"title":224,"path":225,"stem":226},"Arreglos Relacionales: HashMap","\u002Farreglos\u002Fhashmap","6.arreglos\u002F06.hashmap",{"title":228,"path":229,"stem":230},"La clase Stream en Java","\u002Farreglos\u002Fstream","6.arreglos\u002F07.stream",{"title":232,"icon":199,"path":233,"stem":234,"children":235,"page":42},"Archivos e Interfaz de Usuario","\u002Farchivos-ui","7.archivos-ui",[236,240,244,248,252,256,260,264,268,272,276,280,284,288,292,296,300,304,308,312,316],{"title":237,"path":238,"stem":239},"El paquete Swing","\u002Farchivos-ui\u002Fswing","7.archivos-ui\u002F01.swing",{"title":241,"path":242,"stem":243},"La clase JFrame y el JPanel","\u002Farchivos-ui\u002Fjpanel","7.archivos-ui\u002F02.jpanel",{"title":245,"path":246,"stem":247},"Los Layouts en Swing","\u002Farchivos-ui\u002Flayout","7.archivos-ui\u002F03.layout",{"title":249,"path":250,"stem":251},"Iniciando con Swing","\u002Farchivos-ui\u002Finiciando","7.archivos-ui\u002F04.iniciando",{"title":253,"path":254,"stem":255},"Las clases Color y Font en Swing","\u002Farchivos-ui\u002Fcolor-font","7.archivos-ui\u002F05.color-font",{"title":257,"path":258,"stem":259},"Etiquetas en Swing","\u002Farchivos-ui\u002Fetiquetas","7.archivos-ui\u002F06.etiquetas",{"title":261,"path":262,"stem":263},"Personalizando la apariencia de los componentes en Swing","\u002Farchivos-ui\u002Fpersonalizando","7.archivos-ui\u002F07.personalizando",{"title":265,"path":266,"stem":267},"Sobrescribiendo el método drawComponent() en Swing","\u002Farchivos-ui\u002Fdraw","7.archivos-ui\u002F08.draw",{"title":269,"path":270,"stem":271},"Manejando eventos en Swing","\u002Farchivos-ui\u002Feventos","7.archivos-ui\u002F09.eventos",{"title":273,"path":274,"stem":275},"Personalización de Componentes mediante la Extensión de Clases en Swing","\u002Farchivos-ui\u002Fextends-component","7.archivos-ui\u002F10.extends-component",{"title":277,"path":278,"stem":279},"Gradientes","\u002Farchivos-ui\u002Fgradientes","7.archivos-ui\u002F11.gradientes",{"title":281,"path":282,"stem":283},"Botones en Swing","\u002Farchivos-ui\u002Fbotones","7.archivos-ui\u002F12.botones",{"title":285,"path":286,"stem":287},"Los delegadores en Swing","\u002Farchivos-ui\u002Fdelegadores","7.archivos-ui\u002F13.delegadores",{"title":289,"path":290,"stem":291},"UI para nuestro RPG: Parte 1","\u002Farchivos-ui\u002Frpg-ui-1","7.archivos-ui\u002F14.rpg-ui-1",{"title":293,"path":294,"stem":295},"UI para nuestro RPG: Parte 2","\u002Farchivos-ui\u002Frpg-ui-2","7.archivos-ui\u002F15.rpg-ui-2",{"title":297,"path":298,"stem":299},"Los Streams Entrada y Salida","\u002Farchivos-ui\u002Fstreams","7.archivos-ui\u002F16.streams",{"title":301,"path":302,"stem":303},"Archivo tipo Objeto","\u002Farchivos-ui\u002Farchivo-objeto","7.archivos-ui\u002F17.archivo-objeto",{"title":305,"path":306,"stem":307},"UI para nuestro RPG: Parte 3","\u002Farchivos-ui\u002Frpg-ui-3","7.archivos-ui\u002F18.rpg-ui-3",{"title":309,"path":310,"stem":311},"UI para nuestro RPG: Parte 4","\u002Farchivos-ui\u002Frpg-ui-4","7.archivos-ui\u002F19.rpg-ui-4",{"title":313,"path":314,"stem":315},"UI para nuestro RPG: Parte 5","\u002Farchivos-ui\u002Frpg-ui-5","7.archivos-ui\u002F20.rpg-ui-5",{"title":317,"path":318,"stem":319},"UI para nuestro RPG: Parte 6","\u002Farchivos-ui\u002Frpg-ui-6","7.archivos-ui\u002F21.rpg-ui-6",{"title":321,"icon":322,"path":323,"stem":324,"children":325,"page":42},"Ejemplos","i-check-circle","\u002Fejemplos","8.ejemplos",[326,330,334,338,342],{"title":327,"path":328,"stem":329,"icon":105},"Ejemplo 1: Validando entradas con JOptionPane","\u002Fejemplos\u002Fejemplo-01","8.ejemplos\u002F01.ejemplo-01",{"title":331,"path":332,"stem":333},"Ejemplo 02: Uso de clases genéricas en Java","\u002Fejemplos\u002Fejemplo-02","8.ejemplos\u002F02.ejemplo-02",{"title":335,"path":336,"stem":337},"Ejemplo 03: Uso de Enum, Excepciones en Java","\u002Fejemplos\u002Fejemplo-03","8.ejemplos\u002F03.ejemplo-03",{"title":339,"path":340,"stem":341},"Ejemplo 4: Clase con funciones genéricas de validación","\u002Fejemplos\u002Fejemplo-04","8.ejemplos\u002F04.ejemplo-04",{"title":343,"path":344,"stem":345},"Ejemplo 5: Sistema de Gestión de Empleados","\u002Fejemplos\u002Fejemplo-05","8.ejemplos\u002F05.ejemplo-05",{"title":347,"icon":322,"path":348,"stem":349,"children":350,"page":42},"Actividades","\u002Factividades","9.actividades",[351,355,360,364,368,372,376,380,384,388,392,396,400,404,408],{"title":352,"path":353,"stem":354,"icon":105},"Actividad 1: Infografía sobre el proceso de compilación","\u002Factividades\u002Fact-01","9.actividades\u002F01.act-01",{"title":356,"path":357,"stem":358,"icon":359},"Actividad 2: Modelando Diagramas de Clases UML","\u002Factividades\u002Fact-02","9.actividades\u002F02.act-02","i-material-icon-theme-uml",{"title":361,"path":362,"stem":363,"icon":45},"Actividad 3: Creando Clases y Objetos en Java","\u002Factividades\u002Fact-03","9.actividades\u002F03.act-03",{"title":365,"path":366,"stem":367},"Actividad 4: Validando entradas de datos","\u002Factividades\u002Fact-04","9.actividades\u002F04.act-04",{"title":369,"path":370,"stem":371,"icon":105},"Actividad 5: Implementando una clase genérica","\u002Factividades\u002Fact-05","9.actividades\u002F05.act-05",{"title":373,"path":374,"stem":375,"icon":105},"Actividad 6: Expandiendo InputValidator con Predicados y Function","\u002Factividades\u002Fact-06","9.actividades\u002F06.act-06",{"title":377,"path":378,"stem":379,"icon":105},"Actividad 7: Gestor de Biblioteca con InputValidator","\u002Factividades\u002Fact-07","9.actividades\u002F07.act-07",{"title":381,"path":382,"stem":383,"icon":105},"Actividad 8: Calculadora de Figuras Geométricas","\u002Factividades\u002Fact-08","9.actividades\u002F08.act-08",{"title":385,"path":386,"stem":387,"icon":105},"Actividad 9: gestión de una empresa agroalimentaria","\u002Factividades\u002Fact-09","9.actividades\u002F09.act-09",{"title":389,"path":390,"stem":391,"icon":105},"Actividad 10: Sistema de gestión de clínicas veterinarias","\u002Factividades\u002Fact-10","9.actividades\u002F10.act-10",{"title":393,"path":394,"stem":395},"Definición de Proyecto Evolutivo","\u002Factividades\u002Frpg","9.actividades\u002F11.rpg",{"title":397,"path":398,"stem":399},"Actividad 11: Creación de Personajes","\u002Factividades\u002Fact-11","9.actividades\u002F12.act-11",{"title":401,"path":402,"stem":403},"Actividad 12: El Inventario y los Objetos","\u002Factividades\u002Fact-12","9.actividades\u002F13.act-12",{"title":405,"path":406,"stem":407},"Actividad 13: El combate por turnos","\u002Factividades\u002Fact-13","9.actividades\u002F14.act-13",{"title":409,"path":410,"stem":411},"Actividad 14: Guardando y Cargando","\u002Factividades\u002Fact-14","9.actividades\u002F15.act-14",{"id":413,"title":385,"body":414,"description":704,"extension":705,"links":706,"meta":707,"navigation":708,"path":386,"seo":709,"stem":387,"__hash__":710},"docs\u002F9.actividades\u002F09.act-09.md",{"type":415,"value":416,"toc":694},"minimark",[417,422,431,435,452,456,492,496,560,564,567,598,601,604,683,686],[418,419,421],"h2",{"id":420},"objetivo","Objetivo",[423,424,425,426,430],"p",{},"El objetivo de esta actividad es desarrollar un programa para gestionar una empresa agroalimentaria que permita a los usuarios ingresar información sobre los productos, como el nombre, la cantidad, el precio y la fecha de vencimiento. Utilizarás la clase ",[427,428,429],"code",{},"InputValidator"," para validar las entradas del usuario y asegurarte de manejar adecuadamente las excepciones que puedan surgir durante la validación.",[418,432,434],{"id":433},"descripción-del-problema","Descripción del Problema",[423,436,437,438,440,441,443,444,447,448,451],{},"Eres un desarrollador de software encargado de crear un programa para gestionar una empresa agroalimentaria. El programa debe permitir a los usuarios ingresar información sobre los productos que la empresa ofrece, incluyendo el nombre del producto, la cantidad disponible, el precio por unidad y la fecha de vencimiento. Para garantizar que las entradas del usuario sean válidas, utilizarás la clase ",[427,439,429],{}," que has desarrollado en actividades anteriores. El programa debe validar las entradas del usuario utilizando la clase ",[427,442,429],{}," antes de almacenar la información en una estructura de datos adecuada, como una lista o un diccionario. Además, el programa debe manejar adecuadamente las excepciones que puedan surgir durante la validación de entradas, mostrando mensajes de error claros y específicos utilizando los mensajes definidos en el ",[427,445,446],{},"Enum"," ",[427,449,450],{},"Messages"," que creaste en la actividad anterior.",[418,453,455],{"id":454},"requisitos","Requisitos",[457,458,459,463,466,469,472,486],"ul",{},[460,461,462],"li",{},"La empresa trabaja con tres tipos de productos: productos frescos, productos refrigerados y productos congelados.",[460,464,465],{},"Todos los productos llevan esta información común: nombre del producto, la cantidad en existencia, el precio por unidad, fecha de caducidad y número de lote.",[460,467,468],{},"Los productos frescos llevan esta información adicional: fecha de envasado y país de origen.",[460,470,471],{},"Los productos refrigerados llevan esta información adicional: fecha de envasado, país de origen, temperatura de\nconservación y código de supervisión sanitaria.",[460,473,474,475],{},"Existen tres tipos de productos congelados: productos congelados por aire, productos congelados por agua y productos congelados por nitrógeno. Todos los productos congelados llevan esta información adicional: fecha de envasado, país de origen y temperatura de conservación. Además, cada tipo de producto congelado lleva información adicional específica:\n",[457,476,477,480,483],{},[460,478,479],{},"Productos congelados por aire: % de nitrógeno, % de oxígeno, % de dióxido de carbono y % de vapor de agua en el envase.",[460,481,482],{},"Productos congelados por agua: salinidad en gramos por litro de agua en el envase.",[460,484,485],{},"Productos congelados por nitrógeno: método de congelación utilizado (congelación rápida o congelación lenta) y el tiempo de exposición al nitrógeno en segundos.",[460,487,488,489,491],{},"Maneja la interacción del usuario con un menú que permita seleccionar las diferentes opciones para gestionar la información de los productos, como agregar un nuevo producto, mostrar la lista de productos, buscar productos por nombre y eliminar productos. Utiliza la clase ",[427,490,429],{}," para validar las entradas del usuario en este proceso.",[418,493,495],{"id":494},"instrucciones","Instrucciones",[497,498,499,517,523,529,536,545,551,554],"ol",{},[460,500,501,502,505,506,508,509],{},"Crea una clase ",[427,503,504],{},"Product"," que contenga atributos comunes a todos los productos, como el nombre del producto, la cantidad, el precio por unidad, la fecha de vencimiento, etc. Luego, crea clases derivadas para cada tipo de producto que hereden de la clase ",[427,507,504],{}," y agreguen los atributos específicos para cada tipo de producto.\n",[457,510,511,514],{},[460,512,513],{},"Recuerda que cada clase debe tener un constructor que inicialice los atributos y métodos para mostrar la información del producto.",[460,515,516],{},"Toma en cuenta que la lista de tipo de productos solo es una guía, puedes agregar más clases si lo necesitas, siempre y cuando sigas la estructura de herencia y agregues los atributos específicos para cada tipo de producto.",[460,518,501,519,522],{},[427,520,521],{},"ProductManager"," que contenga métodos para agregar productos, mostrar la lista de productos, buscar productos por nombre y eliminar productos. Utiliza un array de 50 productos para almacenar la información de los productos en la empresa agroalimentaria.",[460,524,525,526,528],{},"Utiliza la clase ",[427,527,429],{}," para validar las entradas del usuario antes de agregar un producto a la lista de productos. Asegúrate de que las entradas sean válidas, como que la cantidad sea un número entero positivo, el precio por unidad sea un número decimal positivo, y la fecha de vencimiento sea una fecha válida en el formato correcto.",[460,530,531,532,447,534,451],{},"Maneja adecuadamente las excepciones que puedan surgir durante la validación de entradas, mostrando mensajes de error claros y específicos utilizando los mensajes definidos en el ",[427,533,446],{},[427,535,450],{},[460,537,538,539,542,543,491],{},"Crea una clase con el método ",[427,540,541],{},"main"," que permita a los usuarios interactuar con el programa, permitiéndoles agregar productos, mostrar la lista de productos, buscar productos por nombre y eliminar productos. Utiliza la clase ",[427,544,429],{},[460,546,547,548,550],{},"Agrega comentarios en el código para explicar la funcionalidad de cada parte y cómo se utiliza la clase ",[427,549,429],{}," para validar las entradas del usuario en el contexto de la gestión de una empresa agroalimentaria.",[460,552,553],{},"Compila y ejecuta tu programa para asegurarte de que todas las funcionalidades funcionen correctamente. Toma capturas de pantalla de la ejecución del programa mostrando el uso de las funciones para agregar productos, mostrar la lista de productos, buscar productos por nombre y eliminar productos, así como los mensajes de error personalizados cuando se ingresan entradas no válidas.",[460,555,556,557,559],{},"Para efectos de evaluación, crea una presentación en donde expliquen el proceso de desarrollo del programa, las decisiones de diseño que tomaron, cómo utilizaron la clase ",[427,558,429],{}," para validar las entradas del usuario y cómo manejaron las excepciones. Así mismo durante la presentación, muestren la ejecución del programa y expliquen cómo se utilizan las diferentes funciones para gestionar la empresa agroalimentaria.",[418,561,563],{"id":562},"entrega","Entrega",[423,565,566],{},"Para la entrega deberás incluir el código fuente completo y debidamente comentado, así como un unico documento PDF que contenga los siguientes elementos:",[457,568,569,572,584,587],{},[460,570,571],{},"Portada con el título de la actividad, la lista de integrantes del equipo y el nombre del curso.",[460,573,574,575,577,578,580,581,583],{},"Código fuente completo de la clase ",[427,576,504],{},", las clases derivadas para cada tipo de producto, la clase ",[427,579,521],{}," y la clase con el método ",[427,582,541],{},".",[460,585,586],{},"Capturas de pantalla de la ejecución del programa mostrando el uso de las funciones para agregar productos, mostrar la lista de productos, buscar productos por nombre y eliminar productos, así como los mensajes de error personalizados cuando se ingresan entradas no válidas.",[460,588,589,590,592,593,447,595,597],{},"Una breve explicación de cómo se utiliza la clase ",[427,591,429],{}," para validar las entradas del usuario en el contexto de la gestión de una empresa agroalimentaria y cómo se organizan las clases para cada tipo de producto utilizando herencia. Además, incluye una explicación de cómo se manejan las excepciones durante la validación de entradas y cómo se utilizan los mensajes definidos en el ",[427,594,446],{},[427,596,450],{}," para mostrar mensajes de error claros y específicos.",[418,599,5],{"id":600},"evaluación",[423,602,603],{},"La evaluación de esta actividad se basará en los siguientes criterios:",[605,606,607,620],"table",{},[608,609,610],"thead",{},[611,612,613,617],"tr",{},[614,615,616],"th",{},"Criterio",[614,618,619],{},"Puntos",[621,622,623,635,644,654,665,673],"tbody",{},[611,624,625,632],{},[626,627,628,629,631],"td",{},"Implementación de la clase ",[427,630,504],{}," y las clases derivadas para cada tipo de producto utilizando herencia",[626,633,634],{},"20%",[611,636,637,642],{},[626,638,628,639,641],{},[427,640,521],{}," con métodos para agregar productos, mostrar la lista de productos, buscar productos por nombre y eliminar productos",[626,643,634],{},[611,645,646,652],{},[626,647,648,649,651],{},"Uso adecuado de la clase ",[427,650,429],{}," para validar las entradas del usuario antes de agregar un producto a la lista de productos",[626,653,634],{},[611,655,656,663],{},[626,657,658,659,447,661],{},"Manejo adecuado de las excepciones durante la validación de entradas, mostrando mensajes de error claros y específicos utilizando los mensajes definidos en el ",[427,660,446],{},[427,662,450],{},[626,664,634],{},[611,666,667,670],{},[626,668,669],{},"Calidad del código, incluyendo la organización, la legibilidad y los comentarios explicativos",[626,671,672],{},"10%",[611,674,675,681],{},[626,676,677,678,680],{},"Calidad de la presentación, incluyendo la explicación del proceso de desarrollo del programa, las decisiones de diseño, el uso de la clase ",[427,679,429],{}," y el manejo de excepciones, así como la demostración de la ejecución del programa",[626,682,672],{},[423,684,685],{},"Toma en consideración que la evaluación se basará en la calidad y funcionalidad del programa, así como en la claridad de la presentación. Por ende es importante que todos los integrantes del equipo participen activamente en el desarrollo del programa y en la defensa del mismo durante la presentación. Además, se valorará la creatividad y la originalidad en el diseño del programa, siempre y cuando se cumplan los requisitos establecidos en las instrucciones.",[423,687,688,689,693],{},"Por último, ",[690,691,692],"strong",{},"es indispensable la presentación del programa para la evaluación",", por lo que se recomienda practicar la presentación con anticipación para asegurarse de que todos los integrantes del equipo estén familiarizados con el programa y puedan explicar claramente su funcionamiento durante la presentación, ya que la ausencia del equipo o parte de este durante la presentación resultará en una calificación de cero (0) para esta actividad, sin importar la calidad del programa y la documentación entregada, para los integrantes que no asistan a la presentación.",{"title":695,"searchDepth":696,"depth":696,"links":697},"",2,[698,699,700,701,702,703],{"id":420,"depth":696,"text":421},{"id":433,"depth":696,"text":434},{"id":454,"depth":696,"text":455},{"id":494,"depth":696,"text":495},{"id":562,"depth":696,"text":563},{"id":600,"depth":696,"text":5},"Desarrolla un programa para gestionar una empresa agroalimentaria que permita a los usuarios ingresar información sobre los productos, como el nombre, la cantidad, el precio y la fecha de vencimiento. Utiliza la clase InputValidator para validar las entradas del usuario y asegúrate de manejar adecuadamente las excepciones que puedan surgir durante la validación.","md",null,{"editButton":42},{"icon":105},{"title":385,"description":704},"m4SIZ3Fj8S8F2IMWLSQUtDtm62sLy64aeLM7ttBlZ1I",[712,714],{"title":381,"path":382,"stem":383,"description":713,"icon":105,"children":-1},"Desarrolla una calculadora de figuras geométricas que permita a los usuarios calcular el área y el perímetro de diferentes, sobrecargando una unica función para cada figura. Utiliza la clase InputValidator para validar las entradas del usuario.",{"title":389,"path":390,"stem":391,"description":715,"icon":105,"children":-1},"Desarrolla un sistema de gestión para una clínica veterinaria que permita a los usuarios gestionar la información de los pacientes (mascotas), sus propietarios, las citas médicas y los tratamientos. Utiliza la clase InputValidator para validar las entradas del usuario.",1779479578073]