Hello小伙伴们,大家好,我是楠橘星!!
今天给大家分享一下使用javafx编写的前端的 Mysql数据库课程设计 题库与试卷生成系统!废话不多说了,直接上截图,希望对大家有所帮助!(建议拿来参考不建议直接CV哦!)
代码已经开源在https://gitee.com/duan_nan/databstruct_design,有需要的同学自取!
1.系统需求分析
1-1、功能分析
通过深入细致的调查,多方面搜集资料,以及实地考察等方法,经过总结研究,
总结出了试卷生成系统的的基本的业务功能,详细如下:
- 学生信息维护:主要完成学生的学号、班级、考试信息等操作。
- 教师信息维护:主要是教师信息的添加、修改和删除等操作。
- 题库信息维护:主要完成题库中各个学科的题库的增加,删除,修改等情况。
- 学生检索:通过学生的学号来查看学生的信息。
- 教师检索:通过教师的职工号来查找教师信息。
- 试卷自动生成:学生在考试时的会随机从题库中抽取四道题,学生在作答完毕后点击提交试卷会自动记录学生的成绩并且自动更新数据库内容。
- 管理员:管理员可以管理学生,教师以及题库的信息。此三者的信息的增删改查的权利由管理员来掌握。
1-2、数据字典
数据项:
数据项名 | 数据类型 | 长度 | 别名 | 取值范围 |
---|---|---|---|---|
Id | int | 10 | 编号 | |
number | CHAR | 20 | 管理员账号 | |
password | CHAR | 30 | 管理员密码 | |
Name | CHAR | 20 | 姓名 | |
Name | CHAR | 30 | 学科名 | |
Content | mediumText | 0 | 题库内容 | |
Name | CHAR | 30 | 学生名 | |
Gender | Char | 30 | 性别 | 男,女 |
ClassRoom | CHAR | 30 | 班级 | |
Number | CHAR | 30 | 学号 | |
Password | CHAR | 30 | 密码 | |
Math_date_place | CHAR | 100 | 数学考试时间地点 | |
English_date_place | CHAR | 100 | 英语考试时间地点 | |
Chinese_date_place | CHAR | 100 | 语文考试时间地点 | |
g_Chinese | Double | 30 | 语文成绩 | |
G_Math | Double | 30 | 数学成绩 | |
G_English | Double | 30 | 英语成绩 | |
G_music | Double | 30 | 音乐成绩 | |
G_history | Double | 30 | 历史成绩 | |
G_polity | Double | 30 | 思政成绩 | |
G_computer | Double | 30 | 计算机成绩 | |
G_sum | Double | 30 | 总成绩 | |
G_avg | Double | 30 | 平均分 |
2、概念模型设计
根据前面的设计,以及相应的数据项,数据结构之间的关系,通过分类总结,可以将图书管理系统数据库实体划分为图书信息实体集、学生信息实体集、馆藏地实体集、借书卡信息实体集、缺书信息实体集,各实体集里还包含不同的实体。
每个实体定义的属性如下:
**学生:{学号,密码,姓名,性别,班级,考试地点,时间,教室}
教师:{职工号,密码,姓名,监考时间,地点,教室,学科}
题库:{学科名,题库内容}
成绩:{语文成绩,数学成绩,英语成绩,历史成绩,音乐成绩,计算机成绩,思政成绩,总成绩,平均成绩}
管理员:{职工号,密码}**
3.、逻辑设计
3-1、E-R图
学生教师 E-R图:
管理员 成绩 E-R图
学生题库 E-R图:
学生-成绩 E-R图
管理员 E-R图
3-2、 ER转化关系模型
ER图进行关系模型的转化时,应根据相应的规则进行转化,只有这样,才能尽可能的减小冗余,达到比较好的范式,使模型更加优化,通常的转换规则如下:
一对一联系 :若双方部分的参与,则将联系定义为一个新的关系,属性为参与双方的码,若一方全部参与,则将联系另一方的码作为全部参与一方的属性。一对多联系:将单方参与实体的码作为多方参与实体的属性。多对多联系:将联系定为新的关系,属性为参与双方的码。以上也就是基本的设计规则了,只要按照相应的规则转换,就能够得到所要的规范程度,得到一个良好的范式,根据得到的ER图,进行关系模式的转换。具体的关系模型如下:
学生表设计:
数据项名 | 数据类型 | 长度 | 别名 | 取值范围 | 主外键 |
---|---|---|---|---|---|
Id | int | 10 | 编号 | 主键 | |
Name | CHAR | 30 | 学生名 | ||
Gender | Char | 30 | 性别 | 男,女 | |
ClassRoom | CHAR | 30 | 班级 | ||
Number | CHAR | 30 | 学号 | ||
Password | CHAR | 30 | 密码 | ||
Math_date_place | CHAR | 100 | 数学考试时间地点 | ||
English_date_place | CHAR | 100 | 英语考试时间地点 | ||
Chinese_date_place | CHAR | 100 | 语文考试时间地点 |
教师表设计:
数据项名 | 数据类型 | 长度 | 别名 | 取值范围 | 主外键 |
---|---|---|---|---|---|
Id | int | 10 | 编号 | 主键 | |
Name | CHAR | 30 | 教师名 | ||
Gender | Char | 30 | 性别 | 男,女 | |
Number | CHAR | 30 | 学号 | ||
Password | CHAR | 30 | 密码 | ||
Phone | CHAR | 30 | 电话 | ||
Password | CHAR | 100 | 教室时间学科 |
管理员表设计:
数据项名 | 数据类型 | 长度 | 别名 | 取值范围 | 主外键 |
---|---|---|---|---|---|
Id | int | 10 | 编号 | 主键 | |
Name | CHAR | 30 | 管理员名 | ||
Number | CHAR | 30 | 管理员账号 | ||
Password | CHAR | 30 | 密码 |
成绩表设计:
数据项名 | 数据类型 | 长度 | 别名 | 取值范围 | 主外键 |
---|---|---|---|---|---|
Number | CHAR | 30 | 学号 | 外键 | |
g_Chinese | Double | 30 | 语文成绩 | ||
G_Math | Double | 30 | 数学成绩 | ||
G_English | Double | 30 | 英语成绩 | ||
G_music | Double | 30 | 音乐成绩 | ||
G_history | Double | 30 | 历史成绩 | ||
G_polity | Double | 30 | 思政成绩 | ||
G_computer | Double | 30 | 计算机成绩 | ||
G_sum | Double | 30 | 总成绩 | ||
G_avg | Double | 30 | 平均分 |
题库表设计:
数据项名 | 数据类型 | 长度 | 别名 | 取值范围 | 主外键 |
---|---|---|---|---|---|
Id | int | 10 | 编号 | 主键 | |
Name | CHAR | 30 | 学科名 | ||
Content | CHAR | 30 | 内容 |
4、界面展示
4-1、登陆模块
4-2、管理员模块
4-2-1、学生信息控制模块
4-2-2、二.教师信息控制模块
4-2-3、题库信息控制界面
4-3、题库题目修改界面
4-5、教师监考信息查看界面
4-6、学生选考界面
4-7、学生答题界面
这就是 题库与试卷生成系统 的大致思路,由于当时编程的时候水平比较低,所以很多命名都不规范,希望大家多多包涵,sql文件放在题库文件夹里面,可以直接导入。
希望我的分享可以为学习编程的同学提供一点帮助,代码已经开源在https://gitee.com/duan_nan/databstruct_design,有需要的同学自取!
我是楠橘星,期待大家的关注!
树苗如果因为怕痛而拒绝修剪,那就永远不会成材。