HUERTO UMB
PROGRAMACION ORIENTADA A OBJETOS
PRESENTADO POR
CESAR URIEL RODRIGUEZ EDUARDO
PROFESRORA
ING. ANA KAREN GONZALEZ SALDAÑA
FECHA
18/JUNIO/2034
INTRODUCCION
Los huertos escolares, tradicionalmente vinculados a la agricultura y la biología,
están evolucionando para incluir conceptos de programación, como Java, un
lenguaje fundamental en el mundo del desarrollo de software. A la escuela o al lector
le interesara como es que esta desarrollado este programa.
Imaginemos un huerto escolar donde los estudiantes no solo aprenden sobre
cultivos y sostenibilidad ambiental, sino que también exploran las bases de la
programación a través de Java. Este enfoque innovador no solo les enseña sobre
la naturaleza y la alimentación saludable, sino que también les proporciona
herramientas para entender cómo funcionan las tecnologías que rodean sus vidas
diarias.
Los estudiantes pueden escribir programas para monitorear el riego automatizado,
analizar datos meteorológicos para mejorar los rendimientos o incluso crear
aplicaciones educativas para compartir sus descubrimientos con la comunidad
escolar.
Así, un huerto escolar que integra programación en Java no solo cultiva plantas,
sino también mentes ágiles y preparadas para demostrar a generaciones que están
por entrar, que sea una motivación que en la programación le puedes dar el giro
que quieras.
ABSTRAC
Here's the translated version in British English:
School gardens, traditionally linked to agriculture and biology, are evolving to include
programming concepts such as Java, a fundamental language in the world of
software development. Schools or readers may be interested in how this programme
is developed.
Imagine a school garden where students not only learn about crops and
environmental sustainability but also explore the basics of programming through
Java. This innovative approach not only teaches them about nature and healthy
eating but also provides tools to understand how technologies surrounding their daily
lives work.
Students can write programmes to monitor automated irrigation, analyse weather
data to improve yields, or even create educational apps to share their discoveries
with the school community.
Thus, a school garden integrating Java programming not only cultivates plants but
also agile minds prepared to demonstrate to generations to come that in
programming, you can give it the twist you want.
MARCO TEORICO
Educación Ambiental y Sostenibilidad: Los huertos escolares son herramientas
poderosas para educar a los estudiantes sobre la importancia de la sostenibilidad y
el cuidado del medio ambiente. Permiten aprender de manera práctica sobre ciclos
naturales, conservación de recursos y prácticas agrícolas sostenibles.
Integración Curricular: Los huertos escolares no solo enseñan conceptos de
ciencias naturales como biología y química, sino que también pueden integrar
matemáticas (por ejemplo, cálculo de áreas de cultivo), lengua y literatura (a través
de la escritura de informes o diarios de huerto) y ciencias sociales (estudiando la
historia de la agricultura y la alimentación).
Promoción de la Salud y Alimentación Saludable: Los huertos escolares
fomentan una mayor conexión con los alimentos frescos y saludables, ayudando a
combatir la obesidad infantil y promoviendo hábitos alimenticios saludables desde
una edad temprana.
Impacto Psicológico y Emocional: Trabajar en un huerto puede tener un efecto
terapéutico y calmante en los estudiantes, ayudándolos a reducir el estrés y mejorar
su bienestar emocional.
OBJETIVO GENERAL
Desarrollar un programa en Java es integral y accesible que facilite la gestión
eficiente del huerto y actúe como una herramienta educativa valiosa para la
comunidad estudiantil de la UMB. Esta base de datos tiene como propósito
promover la aplicación práctica de conocimientos en botánica y horticultura, mejorar
las prácticas de cultivo, fomentar la sostenibilidad y aumentar la conciencia
ambiental entre los estudiantes.
A través del aprendizaje de Java, los estudiantes adquieren habilidades básicas y
fundamentales en programación. Pueden aprender a escribir código para crear
programas simples que automatizan tareas relacionadas con la gestión del huerto,
como el riego automatizado o la monitorización de condiciones meteorológicas.
3 OBJETIVOS ESPECIFICOS
❖ Desarrollo de habilidades en programación: Capacitar a los estudiantes
para que adquieran habilidades básicas y avanzadas en programación
utilizando Java. Esto incluye entender los conceptos fundamentales de
programación, como variables, estructuras de control, funciones y clases, a
través de proyectos prácticos relacionados con la gestión y optimización.
❖ Aplicar la tecnología en un huerto: Utilizar la programación en Java para
mejorar la eficiencia y sostenibilidad del huerto escolar. Por ejemplo, los
estudiantes podrían desarrollar programas para monitorear y controlar el
riego automatizado basado en sensores de humedad del suelo o para
analizar datos meteorológicos y ajustar las prácticas de cultivo para
maximizar los rendimientos y la salud de las plantas.
❖ Resaltar la creatividad y la Innovación: Estimular la creatividad de los
estudiantes al permitirles diseñar y desarrollar aplicaciones educativas
relacionadas con la agricultura y el medio ambiente.
HIPOTESIS
La integración de la programación en Java en los huertos escolares podría potenciar
aún más los beneficios educativos, ambientales y sociales ya conocidos, al
proporcionar a los estudiantes herramientas adicionales para gestionar de manera
eficiente los recursos agrícolas y ambientales.
En los huertos escolares incrementará significativamente el interés y la participación
de los estudiantes en el aprendizaje STEM y la agricultura sostenible. Esto se
reflejará en un aumento en el rendimiento académico en áreas relacionadas con
ciencia, tecnología, ingeniería y matemáticas, así como en una mayor conciencia
ambiental y habilidades prácticas para el manejo eficiente de recursos agrícolas y
ambientales.
REQUERIMIENTOS DE SOFTWARE Y HARDWARE
Sistema Operativo: El programa debe ser compatible con los sistemas operativos
admitidos por NetBeans, que incluyen Windows, macOS y Linux.
Software de programación: NetBeans IDE 8.2 Se requiere el IDE NetBeans
para el desarrollo y la compilación del programa.
Lenguaje de Programación: El programa se desarrolló utilizando el lenguaje de
programación java en NetBeans.
Computadora: Se requiere una computadora con capacidad para ejecutar el
programa.
Conexión a Internet: Se requiere una conexión a Internet para acceder a
recursos en línea.
Dispositivo de Entrada: Se requiere un dispositivo de entrada, como un teclado y
un mouse o un panel táctil, para interactuar con la interfaz de usuario del
programa.
ALGORITMO
Inicio del programa:
• Inicializar el programa.
• Mostrar el menú principal.
Menú principal:
• Presentar opciones al usuario por número:
o
1. Frutas
o
2. Verduras
o
3. Exterior
o
4. Interior
Dependiendo de la categoría seleccionada, mostrar las siguientes plantas:
• 1. Frutas:
o
1. Fresa
o
2. Frambuesa
o
3. Zapote Blanco
o
4. Durazno
o
5. Aguacate
o
6. Granada
• 2. Verduras:
o
6. Chile Habanero
o
2. Chile Manzano
o
3. Chile de Árbol
o
4. Tomate Cherry
o
5. Acelga
o
6. Zanahoria
o
7. Lechuga
o
8. Frijol
o
9. Calabaza
o
10. Cilantro
o
11. Rábano
• 3. Exterior:
o
11. Jaca
o
2. Ficus
o
3. Colorín
o
4. Pirul
o
5. Pino Piñonero
o
6. Fresno
o
7. Calistemo Rojo
o
8. Llorón
o
9. Trueno
o
10. Macuil
• 4. Interior:
o
10. Bertha
o
2. Lengua de Suegra
o
3. Azucena
o
4. Árbol de la Abundancia
o
5. Hoja Elegante
o
6. Telefono
o
7. Cuna de Moisés
o
8. Aralia
o
9. Garra de Tigre
o
10. Zebra
Las plantas se seleccionan por su número y se muestra su información:
• Nombre común
• Nombre científico
• Toxicidad
• Época de plantación
• Altura
• Flor o fruto
• Distribución
• Dificultad cuidado
• Temperatura
• Luz solar
• Zona de rusticidad
• Agua
• Propagación
Salir del programa con aceptar:
• Finalizar la ejecución del programa.
CODIGO COMENTADO
package formularios;
/**
* Clase principal que representa la ventana principal del programa.
* @autor Cesar Uriel
*/
public class ventanaprincipal extends javax.swing.JFrame {
/**
* Constructor de la clase ventanaprincipal.
* Inicializa los componentes de la interfaz gráfica.
*/
public ventanaprincipal() {
initComponents(); // Llama al método que inicializa los componentes.
/**
* Este método es llamado desde el constructor para inicializar la forma.
* ADVERTENCIA: No modificar este código. El contenido de este método
es siempre
* regenerado por el Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
// Inicializa el panel principal
jPanel1 = new javax.swing.JPanel();
// Inicializa la etiqueta con el título del programa
jLabel3 = new javax.swing.JLabel();
// Inicializa el botón para comenzar
jButton1 = new javax.swing.JButton();
// Inicializa la etiqueta de bienvenida
jLabel2 = new javax.swing.JLabel();
// Inicializa la etiqueta para el fondo de la interfaz gráfica
jLabel1 = new javax.swing.JLabel();
// Configuración para cerrar la ventana al salir del programa
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
// Configuración del panel principal con un layout absoluto para
posicionar los componentes
jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
// Configuración de la etiqueta del título
jLabel3.setFont(new java.awt.Font("Tw Cen MT Condensed Extra Bold",
3, 48)); // NOI18N
jLabel3.setForeground(new java.awt.Color(0, 204, 0));
jLabel3.setText("PLANTS CONSULT");
// Añade la etiqueta del título al panel principal con coordenadas
absolutas
jPanel1.add(jLabel3, new
org.netbeans.lib.awtextra.AbsoluteConstraints(30, 190, 400, -1));
// Configuración del botón de comenzar
jButton1.setBackground(new java.awt.Color(0, 102, 0));
jButton1.setText("COMENZAR");
// Añade un listener para manejar el evento de clic del botón
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt); // Método a llamar cuando se
presiona el botón
});
// Añade el botón de comenzar al panel principal con coordenadas
absolutas
jPanel1.add(jButton1, new
org.netbeans.lib.awtextra.AbsoluteConstraints(170, 310, -1, -1));
// Configuración de la etiqueta de bienvenida
jLabel2.setBackground(new java.awt.Color(51, 153, 0));
jLabel2.setFont(new java.awt.Font("Tw Cen MT Condensed", 3, 36)); //
NOI18N
jLabel2.setForeground(new java.awt.Color(0, 204, 0));
jLabel2.setText("BIENVENIDO A");
// Añade la etiqueta de bienvenida al panel principal con coordenadas
absolutas
jPanel1.add(jLabel2, new
org.netbeans.lib.awtextra.AbsoluteConstraints(120, 90, 210, 60));
// Configuración del fondo de la interfaz gráfica
jLabel1.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/imagenes/fondo1.jpg"))); //
NOI18N
// Añade el fondo al panel principal con coordenadas absolutas
jPanel1.add(jLabel1, new
org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 590, 470));
// Configuración del layout del contenido principal de la ventana
javax.swing.GroupLayout layout = new
javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
pack(); // Ajusta el tamaño de la ventana para que se ajuste a sus
componentes.
}// </editor-fold>
/**
* Método que se ejecuta cuando se presiona el botón "COMENZAR".
* Abre una nueva ventana y cierra la ventana actual.
*/
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
Ventana2 siguiente = new Ventana2(); // Crea una nueva instancia de la
siguiente ventana
siguiente.setVisible(true); // Hace visible la nueva ventana
this.dispose(); // Cierra la ventana actual
/**
* Clase Ventana6 extiende javax.swing.JFrame para crear una ventana de GUI.
* Utiliza el framework Swing.
* Autor: Cesar Uriel
*/
public class Ventana6 extends javax.swing.JFrame {
// Constructor de la clase Ventana6
public Ventana6() {
initComponents(); // Llama al método initComponents para inicializar la
interfaz gráfica.
// Método para inicializar los componentes de la interfaz gráfica.
@SuppressWarnings("unchecked")
private void initComponents() {
// Inicialización de componentes de GUI
jLabel1 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
jTextArea1 = new javax.swing.JTextArea();
// Configuración del comportamiento de cierre de la ventana.
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
// Configuración del texto del JLabel
jLabel1.setText("Escribe tu nombre");
// Configuración del texto del JTextField
jTextField1.setText("jTextField1");
// Configuración del texto del JButton
jButton1.setText("Mostrar nombre");
// Acción que se realiza al presionar el JButton
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt); // Llama al método
jButton1ActionPerformed cuando se hace clic en el botón
});
// Configuración del JTextArea para mostrar varias líneas de texto
jTextArea1.setColumns(20);
jTextArea1.setRows(5);
jScrollPane1.setViewportView(jTextArea1);
// Configuración del diseño de la ventana utilizando GroupLayout
javax.swing.GroupLayout layout = new
javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
// Configuración horizontal del diseño de la ventana
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(28, 28, 28) // Espacio inicial de 28 píxeles
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L
EADING)
.addComponent(jLabel1) // Añade el JLabel al diseño
.addComponent(jTextField1,
javax.swing.GroupLayout.PREFERRED_SIZE, 141,
javax.swing.GroupLayout.PREFERRED_SIZE)) // Añade el JTextField con un
tamaño preferido de 141 píxeles
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELAT
ED) // Espacio entre componentes
.addComponent(jButton1) // Añade el JButton al diseño
.addContainerGap(78, Short.MAX_VALUE)) // Espacio final de 78
píxeles
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1) // Añade el JScrollPane que contiene
el JTextArea
.addContainerGap())
);
// Configuración vertical del diseño de la ventana
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(19, 19, 19) // Espacio inicial de 19 píxeles
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(jLabel1) // Añade el JLabel al diseño
.addComponent(jTextField1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE) // Añade el JTextField con un
tamaño preferido
.addComponent(jButton1)) // Añade el JButton al diseño
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELAT
ED) // Espacio entre componentes
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 217,
javax.swing.GroupLayout.PREFERRED_SIZE) // Añade el JScrollPane con un
tamaño preferido de 217 píxeles
.addContainerGap(30, Short.MAX_VALUE)) // Espacio final de 30
píxeles
);
pack(); // Ajusta el tamaño de la ventana automáticamente según los
componentes
// Acción que se realiza cuando se hace clic en el JButton
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String nombre = jTextField1.getText(); // Obtiene el texto del JTextField
jTextArea1.setText("Hola " + nombre); // Muestra el texto en el JTextArea
// Método principal para ejecutar la aplicación
public static void main(String args[]) {
// Establece el look and feel del sistema
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(Ventana6.class.getName()).log(java.util.lo
gging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Ventana6.class.getName()).log(java.util.lo
gging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Ventana6.class.getName()).log(java.util.lo
gging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Ventana6.class.getName()).log(java.util.lo
gging.Level.SEVERE, null, ex);
// Crea y muestra la ventana
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Ventana6().setVisible(true); // Hace visible la ventana
});
// Declaración de variables de los componentes de la interfaz gráfica
private javax.swing.JButton jButton1; // Botón para mostrar el nombre
private javax.swing.JLabel jLabel1; // Etiqueta para indicar al usuario que
escriba su nombre
private javax.swing.JScrollPane jScrollPane1; // Panel de desplazamiento
para el área de texto
private javax.swing.JTextArea jTextArea1; // Área de texto para mostrar el
nombre
private javax.swing.JTextField jTextField1; // Campo de texto para que el
usuario escriba su nombre
DIAGRAMA DE CLASES
FUNCIONAMIENTO
CONCLUSIÓN
Se observa que el huerto escolar ha sido un espacio dinámico donde los estudiantes
no solo han aprendido sobre botánica y agricultura, sino también sobre
responsabilidad, trabajo en equipo y cuidado del medio ambiente. Además, ha
servido como una plataforma efectiva para integrar la educación práctica en el plan
de estudios, permitiendo a los estudiantes aplicar los conceptos aprendidos en el
aula a situaciones reales.
Al estudiante o al profesor que lea todo esto sabrá la importancia que es indagar en
temas dentro y fuera enfocada a sistemas computacionales, como creador tienes
oportunidad de experimenta cualquier tema de tu interés, y tener todo en orden
para próximos trabajos o proyectos universitarios e industriales.
REFERENCIAS
COTE, W. A. Ed. 1965. Cellular Ultrastructure of Woody Plants. Syracuse University Press. New York.
603 pp. CRONQUIST, A. 1984. Introducción a la Botánica. CECSA. México. 848 pp. CURTIS, J. 1976.
Introducción a la Citología Vegetal. Departamento de Enseñanza, Investigación y Servicio en
Fitotecnia. Universidad Autónoma Chapingo. Ediciones Patena A. C. Chapingo. 262 pp. CURTIS, J.
1986. Microtecnia Vegetal. Ed. Trillas. México.