1网络历年考试系统库课设示例.docx
- 文档编号:13264655
- 上传时间:2023-06-12
- 格式:DOCX
- 页数:25
- 大小:120.77KB
1网络历年考试系统库课设示例.docx
《1网络历年考试系统库课设示例.docx》由会员分享,可在线阅读,更多相关《1网络历年考试系统库课设示例.docx(25页珍藏版)》请在冰点文库上搜索。
1网络历年考试系统库课设示例
第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生成试卷编号 3.2.2输出成绩 3.3自定义函数16 3.3.1格式函数 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的扩充属性清单 (其他略> 数据存储设计 生成试卷编号 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 输出成绩 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='ls1'> DROPtablels1 IFEXISTS(SEL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 历年 考试 系统 库课设 示例