(Código fuente adjunto) Diseño de graduación por computadora del sistema de examen en línea SSM 12795

Sistema de examen en línea ssm

Resumen

El rápido desarrollo del progreso científico y tecnológico ha provocado cambios tremendos en la vida diaria de las personas. El rápido desarrollo de la tecnología de la información electrónica ha hecho que el nivel de aplicación de la tecnología de la información electrónica en diversos campos sea popular y aplicado. La llegada de la era de la información se ha convertido en una tendencia de moda imparable y la historia del desarrollo humano está entrando en una nueva era. En la aplicación real, las reglas de trabajo y los pasos de desarrollo del software de la aplicación se utilizan para desarrollar un sistema de examen en línea basado en el marco SSM.

Este diseño implementa principalmente un sistema de examen en línea que combina las ventajas de humanización, alta eficiencia, conveniencia, etc., y completa módulos funcionales como página de inicio, usuarios del sistema, información de datos, tipos de datos y mensajes de prueba. El sistema se comunica con el servidor a través del navegador para realizar interacciones y cambios de datos. Este sistema mejora la eficiencia del trabajo y reduce errores y omisiones en el almacenamiento de datos a través de métodos de gestión científica y servicios convenientes. El sistema de examen en línea se desarrolla utilizando el marco SSM basado en el modelo MVVM y está escrito utilizando el compilador MyEclipse 2017 CI 10. En términos de datos, la base de datos relacional MySQL de Microsoft se utiliza principalmente como medio de almacenamiento de datos y se completa con el Tecnología front-end HTML+CSS Desarrollo de sistemas.

Palabras clave : sistema de exámenes en línea; MySQL; SSM 

Sistema de examen en línea Ssm

Abstracto

El rápido desarrollo de la tecnología ha provocado cambios tremendos en la vida diaria de las personas, y el rápido desarrollo de la tecnología de la información electrónica ha popularizado y aplicado el nivel de aplicación de la tecnología de la información electrónica en diversos campos. La llegada de la era de la información se ha convertido en una tendencia de moda imparable y la historia del desarrollo humano está entrando en una nueva era. En aplicaciones prácticas, las reglas de trabajo y los pasos de desarrollo del software de la aplicación se desarrollan utilizando el marco SSM basado en un sistema de exámenes en línea.

Este diseño implementa principalmente un sistema de exámenes en línea que combina las ventajas de humanización, eficiencia y conveniencia. Completa módulos funcionales como página de inicio, usuarios del sistema, información de datos, tipos de datos y mensajes de examen. El sistema se comunica con el servidor a través de un navegador para lograr interacción y cambios de datos. Este sistema mejora la eficiencia del trabajo y reduce errores y omisiones en el almacenamiento de datos a través de una gestión científica y servicios convenientes. El desarrollo del sistema de exámenes en línea se basa en el marco SSM basado en el modo MVVM. Está escrito utilizando el compilador MyEclipse 2017 CI 10. En términos de datos, la base de datos relacional MySQL de Microsoft se utiliza principalmente como medio de almacenamiento de datos y el desarrollo del sistema se completa con la tecnología HTML+CSS de primer plano.

Palabras clave :Sistema de exámenes en línea; MySQL; SSM

Tabla de contenido

1 Descripción general

1.1 Antecedentes de la selección de temas

1.2 Fuente del tema y propósito de la investigación

1.3 Estructura organizativa de este artículo

2 Introducción a las herramientas de desarrollo de sistemas.

2.1 tecnología J2EE

2.2 base de datos  MySQL

2.3 Introducción  al marco del MUS

2. 4  Principio de funcionamiento del sistema B/S

3 Análisis del sistema 6

3.1 Análisis de viabilidad 6

3.1.1 Viabilidad técnica 6

3.1.2 Viabilidad operativa 6

3.1.3 Viabilidad económica7

3.1.4 Viabilidad jurídica 7

3.2 Análisis del proceso del sistema 7

3.2.1 Proceso de desarrollo del sistema 7

3.2.2 Proceso de inicio de sesión del usuario

3.2.3 Proceso de operación del sistema

3.2.4 Proceso de agregar información

3.2.5 Modificar el flujo de información

3.2.6 Proceso de eliminación de información

3.3 Análisis de casos de uso del sistema

3.3.1 Diagrama de casos de uso del administrador

4 diseño del sistema

4.1 Descripción general del sistema

4.2 Diseño de la estructura del sistema

4.3 Diseño de bases de datos 14

4.3.1 Principios de diseño de bases de datos

4.3.2 Entidades de base de datos

4.3.3 Diseño de tablas de bases de datos

5 diseño detallado del sistema 2 4

5.1 Implementación del módulo de inicio de sesión 24

5.2 Implementación del módulo de registro 3 0

5. 3 Implementación del módulo de recolección de información de datos 31

5.4 Implementación del módulo de comentarios 31

5. 5 Implementación del módulo de mensajes de examen 31

5. 6 Implementación del módulo de modificación de contraseña 32

5. 7 Implementación del módulo de anuncios del sistema 33

5. 8 Implementación del módulo de gestión de usuarios 3 5

5. 9 Implementación del módulo de gestión de tipos de datos 3 6

6 Prueba del sistema 37

6.1 La importancia de las pruebas del sistema

6.2 Método de prueba 38

6.3 Análisis de prueba

Conclusión 4     0

Agradecimientos 4     1

Referencias 42

1. Información general

1.1Fondo

Hoy en día, las principales instituciones, tanto nacionales como extranjeras, han lanzado continuamente una serie de exámenes de certificación a gran escala, como el MCSE de Microsoft, el CCNA de Cisco, los exámenes de autoaprendizaje de nuestro país y varios exámenes en varias provincias y ciudades. dirección del desarrollo hacia Internet, sólo así podremos cumplir con los requisitos de los exámenes a gran escala, ahorrando tiempo y esfuerzo, además de ser justos y abiertos. Por lo tanto, el desarrollo de sistemas de exámenes en línea es un tema importante en la construcción de la informatización de la educación actual. El propósito es aprovechar al máximo los recursos de software y hardware existentes en la escuela y los recursos de red para implementar exámenes sin papel para compensar las deficiencias de los manuales tradicionales. exámenes. Los exámenes en línea basados ​​en la web se han convertido en una tendencia general. En comparación con los modelos de exámenes tradicionales, los exámenes en línea incorporan enlaces más técnicos y plantean requisitos técnicos más altos sobre formas y métodos para lograr la seguridad. Desempeñan un papel importante en el proceso de modernización educativa. tiene un significado práctico muy importante. Los exámenes tradicionales requieren que los profesores graben e impriman exámenes, organicen exámenes, supervisen exámenes, recopilen exámenes, califiquen exámenes, comenten exámenes y analicen exámenes. Este es un proceso largo y complicado, que se ha vuelto cada vez más inadecuado para las necesidades. de la enseñanza moderna, de ahí la aparición de un gran número de sistemas de exámenes en línea. Aplica herramientas de desarrollo de software de red como ssm para investigación y desarrollo, y aprovecha al máximo las características de la estructura B / S. Su objetivo funcional es transformar el examen en papel existente en un sistema de examen sin papel basado en Internet. Tiene una buena apertura que permite a los administradores del sistema gestionar y desarrollar el banco de preguntas del examen, garantizando eficazmente la puntualidad del banco de preguntas. La implementación de exámenes en línea a través de Internet/Intranet puede lograr la separación de la enseñanza y los exámenes y una gestión totalmente automatizada del trabajo de los exámenes. Puede utilizar eficazmente los recursos de software y hardware de la red del campus para maximizar su eficacia y servir mejor a la enseñanza y la investigación científica de la escuela. , y gestión Servicio, puede reducir la organización, aprobación e impresión, transmisión y recopilación, registro y distribución, evaluación y archivo del documento de examen en el proceso de examen tradicional a uno o dos enlaces, casi bloqueando la posibilidad de intervención manual directa en el examen. actividades, no solo ahorrar dinero Requiere mucho tiempo, mano de obra, recursos materiales y financieros, y también puede mejorar en gran medida la objetividad y equidad de los puntajes de las pruebas.

El sistema de examen en línea multiusuario basado en WEB desarrollado con tecnología SSM tiene funciones tales como registro de usuario, examen en línea simultáneo de múltiples usuarios, anuncios del sistema, información de materiales, tipos de materiales, mensajes de examen, etc....

1. 2 Fuente del tema y propósito de la investigación 

Con el rápido desarrollo de la tecnología de la información y la tecnología de redes, las computadoras se utilizan cada vez más en la vida real de las personas y desempeñan un papel cada vez más importante. Hoy en día, con el rápido avance de nuestra educación, los exámenes más tradicionales en papel están obsoletos, porque no sólo requieren mucha mano de obra y recursos materiales para calificar los exámenes, sino también para corregirlos, lo que requiere mucho tiempo. Más importante aún, en la enseñanza y educación a distancia, no es propicio para organizar exámenes unificados y está destinado a ser eliminado por los tiempos. Para romper con el modelo de examen tradicional, para el desarrollo de la nueva situación, liberar a los docentes de la pesada carga de trabajo y adaptarse a la realización de exámenes verdaderamente sin papel, de modo que el examen pueda realizarse en cualquier lugar sin restricciones geográficas, la gente exige con urgencia utilizar tecnología informática para implementar exámenes en línea para reducir la carga de trabajo de los profesores y mejorar la eficiencia del trabajo, mejorar la calidad de los exámenes y hacer que los exámenes estén más notariados. Las diversas aplicaciones basadas en Internet son cada vez más valoradas por la gente. En esta situación surgió el sistema de exámenes en línea basado en la web, que nació con el desarrollo de aplicaciones de tecnología de redes y de bases de datos y que puede utilizar la red para realizar exámenes en cualquier momento y en cualquier lugar. Los estudiantes que realizan exámenes son una extensión de los exámenes tradicionales: además, con su ayuda, los recursos de la red del campus se pueden utilizar de manera efectiva para servir mejor a la gestión docente de la escuela.

De hecho, ya existen algunos sistemas de exámenes en línea que han logrado este objetivo, como los exámenes de mandarín, los exámenes de calificación por computadora, etc., que son aplicaciones típicas de los sistemas de exámenes en línea. Sin embargo, la mayoría de los colegios y universidades todavía utilizan métodos de examen tradicionales. Por lo tanto, este tema pretende diseñar un sistema de examen en línea simple basado en el modelo B/S. El sistema está desarrollado usando Java y MySQL se utiliza como servidor de base de datos en segundo plano, tiene una interfaz amigable y operación simple. Los usuarios pueden completar operaciones como formular preguntas, realizar exámenes y calificar trabajos automáticamente a través de un navegador web común, que es simple y rápido. Al utilizar este sistema, se puede mejorar enormemente la eficiencia de los exámenes y reducir el consumo de mano de obra, recursos materiales y financieros.

1.3 Estructura organizativa de este artículo

El primer capítulo es la introducción. Al comienzo de este artículo, hay una descripción textual de los antecedentes de la selección de temas y los antecedentes de la selección de temas.

El Capítulo 2 estudia la tecnología de desarrollo y las herramientas de desarrollo utilizadas en el sistema de exámenes en línea.

El Capítulo 3 es la parte del análisis del sistema, que incluye la descripción de los requisitos generales del sistema, el análisis de los requisitos del sistema desde una perspectiva funcional y el análisis no funcional de si el sistema se puede implementar.

El Capítulo 4 es la parte de diseño del sistema. La parte importante de este artículo proporciona el diseño detallado de la arquitectura del sistema y las instrucciones de diseño de algunos módulos funcionales principales.

El Capítulo 5 es la implementación específica del sistema, presentando la implementación específica de cada módulo del sistema.

El capítulo 6 se basa en los capítulos anteriores para probar y ejecutar el sistema.

Finalmente, se ofrece un resumen cuidadoso del sistema para proporcionar una nueva perspectiva para el futuro.

2 Entorno de desarrollo del sistema  

2.1tecnología J2EE

Las personas pueden dominar muchos idiomas extranjeros, pero la mayor parte de lo que domina un informático es lenguaje de programación, que no es un lenguaje humano natural, como el lenguaje C, Java, Perl, etc. Dado que el "middleware" desarrollado por diferentes empresas no estaba lo suficientemente estandarizado, Sun lanzó J2EE y utilizó este estándar para solucionar las deficiencias. Proporciona un buen mecanismo que permite que cada nivel permita la ejecución de los servidores y componentes correspondientes, lo que hace que el sistema sea estable y utilizable, eficiente en el desarrollo y fácil de mantener [1][2].

2.2 base de datos MySQL

El avance de la ciencia y la tecnología ha traído muchas comodidades a la vida diaria: los proyectores de las aulas utilizan tecnología de imágenes virtuales y las cámaras digitales utilizan tecnología de detección fotoeléctrica. Por ejemplo, los registros de los productos del supermercado que entran y salen del almacén requieren un almacén de información. Este almacén de información es la base de datos, y este sistema de gestión de información logística también necesita el apoyo de esta tecnología [7].

Se utiliza el software MySQL porque puede aceptar el acceso de múltiples usuarios y en él existen archivos, etc. Primero clasificará los datos y luego los guardará en tablas respectivamente. Estas operaciones especiales mejorarán la velocidad del propio sistema de gestión de datos y permitirán que la base de datos se utilice de forma flexible. El código de MySQL es público y permite a otros compilarlo y actualizarlo nuevamente. Esta característica puede reducir los costos para el usuario y formar un buen sistema de sitio web cuando se combina con el software adecuado. Aunque tiene deficiencias, en todos los aspectos es el objeto de aplicación principal de los usuarios [8].

2.3 Introducción al marco SSM

El conjunto de marcos SSM (Spring+SpringMVC+MyBatis) está integrado por los dos marcos de código abierto Spring y MyBatis (SpringMVC es parte de Spring). A menudo se utiliza como marco para proyectos web con fuentes de datos relativamente simples.

 Spring
Spring es como una gran fábrica que ensambla beans en todo el proyecto. En el archivo de configuración, puede especificar el uso de parámetros específicos para llamar al método constructor de la clase de entidad para crear una instancia del objeto. También se le puede llamar pegamento en el proyecto.
La idea central de Spring es IoC (Inversión de Control), lo que significa que los programadores ya no necesitan "nuevo" explícitamente un objeto, sino que dejan que el marco Spring lo haga todo por usted.
 SpringMVC
SpringMVC intercepta las solicitudes de los usuarios en el proyecto. Su servlet principal, DispatcherServlet, asume las responsabilidades de intermediario o recepción y hace coincidir las solicitudes de los usuarios con el Controlador a través de HandlerMapping. El Controlador es la operación realizada específicamente correspondiente a la solicitud. SpringMVC es equivalente a struts en el marco SSH.
 mybatis
mybatis es una encapsulación de jdbc, que hace que las operaciones subyacentes de la base de datos sean transparentes. Las operaciones de mybatis se centran en una instancia de sqlSessionFactory. Mybatis se asocia al archivo Mapper de cada clase de entidad a través del archivo de configuración, el archivo Mapper se configura con el mapeo de sentencias SQL requeridas para cada clase a la base de datos. Cada vez que interactúe con la base de datos, obtenga una sqlSession a través de sqlSessionFactory y luego ejecute el comando sql.

La página envía una solicitud al controlador, el controlador llama a la lógica de procesamiento de la capa empresarial, la capa lógica envía una solicitud a la capa de persistencia, la capa de persistencia interactúa con la base de datos y luego devuelve el resultado a la capa empresarial, la capa empresarial envía la lógica de procesamiento al controlador, y el controlador luego llama a la vista para mostrar los datos.

Principio de funcionamiento del sistema 2.4B/S:

La arquitectura B/S adopta el modo de trabajo de solicitud del navegador y respuesta del servidor.

Los usuarios pueden acceder a textos, datos, imágenes, animaciones, videos a pedido, sonidos y otra información generada por servidores web en Internet a través de un navegador;

Cada servidor web se puede conectar al servidor de la base de datos de varias maneras, y en realidad se almacena una gran cantidad de datos en el servidor de la base de datos;

Descargue el programa desde el servidor web al local para su ejecución. Si encuentra instrucciones relacionadas con la base de datos durante el proceso de descarga, el servidor web las entregará al servidor de la base de datos para su interpretación y ejecución, y las devolverá al servidor web. y el servidor web lo devolverá al usuario. En esta estructura, muchas redes están conectadas entre sí para formar una red enorme, es decir, la red global. Cada empresa puede construir su propia Internet basándose en esta estructura.

En el modo B/S, el usuario solicita acceso a través del navegador a muchos servidores distribuidos en la red. La solicitud del navegador es procesada por el servidor y los resultados del procesamiento y la información correspondiente se devuelven al navegador. Otros datos Todos los procesamientos y solicitudes son completados por el servidor web. A través de esta estructura marco y el navegador integrado dentro del sistema operativo, esta estructura se ha convertido en el patrón estructural principal de las aplicaciones de software actuales.

3 Análisis del sistema

El llamado análisis del sistema significa que el personal de la demanda obtiene información a través de la comunicación con los usuarios y luego muestra esta información a los usuarios y desarrolladores en forma de especificaciones de la demanda. En la larga historia del desarrollo de funciones de software, durante mucho tiempo, especialmente al principio, la gente no reconocía la importancia del análisis de requisitos. Por ejemplo, en ese momento, la empresa estadounidense IBM desarrolló un sistema de gestión de información para los británicos. Telecomunicaciones. El desarrollo comenzó sin claridad y el período de construcción inicial fue de un año. Debido a requisitos poco claros, el período de construcción se retrasó más de medio año, lo que provocó enormes pérdidas. Esta situación también existe en muchas de nuestras empresas de software, que desarrollan mientras desarrollan, e incluso sin una comunicación clara con los usuarios , directamente copian el mismo tipo de proyectos y realizan cambios, por lo que los cambios se vuelven a realizar cuando el sistema es aceptado. lo que supone una pérdida de mano de obra y de recursos materiales, un enorme desperdicio. La razón de todas estas consecuencias es que la adquisición de la demanda no es oportuna, confusa e incompleta.

3.1 Análisis de viabilidad

El objetivo principal del sistema de exámenes en línea es proporcionar servicios de gestión de información relacionados con exámenes en línea, usuarios del sistema, información de materiales, tipos de materiales, mensajes de examen y gestión de recursos . Después de determinar los objetivos, realizamos un análisis de viabilidad sobre si los objetivos de este sistema se pueden lograr a partir de los siguientes cuatro aspectos.

3.1.1 Viabilidad técnica

El sistema de examen en línea utiliza principalmente el marco SSM , basado en la estructura B / S y la base de datos Mysql. El desarrollo de la aplicación requiere funciones completas, uso simple y el establecimiento de una base de datos con datos completos, seguros y estables. La tecnología de desarrollo basada en el sistema de examen en línea es altamente factible y los desarrolladores dominan ciertas tecnologías de desarrollo, por lo que el desarrollo del sistema es factible.

3.1.2 Viabilidad operativa

La interfaz de inicio de sesión basada en el sistema de examen en línea es simple y fácil de operar. Utiliza una ventana de interfaz común para iniciar sesión en la interfaz y acceder a ella a través de una computadora. Los miembros pueden acceder a ella siempre que hayan usado una computadora. El desarrollo de este sistema utiliza el lenguaje Java y se basa en la estructura B / S. Estos entornos de desarrollo hacen que el sistema sea más completo. Este sistema tiene las características de fácil operación, fácil administración, buena interactividad y es muy simple de operar. Por lo tanto este sistema puede desarrollarse.

3.1.3 Viabilidad económica

El sistema de examen en línea se basa en el modelo B/S y utiliza la base de datos Mysql para almacenar datos. Los entornos de hardware y software necesarios son fáciles de adquirir en el mercado. El desarrollo del programa implica principalmente el desarrollo y mantenimiento del sistema de gestión. Por lo tanto, el programa no requiere mucha mano de obra ni recursos financieros para el desarrollo, y el sistema no es muy complejo, el ciclo de desarrollo es corto y tiene una alta viabilidad económica.

3.1.4 Viabilidad jurídica

El sistema de exámenes en línea es un sistema de gestión de diseño propio y tiene una gran importancia práctica. Debido a que tanto el software como la base de datos utilizan código fuente abierto, el desarrollo y diseño de este sistema no presenta problemas como infracciones y es completamente viable legalmente.

En resumen, un sistema de exámenes en línea es técnica, económica, operativa y jurídicamente viable, y es factible desarrollar este programa.

3.2 Análisis del proceso del sistema

3.2.1 Proceso de desarrollo del sistema

Al desarrollar un sistema de examen en línea , primero realizamos un análisis de la demanda y luego llevamos a cabo la planificación general del diseño del sistema, diseñamos los módulos funcionales del sistema, seleccionamos la base de datos, etc. El proceso de desarrollo de este sistema se muestra en la Figura 3-1.

Figura 3-1 Diagrama de flujo de desarrollo del sistema

3.2.2 Proceso de inicio de sesión del usuario

Para garantizar la seguridad del sistema, si desea utilizar este sistema para administrar la información del sistema, primero debe iniciar sesión en el sistema. Como se muestra en la Figura 3-2.

Figura 3-2 Diagrama de flujo de inicio de sesión

3.2.3 Proceso de operación del sistema

Después de que el usuario abre e ingresa al sistema, primero se mostrará la interfaz de inicio de sesión y se ingresará el nombre de usuario y la contraseña correctos. El sistema detectará automáticamente la información. Si la información es correcta, el usuario ingresará a la interfaz de funciones del sistema. y realizar operaciones. De lo contrario, se mostrará un error y el usuario no podrá iniciar sesión. Proceso de operación Como se muestra en la Figura 3-3.

Figura 3-3 Diagrama de flujo de operación del sistema

3.2.4 Proceso de agregar información

Los administradores pueden agregar información sobre exámenes en línea, usuarios del sistema, información de materiales, tipos de materiales y mensajes de prueba . Los usuarios pueden agregar información dentro de su propia autoridad. Después de ingresar la información, el sistema verificará la información y los datos ingresados ​​por sí solo. Si la información Si es correcto, se agregará a la base de datos. Si la información es incorrecta, se le pedirá que vuelva a ingresar la información. El proceso de agregar información se muestra en la Figura 3-4.

Figura 3-4 Agregar diagrama de flujo de información

3.2.5 Modificar el flujo de información

Los administradores pueden modificar exámenes en línea, usuarios del sistema, información de materiales, tipos de materiales y mensajes de prueba . Los usuarios pueden modificar la información dentro de su propia autoridad. Primero, ingrese a la interfaz de información de modificación, ingrese los datos de información de modificación y el sistema juzgará y verificará la data. , si la información modificada es legal, la modificación es exitosa y la información se actualiza en la base de datos. Si la información es ilegal, la modificación falla y es necesario volver a ingresarla. El diagrama de flujo de información modificado se muestra en la Figura 3-5.

Figura 3-5 Modificar diagrama de flujo de información

3.2.6 Proceso de eliminación de información

Los administradores pueden eliminar información sobre exámenes en línea , usuarios del sistema, información de datos, tipos de datos y mensajes de prueba . Después de seleccionar la información que desea eliminar, haga clic en el botón Eliminar y el sistema le preguntará si está seguro. Si hace clic en Aceptar, el El sistema lo eliminará. Elimine la información seleccionada y elimine la información en la base de datos. El diagrama de flujo para eliminar información se muestra en la Figura 3-6.

Figura 3-6 Diagrama de flujo de información de eliminación

3.3 Análisis de casos de uso del sistema

3.3.1 Diagrama de casos de uso del administrador

El usuario principal del sistema es el administrador . Después de que el administrador inicia sesión, administra el sistema backend a través del menú del administrador. Las funciones principales incluyen: examen en línea, usuarios del sistema, información de datos, tipos de datos, mensajes de prueba y otras funciones . El caso de uso del administrador se muestra en la Figura 3-7 .

Figura 3-7 Diagrama de casos de uso del administrador

El usuario principal del sistema es el usuario del examen . Después de registrarse e iniciar sesión, el usuario del examen administra el sistema frontal a través del menú del administrador . Las funciones principales incluyen: examen en línea, anuncios del sistema, información de noticias, información material, mensajes de examen y otros ejemplos de usuario de examen funcional se muestran en la Figura 3-8 .

Figura 3-8 Diagrama de casos de uso del usuario del examen 

4 Diseño del sistema

4.1 Descripción general del sistema

Después del análisis del sistema, comenzamos a memorizar el diseño del sistema, que incluye el diseño general y el diseño detallado. El diseño general es solo un diseño general. Después del diseño general, podemos dividir algunas cosas del sistema, como archivos, documentos, datos, etc. Y a través del diseño general, podemos dividir aproximadamente los módulos y funciones del programa. Pero se trata sólo de una clasificación preliminar y no tiene una implementación real.

El diseño general es solo un diseño preliminar. Además, para un proyecto, podemos llevar a cabo múltiples diseños generales. A través de la comparación, incluida la comparación de rendimiento, comparación de costos y comparación de beneficios, finalmente podemos determinar un plan de diseño óptimo y elegir el mejor. El diseño general puede reducir los costos de desarrollo y aumentar los beneficios de la empresa. Desde este punto de vista, el diseño general sigue siendo muy importante.

El diagrama del principio de funcionamiento del sistema de examen en línea se muestra en la Figura 4-1:

Figura 4-1 Diagrama del principio de funcionamiento del sistema

4.2 Diseño de la estructura del sistema

El diagrama de arquitectura del sistema pertenece a la etapa de diseño del sistema. El diagrama de arquitectura del sistema es solo un producto de esta etapa. La arquitectura general del sistema determina el modelo de todo el sistema y es la base del sistema. El diseño estructural general del sistema de exámenes en línea se muestra en la Figura 4-2.

Figura 4-2 Diagrama de estructura del sistema

4.3 Diseño de base de datos

La base de datos es la base del sistema de información informático. En la actualidad, la parte clave y central del sistema informático es la base de datos. La calidad del desarrollo de la base de datos tiene un impacto directo en la calidad y velocidad de todo el sistema.

4.3.1 Principios de diseño de bases de datos

El diseño de la estructura conceptual de la base de datos adopta el método de diseño del modelo entidad-relación (ER). Los elementos constituyentes del método del modelo ER son: entidades, atributos y relaciones. El modelo ER está representado por un diagrama ER, que recuerda al usuario las cosas involucradas en el entorno de trabajo, y los atributos son descripciones de las características de la entidad. La base de datos juega un factor decisivo en el diseño del sistema. El diagrama entidad-relación de estas entidades clave se diseña a continuación .

4.3.2 Entidades de base de datos

Las entidades del modelo de datos, también llamadas instancias, corresponden a "eventos" o "cosas" que se pueden distinguir de otros objetos del mundo real.

El diagrama ER de este sistema se muestra a continuación:

1. El diagrama de entidad de información de datos se muestra en la Figura 4-3:

Figura 4-3 Diagrama de entidad de información de datos

2. El diagrama de entidad del usuario del examen se muestra en la Figura 4-4:

Figura 4-4 Diagrama de entidad de usuario del examen

3. El diagrama físico del mensaje de examen se muestra en la Figura 4-5 :

Figura 4-5 Diagrama de entidad del mensaje de examen

4.3.3 Diseño de tablas de bases de datos

Comentario de tabla (comentario)

número de serie

nombre

tipo de datos

longitud

Lugares decimales

Permitir valores nulos

Clave primaria

valor por defecto

ilustrar

1

comentario_id

En t

10

0

norte

Y

ID del comentario:

2

ID_usuario

En t

10

0

norte

norte

0

ID del comentarista:

3

respuesta_a_id

En t

10

0

norte

norte

0

ID del comentario de respuesta: vacío es 0

4

contenido

texto largo

2147483647

0

Y

norte

contenido:

5

apodo

varchar

255

0

Y

norte

Apodo:

6

avatar

varchar

255

0

Y

norte

Dirección de avatar: [0,255]

7

crear_tiempo

marca de tiempo

19

0

norte

norte

FECHA Y HORA ACTUAL

Tiempo de creación:

8

tiempo de actualizacion

marca de tiempo

19

0

norte

norte

FECHA Y HORA ACTUAL

Tiempo de actualizacion:

9

tabla_fuente

varchar

255

0

Y

norte

Tabla fuente:

10

campo_fuente

varchar

255

0

Y

norte

Campo fuente:

11

id_fuente

En t

10

0

norte

norte

0

ID de fuente:

Tabla data_type (tipo de datos)

número de serie

nombre

tipo de datos

longitud

Lugares decimales

Permitir valores nulos

Clave primaria

valor por defecto

ilustrar

1

id_tipo_datos

En t

10

0

norte

Y

ID de tipo de datos

2

tipo de datos

varchar

64

0

Y

norte

Tipo de datos

3

recomendar

En t

10

0

norte

norte

0

Recomendación inteligente

4

crear_tiempo

fecha y hora

19

0

norte

norte

FECHA Y HORA ACTUAL

tiempo de creación

5

tiempo de actualizacion

marca de tiempo

19

0

norte

norte

FECHA Y HORA ACTUAL

Tiempo de actualizacion

Examen de mesa (examen)

número de serie

nombre

tipo de datos

longitud

Lugares decimales

Permitir valores nulos

Clave primaria

valor por defecto

ilustrar

1

id_examen

medioint

8

0

norte

Y

identificación del examen

2

nombre

varchar

32

0

norte

norte

Nombre del examen: [2,32]

3

duración

En t

10

0

Y

norte

tiempo de respuesta

4

puntaje

doble

9

2

Y

norte

puntaje total

5

estado

varchar

10

0

Y

norte

Estado: habilitado, deshabilitado

6

crear_tiempo

marca de tiempo

19

0

norte

norte

FECHA Y HORA ACTUAL

Tiempo de creación:

7

tiempo de actualizacion

marca de tiempo

19

0

norte

norte

FECHA Y HORA ACTUAL

Tiempo de actualizacion:

Tabla exam_message (mensaje de examen)

número de serie

nombre

tipo de datos

longitud

Lugares decimales

Permitir valores nulos

Clave primaria

valor por defecto

ilustrar

1

examen_mensaje_id

En t

10

0

norte

Y

ID de mensaje de examen

2

usuarios_candidatos

En t

10

0

Y

norte

0

Usuario candidato

3

Nombre del candidato

varchar

64

0

Y

norte

Nombre del candidato

4

contenido del mensaje

texto

65535

0

Y

norte

Contenido del mensaje

5

fecha_mensaje

fecha

10

0

Y

norte

Fecha del mensaje

6

examinar_estado

varchar

dieciséis

0

norte

norte

No revisado

Estado de aprobación

7

examinar_responder

varchar

dieciséis

0

Y

norte

respuesta de moderación

8

recomendar

En t

10

0

norte

norte

0

Recomendación inteligente

9

crear_tiempo

fecha y hora

19

0

norte

norte

FECHA Y HORA ACTUAL

tiempo de creación

10

tiempo de actualizacion

marca de tiempo

19

0

norte

norte

FECHA Y HORA ACTUAL

Tiempo de actualizacion

Tabla exam_question (pregunta del examen)

número de serie

nombre

tipo de datos

longitud

Lugares decimales

Permitir valores nulos

Clave primaria

valor por defecto

ilustrar

1

examen_pregunta_id

medioint

8

0

norte

Y

2

tipo

varchar

20

0

Y

norte

tipo

3

título

varchar

255

0

Y

norte

tema

4

elemento_pregunta

varchar

500

0

Y

norte

Opciones

5

respuesta

varchar

500

0

Y

norte

Respuesta de referencia

6

puntaje

doble

9

2

Y

norte

puntaje total

7

orden_pregunta

En t

10

0

Y

norte

clasificar

8

id_examen

medioint

7

0

Y

norte

el papel de prueba

9

crear_tiempo

marca de tiempo

19

0

norte

norte

FECHA Y HORA ACTUAL

Tiempo de creación:

10

tiempo de actualizacion

marca de tiempo

19

0

norte

norte

FECHA Y HORA ACTUAL

Tiempo de actualizacion:

表exam_users (考试用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

exam_users_id

int

10

0

N

Y

考试用户ID

2

candidate_name

varchar

64

0

Y

N

考生姓名

3

candidate_gender

varchar

64

0

Y

N

考生性别

4

examination_qualification

varchar

255

0

Y

N

考试资格

5

examine_state

varchar

16

0

N

N

未审核

审核状态

6

recommend

int

10

0

N

N

0

智能推荐

7

user_id

int

10

0

N

N

0

用户ID

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

hits_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

表information (资料信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

information_id

int

10

0

N

Y

资料信息ID

2

data_name

varchar

64

0

Y

N

资料名称

3

cover

varchar

255

0

Y

N

封面

4

data_type

varchar

64

0

Y

N

资料类型

5

data_label

varchar

64

0

Y

N

资料标签

6

data_attachment

varchar

255

0

Y

N

资料附件

7

details

longtext

2147483647

0

Y

N

详情介绍

8

recommend

int

10

0

N

N

0

智能推荐

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

notice_id

mediumint

8

0

N

Y

公告id:

2

title

varchar

125

0

N

N

标题:

3

content

longtext

2147483647

0

Y

N

正文:

4

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

5

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

praise_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

status

bit

1

0

N

N

1

点赞状态:1为点赞,0已取消

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

slides_id

int

10

0

N

Y

轮播图ID:

2

title

varchar

64

0

Y

N

标题:

3

content

varchar

255

0

Y

N

内容:

4

url

varchar

255

0

Y

N

链接:

5

img

varchar

255

0

Y

N

轮播图:

6

hits

int

10

0

N

N

0

点击量:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

upload_id

int

10

0

N

Y

上传ID

2

name

varchar

64

0

Y

N

文件名

3

path

varchar

255

0

Y

N

访问路径

4

file

varchar

255

0

Y

N

文件路径

5

display

varchar

255

0

Y

N

显示顺序

6

father_id

int

10

0

Y

N

0

父级ID

7

dir

varchar

255

0

Y

N

文件夹

8

type

varchar

32

0

Y

N

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_id

mediumint

8

0

N

Y

用户ID:[0,8388607]用户获取其他与用户相关的数据

2

state

smallint

5

0

N

N

1

账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

0

Y

N

所在用户组:[0,32767]决定用户身份和权限

4

login_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

上次登录时间:

5

phone

varchar

11

0

Y

N

手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

6

phone_state

smallint

5

0

N

N

0

手机认证:[0,1](0未认证|1审核中|2已认证)

7

username

varchar

16

0

N

N

用户名:[0,16]用户登录时所用的账户名称

8

nickname

varchar

16

0

Y

N

昵称:[0,16]

9

password

varchar

64

0

N

N

密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

10

email

varchar

64

0

Y

N

邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

11

email_state

smallint

5

0

N

N

0

邮箱认证:[0,1](0未认证|1审核中|2已认证)

12

avatar

varchar

255

0

Y

N

头像地址:[0,255]

13

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

表user_answer (用户答题)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_answer_id

mediumint

8

0

N

Y

2

user_id

mediumint

7

0

N

N

用户ID:[0,8388607]用户获取其他与用户相关的数据

3

exam_id

mediumint

7

0

N

N

0

考试id

4

score

double

9

2

Y

N

0.00

分数

5

answers

text

65535

0

Y

N

答案

6

score_detail

text

65535

0

Y

N

评分详情

7

objective_score

double

9

2

Y

N

0.00

客观题得分

8

subjective_score

double

9

2

Y

N

0.00

主观题得分

9

score_state

tinyint

4

0

Y

N

0

评分状态

10

nickname

varchar

255

0

Y

N

提交人

11

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

12

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

group_id

mediumint

8

0

N

Y

用户组ID:[0,8388607]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]

3

name

varchar

16

0

N

N

名称:[0,16]

4

description

varchar

255

0

Y

N

描述:[0,255]描述该用户组的特点或权限范围

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

register

smallint

5

0

Y

N

0

注册位置:

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5统详细设计

5.1登录模块的实现

将首页的左边的功能设计为用户登录的位置,所以在进行登录的地方就会显示首页。在登录后就是大众较为熟悉的位置,也就是让用户进行账号以及密码输入的样式。

当用户输入完信息并点击登录按钮时,Struts就会将用户输入的信息传递进表单并装入相应的对象之中,然后再转到相应位置进行校验。若用户名和密码框都是空的,那么系统就会不可将账号密码均设置为空值。

系统的底层设置要求账号密码不可以都是空值,将这些信息传递给相关的类中的对象方法并调用相关的信息,对于用户输入的数据进行检验。若检验结果正确会自动转到系统首页欢迎页面,如果不正确系统就会返回用户登录界面。

用户登录流程图如下所示。

5-1 用户登录流程

登录界面如下图所示。

图5-2登录界面图

登录关键代码如下所示。

/**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")

    public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

        log.info("[执行登录接口]");

        String username = data.get("username");

        String email = data.get("email");

        String phone = data.get("phone");

        String password = data.get("password");

        List resultList = null;

        QueryWrapper wrapper = new QueryWrapper<User>();

        Map<String, String> map = new HashMap<>();

        if(username != null && "".equals(username) == false){

            map.put("username", username);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }else{

            return error(30000, "账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

            return error(30000,"用户不存在");

        }

        User byUsername = (User) resultList.get(0);

        Map<String, String> groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());

            if (res==null){

                return error(30000,"用户不存在");

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

            accessToken.setUser_id(byUsername.getUserId());

            tokenService.save(accessToken);

            // 返回用户信息

            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

            user.put("token", accessToken.getToken());

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

            return error(30000, "账号或密码不正确");

        }

}

    public String select(Map<String,String> query,Map<String,String> config){

        StringBuffer sql = new StringBuffer("select ");

        sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");

        sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));

        if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){

            sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");

        }

        if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){

            sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");

        }

        if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){

            int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;

            int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;

            sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);

        }

        log.info("[{}] - 查询操作,sql: {}",table,sql);

        return sql.toString();

}

    public List selectBaseList(String select) {

        List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);

        List<E> list = new ArrayList<>();

        for (Map<String,Object> map:mapList) {

            list.add(JSON.parseObject(JSON.toJSONString(map),eClass));

        }

        return list;

}

  

 5.2注册模块的实现

系统的用户通过自行注册生成,在系统首页点击用户注册菜单,系统跳转到对应的注册页面。点击重置按钮,清空所填数据,点击注册按钮完成注册。

用户注册流程图如下所示。

图5-1 用户注册流程图

用户注册界面如下图所示。

图5-4注册界面

注册关键代码如下所示。

/**

     * 注册

     * @return

     */

    @PostMapping("register")

    public Map<String, Object> signUp(HttpServletRequest request) throws IOException {

        // 查询用户

        Map<String, String> query = new HashMap<>();

        Map<String,Object> map = service.readBody(request.getReader());

        query.put("username",String.valueOf(map.get("username")));

        List list = service.selectBaseList(service.select(query, new HashMap<>()));

        if (list.size()>0){

            return error(30000, "用户已存在");

        }

        map.put("password",service.encryption(String.valueOf(map.get("password"))));

        service.insert(map);

        return success(1);

}

    public Map<String,Object> readBody(BufferedReader reader){

        BufferedReader br = null;

        StringBuilder sb = new StringBuilder("");

        try{

            br = reader;

            String str;

            while ((str = br.readLine()) != null){

                sb.append(str);

            }

            br.close();

            String json = sb.toString();

            return JSONObject.parseObject(json, Map.class);

        }catch (IOException e){

            e.printStackTrace();

        }finally{

            if (null != br){

                try{

                    br.close();

                }catch (IOException e){

                    e.printStackTrace();

                }

            }

        }

        return null;

    }

    public void insert(Map<String,Object> body){

        E entity = JSON.parseObject(JSON.toJSONString(body),eClass);

        baseMapper.insert(entity);

        log.info("[{}] - 插入操作:{}",entity);

}

5.3资料信息收藏模块的实现

用户选择相应的资料信息收藏,通过id传参,找到id为此传参的资料信息,在收藏页提交收藏记录表单,生成收藏记录,用户在个人中心管理个人的收藏夹。

资料信息收藏界面如下图所示。

图5-6 资料信息收藏模块界面图

5.4评论模块的实现

用户点击某个资料信息进入资料详细页,点击评论按钮进入评论页,提交评论信息,成功发布评论,管理员管理用户的评论信息。

发布评论流程图如下所示。

图5-1 发布评论流程图

发布评论界面如图所示。

图5-8发布评论界面

5.5考试留言模块的实现

用户执行考试留言,并可以操作相关内容,例如查看,编辑。考试留言的添加操作是建立在资料类型信息的列表基础上,单击查资料类型信息下的考试留言链接;然后单击“考试留言”进行添加,添加成功后的信息会载入到考试留言查询列表中。

考试留言流程图如下所示。

图5-9 考试留言流程图

考试留言界面如图所示。

图5-9考试留言界面

考试留言逻辑代码如下所示。

  @RequestMapping("/get_obj")

    public Map<String, Object> obj(HttpServletRequest request) {

        List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request)));

        if (resultList.size() > 0) {

            JSONObject jsonObject = new JSONObject();

            jsonObject.put("obj",resultList.get(0));

            return success(jsonObject);

        } else {

            return success(null);

        }

}

5.6密码修改模块的实现

用户使用该网上考试系统注册完成后,用户对登录密码有修改需求时,系统也可以提供用户修改密码权限。系统中所有的操作者能够变更自己的密码信息,执行该功能首先必须要登入系统,然后选择密码变更选项以后在给定的文本框中填写初始密码和新密码来完成修改密码的操作。在填写的时候,假如两次密码填写存在差异,那么此次密码变更操作失败,下面的图片展示的就是该板块对应的工作面。

密码修改流程图如下所示。

图5-9 密码修改流程图

密码修改界面如图所示。

图5-10密码修改界面图

5.7系统公告模块的实现

管理员执行系统公告管理,并可以操作相关内容,例如添加,查看,编辑和删除。通过单击“添加系统公告”,可以通过系统公告添加界面添加详细信息并添加系统公告注释。单击查看字段级别链接以查看有关所选字段级别的信息。然后单击“提交”跳转重返到添加页面。添加成功后的信息会载入到系统公告查询列表中,管理员可进行编辑以及修改。

系统公告管理流程如下图所示。

图5-11 系统公告管理流程

系统公告界面如下图所示。

图5-12 系统公告界面

系统公告模块的实现如下图所示。

图5-13系统公告模块的实现

系统公告管理关键代码如下所示。

@RequestMapping(value = "/del")

    @Transactional

    public Map<String, Object> del(HttpServletRequest request) {

        service.delete(service.readQuery(request), service.readConfig(request));

        return success(1);

}

5.8用户管理模块的实现

用户通过注册了方可获得登录使用权限,此时选择注册用户选项,系统就会自动转到用户注册工作面,在注册该部分信息时系统会自动调用add函数,然后在给定的文本框中填写有关该用户的基础信息后选择确认即可完成注册。检索用户信息,在新增用户信息以后,在检索工具栏中填写对应的用户信息,系统就会将该用户有关的所有信息展示出来。

用户管理流程图如下所示。

图5-14 用户管理流程图

用户管理界面如下图所示。

图5-15 用户管理界面

用户管理逻辑代码如下所示。

@PostMapping("/add")

    @Transactional

    public Map<String, Object> add(HttpServletRequest request) throws IOException {

        Map<String,Object> paramMap = service.readBody(request.getReader());

        this.addMap(paramMap);

        return success(1);

}

    @Transactional

    public Map<String, Object> addMap(Map<String,Object> map){

        service.insert(map);

        return success(1);

}

5.9资料类型管理模块的实现

管理员执行资料类型管理,并可以操作相关内容,例如添加,查看,编辑和删除。通过单击“添加资料类型”,可以通过资料类型添加界面添加详细信息。单击查看字段级别链接以查看有关所选字段级别的信息。然后单击“提交”跳转重返到添加页面。添加成功后的信息会载入到资料类型查询列表中,管理员可进行编辑以及修改。

资料类型添加流程图如下所示。

图5-15 资料类型添加流程图

资料类型管理如下图所示。

图5-15 资料类型管理界面

6系统测试

系统开发的最后一个步骤就是系统测试,系统测试也是整个系统十分重要的一个环节,测试的好坏关系到产品的发展。用户对软件的质量、性能和可靠性等需求就要通过测试来实现。测试过程要必须遵循严谨性、完善性、规范性的原则,测试的主要目的就是看看在系统运行中,是否会出现bug,然后对出现的bug进行调试,直到程序完美运行。但是软件的测试只能尽可能的减少bug,理论上来说是无法达到消除bug。但是bug越少,系统出错的几率就越低,用户使用起来也更方便、更安全。

近年来,软件包含测试从现在的检验当中来看,系统接近预期目标可能出现的问题,并对这些错误做出相应的修正,假如我们不进行早期的测试错误就会延续下去,最后所做出的成品就会有很大的困难。

我们要在这个测试的过程当中找出错误。测试成软件开发的主要一部分,自从有了程序的设计那天开始,它就成为了重要的组成部分。经过统计来看,软件测试可以占据这个系统45%的工作量,而在软件开发的成本当中,对于测试成本来说它包含了很多的测试工作。每个程序测试时都会出现和遇到错误。在整个程序的开发过程当中,人为去查找错误是非常复杂和困难的,所以我们一般都会找一些测试的工具来进行测试

6.1系统测试的意义

随着现代信息的快速发展,在社会各大领域中已经都开始应用网络信息技术,在应用网络技术的同时人们也开始把软件的质量问题作为了一个重要焦点来关注,因为一个软件的好与坏它决定着这个系统在市场上的生存,所以我们必须要把软件质量来做好,这样才有一定的生存能力。对于用户来说它们首先选用的都是保证这个系统软件的质量问题,因为一个系统的软件质量决定着用户在后期上成本经济的问题。

6.2 测试方法

具体测试方法包括:黑盒测试和白盒测试。

黑盒测试又被人们称作为功能测试,通常是在程序的接口来做一些测试的方法,它一般包括对程序的功能和使用的方法来做出一些数据的接受和输出,同时还可以做出正确的输出信息,并保证与外部信息的完整性。

白盒测试通常被人们称作为结构测试,在整个程序的结构和处理当中它是由程序当中的逻辑测试和检验程序来完成一些正确的工作。

具体的功能测试它是包括:系统的适用性、准确性、安全性等功能测试。

6.3测试分析

基于网上考试系统满足相关信息的管理需求,在设计时借鉴了国内外优秀网站的优点,从界面到系统设计都保证了管理员以及用户能够方便操作。系统的主要特点和优点归纳如下:

(1)本系统用的移置性和针对性都比较高,因为针对性高可以提供更好的服务而移置性可以在多个系统上运行,更给用户带来了极大的方便。

(2)该基于网上考试系统内容全面,管理方便可以及时的全面的处理各种错误,异常,这样避免了很多因用户的马虎操作而出现的失误,其操作方便,用户界面友好,能够上网的人都可以很好的进行操作。

经过对上述的测试结果分析,所有基本功能齐全,操作简单,系统运行性能良好,系统安全可靠,能促进基于网上考试系统的发展,发展前景广阔。

结    论

本系统通过对java和Mysql数据库的简介,从硬件和软件两反面说明了基于网上考试系统的可行性,本文结论及研究成果如下:实现了java与Mysql相结合构建的基于网上考试系统,网站可以响应式展示。通过本次基于网上考试系统的研究与实现,我感到学海无涯,学习是没有终点的,而且实践出真知,只有多动手才能尽快掌握它,经验对系统的开发非常重要,经验不足,就难免会有许多考虑不周之处。比如要有美观的界面,更完善的功能,才能吸引更多的用户

由于在此之前对于java知识没有深入了解,所以从一开始就碰到许多困难,例如一开始的页面显示不规范、数据库连接有问题已经无法实现参数的传递等等,不过通过在网上寻找有关资料以及同学的帮助下最后都得到了解决,在此过程中,我不仅学到了很多知识,也提高了自己解决问题的能力,尤其是学会如何从大量的信息中筛选出所需有用的信息,同时我更加深刻的体会到了,虽然书本上的大部分知识都是有价值,正确的,但实际上每个人编程的思路和对数据处理的方法、思想都是不同的,这就要求我们一定要通过实践才能找到解决问题的方案。在此次毕业设计活动中,我不断的提高了自己,也得到了宝贵的经验,我相信这些对我以后的发展都会有很大帮助。

通过这次基于网上考试系统的开发,我参考了很多相关系统的例子,取长补短,吸取了其他系统的长处,逐步对该系统进行了完善,但是该系统还是有很多的不足之处,有待以后进一步学习。

实践证明,基于网上考试系统有着非常好的发展前景,经过测试运行,系统各项功能都十分完善,界面漂亮,使用方便,操作容易,在技术理论上已经成熟。

致    谢

大学的学习生活在这个季节将结束,但是在我的生命这仅仅只是一个逗号,我将面对的旅程的另一个的开始。通过这次毕业设计的整个开发过程,从需求分析到具体功能实现,再到最终测试和维护的理解有了很大的进步,让我对系统开发有了更深刻的认识,对我个人的实践能力和解决问题的能力,都有了很大的帮助。这是这次毕业设计最大的收获。

首先要感谢我的指导老师,他在论文写作上,给予了我各种无私的帮助,治学严谨,严格要求,使我获得了很大的收获。老师深厚的理论知识和丰富的实践经验,都深深的影响到我,在这方面,我谨表示衷心的感谢。

其次,我还要对所有的老师和同学表示感谢,他们在我学习的过程中,都积极的提供了很多帮助,无论是专业知识,还是实践操作技能,也能够让我在论文写作中,遇到的一些难题迎刃而解。

最后,对阅读和评审本论文的各位老师表示衷心的感谢!

参考文献 

[1]伍德鹏,李佩学.基于SSM框架的高职院校教学办公用品管理信息系统设计研究[J].轻工科技,2023,39(01):99-101.

[2]李亚君. 基于SSM框架的B2C电子商城系统的设计与实现[D].合肥工业大学,2022.DOI:10.27101/d.cnki.ghfgu.2022.000313.

[3]Jun Luo1,Pengcheng Cao2,Cheng Chen3. Automatic Test Paper Generation Online Examination System Based on Test Site Knowledge Map[J]. Computer Informatization and Mechanical System,2022,5(4).

[4]梁倩,文建平. 一种基于SSM框架的云笔记系统[P]. 天津市:CN115248676A,2022-10-28.

[5]曹泽翰.基于SSM框架的流体力学课程虚拟仿真实验平台设计[J].信息与电脑(理论版),2022,34(20):34-36.

[6]刘洪付,韩坤,王亮,刘栋,秦国民. 一种基于网络题库的线上考试和网上阅卷智能化管理系统[P]. 山东省:CN114693091A,2022-07-01.

[7]Li Qiuyan. Research on the Application of English Course Online Examination System Based on Face Recognition Technology[J]. Journal of Physics: Conference Series,2021,1738(1).

[8]李思怡.基于ASP.NET的网上考试系统的开发与实现[J].黄河科技学院学报,2019,21(05):73-80.DOI:10.19576/j.issn.1008-5424.2019.05.019.

[9]原莉.C语言教学网站及网上考试系统的设计与实现[J].计算机产品与流通,2019(07):235.

[10]乔俊玲.基于Struts+Hibernate+Ajax框架开发网上考试系统的设计与实现[J].电脑知识与技术,2019,15(08):61-62.DOI:10.14004/j.cnki.ckt.2019.0736.

[11], 人事管理 人事考试考务管理系统和网上报名平台上线运行. 吴海英 主编,江阴年鉴,方志出版社,2018,123,年鉴.

[12]方春露,杨文琦,陈滔等. 基于Javaweb技术广东省学生体质争优运动处方数据库和视频库的构建[C]//中国生理学会运动生理学专业委员会,北京体育大学.2018年中国生理学会运动生理学专业委员会会议暨“科技创新与运动生理学”学术研讨会论文集.2018年中国生理学会运动生理学专业委员会会议暨“科技创新与运动生理学”学术研讨会论文集,2018:161-162.

[13]李晓丽,赵丽辉.基于ASP计算机应用基础课程网上考试系统设计[J].电子技术与软件工程,2017(18):185.

[14]马浩淼.党校网上考试系统的设计与实现[J].电脑知识与技术,2017,13(06):53-55.DOI:10.14004/j.cnki.ckt.2017.0470.

[15]邱琳.网上考试系统开发及设计方式研究[J].科技创新导报,2017,14(03):121+123.DOI:10.16660/j.cnki.1674-098X.2017.03.121.

[16]宫大川. 电子商务师网上考试系统[D].吉林大学,2016.

请关注点赞+私信博主,免费领取项目源码

Supongo que te gusta

Origin blog.csdn.net/ID3461074420/article/details/132790850
Recomendado
Clasificación