您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 在线考试系统数据库设计与实现
网上测试系统1/29西南财经大学SouthwesternUniversityofFinanceandEconomics课程实验报告课程名称:数据库学生姓名:周小钰、李佳颖学院:经济信息工程学院专业:计算机科学与技术指导教师:李玉荣.2016年12月网上测试系统2/291.课程设计题目与要求1.1数据库设计题目设计和实现一个网上在线考试系统,系统应完成以下基本的业务:a.至少两个教师,每个教一门课程b.每个班至少包含十名学生。c.教师能够修改试卷的题目并模仿一名同学参加一门考试d.教师可提取一份试卷查卷e.教师可检查其所教班级的成绩、任一学生的成绩以及查询全班的平均成绩和总成绩。f.每一套题至少包括十道选择题g.选择题自动阅卷,书写题人工阅卷以上很粗略描述了网上考试系统的基本要求,你们可以根据实际问题的需要,补充和细化系统的要求。本课程设计包括两个部分:数据库和用户界面(用户图形化界面基本要求就是登录加试卷内容的提取)1.2数据库设计要求a.使用java/c语言,源程序要有适当的注释,使程序易于阅读b.建议作出用户界面c.学生可自动增加新功能模块2.数据库设计过程2.1需求分析2.1.1业务范围a.增加、删除、维护学生账号,老师账号,课程信息和选课信息b.在线出题、出题过程可修改试题、答题、分数c.学生若有疑问可以由老师提出自己的答卷查卷d.统计一个班的学生的成绩情况供老师分析e.提取试题2.1.2业务流程a.进入在线考试系统b.通过输入账号密码判断身份,分别进入不同界面:(1)进入管理员界面后获取管理员身份。管理员具有对整个系统网上测试系统3/29的管理权限,可以管理所有账户,管理课程,以及对选课过程控制。(2)进入教师界面后获取教师身份。教师有权自出题、对题库进行管理以及对学生试卷进行查询。进入出题模块后,教师可自主命题,命题内容分为单选题和填空题。进入改题模块后,首先判断是否已有人做题,若已存在完成题目的记录,则执行修改题目功能;若无学生完成题目的记录,则执行修改题目和答案两项功能。进入查询模块后,教师可执行试卷、答卷以学生成绩的查询功能。(3)进入学生考试界面后,学生可选择参加考试或成绩查询。c.结束所有操作,退出界面。2.1.3业务流程图图1业务流程图网上测试系统4/292.2概念结构设计2.2.1步骤a.抽象数据并设计局部视图b.集成局部视图,得到全局概念结构2.2.2原则a.忠实性(设计忠实于应用的具体要求,恰当地反映现实)b.尽可能减少冗余c.简单性考虑2.2.3具体实现图2-1总ER图网上测试系统5/29图2-2管理员图2-3选课表图2-4课程信息网上测试系统6/29图2-5填空题库图2-6学生图2-7答卷网上测试系统7/29图2-8试卷2.3逻辑结构设计2.3.1设计目的把概念结构设计阶段设计好的概念模型转换为逻辑模型,即将基本E-R图通过转换规则转换为关系模型,然后根据优化方法得到优化的数据模型。2.3.2具体实现将上述E-R图转换优化后得到的关系模式为:Admin(ID,password);Teacher(tID,password);Student(sno,sname,password);Course(cno,cname);Sc(cno,sno,grade);Paper(cno,sno,titleno,sanswer,getscore);Title(cno,titleno,titlecontent,answear,score);Title1(cno,titleno,titlecontent,A,B,C,D,answear,score);Testpaper(cno,testpaperno,titleno,titlecontent);后期title1删去,统一使用了title0题库表表网上测试系统8/29图2-9ER图转关系模式2.4数据库实施和维护针对数据库维护部分,我们小组将及时对该系统数据库进行备份,将各用户信息保存在文件中,保证用户信息的安全性。3.运行结果登入(以管理员为例):网上测试系统9/29管理员管理相关表信息:登入老师后出题:老师修改题目:网上测试系统10/29老师查卷(生成的视图):运行结果:网上测试系统11/29试卷提取:查看相关成绩信息:网上测试系统12/29学生答题后生成的数据学生查询自己的成绩(后两门暂时没有考试):网上测试系统13/29登陆界面:网上测试系统14/294.源代码4.1建表//课程表CREATETABLECOURSE(CNOCHAR(4)NOTNULL,CNAMEVARCHAR2(20)NOTNULL,CONSTRAINTCOURSE_PKPRIMARYKEY(CNO)ENABLE);//创建学生信息表CREATETABLESTUDENT(SNOCHAR(9)NOTNULL,SNAMECHAR(20)NOTNULL,PASSWORDVARCHAR2(20)NOTNULL,CONSTRAINTSTUDENT_PKPRIMARYKEY(SNO)ENABLE);//创建选课表CREATETABLESC(CNOCHAR(4)NOTNULL,SNOCHAR(9)NOTNULL,GRADECHAR(4),CONSTRAINTSC_PKPRIMARYKEY(CNO,SNO)ENABLE);网上测试系统15/29ALTERTABLESCADDCONSTRAINTSC_FK1FOREIGNKEY(CNO)REFERENCESCOURSE(CNO)ENABLE;ALTERTABLESCADDCONSTRAINTSC_FK2FOREIGNKEY(SNO)REFERENCESSTUDENT(SNO)ENABLE;//老师信息表CREATETABLETEACHER(TIDCHAR(9)NOTNULL,PASSWORDVARCHAR2(20),CONSTRAINTTEACHER_PKPRIMARYKEY(TID)ENABLE);//试题信息表CREATETABLETITLE(CNOCHAR(4)NOTNULL,TITLENOCHAR(4)NOTNULL,TITLECONTENTVARCHAR2(40),ANSWERVARCHAR2(10)网上测试系统16/29,SCORECHAR(4),CONSTRAINTTITLE_PKPRIMARYKEY(CNO,TITLENO)ENABLE);ALTERTABLETITLEADDCONSTRAINTTITLE_FK1FOREIGNKEY(CNO)REFERENCESCOURSE(CNO)ONDELETECASCADEENABLE;//创建学生答题表CREATETABLEPAPER(CNOCHAR(4)NOTNULL,SNOCHAR(9)NOTNULL,TITLENOCHAR(4)NOTNULL,SANSWERVARCHAR2(10),GETSCORECHAR(4),CONSTRAINTPAPER_PKPRIMARYKEY(CNO,SNO,TITLENO)ENABLE);ALTERTABLEPAPERADDCONSTRAINTPAPER_FK1FOREIGNKEY(CNO)REFERENCESCOURSE网上测试系统17/29(CNO)ONDELETECASCADEENABLE;ALTERTABLEPAPERADDCONSTRAINTPAPER_FK2FOREIGNKEY(SNO)REFERENCESSTUDENT(SNO)ONDELETECASCADEENABLE;ALTERTABLEPAPERADDCONSTRAINTPAPER_FK3FOREIGNKEY(CNO,TITLENO)REFERENCESTITLE(CNO,TITLENO)ONDELETECASCADEENABLE;CREATEUSERteacer1IDENTIFIEDBY123456;4.2存储过程//管理员存储过程Createorreplaceproceduremanastu(snoinCHAR,snameinchar,passwordinvarchar2)IsBeginInsertintostudentValues(SNO,SNAME,PASSWORD);Commit;End;网上测试系统18/29CALLMANASTU('4141051','赵日天','123456');Createorreplaceproceduremanatea(tidinCHAR,passwordinvarchar2)IsBeginInsertintoteacherValues(TID,PASSWORD);Commit;End;CALLMANATEA('teacher1','123456');Createorreplaceproceduremanacou(cnoinCHAR,cnameinvarchar2)IsBeginInsertintocourseValues(CNO,cname);Commit;End;CALLMANACOU('0001','课程1');Createorreplaceproceduremanasc(cnoinCHAR,snoinchar)IsBeginInsertintoSCValues(cno,sno,NULL);Commit;End;CALLMANASC('0001','41410051');//出题存储过程Createorreplaceprocedureks(Cno_inputinCHAR,Sno_inputinchar,Titleno_inputinchar,网上测试系统19/29Sanswer_inputinvarchar2)Isanswer1varchar2(10);score1char(4);Cno1char(4);Sno1char(9);BeginSelectcno,snoINTOcno1,sno1fromscWHEREsc.cno=cno_inputandsc.sno=sno_input;exceptionwhenno_data_foundthendbms_output.put_line('没有选课不能考试!');selectanswer,scoreINTOanswer1,score1FROMtitleWHEREtitle.cno=cno_inputANDtitle.titleno=Titleno_input;ifSanswer_input=answer1THENInsertintopaperValues(cno_input,sno_input,titleno_input,sanswer_inut,score1);elseInsertintopaperValues(cno_input,sno_input,titleno_input,sanswer_inut,'0');ENDIF;Commit;End;CallKS('0001','41410051','01','B');//修改题目存储过程//修改题目createorreplaceprocedureXGTM(cno_inputinchar,titleno_inputinchar,titlecontent_inputinvarchar2)isbeginupdatetitlesettitle.titlecontent=titlecontent_inputWHEREtitle.cno=cno_inputANDtitle.titleno=titleno_input;网上测试系统20/29commit;end;//修改答案createorreplaceprocedureXGDA(cno_inputinchar,titleno_inputinchar,answer_inputinvarchar2)isbeginupdatetitlesettitle.answer=answer_inputWHEREtitle.cno=cno_inputANDtitle.titleno=titleno_input;commit;end
本文标题:在线考试系统数据库设计与实现
链接地址:https://www.777doc.com/doc-4918397 .html