曾经开发过的一个四六级模拟考试系统,分享一下开发的部分思路以及数据库设计

一个通过爬虫爬取到的试题聚合成在线模拟考试系统:通过JavaEE语言设计,利用网络爬虫技术Jsoup爬取网络上各大英语四六级学习网站的数据,聚合数据到本系统并以简洁的界面展示出来,为用户提供学习四六级资源的检索和模拟四六级考试的练习。
      系统分为几大模块:系统管理模块、爬虫聚合试题模块、考试试题学习模块、在线模拟考试模块。其中,核心在线模拟考试和爬取聚合试题模块,爬取模块有两种聚合数据方式:第一种是统一爬取页面的听力、作文、翻译等页面,然后获取标题页面列表和超链接,再爬取标题超链接的页面主要内容 ,数据保存在Tomcat服务器硬盘上,第二种爬取方式是分类爬取试题的作文题、完形填空题、翻译题、阅读题等题目,保存到数据库表上。

框架:SpringMVC+Mybatis的web项目框架

系统流程图


Lucence开放源代码的全文检索引擎工具包,提供完整的查询引擎和索引引擎,在传统全文检索引擎的倒排索引的基础上,实现了分块索引,能够针对新的文件建立小文件索引,提升索引速度。

数据库设计

  1. 一份英语试卷只要由作文题、听力题、完形填空题、阅读题、信息匹配题、翻译题等大题以及每道大题下面有小题组成,把这些题目抽象成表:题型表、大题表、小题表、科目表
  2. 把试卷相关的信息抽象:试卷表、作答表(答题表)、试卷-试题中间表、
  3. 用户信息以及参加考试记录抽象:用户表、考试记录表
  4. 爬虫标志表

表3-1 ANSWER作答表

字段名 类型 长度 非空 注释
A_ID NUMBER 12 True 主键(自增)
A_ANSWER VARCHAR2 2000 False 考生答案
A_RESULT NUMBER 1 False 对错
A_SCORE NUMBER 5 True 分数
A_EXAMLOG_ID NUMBER 10 True 外键(考试记录ID)
A_QUESTIONES_ID NUMBER 10 True 外键(大题ID)
A_QUESTION_ID NUMBER 10 False 外键(小题ID)

表3-2 EPAPER试卷表

字段名 类型 长度 非空 注释
EP_ID NUMBER 8 True 主键(自增)
EP_NAME VARCHAR2 90 True 试卷名称
EP_TIME NUMBER 5 True 考试时长
EP_SCORE NUMBER 5 True 总分
EP_PASS_SCORE NUMBER 5 True 合格分数
EP_CREATE_TIME TIMESTAMP 3 True 创建时间
EP_SUBJECT_ID NUMBER 6 True 外键(科目ID)
EP_CREATE_USER_ID NUMBER 10 True 外键(创建者)

表3-3 EPAPER_QUESTIONES试卷-试题中间表

字段名 类型 长度 非空 注释
EPQ_EPAPER_ID NUMBER 8 True 外键(试卷ID)
EPQ_QUESTIONES_ID NUMBER 10 True 外键(试题ID)
EPQ_QS_PRIORITY NUMBER 2 True 试题优先级

表3-4 EXAMLOG考试记录表

字段名 类型 长度 非空 注释
EL_ID NUMBER 10 True 主键(自增)
EL_ANSWER_TIME TIMESTAMP 3 True 开考时间
EL_SUBMIT_TIME TIMESTAMP 3 False 交卷时间
EL_TOTAL_SCORE NUMBER 5 True 总成绩
EL_USER_ID NUMBER 10 True 外键(用户ID)
EL_EPAPER_ID NUMBER 8 True 外键(试卷ID)

表3-6 QTYPES题型表

字段名 类型 长度 非空 注释
QT_ID NUMBER 6 True 主键(自增)
QT_NAME NVARCHAR2 30 True 题型名称
QT_DESCRIPTION NVARCHAR2 500 False 题型描述
QT_CATEGORY NVARCHAR2 30 True 题型分类
QT_OPTIONS NUMBER 2 False 题型选项

表3-7 QUESTION小题表

字段名 类型 长度 非空 注释
Q_ID NUMBER 10 True 主键(自增)
Q_TITLE VARCHAR2 4000 True 小题题目
Q_ANSWER VARCHAR2 4000 True 小题答案
Q_SCORE NUMBER 5 True 小题分值
Q_PRIORITY NUMBER 2 True 小题优先级
Q_QUESTIONES_ID NUMBER 10 True 外键(大题ID)

表3-8 QUESTIONES大题表

字段名 类型 长度 非空 注释
QS_ID NUMBER 10 True 主键(自增)
QS_DESCRIPTION VARCHAR2 4000 False 大题描述
QS_TITLE VARCHAR2 4000 True 大题题目
QS_ANSWER VARCHAR2 4000 False 大题答案
QS_SCORE NUMBER 5 True 大题分值
QS_CREATE_TIME TIMESTAMP 3 True 创建时间
QS_QTYPES_ID NUMBER 6 True 外键(题型ID)
SUBJECT_ID NUMBER 10 True 外键(科目ID)

表3-9 reptilia爬虫标志表

字段名 类型 长度 非空 注释
ID NUMBER 10 True 主键(自增)
TITLE NVARCHAR2 20 True 标题
LINK NVARCHAR2 32 True 连接
TIME TIMESTAMP 3 True 时间

英语四六级考试系统+爬虫获取试题的系统(数据库设计)的开发思路相关推荐

  1. asp.net英语四六级考试报名系统

    英语是我国的第一外语,基本上每一个大学生在校期间都会考试英语四六级,传统的英语考试,四六级报名都是在学校的教务处或者通过班主任进行报考,这很不方便.尤其是在现在一个互联网这么发达的时代,如果还是通过这 ...

  2. 河北计算机四六级报名入口,河北英语四六级考试报名

    各地的英语四六级考试报名时间已经陆续出来,为了帮助考生能够更好的知道考试动态,下面由出国留学网小编为你精心准备了"2020河北英语四六级考试报名入口[提前告知]",持续关注本站将可 ...

  3. 长沙医学院英语四级计算机,长沙医学院2018年6月英语四六级考试报名工作的通知...

    关于做好2018年6月 全国大学英语四六级考试报名工作的通知 2018年上半年全国大学英语四六级考试(以下简称"CET")定于6月16日(端午节).口语考试(以下简称"C ...

  4. 2023年6月17号英语四六级考试倒计时,这些考前准备事项一定要注意

    2023年6月全国大学英语四六级考试将于6月17日(本周六)举行,冰雪为大家总结了四六级考前及考中注意事项,供同学们参考! 考试时间 四级考试时间:6月17日上午9:00-11:20 六级考试时间:6 ...

  5. 长沙医学院英语四级计算机,2018年6月长沙医学院英语四六级考试报名工作的通知...

    2018年6月长沙医学院英语四六级考试报名工作的通知 2018年上半年全国大学英语四六级考试(以下简称"CET")定于6月16日(端午节).口语考试(以下简称"CET-S ...

  6. 长沙医学院英语四级计算机,长沙医学院2018上半年英语四六级考试报名工作的通知...

    长沙医学院2018上半年英语四六级考试报名工作的通知 2018年上半年全国大学英语四六级考试(以下简称"CET")定于6月16日(端午节).口语考试(以下简称"CET-S ...

  7. electron 打印需要联网的吗?_英语四六级考试准考证怎么打印,需要彩打吗

    成功报名2019年下半年英语四六级考试的同学,不要忘记自己的四六级准考证哦,根据各高校不同的规定,有的学校会由学校统一打印,下发到考生手中:有的学校需要考生自行打印,那么,自行打印准考证,四六级准考证 ...

  8. 19年英语及计算机统考时间,2019年英语四六级考试时间及考试科目【已公布】

    [导语]无忧考网从全国大学英语四.六级考试(CET) - 中国教育考试网获悉,2019年英语四六级考试时间及考试科目已公布,上半年6月15日举行考试,下半年12月14日举行考试,具体详情如下: 一.上 ...

  9. 计算机英语4级考试时间安排,四六级考试时间安排|英语四六级考试时间2020下

    原定于2020年6月13日举行的全国大学英语四六级考试时间延期并分两次举行,四六级考试时间分别为7月11日和9月19日.中公教师网小编把四六级考试时间的相关内容整理如下: 一.2020 年上半年四六级 ...

  10. 全国计算机四六级官网,英语四级报名入口|英语六级报名入口官网-全国大学英语四六级考试网...

    相关推荐: 英语四级报名入口|英语六级报名入口官网已经发布,2020下半年全国大学英语四六级报名时间从9月23日开始,英语四级报名入口|英语六级报名入口官网为全国大学英语四.六级考试网(网址:http ...

最新文章

  1. 技术团队的情绪与效率
  2. 通过女票的淘宝历程,大白话讲解大数据各个方向的分工
  3. C/C++结构体struct 与结构体数组和枚举型enum的结合使用
  4. 计算机网络发展第二阶段 兴起于,计算机辅助开始于计算机发展第几阶段
  5. angular移除事件绑定事件绑定_Vue.js子组件利用事件向父组件传输数据,以及sync修饰符和双向绑定...
  6. ubutun 更换网络源_「ubuntu脚本1」开启ssh替换第三方源开启tab键补齐屏蔽nouveau
  7. 卡尔曼滤波推导思路总结
  8. Eureka覆盖状态
  9. oracle 解释计划权限,ACL的使用:主机权限规划管理--Oracle脚本
  10. ofdm误码率仿真代码_共享源代码之MSK仿真(1)
  11. I.MX6 android 获取framebuffer信息
  12. C语言 求平方 求开方
  13. java敏感词过滤算法
  14. 【DM】DMHS的安装部署及DM7的二节点同步
  15. war包的打包与解压
  16. python pil image_Python PIL的Image模块
  17. allegro怎么修改文本_allegro user preferences常见设置及说明
  18. java 罗马数字_JAVA,罗马数字与阿拉伯数字的互转
  19. html5+Css3 做一个婚纱网页
  20. iOS js判断移动端是否安装某款app的方法

热门文章

  1. 根据身份证号码计算年龄和判断性别
  2. 计算摄影: 高动态范围成像
  3. 怎么下载Windows图片和传真查看器
  4. V4L2框架-control
  5. 汽车用泄露测试系统2022年全球行业分析报告
  6. 计算机科技英语写作,英语科技写作
  7. ASP.NET全套视频教程
  8. Oracle 12c CDB和PDB的切换
  9. 团队如何开会,开会准则
  10. 《活着》:永远不要相信苦难是值得的,​苦难就是苦难