英语四六级考试系统+爬虫获取试题的系统(数据库设计)的开发思路
曾经开发过的一个四六级模拟考试系统,分享一下开发的部分思路以及数据库设计
一个通过爬虫爬取到的试题聚合成在线模拟考试系统:通过JavaEE语言设计,利用网络爬虫技术Jsoup爬取网络上各大英语四六级学习网站的数据,聚合数据到本系统并以简洁的界面展示出来,为用户提供学习四六级资源的检索和模拟四六级考试的练习。
系统分为几大模块:系统管理模块、爬虫聚合试题模块、考试试题学习模块、在线模拟考试模块。其中,核心在线模拟考试和爬取聚合试题模块,爬取模块有两种聚合数据方式:第一种是统一爬取页面的听力、作文、翻译等页面,然后获取标题页面列表和超链接,再爬取标题超链接的页面主要内容 ,数据保存在Tomcat服务器硬盘上,第二种爬取方式是分类爬取试题的作文题、完形填空题、翻译题、阅读题等题目,保存到数据库表上。
框架:SpringMVC+Mybatis的web项目框架
系统流程图
注
Lucence开放源代码的全文检索引擎工具包,提供完整的查询引擎和索引引擎,在传统全文检索引擎的倒排索引的基础上,实现了分块索引,能够针对新的文件建立小文件索引,提升索引速度。
数据库设计
- 一份英语试卷只要由作文题、听力题、完形填空题、阅读题、信息匹配题、翻译题等大题以及每道大题下面有小题组成,把这些题目抽象成表:题型表、大题表、小题表、科目表
- 把试卷相关的信息抽象:试卷表、作答表(答题表)、试卷-试题中间表、
- 用户信息以及参加考试记录抽象:用户表、考试记录表
- 爬虫标志表
表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 | 时间 |
英语四六级考试系统+爬虫获取试题的系统(数据库设计)的开发思路相关推荐
- asp.net英语四六级考试报名系统
英语是我国的第一外语,基本上每一个大学生在校期间都会考试英语四六级,传统的英语考试,四六级报名都是在学校的教务处或者通过班主任进行报考,这很不方便.尤其是在现在一个互联网这么发达的时代,如果还是通过这 ...
- 河北计算机四六级报名入口,河北英语四六级考试报名
各地的英语四六级考试报名时间已经陆续出来,为了帮助考生能够更好的知道考试动态,下面由出国留学网小编为你精心准备了"2020河北英语四六级考试报名入口[提前告知]",持续关注本站将可 ...
- 长沙医学院英语四级计算机,长沙医学院2018年6月英语四六级考试报名工作的通知...
关于做好2018年6月 全国大学英语四六级考试报名工作的通知 2018年上半年全国大学英语四六级考试(以下简称"CET")定于6月16日(端午节).口语考试(以下简称"C ...
- 2023年6月17号英语四六级考试倒计时,这些考前准备事项一定要注意
2023年6月全国大学英语四六级考试将于6月17日(本周六)举行,冰雪为大家总结了四六级考前及考中注意事项,供同学们参考! 考试时间 四级考试时间:6月17日上午9:00-11:20 六级考试时间:6 ...
- 长沙医学院英语四级计算机,2018年6月长沙医学院英语四六级考试报名工作的通知...
2018年6月长沙医学院英语四六级考试报名工作的通知 2018年上半年全国大学英语四六级考试(以下简称"CET")定于6月16日(端午节).口语考试(以下简称"CET-S ...
- 长沙医学院英语四级计算机,长沙医学院2018上半年英语四六级考试报名工作的通知...
长沙医学院2018上半年英语四六级考试报名工作的通知 2018年上半年全国大学英语四六级考试(以下简称"CET")定于6月16日(端午节).口语考试(以下简称"CET-S ...
- electron 打印需要联网的吗?_英语四六级考试准考证怎么打印,需要彩打吗
成功报名2019年下半年英语四六级考试的同学,不要忘记自己的四六级准考证哦,根据各高校不同的规定,有的学校会由学校统一打印,下发到考生手中:有的学校需要考生自行打印,那么,自行打印准考证,四六级准考证 ...
- 19年英语及计算机统考时间,2019年英语四六级考试时间及考试科目【已公布】
[导语]无忧考网从全国大学英语四.六级考试(CET) - 中国教育考试网获悉,2019年英语四六级考试时间及考试科目已公布,上半年6月15日举行考试,下半年12月14日举行考试,具体详情如下: 一.上 ...
- 计算机英语4级考试时间安排,四六级考试时间安排|英语四六级考试时间2020下
原定于2020年6月13日举行的全国大学英语四六级考试时间延期并分两次举行,四六级考试时间分别为7月11日和9月19日.中公教师网小编把四六级考试时间的相关内容整理如下: 一.2020 年上半年四六级 ...
- 全国计算机四六级官网,英语四级报名入口|英语六级报名入口官网-全国大学英语四六级考试网...
相关推荐: 英语四级报名入口|英语六级报名入口官网已经发布,2020下半年全国大学英语四六级报名时间从9月23日开始,英语四级报名入口|英语六级报名入口官网为全国大学英语四.六级考试网(网址:http ...
最新文章
- 技术团队的情绪与效率
- 通过女票的淘宝历程,大白话讲解大数据各个方向的分工
- C/C++结构体struct 与结构体数组和枚举型enum的结合使用
- 计算机网络发展第二阶段 兴起于,计算机辅助开始于计算机发展第几阶段
- angular移除事件绑定事件绑定_Vue.js子组件利用事件向父组件传输数据,以及sync修饰符和双向绑定...
- ubutun 更换网络源_「ubuntu脚本1」开启ssh替换第三方源开启tab键补齐屏蔽nouveau
- 卡尔曼滤波推导思路总结
- Eureka覆盖状态
- oracle 解释计划权限,ACL的使用:主机权限规划管理--Oracle脚本
- ofdm误码率仿真代码_共享源代码之MSK仿真(1)
- I.MX6 android 获取framebuffer信息
- C语言 求平方 求开方
- java敏感词过滤算法
- 【DM】DMHS的安装部署及DM7的二节点同步
- war包的打包与解压
- python pil image_Python PIL的Image模块
- allegro怎么修改文本_allegro user preferences常见设置及说明
- java 罗马数字_JAVA,罗马数字与阿拉伯数字的互转
- html5+Css3 做一个婚纱网页
- iOS js判断移动端是否安装某款app的方法