Main function design: user management, role management, discipline management, examinee management, test questions, exams, test paper management, score statistics, and student end exams and scores
Main technologies: Java, spring MVC, mybatis, mysql, tomcat, jquery, JavaScript, html, css, jsp, log4j and other common basic technologies.
Taking the Internet as the platform, this paper studies the design and development of Web-based examination system, including system requirement analysis, system function design and database design. This paper focuses on the design of user registration module, user login module, online examination module, question bank management module, test paper management module, student management module, answer management module and score management module.
User login, registration and click to jump to the administrator background login design
User registration:
Main functions of student terminal after login:
The main functions can be used to view my test, click in the existing test to participate in the test, view the participated test, click to enter the test paper review and other functions, modify the password and view and modify personal information. See the following figure for details
Student answer module
The main function design of administrator background: user management, role management, discipline management, examinee management, test question management, test paper management, score statistics, etc
datasource.connection.driver_class=com.mysql.jdbc.Driver datasource.connection.url=jdbc:mysql://localhost:3306/db_online_exam?useUnicode=true&characterEncoding=utf-8 datasource.connection.username=root datasource.connection.password=123456 #The minimum number of connections maintained by the connection pool, default: 3 (recommended) datasource.connection.minPoolSize=3 #The maximum number of connections in the connection pool. If the total number of connections exceeds this value when obtaining new connections, new connections will not be obtained, but wait for other connections to be released. Therefore, this value may be designed to be very large. Default: 15 (recommended) datasource.connection.maxPoolSize=15 #The maximum idle time of the connection. If it exceeds this time and a database connection has not been used, the connection will be disconnected. If 0, the connection will never be disconnected, that is, the connection will be recycled. Default: 0 unit s (recommended) datasource.connection.maxIdleTime=0 #The number of new database connections created by the connection pool at one time when no idle connections are available, default: 3 (recommended) datasource.connection.acquireIncrement=3 #The total number of preparedstatements cached by the Connection pool for the data source. Since the PreparedStatement belongs to a single Connection, this number should be calculated by multiplying the average number of connections in the application by the average PreparedStatement of each Connection. At the same time, the configuration of maxStatementsPerConnection is invalid. Default: 0 (not recommended) datasource.connection.maxStatements=0 #The Connection pool caches the number of preparedstatements for a single Connection of the data source. This configuration is more meaningful than maxStatements because the service object it caches is a single data Connection. If it is set properly, it can certainly improve the performance. Do not cache when it is 0. Default: 0 (as the case may be) datasource.connection.maxStatementsPerConnection=0 #Number of connections created during connection pool initialization, default: 3 (recommended) datasource.connection.initialPoolSize=3 #Used to configure the interval between testing idle connections. The test method is one of the above two methods, which can be used to solve the problem of disconnection of MySQL for 8 hours. Because it ensures that the connection pool will test idle connections every certain time, so as to ensure that effective idle connections can access the database every certain time, breaking the state of no session in MySQL 8 hours. 0 does not test. Default: 0 (recommended) datasource.connection.idleConnectionTestPeriod=0 #The number of times the connection pool retries when it fails to obtain a new connection. If it is less than or equal to 0, it will retry indefinitely until the connection is successful. Default: 30 (recommended) datasource.connection.acquireRetryAttempts=30 #If true, the data source is automatically closed when connection acquisition fails, unless the application is restarted. So generally not. Default: false (not recommended) datasource.connection.breakAfterAcquireFailure=false #High performance consumption. If true, the getConnection will be tested every time. In order to improve performance, try not to use it. Default: false (not recommended) datasource.connection.testConnectionOnCheckout=false #Configure the waiting time for the application getConnection when all connections in the connection pool are used up. If it is 0, wait indefinitely until another connection is released or a new connection is created. If it is not 0, SQLException will be thrown if no connection is obtained when the time expires. In fact, it is acquirertryatempts * acquirertrydedelay. Default: 0 (duplicate with the above two, select both of them) datasource.connection.checkoutTimeout=30000 #If true, test the validity of the connection when it is close d. Default: false (not recommended) datasource.connection.testConnectionOnCheckin=false #Configure a table name. The connection pool uses its own test sql statement to test the database connection on the empty table according to the table name. This table can only be used by c3p0 and cannot be operated by users. Default: null (not recommended) datasource.connection.automaticTestTable=c3p0TestTable #The interval between when the connection pool gets new connections. Default: 1000 unit ms (recommended) datasource.connection.acquireRetryDelay=1000 #When it is 0, all connections must be closed in the application. If it is not 0, the Connection is forced to be recycled after the set time. Therefore, it must be set carefully to ensure that all database operations can be completed before recycling. This restriction is not very applicable to reduce the situation that the Connection is not closed. Manual shutdown is recommended. Default: 0 unit s (not recommended) datasource.connection.unreturnedConnectionTimeout=0 #This configuration is mainly used to quickly reduce the load of the connection pool. For example, the number of connections in the connection pool creates a lot of data connections because of a data access peak, but the number of database connections required in the later time period is very small and needs to be released quickly, which must be less than maxIdleTime. In fact, there is no need to configure this. maxIdleTime has been configured. Default: 0 unit s (not recommended) datasource.connection.maxIdleTimeExcessConnections=0 #Configure the connection lifetime. Connections beyond this time will be automatically disconnected and discarded by the connection pool. Of course, the connection in use will not be disconnected immediately, but wait for it to close and then disconnect. When it is configured as 0, the lifetime of the connection will not be limited. Default: 0 unit s (not recommended) datasource.connection.maxConnectionAge=0
Role menu edit permissions
Discipline management and addition:
Candidate management, each module has a corresponding CRUD operation....
Test question management: you can CRUD the test questions and import the test questions according to the template
Examination paper management: design examination papers, time verification and subject selection, etc
View student answers and scores