48
1 Instituto Politécnico Nacional Centro de Estudios Científicos y Tecnológicos “Juan de Dios Bátiz” Proyecto aula Histeria Integrantes: Cano Ramos Alfredo Erick García Martínez Omar Alejandro Montaño Barrera Diego Villa Sánchez Édgar Antonio. Grupo 3IM8

PA Histeria

Embed Size (px)

DESCRIPTION

Proyecto Final

Citation preview

Page 1: PA Histeria

1

Instituto Politécnico Nacional

Centro de Estudios Científicos y Tecnológicos

“Juan de Dios Bátiz”

Proyecto aula

HisteriaIntegrantes:

Cano Ramos Alfredo Erick

García Martínez Omar Alejandro

Montaño Barrera Diego

Villa Sánchez Édgar Antonio.

Grupo 3IM8

Tabla de contenido

Page 2: PA Histeria

2

Planeación estrategia empresa.....................................................................................................4

Misión............................................................................................................................................4

Visión.............................................................................................................................................4

Metas.............................................................................................................................................4

FODA............................................................................................................................................4

Razón Social...................................................................................................................................5

Políticas........................................................................................................................................5

Valores..........................................................................................................................................5

Diseño corporativo......................................................................................................................5

Organigrama................................................................................................................................5

Perfil de Cliente...........................................................................................................................6

Logo..............................................................................................................................................6

Slogan...........................................................................................................................................6

Colores..........................................................................................................................................6

Tipografía......................................................................................................................................6

Proyecto............................................................................................................................................6

Nombre del proyecto...................................................................................................................6

Perfil de Puesto...........................................................................................................................7

Planeamiento del problema...........................................................................................................7

Objetivo general...........................................................................................................................7

Objetivos específicos..................................................................................................................7

Alcance.........................................................................................................................................8

Justificación..................................................................................................................................8

Planeación........................................................................................................................................8

Cronograma.................................................................................................................................8

Diagrama de Gantt......................................................................................................................8

Ruta Crítica..................................................................................................................................9

Análisis..............................................................................................................................................9

Entrevista al experto...................................................................................................................9

Entrevista con el usuario............................................................................................................9

Requerimientos funcionales.....................................................................................................10

Requerimientos no funcionales...............................................................................................10

Page 3: PA Histeria

3

Requerimientos del sistema.....................................................................................................11

Diagrama de casos de uso.......................................................................................................11

Diseño.............................................................................................................................................11

Especificación de casos de uso..............................................................................................11

Diseño de interfaz de usuario..................................................................................................12

Mapa de navegación.................................................................................................................14

Reporte ejecutivo.......................................................................................................................16

Manual de usuario.....................................................................................................................18

Manual de instalación...........................................................................................................18

Manual técnico................................................................................................................................19

Introducción............................................................................................................................19

Reporte extenso...............................................................................................................................20

Alcance...................................................................................................................................20

Desarrollo de Código........................................................................................................................21

Diagrama de clases...........................................................................................................................40

.........................................................................................................................................................40

Pruebas.......................................................................................................................................42

Page 4: PA Histeria

4

Planeación estrategia empresa

MisiónConseguir la aprobación de nuestros usuarios, así como lograr ayudar a estos en el estudio de la materia de historia, con una herramienta de fácil uso, para una mejor y optima compresión de la asignatura. Logrando un avance en educativo en el área Básica del CECyT Juan de Dios Bátiz, y de ser posible de los demás CECyT.

VisiónA un futuro nos vemos, como empresa, en un alto nivel de competencia con respecto a grandes empresas desarrolladoras de software. Nos vemos como líderes en el marco laboral de este rubro.

Metas Llegar a ser una empresa reconocida entre nuestros usuarios, tanto

maestros como alumnos. Tener equipo de alta calidad, para una realización más eficiente de

nuestros productos. Competir en el tema de la mercadotecnia de desarrollo de software.

FODA Fortalezas: Contamos con tiempo y apoyo para realizar nuestro

proyecto, además de que podremos apoyarnos en las habilidades y conocimientos adquiridos.

Oportunidades: No existe actualmente una herramienta didáctica de uso generalizado entre los estudiantes del CECyT para facilitar el aprendizaje de la Historia, por lo que posicionar nuestro software sería fácil.

Debilidades: Inexperiencia, desinterés por parte de los alumnos.

Amenazas: No contamos todavía con los recursos económicos para hacer nuestro proyecto. No somos conocidos en este mercado. Empresas grandes pueden opacar nuestro trabajo.

Razón SocialContribuir al aprendizaje de los alumnos del CECyT 9 mediante el desarrollo de una aplicación que les permita poner en práctica sus conocimientos en la asignatura de Historia a su vez mejorar sus notas académicas

Page 5: PA Histeria

5

PolíticasPara nuestra empresa es de suma importancia la puntualidad, es política nuestra entregar nuestros trabajos en tiempo, sin ninguna falla o faltas en el trabajo.

Nuestros trabajadores deben de estar comprometidos con la empresa, así como responsables.

Valores Responsabilidad: tanto con nuestros clientes como con nuestros

usuarios para brindarles la mejor y más cómoda experiencia en la enseñanza y el aprendizaje.

Solidaridad: Entre los integrantes de la empresa para poder contar uno con el otro sin temor al incumplimiento

Puntualidad: En el caso de este valor, aplica tanto para los trabajadores, en la parte de ser puntuales en su trabajo, como de la empresa en la entrega de proyectos.

Diseño corporativo

Organigrama

Page 6: PA Histeria

6

Perfil de Cliente

El docente que tendrá que implementar nuestra herramienta didáctica deberá contar con amplios conocimientos acerca de la Historia de México, además de poseer aptitudes para la enseñanza de esta materia. Como cualquier otro profesor, deberá también tener la ambición de que los alumnos aprendan lo que contempla el programa de estudios y un poco más allá de lo que se busca enseñar en la Unidad de Aprendizaje y además deberá fomentar la competitividad entre los mismos.

Logo

Slogan“Si pasar Historia quieres, probar Histeria debes”

Colores Pantone 136. Pantone 286.

Tipografía Franklin Gothic Book

Proyecto

Nombre del proyectoHisteria

Page 7: PA Histeria

7

Perfil de PuestoGerente:

Escolaridad mínima de preparatoria. Sexo: indistinto Especialización

Coordinador

Escolaridad mínima de preparatoria Sexo: indistinto Especialización Seguridad Experiencia

Diseñador de programa:

Escolaridad mínima de preparatoria Sexo: indistinto Seguridad Experiencia

Planeamiento del problemaEn la actualidad no existen herramientas didácticas de uso común entre el docente y el alumno que ayuden a reforzar el proceso de enseñanza-aprendizaje.

Objetivo generalAyudar a los estudiantes de nivel medio superior en los Centros de Estudios Científicos y Tecnológicos con estudios de manera didáctica de la materia de Historia en segundo semestre, para así lograr un aprendizaje efectivo.

Objetivos específicos• Conseguir la aprobación de los usuarios (docentes y alumnos).

• Brindar información confiable y de ayuda para los temas que la Academia enlista en el temario de esta UA.

• Contribuir a posicionar a la Historia como una de las asignaturas pertenecientes al área de materias humanísticas más importantes, y por ende de mayor peso.

Page 8: PA Histeria

8

AlcanceDeseamos que nuestro software llegue a ser conocido y utilizado en todas las escuelas del país.

JustificaciónFalta de herramientas didácticas para consolidar el aprendizaje de los contenidos de la asignatura de Historia entre los estudiantes de primer y segundo semestre del CECyT. Que los alumnos y docentes cuenten con una herramienta de uso común para reinventar la forma en que se imparte la asignatura de Historia y que no sólo se trate de memorizar nombres y fechas.

Planeación

CronogramaActividad Tiempo de la

actividadTiempo usado

totalRecabar

información de historia

17 nov.- 24 nov 7 días

Plantear el algoritmo

25 nov – 1° dic. 14 días

Creación de programa

2 dic. – 10 dic 23 días

Corrección de errores

11 dic. – 15 dic. 28 días

Verificación 16 dic - 18 dic 31 días

Diagrama de Gantt

Page 9: PA Histeria

9

Ruta Crítica

Análisis

Entrevista al experto1. ¿Considera que el programa de estudios actual propicia la obtención de resultados ineficientes en las pruebas realizadas a los alumnos?

2. ¿Cuál es su objetivo como docente?

3. ¿Cómo logra el aprendizaje de los alumnos?

4. ¿Cuál es el índice de reprobación de su asignatura?

5. En base a los resultados obtenidos en la evaluación diagnóstica, ¿cómo evalúa los conocimientos que los alumnos traen de la Secundaria?

6. ¿Existe alguna prueba de tipo Enlace para evaluar el conocimiento de la asignatura entre los alumnos de Bachillerato Técnico?

7. ¿Qué decisiones toma la Academia para mejorar el aprendizaje de la asignatura?

8. ¿Existe disponibilidad de computadoras y cañones para los docentes?

9. En su clase, ¿implementa el uso de tecnologías que sean útiles para la enseñanza?

Entrevista con el usuario1.- ¿Cuál fue el semestre en donde tuviste más dificultad con las asignaturas del área Humanística?

2.- ¿Cuáles son los temas en los que tienes o tuviste problemas en las materias de Historia y entorno socioeconómico?

Page 10: PA Histeria

10

3.- ¿Crees que los profesores necesitan herramientas más didácticas para enseñar?

4.- ¿Crees que la memoria es un factor importante en esta materia?

5.- ¿Crees que herramientas didácticas te ayuden a mejorar en tu materia Historia o entrono?

6.- ¿Has reprobado alguna vez estas materias? ¿Por qué?

7.- Si fueras profesor en esta materia, ¿qué harías para que tus alumnos tuvieran un mejor aprovechamiento?

8.- ¿Qué parcial fue el que más te gustó respecto a los temas vistos en clase, en las asignaturas de Entorno Socioeconómico o Historia?

9.- ¿Cuál fue el parcial que menos te gusto por los temas vistos en clase en las asignaturas de Entorno Socioeconómico o Historia?

Requerimientos funcionales El usuario captura su nombre. Esta función se compone de las siguientes

actividades:o La información deberá guardarse en el archivo de usuarios.o Registrar sus datos en el área correspondiente.o Desplegar los datos que han sido guardados en el archivo.

El profesor actualiza la información. Esta función se compone de las siguientes actividades:

o Modificar información.o Llenar actividades con la nueva información.

Requerimientos no funcionales USABILIDAD Estos requerimientos se relacionan con la inclusión de todos los temas que

conforman el contenido programático de esta Unidad de Aprendizaje. Nuestro sistema debe cubrir un 60% de la totalidad de dichos temas,

además, deberá contar con errores relacionados con el funcionamiento que no sobrepasen un límite de 5%. Al rebasar este límite el sistema no será usable.Esta relación puede expresarse de la siguiente manera:

E=RS

Donde: R→ Total de usuarios del sistema.S→ Usuarios inconformes con el funcionamiento.

Page 11: PA Histeria

11

para intentar que mínimo 8 de cada 10 usuarios queden satisfechos con el sistema.

El sistema será apto para alumnos desde nivel Secundaria. El sistema carecerá de colores intensos o saturados que impidan la

concentración asa como tener colores lo bastante contrastados para que se puedan diferenciar las letras y a su vez se pueda leer sin mucho esfuerzo.

Requerimientos del sistema JDK 1.8 Windows 8 o posterior. Mouse y teclado. Disco duro con 2 GB de espacio. Memoria RAM de 4GB.

Diagrama de casos de uso

Page 12: PA Histeria

12

Diseño

Especificación de casos de uso Caso de uso: inicio

El alumno o maestro ingresa al sistema, el usuario profesor tendrá la posibilidad de trabajar como administrador Precondición: El usuario debe ingresar al sistemaFlujo Básico

1.- El sistema muestra un mensaje de bienvenida en caso de ser la primera vez ingresando al sistema y un menú de usuarios

2.-El usuario capturará datos que serán guardados en el archivo3.-El sistema validará los datos, de lo contrario “Usuario no

registrado” En caso de ser alumno ejecutar flujo secundario ingreso alumno, en caso de ser profesor ejecutar flujo secundario ingreso de profesor

Flujos Secundarios1.-Ingreso de alumno. - El sistema guarda en el archivo la

información del alumno 2.-Ingreso del profesor. -El sistema guardara en el archivo la

información del profesor

Caso de uso: Ingreso al sistema con una cuenta

Precondición: Registrar una cuenta en el sistema válida

Flujo Básico

1.-Se desplegará un menú en el que podrás elegir entre los parciales, en caso de ser maestro el registrado ejecutar flujo secundario subir información, en caso de ser alumno ejecutar flujo secundario ver información y resolver actividad cuestionario en caso de teclear botón de cerrar cesión.

Flujo secundario

1.-Subir información. - El profesor subirá información que el alumno podrá consultar posteriormente

Page 13: PA Histeria

13

2.-Ver información y resolver actividades. - El alumno vera la información que el profesor subió y resolverá a actividad que el profesor también subió.

3.-Cerrar Sesión.- El usuario regresara la pantalla de inicio

Diseño de interfaz de usuario Cuestionarios

Inicio de Programa

LogIn

Interfaz maestro

Subir información

Page 14: PA Histeria

14

Administrador

Mapa de navegación

Page 15: PA Histeria

15

Reporte ejecutivoDescripción del negocio

El Proyecto Histeria pretende establecerse como una herramienta didáctica para los estudiantes de nivel bachillerato de las distintas escuelas del IPN mediante el desarrollo de un software que permite a los alumnos resolver diferentes actividades realizadas por el docente, obtener una calificación y, en base a esta conocer qué temas deberían repasar.

Características que justifican el propósito de negocio

En el mercado actualmente no existen aplicaciones de este tipo, de softwares educativos, puesto que la mayoría de los trabajos so recreativos y sin nada de aprendizaje. Específicamente en el CECyT 9, existe la necesidad de que exista un software que ayude a reducir el índice de reprobación en esta asignatura.

Características diferenciadoras

Algo que caracteriza al proyecto es que pretende modificar la interacción alumno-profesor, con lo que se lograría a su vez reinventar el modelo enseñanza-aprendizaje de la asignatura. Para lograr esto, el software tiene como característica su interfaz amigable que lo hace fácil de usar tanto para el profesor como para el alumno, algo que está contemplado en la misión del proyecto. Además, creemos que en la forma en que se imparte esta asignatura demanda la memorización de los contenidos, por lo que deseamos que esto mejore para que el aprendizaje sea mas didáctico

Misión y visión

Nuestra visión del proyecto es, por otro lado, la de alzarnos como una opción para el aprendizaje de la asignatura de Historia, así como para su enseñanza. Además de esto, tenemos otros objetivos, como conseguir la aprobación de docentes y alumnos para que adopten nuestro software y lo utilicen son regularidad; brindar información confiable y de gran ayuda para los usuarios y que abarque la totalidad de los temas del curso. Finalmente, el objetivo más ambicioso del proyecto y quizá el más importante es el de posicionar a la asignatura de Historia como una materia humanística que requiere de una reflexión e investigación profundas, habilidades con las que cualquier egresado debería contar.

Estrategias

Para el cumplimiento de los objetivos, el proyecto tiene contempladas diversas estrategias como el cumplimiento de las especificaciones propuestas por los

Page 16: PA Histeria

16

profesores de la asignatura acerca de los temas y las actividades que el software maneja; por ejemplo, la Revolución Mexicana y la situación socioeconómica del país durante la segunda mitad del siglo XX. Mediante el cumplimiento de estas demandas el desarrollo de software pudo llevarse a cabo haciendo uso efectivo de las habilidades que tenemos a nuestro alcance.

Equipo de trabajo

Todos los integrantes del equipo nos asignamos distintas tareas, pero todos participamos en la administración y el desarrollo del proyecto. A futuro, quizás la administración del mismo quedará como tarea de unos cuantos.

Los integrantes que participaron en el desarrollo del software fueron:

Montaño Barrera Diego Cano Ramos Alfredo Erick Villa Sánchez Édgar García Martínez Omar Alejandro

Inversión requerida

Equipos $18947Papelería $100Transporte $3800Total $22847

Rentabilidad del proyecto

No es rentable, ya que es un proyecto escolar y será difícil sacarlo a la venta.

Conclusiones

La Historia es una rama de la investigación científica donde se estudian y aclaran los hechos más relevantes acontecidos durante las eras. Dentro de esta ciencia se abarca el qué, cómo, cuándo, dónde, por qué de los hechos.

Dentro de las materias que se imparten dentro de la educación básica se encuentra la historia la cual se bien no es muy compleja, necesita de una buena memoria para aprender todos los acontecimientos requeridos. Es debido a esto que se considera una asignatura complicada.

Para ayudar a los alumnos que presentan problemas en esta unidad de aprendizaje nuestra empresa, Harmonic Drives, ha iniciado la elaboración de un software que apoye en el estudio de historia a los alumnos.

Page 17: PA Histeria

17

Dentro de la problemática que se nos presenta nos encontramos con que los métodos de estudio apenas cambian con los años, si, ahora existe internet y con él podemos encontrar información necesaria en corto tiempo pero eso es todo, no ha habido un cambio significativo en cómo se estudia la asignatura, por eso buscamos que nuestro programa sea didáctico y fácil de memorizar mediante diversas actividades.

Manual de usuario Registro de usuarios:

Después de hacer clic en la opción “Registrar”, escriba en los cuadros de texto destinados para tal uso su nombre se usuario y contraseña; para terminar su registro de clic en el botón “Iniciar”.

Inicio de sesión:

Después de haberse registrado, escriba de nuevo los datos que ingresó cuidando de hacerlo sin ningún error, ya que de ser así el programa negará el ingreso. Después de haber hecho esto, de clic en la opción “Ingresar” para comenzar a utilizar el programa.

Actualizar información:

Después de haber escrito en el área de texto la información que quiere que se despliegue en la interfaz del alumno. De clic en el botón “Actualizar información” para subir la información.

Actividad Cuestionario:

Después de seleccionar una respuesta, cerrar el cuadro de diálogo emergente que indica si su respuesta es correcta o incorrecta y dar clic en la opción “Continuar” para pasar a la siguiente pregunta. Al finalizar obtendrá su puntuación de la actividad.

Manual de instalación Asegurarse que su equipo cuente con las especificaciones del sistema del

software Ingresar a la página web www.oracle.com En la pestaña “Downloads” hacer clic sobre la opción “Java for Developers”. Elegir la opción Java SE. Después de haber aceptado las condiciones de uso descargar el paquete

x86 de Java SE Development Kit 8u65 para Windows.

Page 18: PA Histeria

18

Al finalizar la descarga ejecutar el asistente para la instalación y seleccionar las opciones de su preferencia hasta finalizar la instalación.

En la misma página (http://www.oracle.com/technetwork/java/javase/downloads/index.html) descargar la última versión de NetBeans.

Repetir los pasos del asistente de instalación con las opciones seleccionadas anteriormente.

Manual técnico

Introducción

Durante este proyecto hemos utilizado nuestras habilidades en aprendidas en las diversas asignaturas que se nos han impartido, desde administración de proyectos hasta programación básica en Java y utilizando esto logramos elaborarlos.

El programa consta de gran cantidad de clases distribuidas en varios paquetes que cumplen con diferentes funciones. Desde guardar el usuario deseado en un archivo hasta subir actividades.

Se utiliza un archivo para guardar tanto los perfiles como las actividades y estas últimas son heredadas a todos los usuarios existentes. Mientras que el alumno solo puede revisar las actividades el maestro puede crearlas y además consultar y eliminar a los usuarios del archivo utilizando un ‘remove’ del Array list.

Si bien suena simple se utilizan gran cantidad de JButton’s para lograr el resultado deseado, así como el uso JTextArea para consultar y crear las actividades, también se utilizar RadioButton’s para un cuestionario que marca tu puntuación utilizando un bolean.

Las diferentes clases que componen el programa se heredan entre sí para poder compartir la información necesaria para la función de nuestro programa.

Empresa Armonic Drives

Proyecto Histeria

Entregable

Autor Armonic Drives

Page 19: PA Histeria

19

Reporte extensoEl proyecto Histeria busca ser una herramienta útil para la academia de Historia en las escuelas a nivel medio superior, para apoyar a los estudiantes a mejorar sus notas y a aprender esta materia de una forma más didáctica, también se busca que el profesor tenga una plataforma en la que puede subir información y ciertas actividades para el alumno, al iniciar el proyecto se buscó la aprobación de la academia y que el programa fuera intuitivo para alumnos a nivel medio superior y para el docente que fuera a ocuparlo

Para este proyecto fue necesario entrevistar a un experto en la asignatura de Historia la persona entrevistada fue la docente Martha María Luisa Reyes Resano, docente en el Centro de Estudios Científicos y Tecnológicos num.9 "Juan de Dios Bátiz" gracias a las respuestas que obtuvimos logramos saber que la Revolución Mexicana es el tema en donde más reprueban los alumnos, además de que nuestros requerimientos para este proyecto, en base a estos requerimientos logramos hacer un programa codificado por 4 programadores en donde el profesor puede subir información y cuestionarios que el alumno puede ver posteriormente.

El programa fue presentado a dos docentes y ambos quedaron satisfechos con el programa además de que encontraron al programa funcional e intuitivo, concluimos que puede ser una buena herramienta para la academia de Historia y para los alumnos que este cursando la misma, se cumplieron varios de los puntos que se buscaban al inicio del proyecto

AlcanceComunidad estudiantil del Instituto Politécnico Nacional, en específico a la que es parte de los CECyT´s. De manera más directa al Centro de Estudios Científicos y Tecnológicos “Juan de Dios Bátiz”, en apoyo a los estudiantes de segundo semestre.

Page 20: PA Histeria

20

Desarrollo de Códigopackage ProyectoJaula;

public class Principal { //main

public static void main(String[] args) {

Inicio grafico = new Inicio();

}

}

package ProyectoJaula;

//inicio

import Maestro.LoginMaestro;

import Alumno.LoginAlumno;

import java.awt.Color;

import javax.swing.*;

import java.awt.event.*;

import java.awt.Image;

public class Inicio extends JFrame implements ActionListener {

JButton BMaestro;

JButton BAlumno;

ImageIcon imagen;

JLabel etiqueta;

JLabel labelImagen;

public Inicio() {

setLayout(null);

setBounds(100, 100, 800, 600);

this.getContentPane().setBackground(Color.WHITE);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Page 21: PA Histeria

21

BMaestro = new JButton("Maestro");

BMaestro.setBounds(50, 400, 200, 50);

BMaestro.setFont(new java.awt.Font("Book Antiqua", 0, 38));

add(BMaestro);

BMaestro.addActionListener(this);

BAlumno = new JButton("Alumno");

BAlumno.setBounds(450, 400, 200, 50);

BAlumno.setFont(new java.awt.Font("Book Antiqua", 0, 38));

add(BAlumno);

BAlumno.addActionListener(this);

labelImagen = new JLabel();

labelImagen.setBounds(250, 50, 300, 300);

ImageIcon ii = new ImageIcon("\\Imagen1.jpg");

Image i = ii.getImage();

i = i.getScaledInstance(300, 300, Image.SCALE_SMOOTH);

ii = new ImageIcon(i);

labelImagen.setIcon(ii);

add(labelImagen);

setVisible(true);

}

Page 22: PA Histeria

22

public void actionPerformed(ActionEvent e) {

if (e.getActionCommand().equals("Maestro")) {

dispose();

LoginMaestro a = new LoginMaestro();

} else if (e.getActionCommand().equals("Alumno")) {

dispose();

LoginAlumno b = new LoginAlumno();

}

}

}

package Maestro;

//LogIn

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.ArrayList;

import javax.swing.*;

import Maestro.*;

import ProyectoJaula.*;

public class LoginMaestro extends JFrame implements ActionListener {

JLabel contraseña;

JLabel usuario;

JTextField contra;

JTextField usuario1;

JButton inicio;

JButton cancelar;

JButton regresar;

Page 23: PA Histeria

23

public LoginMaestro() {

setLayout(null);

setBounds(100, 100, 400, 400);

setTitle("Maestro");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

inicio = new JButton("Iniciar");

inicio.setBounds(50, 300, 100, 30);

add(inicio);

inicio.addActionListener(this);

regresar = new JButton("<");

regresar.setBounds(20, 20, 50, 30);

add(regresar);

regresar.addActionListener(this);

cancelar = new JButton("Cancelar");

cancelar.setBounds(200, 300, 100, 30);

add(cancelar);

cancelar.addActionListener(this);

usuario1 = new JTextField();

usuario1.setBounds(100, 100, 100, 30);

usuario1.setEnabled(false);

add(usuario1);

Page 24: PA Histeria

24

contra = new JPasswordField();

contra.setBounds(100, 150, 100, 30);

contra.setEnabled(false);

add(contra);

usuario = new JLabel("Usuario");

usuario.setBounds(20, 100, 100, 30);

add(usuario);

contraseña = new JLabel("Contraseña");

contraseña.setBounds(20, 150, 100, 30);

add(contraseña);

setVisible(true);

}

@Override

public void actionPerformed(ActionEvent e) {

String action = e.getActionCommand();

if (action.equals("<")) {

dispose();

Inicio n = new Inicio();

} else if (action.equals("Iniciar")) {

usuario1.setEnabled(true);

usuario1.requestFocus();

contra.setEnabled(true);

inicio.setText("Inicio");

cancelar.setEnabled(true);

} else if (action.equals("Inicio")) {

Page 25: PA Histeria

25

if (contra.getText().equals("BATIZ892") && usuario1.getText().equals("HISTERIA")) {

dispose();

ParcialMaestro temasM = new ParcialMaestro();

} else {

JOptionPane.showMessageDialog(null, "Los datos ingresados son incorrectos intentar de nuevo");

usuario1.setEnabled(false);

usuario1.requestFocus();

contra.setEnabled(false);

inicio.setText("Iniciar");

usuario1.setText("");

contra.setText("");

}

if (action.equals("Cancelar")) {

usuario1.setEnabled(false);

usuario1.requestFocus();

contra.setEnabled(false);

inicio.setText("Iniciar");

usuario1.setText("");

contra.setText("");

}

Page 26: PA Histeria

26

package Maestro;

//Archivo

import java.io.Serializable;

public class DatosMaestro implements Serializable {

private String nombre;

public String getNombre() {

return nombre;

}

public void setNombre(String nombre) {

this.nombre = nombre;

}

}

package Maestro;

import java.io.*;

import java.util.ArrayList;

import javax.swing.JOptionPane;

public class ArchivosMaestro {

ArrayList<DatosMaestro> ListaRecuperada = new ArrayList<>();

public ArrayList<DatosMaestro> leer() {

try {

ObjectInputStream meter = new ObjectInputStream(new FileInputStream("Maestro"));

ListaRecuperada = (ArrayList<DatosMaestro>) meter.readObject();

} catch (Exception e) {

JOptionPane.showMessageDialog(null, "HISTERIA te da la Bienvenida ,Maestro ");

}

Page 27: PA Histeria

27

return ListaRecuperada;

}

public void serializar(ArrayList<DatosMaestro> ListaSeriar) {

try {

FileOutputStream out = new FileOutputStream("Maestro");

ObjectOutputStream objOut = new ObjectOutputStream(out);

objOut.writeObject(ListaSeriar);

} catch (Exception e) {

e.printStackTrace();

}

}

}

package Maestro;

//Temas

import Maestro.Temas.Temas1.Tema1;

import Maestro.Temas.Temas2.Tema2;

import Maestro.Temas.Temas3.Tema3;

import ProyectoJaula.Inicio;

import java.awt.Color;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

public class ParcialMaestro extends JFrame implements ActionListener {

Page 28: PA Histeria

28

JButton Administracion;

JButton primerparcial;

JButton segundoparcial;

JButton tercerparcial;

JButton cerrar;

public ParcialMaestro() {

setLayout(null);

setBounds(100, 100, 800, 500);

this.getContentPane().setBackground(Color.ORANGE);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Administracion = new JButton("Administracion");

Administracion.setBounds(300, 50, 150, 50);

add(Administracion);

Administracion.addActionListener(this);

primerparcial = new JButton("Primer Parcial");

primerparcial.setBounds(300, 150, 150, 50);

add(primerparcial);

primerparcial.addActionListener(this);

segundoparcial = new JButton("Segundo Parcial");

segundoparcial.setBounds(300, 250, 150, 50);

add(segundoparcial);

segundoparcial.addActionListener(this);

tercerparcial = new JButton("Tercer Parcial");

tercerparcial.setBounds(300, 300, 150, 50);

add(tercerparcial);

tercerparcial.addActionListener(this);

Page 29: PA Histeria

29

tercerparcial.setVisible(false);

tercerparcial.setEnabled(false)

cerrar = new JButton("Cerrar Sesión");

cerrar.setBounds(300, 350, 150, 50);

add(cerrar);

cerrar.addActionListener(this);

setVisible(true);

}

@Override

public void actionPerformed(ActionEvent e) {

if (e.getActionCommand().equals("Primer Parcial")) {

setVisible(false);

Tema1 parcial1 = new Tema1();

} else if (e.getActionCommand().equals("Segundo Parcial")) {

setVisible(false);

Tema2 parcial2 = new Tema2();

} else if (e.getActionCommand().equals("Tercer Parcial")) {

setVisible(false);

Tema3 parcial = new Tema3();

} else if (e.getActionCommand().equals("Cerrar Sesión")) {

setVisible(false);

Inicio inicio = new Inicio();

} else if (e.getActionCommand().equals("Administracion")) {

setVisible(false);

Operaciones oper = new Operaciones);

Page 30: PA Histeria

30

}

}

}

package Maestro.Temas.Temas1;

import Maestro.Temas.Temas1.Archivos3.Infor3;

import Maestro.Temas.Temas1.Archivos2.Infor2;

import Maestro.Temas.Temas1.Archivos1.Infor1;

import Alumno.*;

import Maestro.*;

import ProyectoJaula.Inicio;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.*;

//Parciales

public class Tema1 extends JFrame implements ActionListener {

JButton primerTema;

JButton segundoTema;

JButton tercerTema;

JButton regresar;

public Tema1() {

setLayout(null);

setBounds(100, 100, 800, 500);

this.getContentPane().setBackground(Color.ORANGE);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Page 31: PA Histeria

31

primerTema = new JButton("Crisis del Porfiriato");

primerTema.setBounds(250, 100, 250, 50);

add(primerTema);

primerTema.addActionListener(this);

segundoTema = new JButton("Revolucion Mexicana");

segundoTema.setBounds(250, 200, 250, 50);

add(segundoTema);

segundoTema.addActionListener(this);

tercerTema = new JButton("Institucionalizacion del Estado");

tercerTema.setBounds(250, 300, 250, 50);

add(tercerTema);

tercerTema.addActionListener(this);

regresar = new JButton("Regresar");

regresar.setBounds(20, 400, 150, 50);

add(regresar);

regresar.addActionListener(this);

setVisible(true);

}

@Override

public void actionPerformed(ActionEvent e) {

if (e.getActionCommand().equals("Crisis del Porfiriato")) {

setVisible(false);

Page 32: PA Histeria

32

Infor1 por = new Infor1();

} else if (e.getActionCommand().equals("Revolucion Mexicana")) {

setVisible(false);

Infor2 parcial = new Infor2();

} else if (e.getActionCommand().equals("Institucionalizacion del Estado")) {

setVisible(false);

Infor3 parcial = new Infor3();

} else if (e.getActionCommand().equals("Regresar")) {

setVisible(false);

ParcialMaestro regresar = new ParcialMaestro();

}

}

}

package Maestro.Temas.Temas1.Archivos3;

//Parciales

import Maestro.ParcialMaestro;

import Maestro.Temas.Temas1.Archivos2.Archivos2;

import Maestro.Temas.Temas1.Archivos2.Areas2;

import Maestro.Temas.Temas1.Tema1;

import Maestro.Temas.Temas3.Tema3;

import ProyectoJaula.Inicio;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.*;

Page 33: PA Histeria

33

public class Infor3 extends JFrame implements ActionListener {

JTextArea area;

JButton regresar;

JButton subir;

JScrollPane scroll;

Areas3 informacion = new Areas3();

Archivos3 acti = new Archivos3();

public Infor3() {

setLayout(null);

setBounds(50, 50, 800, 800);

setTitle("Institucionalizacion del Estado");

this.getContentPane().setBackground(Color.ORANGE);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE))

acti.leer();

area = new JTextArea();

area.setLineWrap(true);

area.setEnabled(true);

scroll = new JScrollPane(area);

scroll.setBounds(20, 20, 400, 400);

add(scroll);

subir = new JButton("Subir");

subir.setBounds(20,500, 150, 50);

add(subir);

subir.addActionListener(this);

regresar = new JButton("Regresar");

regresar.setBounds(20, 570, 150, 50);

Page 34: PA Histeria

34

add(regresar);

regresar.addActionListener(this);

setVisible(true);

}

public void actionPerformed(ActionEvent e) {

if (e.getActionCommand().equals("Subir")) {

try {

Areas3 act = new Areas3();

act.setArea3(area.getText());

acti.Serializar(act);

JOptionPane.showMessageDialog(null, "Informacion guardada");

}catch(Exception a){

JOptionPane.showMessageDialog(null, "Introduzca datos");

}

}

if (e.getActionCommand().equals("Regresar")) {

setVisible(false);

Tema1 tema = new Tema1();

}

}

}

Page 35: PA Histeria

35

package Maestro.Temas.Temas1.Archivos3;

import Maestro.Temas.Temas1.Archivos3.Areas3;

import Maestro.Temas.Temas1.Archivos1.*;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

public class Archivos3 {

//Archivos

Areas3 Lista = new Areas3();

public Areas3 leer() {

try {

ObjectInputStream in = new ObjectInputStream(new FileInputStream("Tema3"));

Lista = (Areas3) in.readObject();

} catch (Exception e) ;

}

return Lista;

}

public void Serializar(Areas3 Lista3){

try{

FileOutputStream out = new FileOutputStream("Tema3");

ObjectOutputStream obj = new ObjectOutputStream(out);

obj.writeObject(Lista3);

}catch (Exception e){

e.printStackTrace();

}

Page 36: PA Histeria

36

}

}

package Alumno.TemasA.TemasA1.Cuestiomario1;

import java.awt.event.*;

import java.awt.Checkbox;

import java.awt.CheckboxGroup;

import java.awt.FlowLayout;

import java.awt.Color;

import java.awt.Font;

import javax.swing.JFrame;

import javax.swing.*;

public class pregunta1 extends JFrame implements ActionListener, ItemListener{

private JTextArea pregunta1;

private JButton botonS, botonI;

private CheckboxGroup grupo;

private Checkbox opcionP, opcionS, opcionT;

String pregunta="Que periodo de tiempo abarca el llamado 'Milagro mexicano'";

String opc1 = "1935-1970";

String opc2="1940 - 1970";

String opc3="1952-1970";

int puntos;

public pregunta1(int puntos){

pregunta1 = new JTextArea();

pregunta1.setBounds(100, 200, 100, 200);

Page 37: PA Histeria

37

pregunta1.setEditable(false);

add(pregunta1);

Font font = new Font("Verdana", Font.BOLD, 18);

pregunta1.setFont(font);

pregunta1.setForeground(Color.BLUE);

pregunta1.setText(pregunta);

botonS = new JButton("Siguiente");

botonS.setBounds(300, 200, 60, 60);

botonS.addActionListener(this);

add(botonS);

botonI = new JButton("Indice");

botonI.setBounds(380, 200, 60, 60);

botonI.addActionListener(this);

add(botonI);

grupo = new CheckboxGroup();

opcionP = new Checkbox(opc1, grupo, false);

opcionS = new Checkbox(opc2, grupo, false);

opcionP.addItemListener(this);

opcionS.addItemListener(this);

opcionT.addItemListener(this);

add(opcionP, FlowLayout.CENTER);

add(opcionS, FlowLayout.CENTER);

add(opcionT, FlowLayout.CENTER);

this.puntos = puntos;

this.setTitle("Pregunta 1");

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

Page 38: PA Histeria

38

this.setBounds(300, 200, 820, 240);

this.setBackground(Color.LIGHT_GRAY);

this.setLayout( new FlowLayout());

this.setVisible(true);

}

@Override

public void itemStateChanged(ItemEvent e) {

if(grupo.getSelectedCheckbox() == opcionP){

JOptionPane.showMessageDialog(null, "Tu respuesta es corecta");

puntos++;

}else{

JOptionPane.showMessageDialog(null, "Tu respuesta es incorrecta");

}

}

@Override

public void actionPerformed(ActionEvent e) {

if(e.getSource() == botonS){

dispose();

preguntados ventana = new preguntados(puntos);

}if(e.getSource() == botonI){

}

}

}

Page 39: PA Histeria

39

Diagrama de clases

LogInMaestro()

JLabel contraseña JLabel usuario; JTextField contra; JTextField usuario1;

JButton inicio;

LogIn

Parcial()

Dipose()

SetVisible()

JButtonAdministracion; JButton primerparcial; JButton segundoparcial; JButton tercerparcial:

JButton cerrar;

Parciales

Temas()

Dispose()

Infor1 n = new Infor()

JButton primerTema;

JButton segundoTema; JButton tercerTema;

JButton regresar;

Temas

Operaciones()

Override

Dispose()

JTextField usuario;

JTextField contraseña;

JLabel USUARIO;

JLabel CONTRASEÑA;

JButton borrar;

JButton consulta;

JButton regresa;

Administrador

Main

Page 40: PA Histeria

40

LogInAlumno()

JLabel contraseña JLabel usuario; JTextField contra; JTextField usuario1;

JButton inicio;

LogIn

Parcial()

Dipose()

SetVisible()

JButton primerparcial; JButton segundoparcial; JButton tercerparcial:

JButton cerrar;

Parciales

Temas()

Dispose()

Infor1 n = new Infor()

JButton primerTema;

JButton segundoTema; JButton tercerTema;

JButton regresar;

Temas

Preguntas(int score)

Override

Dispose()

private JTextArea pregunta1;

private JButton botonS, botonI;

private CheckboxGroup grupo;

private Checkbox opcionP, opcionS, opcionT;

Preguntas

Main

Page 41: PA Histeria

41

Pruebas

Acción Captura de datos ResultadoMaestroUsuario HISTERIA Inicia programaContraseña BATIZ892Usuario asdj "Usuario no registrado"Contraseña ashdfg

Botón Administrador ClicVentana de usuarios alumnos

Botón Primer Parcial Clic Ventana para subir info.Botón Segundo Parcial Clic Ventana para subir info.Botón Tercer Parcial Clic Ventana para subir info.Botón Regresar Clic Ventana de inicio

AlumnoUsuario "Usuario registrado" Inicia programaContraseñaUsuario "Usuario no

registrado" "Usuario no registrado"ContraseñaBotón de cuestionarios Clic Inicia cuestionarioBotón Primer Parcial Clic Ventana de informaciónBotón Segundo Parcial Clic Ventana de informaciónBotón Tercer Parcial Clic Ventana de informaciónBotón Regresar Clic Ventana de inicio