试题库管理系统–数据库设计

试题库管理系统–数据库设计一、概要设计1.1背景和意义目前,许多高校绝大多数课程还采用考教统一的模式来完成教学过程,这种传统的考试模式在教学到实施考试的过程带有很大的主观随意性和不规范性。另外随着各高校近年来学生规模的扩大,教学任务日益繁重,教师的工作量相应的不断增加。迫切需要计算机辅助教学系统来打破这种传统的教学模式,减轻教师的工作负担,提高教学质量。因此,本文研究设计了一个试题库管理系统,来解决和缓解高校课程

大家好,又见面了,我是你们的朋友全栈君。

链接:https://pan.baidu.com/s/1ilMGCA_n1GPDk3O8k7w7Gg 
提取码:m0ke 
复制这段内容后打开百度网盘手机App,操作更方便哦

一、概要设计

1.1 背景和意义

    目前,许多高校绝大多数课程还采用考教统一的模式来完成教学过程,这种传统的考试模式在教学到实施考试的过程带有很大的主观随意性和不规范性。另外随着各高校近年来学生规模的扩大,教学任务日益繁重,教师的工作量相应的不断增加。迫切需要计算机辅助教学系统来打破这种传统的教学模式,减轻教师的工作负担,提高教学质量。因此,本文研究设计了一个试题库管理系统,来解决和缓解高校课程教学中现存的问题,提高教学质量和考试效果,减轻教师工作压力。试题库管理系统可辅助教师对所教科目的各种试题的题型、难度等相关资料进行保存、查询等信息管理;并在需要对学生进行测验、评估的时候,从题库中抽取出相应要求的题目,组成一套试卷。 

    本文首先简要介绍了开发试题库管理系统的可行性分析,系统的需求分析和总体设计,然后主要针对系统的设计、组成、用户界面设计、程序设计进行了详细分析,并对系统部分关键性代码进行了讲解,同时对一般系统软件设计的基本思想及工作流程给出了方法技巧。首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。

 

1.2 内容和要求

功能要求

1.教师登录信息管理(教师编号、教师名、所属专业号)

2.信息管理(试题类型、试题难度、试题科目号)

3.试题的增、删、改、查、分类等功能

4.试题专业信息管理(专业号、专业名)

5.试卷信息管理(科目号、题型号、时间、出题教师号)

6.视图查看各专业题型的数量,各科目题型数量

7.数据库相关表之间的参照完整性约束

 

二、需求分析

2.1系统调查

  对现行的试题库管理业务进行了详细的调查和研究是了解系统需求和进行系统分析和设计的重要基础工作,因此要对我们的试题库管理工作进行全面的细致的调查研究。首先与相关的老师进行了交流和沟通,了解他们对试题库管理的看法,看看有没有什么新的要求,在这个基础上,结合自身所掌握的知识水平,量力而行开发相应的试题库管理系统。

   在调查中我们可以发现,高校的试题库是极其庞大的,如果没有一个智能的系统将人们从手工阶段解放出来,那么一个庞大的、完整的试题库是无法有效运行的,甚至出题的老师也无法有效、准确地在试题库中抽取自己所需要的试题,这等于说是一个没有实际运用价值的试题库。所以说,他们对希望有这样的一个可以详细地表示试题属性的这样的一个试题库。那么今天我们就围绕着这样的一个目标展开我们的工作。

 

2.2 用户需求

    要设计一个性能良好的管理系统,明确用户的应用环境对系统的要求是首要的和基本的。本系统从以下四个方面对用户需求进行了分析:

1) .用户的需求信息:出题老师可以看到题目所属的类型和题目所考察的内容以及试题的分值和难度等级。当然这个权限也给管理员和系主任。

2) 用户的处理要求: 教师可以对试题库进行插入和删除操作,出题老师可以凭借自己自定义的选题要求在试题库中选择自己需求的试题。

3)对系统的适应性、通用性要求: 要求系统不仅能提供一门课程的试题库管理,还要综合多么学科进行管理,建立一个高效的试题库管理系统。

4)对系统的安全性要求,要求进入系统必须口令校验。

 

2.3开发技术

开发工具:Microsoft SQL Server 2012

开发语言:SQL

开发技术:数据库开发技术

面向对象:需求者

 

2.4 系统主要功能

试题库管理系统--数据库设计

 

 

三、E-R图

 

各个实体的E-R图如下所示:

 

 

试题库管理系统--数据库设计

试题库管理系统--数据库设计

试题库管理系统--数据库设计

 

试题库管理系统--数据库设计

 

试题库管理系统--数据库设计

 

试题库管理系统--数据库设计

 

试题库管理系统--数据库设计

试题库管理系统--数据库设计

试题库管理系统--数据库设计

 

 

四、逻辑结构设计

4.1 逻辑转换

根据上节中的E-R图可以将系统中的概念模型转换为具体的表(即关系)结构,共分为8个关系,详细信息如下所示:

 

专业专业号、专业名)

教师教师工号、教师名、专业号

科目科目号、科目名、专业号

题型题号、类型、难度、科目号、教师工号

设计题题号题型号、内容、答案)

选择题题号题型号、内容、选项1、选项2、选项3、选项4、答案)

判断题题号题型号、内容、答案)

试卷试卷号、科目号、时间、教师工号、内容)

4.2细化表结构

为方便,根据上述文字描述,用英文简写为表和列取名,确定列的数据类型及必要的约束规则,给出如下所示数据库表的基本结构及说明:

(1).专业信息表

列名

说明

数据类型

约束

Specialty_id

专业号

char(4)

not null  primary key

Specialty_name

专业名

varchar(10)

not null unique

 

(2) .教师信息表

列名

说明

数据类型

约束

Teacher_id

老师编号

char(8)

not null  primary key

Teacher_name

教师名

varchar(10)

not null

Teacher_Specialty

所属专业号

char(4)

not null

foreign key

 

3.科目信息表

列名

说明

数据类型

约束

Course_id

科目编号

char(10)

not null

primary key

Course_name

科目名

varchar(10)

not null

Course_Specialty

所属专业号

char(4)

not null

foreign key

primary key

 

 

 (4).题型信息表

列名

说明

数据类型

约束

Question_id

试题号

int

not null IDENTITY(1, 1) primary key

Question_name

试题类型

varchar(10)

not null

Question_level

试题难度

varchar(4)

not null default ‘简单

Question_Course

所属科目号

char(10)

not null

Question_Teacher

教师号

char(8)

not null

 

(5).设计题信息表

列名

说明

数据类型

约束

Design_id

试题号

tinyint

not null IDENTITY(1, 1) primary key

Design_Question

题型号

int

not null

foreign key

Design_Info

内容

text

not null

Design_answ

答案

text

not null

 

(6).选择题信息表

列名

说明

数据类型

约束

ChoiceQst_id

试题号

tinyint

not null IDENTITY(1, 1) primary key

ChoiceQst_Question

题型号

int

not null

foreign key

ChoiceQst_Info

内容

text

not null

ChoiceQst_OP1

操作1

text

not null

ChoiceQst_OP2

操作2

text

not null

ChoiceQst_OP3

操作3

text

not null

ChoiceQst_OP4

操作4

text

not null

ChoiceQst_answ

答案

char

not null

 

7.判断题信息表

列名

说明

数据类型

约束

TrueOrFalse_id

试题号

tinyint

 not null IDENTITY(1, 1) primary key

TrueOrFalse_Question

题型号

int

not null

foreign key

TrueOrFalse_Info

内容

text

not null

TrueOrFalse_answ

答案

char

not null

 

8.试卷信息表

列名

说明

数据类型

约束

Paper_id

试卷号

tinyint

not null IDENTITY(1, 1) primary key

Paper_Course

科目号

char(10)

not null

Paper_madedate

时间

datetime

not null

Paper_teacher

出题教师号

char(8)

not null

foreign key

Paper_Info

内容

text

not null

 

 

五.数据库设计

 

 

5.1 创建表

(1).Specialty专业信息表

试题库管理系统--数据库设计

 

(2).教师信息表

试题库管理系统--数据库设计

 

(3).科目信息表

试题库管理系统--数据库设计

 

 

 

(4).题型信息表

试题库管理系统--数据库设计

 

 

 

(5) .设计题信息表

试题库管理系统--数据库设计

 

 

 

(6) .选择题信息表

试题库管理系统--数据库设计

 

(7) .判断题信息表

试题库管理系统--数据库设计

 

(8) .试卷信息表

试题库管理系统--数据库设计

 

 

 

5.2 创建必要视图

 

1.创建试题科目视图

试题库管理系统--数据库设计

 

 

 

(2).设计题视图

试题库管理系统--数据库设计

 

 

 

3.选择题视图

试题库管理系统--数据库设计

 

 

 

(4).判断题视图

试题库管理系统--数据库设计

 

 

六、总结

 

 

经过一周的设计和开发,试题库管理系统基本开发完毕。其功能基本符合学校管理者需求,

能够完成各个专业各门学科的试题录入,根据要求自动成卷等多方面的功能。

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149143.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【SpringBoot】43、SpringBoot中整合RabbitMQ实现延时队列(延时插件篇)「建议收藏」

    【SpringBoot】43、SpringBoot中整合RabbitMQ实现延时队列(延时插件篇)「建议收藏」一、介绍1、什么是延时队列?延时队列即就是放置在该队列里面的消息是不需要立即消费的,而是等待一段时间之后取出消费2、适用场景(1)商城订单超时未支付,取消订单(2)使用权限到期前十分钟提醒用户(3)收益项目,投入后一段时间后产生收益二、实现方式从以上场景中,我们可以看出,延时队列的主要功能就是在指定的时间之后做指定的事情,那么,我们思考有哪些工具我们可以使用?1、Redis监听过期Key可以参考我的博客【SpringBoot】三十五、SpringBoot整合Redis监听Ke

    2022年9月28日
    4
  • 数字证书原理,公钥私钥加密原理 – 因为这个太重要了[通俗易懂]

    文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用。接着对数字证书做一个详细的解释,并讨论一下windows中数字证书的管理,最后演示使用makecert生成数字证书。如果发现文中有错误的地方,或者有什么地方说得不够清楚,欢迎指出!1、基础知识这部分内容主要解释一些概念和术语,最好是先理解这…

    2022年4月11日
    37
  • poj1050最大子矩阵和

    poj1050最大子矩阵和

    2022年2月6日
    39
  • 报错415怎么解决_服务器请求415

    报错415怎么解决_服务器请求415415错误

    2025年6月19日
    1
  • hashMap,hashTable,hashSet,TreeMap的区别

    hashMap,hashTable,hashSet,TreeMap的区别

    2022年3月1日
    57
  • Delphi教程推荐

    Delphi教程推荐
    非常适宜Delphi初学者。选择Delphi开发同学的眼光是不错的,由于使用Delphi开发应用软件可以提高编译的效率,前提是你要好好学习Delphi教程,对你以后的开展肯定有很大帮助的。  Delphi(Delphi培训)是Borland公司研制的新一代可视化开发工具,它应用范围非常广,无论是Windows系统还是LINUX系统上都能完美运行。  书名:《Delphi2005程序设计教程》  作/译者:刘瑞新  出版社:机械工业出版社  出版日期:2005年07月  内容提要 

    2022年6月30日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号