网络考试系统数据库课设示例.docx

上传人:b****5 文档编号:3270155 上传时间:2022-11-21 格式:DOCX 页数:21 大小:110.35KB
下载 相关 举报
网络考试系统数据库课设示例.docx_第1页
第1页 / 共21页
网络考试系统数据库课设示例.docx_第2页
第2页 / 共21页
网络考试系统数据库课设示例.docx_第3页
第3页 / 共21页
网络考试系统数据库课设示例.docx_第4页
第4页 / 共21页
网络考试系统数据库课设示例.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

网络考试系统数据库课设示例.docx

《网络考试系统数据库课设示例.docx》由会员分享,可在线阅读,更多相关《网络考试系统数据库课设示例.docx(21页珍藏版)》请在冰豆网上搜索。

网络考试系统数据库课设示例.docx

网络考试系统数据库课设示例

目录

第1章绪论1

第2章需求分析2

2.1功能分析2

2.2概念模型3

2.2.1对数据的要求-实体关系图3

2.2.2实体清单5

第3章数据库的设计6

3.1表的设计6

3.1.1表PaperInfo6

3.2数据存储设计14

3.2.1生成试卷编号(getNextID)14

3.2.2输出成绩(outScore)15

3.3自定义函数16

3.3.1格式函数(convStr)16

3.4触发器17

第4章主要代码实现17

附录19

总体数据流程19

总体设计22

第1章

绪论

考试是人员测评过程中不可缺少的一个重要环节。

设计科学的、合理的考试内容,采取公正的、合适的考试形式,可以全面地、客观地、评价人员的综合素质。

第2章

需求分析

功能分析

网络考试系统实施的目的是完全或部分代替现有的传统纸笔式考试或现有的基于计算机的考试系统。

它所提供的功能一定要比现有系统强大,对比现有的考试系统,网络考试系统需要实现的功能有:

题库、自动抽题、网上答题、自动判卷、考试信息归档和系统信息管理等。

下面对系统需要完成的功能进行详细分析。

1)题库

题库是按照一定的教育测量理论,在计算机系统中实现的某个学科题目的集合,是在数学模型基础上建立起来的教育测量工具,题库的核心是试题,二者是考试系统中非常重要的组成部分,其质量的高低直接影响考试系统的水平。

在设计中,对网络题库的模型、基本功能、运行环境以及试题的组织、分布结构、质量要求、参数标注、抽样测试等都有明确的规定。

题库在网络考试系统中是核心子系统,只有建立了题库,并存储了大量的题目,网络考试系统才可以正常进行。

在系统中对题库主要有如下功能需求:

1题目按照类型分类,主要有单项选择题、多项选择题、判断题;

2题目按照业务分类,每一道题都是针对具体的一业务;

3题目区分难度,将题目按照难度区分,在选题时根据难度选择不同的题目;

4添加、修改、打印、浏览题目,这是题库维护的基本功能;

5题目审核,只有经过审核的题目才可以在考试中使用。

审核只能由专家进行;

4试题状态纪录,一道试题要记录出题人、出题时间等信息。

2)自动抽题

网络考试系统要具有自动抽题功能。

在布置考试时,首先定义考试所针对的课程。

然后设置使用的题型,对每种题型选择难度分布后。

系统自动产生考试试卷及每一道题目。

3)网上答题

网络考试系统的考试、维护、管理等所有功能都是基于网络的。

考生在网上答题,在开始答题时服务器将题目以HTML页面的形式发送到客户端浏览器。

答题结束考生将答案以HTML表单的形式发送回服务器。

由服务器将试卷答案保存到数据库中。

4)自动判卷

自动阅卷功能是在考试结束后由系统自动进行客观题的评阅,无需人工干预。

评阅结果可以即时显示出来,也可根据需要设置分级用户管理。

5)考试信息归档

考试的所有信息都要进行归档处理,包括:

试卷、答案、成绩等信息。

这些信息是以后评价考生的依据。

6)系统信息管理

系统信息管理用来维护整个系统的信息,包括考生信息、考试时间、业务信息等等。

这些信息都是围绕着考试系统所设置的。

概念模型

对数据的要求-实体关系图

在分析用户对数据的要求时,使用实体关系图最能表达系统的概念模型。

整个网络考试系统中存在很多实体,而且它们之间的关系也十分复杂。

但是,为了说明用户的需求,并让用户理解系统的功能和他们在系统中所扮演的角色,我将系统抽象为四个概念上的实体,分别是考生、考试、题库和课程,他们之间存在四种关系。

这样既明确地表达了设计思路,又便于与用户进行沟通。

图2.1即为网络考试系统的实体关系图。

考试实体表示系统进行的多次考试,它是联系系统中其他实体的桥梁。

考试与考生是多对多的关系,一名考生可以参加多次考试,同时一次考试有多名考生参加。

而考试成绩就记录在它们之间的关系中。

考试实体具有考试时间这一主要属性。

 

图2.1网络考试系统实体关系图

考试是面向业务的,这就出现了他们之间的“面向”关系,考试与课程之间是多对一的关系,因为一门课程会进行多次考试。

课程编号作为课程的标识,课程名体现它的名称。

最后,题库是存储所有考试题目的数据仓库,以题目编号作为题目的唯一标识。

考试使用的试题是从题库中得到的,并且试题可以多次的使用。

这样需要有组卷这一关系来建立考试与题库之间的联系,组卷过程中生成的试卷具有编号和状态等属性。

图2.2:

试卷状态图

特别的要说明一下试卷状态这一属性。

图2.2是试卷状态图[2],生成试卷后试卷状态标记为未用状态。

在考生登陆系统进行考试时,首先是从所有标记为未使用的试卷中抽取出一套。

标记为使用状态,并在试卷上填写考生的信息为此考生唯一使用。

此过程是随机的,也就数说从空白卷子中拿出一套来填上学号和姓名。

在考试过程中考生填写的答案也会记入这套试卷,如果考试过程中出现意外,如客户机死机,网络中断等。

待故障解决,考生重新登陆系统,会调用同一套试卷继续作答。

考试结束或考生交卷后,试卷被系统标记为停用状态。

此时的试卷就像被收回一样,不能更改,只有阅卷过程中可以对得分和成绩进行更改。

而阅卷结束后,试卷变成终止状态。

此时的试卷是完全只读的,并且不再发生状态的变化。

作为存档和查阅使用。

还有一个试卷状态是作废状态。

在生成试卷时有可能生成多余的试卷,如果多余的试卷到考试结束时还无人使用,那么系统会自动标记为作废试卷。

同时如果在考试过程中发生违纪现象,考生的试卷同样会被标记为作废状态。

作废后的试卷是只读的,并且没有了应用意义,系统会作为档案保留。

(大的系统含总体数据流程与总体模块划分,见附录)

实体清单

名称

代码

产生

数字

Dbitems

dbitems

TRUE

2462

PaperContents

PaperContents

TRUE

600

PaperInfo

PaperInfo

TRUE

6

PaperSetup

PaperSetup

TRUE

30

Request

Request

TRUE

1

Studentinfo

Studentinfo

TRUE

1

SubjectInfo

SubjectInfo

TRUE

6

第3章

数据库的设计

表的设计

表PaperInfo

表PaperInfo的卡片

名称

PaperInfo

代码

PaperInfo

数据库管理系统

MicrosoftSQLServer2000

表PaperInfo的约束名称

CKT_PAPERINFO

表PaperInfo的代码预览

altertabledbo.PaperInfo

dropconstraintFK_PAPERINF_REFERENCE_STUDENTI

go

altertabledbo.PaperInfo

dropconstraintFK_PAPERINF_REFERENCE_SUBJECTI

go

altertabledbo.PaperContents

dropconstraintFK_PAPERCON_REFERENCE_PAPERINF

go

ifexists(select1

fromsysindexes

whereid=object_id('dbo.PaperInfo')

andname='_WA_Sys_Begins_34C8D9D1'

andindid>0

andindid<255)

dropindexdbo.PaperInfo._WA_Sys_Begins_34C8D9D1

go

ifexists(select1

fromsysindexes

whereid=object_id('dbo.PaperInfo')

andname='_WA_Sys_DeadPaper_34C8D9D1'

andindid>0

andindid<255)

dropindexdbo.PaperInfo._WA_Sys_DeadPaper_34C8D9D1

go

ifexists(select1

fromsysindexes

whereid=object_id('dbo.PaperInfo')

andname='_WA_Sys_MadePaper_34C8D9D1'

andindid>0

andindid<255)

dropindexdbo.PaperInfo._WA_Sys_MadePaper_34C8D9D1

go

ifexists(select1

fromsysindexes

whereid=object_id('dbo.PaperInfo')

andname='_WA_Sys_Score_34C8D9D1'

andindid>0

andindid<255)

dropindexdbo.PaperInfo._WA_Sys_Score_34C8D9D1

go

ifexists(select1

fromsysindexes

whereid=object_id('dbo.PaperInfo')

andname='_WA_Sys_State_34C8D9D1'

andindid>0

andindid<255)

dropindexdbo.PaperInfo._WA_Sys_State_34C8D9D1

go

ifexists(select1

fromsysindexes

whereid=object_id('dbo.PaperInfo')

andname='_WA_Sys_SubjectID_34C8D9D1'

andindid>0

andindid<255)

dropindexdbo.PaperInfo._WA_Sys_SubjectID_34C8D9D1

go

ifexists(select1

fromsysindexes

whereid=object_id('dbo.PaperInfo')

andname='_WA_Sys_TestTimes_34C8D9D1'

andindid>0

andindid<255)

dropindexdbo.PaperInfo._WA_Sys_TestTimes_34C8D9D1

go

ifexists(select1

fromsysindexes

whereid=object_id('dbo.PaperInfo')

andname='_WA_Sys_UniqueID_34C8D9D1'

andindid>0

andindid<255)

dropindexdbo.PaperInfo._WA_Sys_UniqueID_34C8D9D1

go

ifexists(select1

fromsysindexes

whereid=object_id('dbo.PaperInfo')

andname='_WA_Sys_Upload_34C8D9D1'

andindid>0

andindid<255)

dropindexdbo.PaperInfo._WA_Sys_Upload_34C8D9D1

go

ifexists(select1

fromsysobjects

whereid=object_id('dbo.PaperInfo')

andtype='U')

droptabledbo.PaperInfo

go

/*====================================================*/

/*Table:

PaperInfo*/

/*=====================================================*/

createtabledbo.PaperInfo(

PaperIDnvarchar(50)notnull,

SubjectIDnvarchar(10)null,

MadePaperdatetimenull,

DeadPaperdatetimenull,

Statenvarchar

(2)null,

UniqueIDnvarchar(20)null,

Beginsdatetimenull,

TestTimesnvarchar

(2)null,

Scorenvarchar(3)null,

Uploaddatetimenull,

constraintPK_PaperInfoprimarykeyclustered(PaperID)

on"PRIMARY"

go

/*===================================================*/

/*Index:

_WA_Sys_Begins_34C8D9D1*/

/*======================================================*/

createindex_WA_Sys_Begins_34C8D9D1ondbo.PaperInfo(

BeginsASC

on"PRIMARY"

go

/*======================================================*/

/*Index:

_WA_Sys_DeadPaper_34C8D9D1*/

/*======================================================*/

createindex_WA_Sys_DeadPaper_34C8D9D1ondbo.PaperInfo(

DeadPaperASC

on"PRIMARY"

go

/*=====================================================*/

/*Index:

_WA_Sys_MadePaper_34C8D9D1*/

/*=====================================================*/

createindex_WA_Sys_MadePaper_34C8D9D1ondbo.PaperInfo(

MadePaperASC

on"PRIMARY"

go

/*===================================================*/

/*Index:

_WA_Sys_Score_34C8D9D1*/

/*====================================================*/

createindex_WA_Sys_Score_34C8D9D1ondbo.PaperInfo(

ScoreASC

on"PRIMARY"

go

/*=================================================*/

/*Index:

_WA_Sys_State_34C8D9D1*/

/*=====================================================*/

createindex_WA_Sys_State_34C8D9D1ondbo.PaperInfo(

StateASC

on"PRIMARY"

go

/*=====================================================*/

/*Index:

_WA_Sys_SubjectID_34C8D9D1*/

/*=====================================================*/

createindex_WA_Sys_SubjectID_34C8D9D1ondbo.PaperInfo(

SubjectIDASC

on"PRIMARY"

go

/*======================================================*/

/*Index:

_WA_Sys_TestTimes_34C8D9D1*/

/*====================================================*/

createindex_WA_Sys_TestTimes_34C8D9D1ondbo.PaperInfo(

TestTimesASC

on"PRIMARY"

go

/*===================================================*/

/*Index:

_WA_Sys_UniqueID_34C8D9D1*/

/*======================================================*/

createindex_WA_Sys_UniqueID_34C8D9D1ondbo.PaperInfo(

UniqueIDASC

on"PRIMARY"

go

/*====================================================*/

/*Index:

_WA_Sys_Upload_34C8D9D1*/

/*======================================================*/

createindex_WA_Sys_Upload_34C8D9D1ondbo.PaperInfo(

UploadASC

on"PRIMARY"

go

altertabledbo.PaperInfo

addconstraintFK_PAPERINF_REFERENCE_STUDENTIforeignkey(UniqueID)

referencesdbo.Studentinfo(UniqueID)

go

altertabledbo.PaperInfo

addconstraintFK_PAPERINF_REFERENCE_SUBJECTIforeignkey(SubjectID)

referencesdbo.SubjectInfo(SubjectID)

go

表PaperInfo的输出参考清单

名称

代码

外键列

Reference_3

Reference_3

UniqueID

Reference_5

Reference_5

SubjectID

表PaperInfo的列清单

名称

代码

PaperID

PaperID

SubjectID

SubjectID

MadePaper

MadePaper

DeadPaper

DeadPaper

State

State

UniqueID

UniqueID

Begins

Begins

TestTimes

TestTimes

Score

Score

Upload

Upload

1)PaperInfo的列PaperID

表PaperInfo的列PaperID的卡片

名称

PaperID

代码

PaperID

数据类型

nvarchar(50)

强制

TRUE

列PaperID的依赖清单

名称

代码

类名称

ReferenceJoin

PK_PaperInfo

PK_PaperInfo

Key

列PaperID的扩充属性清单

(其他略)

数据存储设计

生成试卷编号(getNextID)

ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[getNextID]')andOBJECTPROPERTY(id,N'IsProcedure')=1)

dropprocedure[dbo].[getNextID]

GO

SETQUOTED_IDENTIFIERON

GO

SETANSI_NULLSON

GO

CREATEProceduregetNextID

@outIDvarchar(10)output

as

DECLARESysInfoCursorCURSORFOR

SELECTTestcenterCode

FROMsysInfo

OPENSysInfoCursor

declare@lsStartvarchar(4),@nextIDvarchar(6),@oldIDvarchar(6)

FETCHNEXTFROMSysInfocursorINTO@lsStart

CLOSESysInfoCursor

DEALLOCATESysInfoCursor

DeclarenextIDCursorCursorfor

SELECTNextUniqueID

FROMDataCtrl

opennextIDCursor

FETCHNEXTFROMnextIDCursorINTO@nextID

closenextIDCursor

deallocatenextIDCursor

set@oldID=@nextID

set@outId=@lsStart+@nextID

set@nextID=dbo.convStr(cast(@nextIDasinteger)+1,'000000')

updatedatactrlsetNextUniqueId=@nextIdwherenextUniqueID=@oldID

return

GO

SETQUOTED_IDENTIFIEROFF

GO

SETANSI_NULLSON

GO

输出成绩(outScore)

ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[outScore]')andOBJECTPROPERTY(id,N'IsProcedure')=1)

dropprocedure[dbo].[outScore]

GO

CREATEPROCEDURE[dbo].[outScore]AS

IFEXISTS(SELECTnameFROMsysobjects

WHEREname='

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1