Oracle大作业-考试系统
Oracle大作业-考试系统
项目概要
本项目希望搭建一个考试系统,可以支持不同考生通过准考证和密码进行登录并进行考试。考试题目支持单选题和多选题,同时可以支持不同个数的选项。
项目预览
登录

我的考试

开始答题

答题记录列表

答题记录详情

系统架构
前端:html+javascript+css(用了bootstrap的css样式)
后端:java(spring boot+jpa)接口遵循了restful标准
数据库:oracle (这不是废话吗)
数据库表结构
student表
| 字段名 | 类型 | 备注 |
|---|---|---|
| id | number(10) | id |
| id_card | varchar2(20) | 准考证号 |
| password | varchar2(32) | 加密后的密码 |
problem表
| 字段名 | 类型 | 备注 |
|---|---|---|
| id | number(10) | id |
| problem | varchar2(255) | 题目 |
| score | number(3) | 分数 |
| type | number(1) | 题目类型 |
| true_answer | varchar2(255) | 正确答案 |
answer表
| 字段名 | 类型 | 备注 |
|---|---|---|
| id | number(10) | id |
| answer | varchar2(255) | 题目 |
| problem_id | number(10) | 题目id |
examination表
| 字段名 | 类型 | 备注 |
|---|---|---|
| id | number(10) | id |
| name | varchar2(255) | 考试名称 |
examination_problem表
| 字段名 | 类型 | 备注 |
|---|---|---|
| examination_id | number(10) | 考试id |
| problem_id | number(10) | 题目id |
student_examination表
| 字段名 | 类型 | 备注 |
|---|---|---|
| student_id | number(10) | 学生id |
| examination_id | number(10) | 考试id |
submit_log表
| 字段名 | 类型 | 备注 |
|---|---|---|
| id | number(10) | id |
| create_time | datetime | 提交时间 |
| examination_id | number(10) | 考试id |
| score | number(10) | 分数 |
| student_id | number(10) | 学生id |
answer_log表
| 字段名 | 类型 | 备注 |
|---|---|---|
| id | number(10) | id |
| answer | varchar2(255) | 解答 |
| score | number(10) | 分数 |
| problem_id | number(10) | 题目id |
| submit_log_id | number(10) | 提交记录id |
项目亮点
密码加密
密码使用加盐后MD5再次加盐后MD5,可以保证不能被反破解

题目和答案分表
题目和答案分成2个表设计,可以使一个题目对应多个答案,可扩展性强


使用orm框架
本项目使用了spring boot+jpa(hibernate),这个orm框架可以节约大量的sql语句的书写,只需要定义模型后直接修改即可同步到数据库


支持多选题
本项目同时支持多选题及多选题的判分

浙公网安备 33010602011771号