在线考试系统数据库设计实现分析范文.docx

上传人:b****1 文档编号:2872646 上传时间:2023-05-04 格式:DOCX 页数:38 大小:302.88KB
下载 相关 举报
在线考试系统数据库设计实现分析范文.docx_第1页
第1页 / 共38页
在线考试系统数据库设计实现分析范文.docx_第2页
第2页 / 共38页
在线考试系统数据库设计实现分析范文.docx_第3页
第3页 / 共38页
在线考试系统数据库设计实现分析范文.docx_第4页
第4页 / 共38页
在线考试系统数据库设计实现分析范文.docx_第5页
第5页 / 共38页
在线考试系统数据库设计实现分析范文.docx_第6页
第6页 / 共38页
在线考试系统数据库设计实现分析范文.docx_第7页
第7页 / 共38页
在线考试系统数据库设计实现分析范文.docx_第8页
第8页 / 共38页
在线考试系统数据库设计实现分析范文.docx_第9页
第9页 / 共38页
在线考试系统数据库设计实现分析范文.docx_第10页
第10页 / 共38页
在线考试系统数据库设计实现分析范文.docx_第11页
第11页 / 共38页
在线考试系统数据库设计实现分析范文.docx_第12页
第12页 / 共38页
在线考试系统数据库设计实现分析范文.docx_第13页
第13页 / 共38页
在线考试系统数据库设计实现分析范文.docx_第14页
第14页 / 共38页
在线考试系统数据库设计实现分析范文.docx_第15页
第15页 / 共38页
在线考试系统数据库设计实现分析范文.docx_第16页
第16页 / 共38页
在线考试系统数据库设计实现分析范文.docx_第17页
第17页 / 共38页
在线考试系统数据库设计实现分析范文.docx_第18页
第18页 / 共38页
在线考试系统数据库设计实现分析范文.docx_第19页
第19页 / 共38页
在线考试系统数据库设计实现分析范文.docx_第20页
第20页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

在线考试系统数据库设计实现分析范文.docx

《在线考试系统数据库设计实现分析范文.docx》由会员分享,可在线阅读,更多相关《在线考试系统数据库设计实现分析范文.docx(38页珍藏版)》请在冰点文库上搜索。

在线考试系统数据库设计实现分析范文.docx

在线考试系统数据库设计实现分析范文

西南财经大学

SouthwesternUniversityofFinanceandEconomics

 

课程实验报告

课程名称:

数据库

 

学生姓名:

周小钰、李佳颖

学院:

经济信息工程学院

专业:

计算机科学与技术

指导教师:

李玉荣.

 

2016年12月

1.课程设计题目与要求

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)进入管理员界面后获取管理员身份。

管理员具有对整个系统的管理权限,可以管理所有账户,管理课程,以及对选课过程控制。

(2)进入教师界面后获取教师身份。

教师有权自出题、对题库进行管理以及对学生试卷进行查询。

进入出题模块后,教师可自主命题,命题内容分为单选题和填空题。

进入改题模块后,首先判断是否已有人做题,若已存在完成题目的记录,则执行修改题目功能;若无学生完成题目的记录,则执行修改题目和答案两项功能。

进入查询模块后,教师可执行试卷、答卷以学生成绩的查询功能。

(3)进入学生考试界面后,学生可选择参加考试或成绩查询。

c.结束所有操作,退出界面。

2.1.3业务流程图

 

图1业务流程图

 

2.2概念结构设计

2.2.1步骤

a.抽象数据并设计局部视图

b.集成局部视图,得到全局概念结构

2.2.2原则

a.忠实性(设计忠实于应用的具体要求,恰当地反映现实)

b.尽可能减少冗余

c.简单性考虑

2.2.3具体实现

图2-1总ER图

 

图2-2管理员

 

图2-3选课表

 

图2-4课程信息

图2-5填空题库

 

图2-6学生

 

图2-7答卷

 

图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题库表表

图2-9ER图转关系模式

2.4数据库实施和维护

针对数据库维护部分,我们小组将及时对该系统数据库进行备份,将各用户信息保存在文件中,保证用户信息的安全性。

 

3.运行结果

登入(以管理员为例):

 

管理员管理相关表信息:

 

登入老师后出题:

 

老师修改题目:

老师查卷(生成的视图):

运行结果:

试卷提取:

 

查看相关成绩信息:

 

 

学生答题后生成的数据

 

学生查询自己的成绩(后两门暂时没有考试):

 

登陆界面:

4.源代码

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

);

ALTERTABLESC

ADDCONSTRAINTSC_FK1FOREIGNKEY

CNO

REFERENCESCOURSE

CNO

ENABLE;

ALTERTABLESC

ADDCONSTRAINTSC_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)

SCORECHAR(4)

CONSTRAINTTITLE_PKPRIMARYKEY

CNO

TITLENO

ENABLE

);

ALTERTABLETITLE

ADDCONSTRAINTTITLE_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

);

ALTERTABLEPAPER

ADDCONSTRAINTPAPER_FK1FOREIGNKEY

CNO

REFERENCESCOURSE

CNO

ONDELETECASCADEENABLE;

ALTERTABLEPAPER

ADDCONSTRAINTPAPER_FK2FOREIGNKEY

SNO

REFERENCESSTUDENT

SNO

ONDELETECASCADEENABLE;

ALTERTABLEPAPER

ADDCONSTRAINTPAPER_FK3FOREIGNKEY

CNO

TITLENO

REFERENCESTITLE

CNO

TITLENO

ONDELETECASCADEENABLE;

CREATEUSERteacer1IDENTIFIEDBY123456;

4.2存储过程

//管理员存储过程

Createorreplaceproceduremanastu(

snoinCHAR,

snameinchar,

passwordinvarchar2

Is

Begin

Insertintostudent

Values(SNO,SNAME,PASSWORD);

Commit;

End;

CALLMANASTU('4141051','赵日天','123456');

Createorreplaceproceduremanatea(

tidinCHAR,

passwordinvarchar2

Is

Begin

Insertintoteacher

Values(TID,PASSWORD);

Commit;

End;

CALLMANATEA('teacher1','123456');

Createorreplaceproceduremanacou(

cnoinCHAR,

cnameinvarchar2

Is

Begin

Insertintocourse

Values(CNO,cname);

Commit;

End;

CALLMANACOU('0001','课程1');

Createorreplaceproceduremanasc(

cnoinCHAR,

snoinchar

Is

Begin

InsertintoSC

Values(cno,sno,NULL);

Commit;

End;

CALLMANASC('0001','41410051');

 

//出题存储过程

Createorreplaceprocedureks(

Cno_inputinCHAR,

Sno_inputinchar,

Titleno_inputinchar,

Sanswer_inputinvarchar2

Is

answer1varchar2(10);

score1char(4);

Cno1char(4);

Sno1char(9);

Begin

Selectcno,snoINTOcno1,sno1fromsc

WHEREo=cno_inputandsc.sno=sno_input;

exception

whenno_data_found

thendbms_output.put_line('没有选课不能考试!

');

selectanswer,scoreINTOanswer1,score1FROMtitle

WHEREo=cno_inputANDtitle.titleno=Titleno_input;

if

Sanswer_input=answer1THEN

Insertintopaper

Values(cno_input,sno_input,titleno_input,sanswer_inut,score1);

else

Insertintopaper

Values(cno_input,sno_input,titleno_input,sanswer_inut,'0');

ENDIF;

Commit;

End;

CallKS('0001','41410051','01','B');

 

//修改题目存储过程

//修改题目

createorreplaceprocedureXGTM(

cno_inputinchar,

titleno_inputinchar,

titlecontent_inputinvarchar2

is

begin

updatetitleset

title.titlecontent=titlecontent_input

WHEREo=cno_inputANDtitle.titleno=titleno_input;

commit;

end;

//修改答案

createorreplaceprocedureXGDA(

cno_inputinchar,

titleno_inputinchar,

answer_inputinvarchar2

is

begin

updatetitleset

title.answer=answer_input

WHEREo=cno_inputANDtitle.titleno=titleno_input;

commit;

end;

//修改分数

createorreplaceprocedureXGFS(

cno_inputinchar,

titleno_inputinchar,

score_inputinchar

is

begin

updatetitleset

title.score=score_input

WHEREo=cno_inputANDtitle.titleno=titleno_input;

commit;

end;

 

//学生查卷过程

createorreplaceprocedureCJ(

cno_inputinchar,

sno_inputinchar

is

v_sqlvarchar2(1024);

begin

v_sql:

='createorreplaceVIEWPAPER_VIEW(titleno,titlecontent,answer,sanswer,gerscore)

AS

SELECT

title.titleno,title.titlecontent,title.answer,paper.sanswer,paper.getscore

FROM

title,paper

WHERE

o=oANDtitle.titleno=paper.titlenoAND

paper.sno=sno_inputANDo=cno_input

orderbytitleno';

EXECUTEIMMEDIATEv_sqlusingcno_input,sno_input;

end;

//成绩统计过程(学生考试完成点击提交时)

createorreplaceprocedureTJ(

cno_inputinchar,

sno_inputinchar)

is

totlenumber(10,0);

begin

selectSUM(GETSCORE)intototlefrompaper

WHEREpaper.CNO=cno_inputANDpaper.SNO=sno_input;

updatescsetsc.grade=totle

WHEREsc.CNO=cno_inputANDSC.SNO=sno_input;

commit;

end;

callTJ('0001','41410050');

4.3查询

//查卷(视图)

CREATEorreplaceVIEWPAPER_VIEW_41410051(titleno,titlecontent,answer,sanswer,gerscore)

ASSELECT

title.titleno,title.titlecontent,title.answer,paper.sanswer,paper.getscore

FROM

title,paper

WHERE

o=oANDtitle.titleno=paper.titlenoAND

paper.sno='41410051'

orderbytitleno;

//查卷(sqlplus)

setlinesize200pagesize999newpage;

Colanswerformata47;

SELECT

title.titleno,title.titlecontent,'正确答案是',title.answer,'你的答案是',paper.sanswer,'得分',paper.getscore

FROM

title,paper

WHERE

o=oANDtitle.titleno=paper.titlenoAND

paper.sno='41410051'

orderbytitleno;

//查看试题

SELECT

title.titleno,title.titlecontent

FROM

title

WHERE

o='0001'

orderbytitleno;

 

//查看课程考试成绩情况

Select

student.sno,student.sname,sc.grade

fromstudent,sc

whereo='0001'ANDsc.sno=student.sno;

 

//查看课程平均分

Selectavg(grade)fromsc

Whereo='0001';

 

4.4登陆设计

由于做登陆的时候分表查询用户信息一直出bug,经过搜索解决办法后决定建立一个教师学生用户表来解决问题

createtableP_USER

usernameCHAR(9),

passwordVARCHAR2(20),

从此表中只判断登陆是否成功。

4.4.1jsp页面部分

login.jsp

<%@pagecontentType="text/html"pageEncoding="UTF-8"%>

DOCTYPEhtml>

login

//localhost:

8080/loginServlet/LoginServlet"method="post">

欢迎使用在线考试系统

用户名:


密码:


Welcome.jsp

<%@pagecontentType="text/html"pageEncoding="UTF-8"%>

DOCTYPEhtml>

login

//localhost:

8080/loginServlet/LoginServlet"method="post">

欢迎使用在线考试系统

欢迎登陆!

4.4.2servlet编写

UserServlet.java

packagecom.baosight.servlet;

importjava.io.IOException;

importjava.io.PrintWriter;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importcom.baosight.bean.UserBean;

/**

*

Title:

UserServlet

*

Description:

TODO

*

Company:

*@authorzxy

*@date2016-12-26下午10:

50:

57*/

publicclassUserServletextendsHttpServlet{

publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

doPost(request,response);

}

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

throw

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

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2