在线考试系统数据库设计与实现_第1页
在线考试系统数据库设计与实现_第2页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、西南财经大学SouthwesternUniversityofFinanceandEconomics课程实验报告f91§a._%t1Bik*&.企飞课程名称:数据库学生姓名:周小钰、李佳颖学院:经济信息工程学院专业:计算机科学与技术指导教师:李玉荣2016年12月1. 课程设计题目与要求1.1数据库设计题目设计和实现一个网上在线考试系统,系统应完成以下基本的业务:a. 至少两个教师,每个教一门课程b. 每个班至少包含十名学生。c. 教师能够修改试卷的题目并模仿一名同学参加一门考试d. 教师可提取一份试卷查卷e. 教师可检查其所教班级的成绩、任一学生的成绩以及查询全班的平均成绩和

2、总成绩。f. 每一套题至少包括十道选择题g. 选择题自动阅卷,书写题人工阅卷以上很粗略描述了网上考试系统的基本要求,你们可以根据实际问题的需要,补充和细化系统的要求。本课程设计包括两个部分:数据库和用户界面(用户图形化界面基本要求就是登录加试卷内容的提取)1.2数据库设计要求a. 使用java/c语言,源程序要有适当的注释,使程序易于阅读b. 建议作出用户界面c. 学生可自动增加新功能模块2. 数据库设计过程2.1需求分析2.1.1业务范围a. 增加、删除、维护学生账号,老师账号,课程信息和选课信息b. 在线出题、出题过程可修改试题、答题、分数c. 学生若有疑问可以由老师提出自己的答卷查卷d.

3、 统计一个班的学生的成绩情况供老师分析e. 提取试题2.1.2业务流程a. 进入在线考试系统b. 通过输入账号密码判断身份,分别进入不同界面:(1)进入管理员界面后获取管理员身份。管理员具有对整个系统的管理权限,可以管理所有账户,管理课程,以及对选课过程控制。(2)进入教师界面后获取教师身份。教师有权自出题、对题库进行管理以及对学生试卷进行查询。进入出题模块后,教师可自主命题,命题内容分为单选题和填空题。进入改题模块后,首先判断是否已有人做题,若已存在完成题目的记录,则执行修改题目功能;若无学生完成题目的记录,则执行修改题目和答案两项功能。进入查询模块后,教师可执行试卷、答卷以学生成绩的查询功

4、能。(3)进入学生考试界面后,学生可选择参加考试或成绩查询。C.结束所有操作,退出界面。2.1.3业务流程图11/29判断身恃岀貶S)皿咬可g赢J|改超目内宕改瞥宾凿師|晋删|痢入哌号密码昔理揑ejas前趙向图1业务流程图株户2.2.1步骤a. 抽象数据并设计局部视图b. 集成局部视图,得到全局概念结构2.2.2原则a. 忠实性(设计忠实于应用的具体要求,恰当地反映现实)b. 尽可能减少冗余c. 简单性考虑2.2.3具体实现削*口JQJkSiii<g>-lc©毕牛ID)(<c>图2-1总ER图图2-3选课表题冃分(1(过题編昌图2-5填空题库填空题库图2-6学

5、生擁得分学生答案学生JD试题编号图2-7答卷笞卷图2-8试卷2.3逻辑结构设计2.3.1 设计目的把概念结构设计阶段设计好的概念模型转换为逻辑模型,即将基本E-R图通过转换规则转换为关系模型,然后根据优化方法得到优化的数据模型。2.3.2 具体实现将上述E-R图转换优化后得到的关系模式为:Admin(ID,password);Teacher(tlD,password);Student(sno,sname,password);Course(cno,cname);Sc(cno,sno,grade);Paper(cno,sno,titleno,sanswer,getscore);Title(cno,

6、titleno,titlecontent,answear,score);Titlel(cno,titleno,titlecontent,A,B,C,D,answear,score);Testpaper(cno,testpaperno,titleno,titlecontent);后期titlel删去,统一使用了titleO题库表表图2-9ER图转关系模式2.4数据库实施和维护针对数据库维护部分,我们小组将及时对该系统数据库进行备份,将各用户信息保存在文件中,保证用户信息的安全性。3. 运行结果登入(以管理员为例)请输入用户名:systen输人口令三连接到;OracleDatabasellg-En

7、teIJithtliePartitioninsr,0管理员管理相关表信息:;QL>callmanawW41410041','张牛杵,J123456J>罔甲完成。>QL>select*fromstudentwherEsno=J41410041J;>NObNRMEASSMORD1410B41张牛習23456登入老师后出题:J04-题目4的内容J0客容客宀沖T<内内内内c项顶顶顶11诜诜诜诜rECBQL>234因用弄ft。QL>select*fvontitleuherecno=J00B4Jandtitlena=,04J;NOTITLEN

8、OITLECONTENTNSUEflSCORE谓容容容容仲内内内内4E项项项项04目选选选选老师修改题目:SQL>callXGTH0004'04,修改后”调用完成。SQL>select*fromtitlewherecno=J0004Jandtitleno=,04f;CNOTITLENOTITLECONTENTANSUERSCORE000404修改后D5网上测试系统313/29老师查卷(生成的视图):TITLE1WIITLEC01TTE1TTA1IS7ER0SAIISER0GETSC0RE101题日1的冋容盘选项內容B选项內容U选项內容=选项內容AA5202这杲题目题目瞇项站

9、选项3诡项芒龙顷AB0303题目3的冋苔盘遠顷円苔B遠顷円苔芒遠顷円苔二遠顷円苔BB5404题目&的冋容盘选项内容日选项内容広选项内容3诰项内容AA5505题目5的HWA选项内容日选项内容:选项内容诰项内容c匚5606題日心的冋咨比选项內咨U选项內咨芒选项內咨=选项內咨cc5707题目了的冋容盘选项内容日选项内容芒选项内容3诜项内容DD5S03题目E的冋容盘选项内容B选项内容芒选项内容3选项内容DD59沪题冃耳的冋齊A选顷內齊日选顷內齊T选师内齊1选顷内齊DrR1010题目空曲内容盘选项内容E选项内容:选项内容二选项内容E二01111题目11的内苔运是一道填空题。咅亲1:薛110121

10、2题目曲内容返是一道填空题。弩案12簷案12101313题目1宜内咨返是一道填空题。答案口咎案2101414题日“住内容运是-道填空题*答索空101515题申強內容返是一道填空题。答案15咎案1510运行结果:1B容窖容>¥&日內内內里彙赵改项项朮:&昼口ti需选lit诜确的琳容容容一t旨心胪內内内内¥茱2t项顶项成转展口目选远选选确的顷一I:IF-Cf.簣容容宀f篁旳內IAI内內¥乘拄项境顶取餐尿一目lit社选述桶的W容容容朴目皆匸X.内內内內峯至4E项项项:I宴口冃选选选选确为网上测试系统试卷提取:堆顶内堂选顶内堂选顶内脊越顶内伞越项内伞

11、越项内伞选项内脊容容容容內内内内顼顼顶顶选选选选谷容容容31/29谨顶内登建顶內弯选顶内谷目的内容这是一道填空题.目12的内容这是一道填空题.查看相关成绩信息:¥SNOSNAMEGRADE4141S0514141S05O4141004941418048414100474141S0464141S345414160444141804341416042爲塑俊辰明一日大二呱央良小美三天赵王李周畀王李刘胡?5807570909075059590SQL>Sel&ctfromsc2Wheresc_cno=,0001J;!AUG(GRADE>学生答题后生成的数据100014141

12、00422000141410042300014141004Z4000141410042500014141004260001414100427000141410042S00014141004290001414150421000014141004Z1100014141004212000141410042130001414150421400014141004215000141410042慟丁關辭EEErSCQES1A50250350455B50£07A55A509A10B5111012箸案1013答孔1014薈案141015答案1510学生查询自己的成绩(后两门暂时没有考试):SQL>

13、;select*fromscuheresno=J41410051J;CNOSNOGRADE00014141005195000241410B51000341410G51登陆界面:http:/1-ocalhost;8084/WebApplic-tioril/lQgin.jsp«->0ozi:应用D网址县航日百度0海宝已天珈D淘宝廖D临世大全D欢迎使用在统考试系统欢迎使用在红考试票统欢迎登录!厂退出4.源代码4.1建表/课程表CREATETABLECOURSE(CNOCHAR(4)NOTNULL,CNAMEVARCHAR2(20)NOTNULL,CONSTRAINTCOURSE_PK

14、PRIMARYKEY(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);ALTERTABLESCADDCONSTRAINTSC_F

15、K1FOREIGNKEY(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,TITLECONTE

16、NTVARCHAR2(40),ANSWERVARCHAR2(10),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),GETSCO

17、RECHAR(4),CONSTRAINTPAPER_PKPRIMARYKEY(CNO,SNO,TITLENO)ENABLE);ALTERTABLEPAPERADDCONSTRAINTPAPER_FK1FOREIGNKEY(CNO)REFERENCESCOURSE(CNO)ONDELETECASCADEENABLE;ALTERTABLEPAPERADDCONSTRAINTPAPER_FK2FOREIGNKEY(SNO)REFERENCESSTUDENT(SNO)ONDELETECASCADEENABLE;ALTERTABLEPAPERADDCONSTRAINTPAPER_FK3FOREIGNKE

18、Y(CNO,TITLENO)REFERENCESTITLE(CNO,TITLENO)ONDELETECASCADEENABLE;CREATEUSERteacer1IDENTIFIEDBY1234564.2存储过程/管理员存储过程Createorreplaceproceduremanastu(snoinCHAR,snameinchar,passwordinvarchar2)IsBeginInsertintostudentValues(SNO,SNAME,PASSWORD);Commit;End;CALLMANASTU('4141051','赵日天','12

19、3456')Createorreplaceproceduremanatea(tidinCHAR,passwordinvarchar2)IsBeginInsertintoteacherValues(TID,PASSWORD);Commit;End;CALLMANATEA('teacher1','123456');Createorreplaceproceduremanacou(cnoinCHAR,cnameinvarchar2)IsBeginInsertintocourseValues(CNO,cname);Commit;End;CALLMANACOU(&#

20、39;0001','课程1');Createorreplaceproceduremanasc(cnoinCHAR,snoinchar)IsBeginInsertintoSCValues(cno,sno,NULL);Commit;End;CALLMANASC('0001','41410051');/出题存储过程Createorreplaceprocedureks(Cno_inputinCHAR,Sno_inputinchar,Titleno_inputinchar,Sanswer_inputinvarchar2)Isanswer1varch

21、ar2(10);score1char(4);Cno1char(4);Sno1char(9);BeginSelectcno,snoINTOcno1,sno1fromscWHEREo=cno_inputandsc.sno=sno_input;exceptionwhenno_data_foundthendbms_output.put_line('没有选课不能考试!');selectanswer,scoreINTOanswer1,score1FROMtitleWHEREo=cno_inputANDtitle.titleno=Titleno_input;ifSanswer_input=a

22、nswer1THENInsertintopaperValues(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(

23、cno_inputinchar,titleno_inputinchar,titlecontent_inputinvarchar2)isbeginupdatetitlesettitle.titlecontent=titlecontent_inputWHEREo=cno_inputANDtitle.titleno=titleno_input;commit;end;/修改答案createorreplaceprocedureXGDA(cno_inputinchar,titleno_inputinchar,answer_inputinvarchar2)isbeginupdatetitlesettitle

24、.answer=answer_inputWHEREo=cno_inputANDtitle.titleno=titleno_input;commit;end;/修改分数createorreplaceprocedureXGFS(cno_inputinchar,titleno_inputinchar,score_inputinchar)isbeginupdatetitlesettitle.score=score_inputWHEREo=cno_inputANDtitle.titleno=titleno_input;commit;end;/学生查卷过程createorreplaceprocedureC

25、J(cno_inputinchar,sno_inputinchar)isv_sqlvarchar2(1024);beginv_sql:='createorreplaceVIEWPAPER_VIEW(titleno,titlecontent,answer,sanswer,gerscore)ASSELECTtitle.titleno,title.titlecontent,title.answer,paper.sanswer,paper.getscoreFROMtitle,paperWHEREo=oANDtitle.titleno=paper.titlenoANDpaper.sno=sno_

26、inputANDo=cno_inputorderbytitleno'EXECUTEIMMEDIATEv_sqlusingcno_input,sno_input;end;/成绩统计过程(学生考试完成点击提交时)createorreplaceprocedureTJ(cno_inputinchar,sno_inputinchar)istotlenumber(10,0);beginselectSUM(GETSCORE)intototlefrompaperWHEREpaper.CNO=cno_inputANDpaper.SNO=sno_input;updatescsetsc.grade=totl

27、eWHEREsc.CNO=cno_inputANDSC.SNO=sno_input;commit;end;callTJ('0001','41410050');4.3查询/查卷(视图)CREATEorreplaceVIEWPAPER_VIEW_41410051(titleno,titlecontent,answer,sanswer,gerscore)ASSELECTtitle.titleno,title.titlecontent,title.answer,paper.sanswer,paper.getscoreFROMtitle,paperWHEREo=oANDt

28、itle.titleno=paper.titlenoANDpaper.sno='41410051'orderbytitleno;/查卷(sqlplus)setlinesize200pagesize999newpage;Colanswerformata47;SELECTtitle.titleno,title.titlecontent,'正确答案是',title.answer,'你的答案是',paper.sanswer,'得分',paper.getscoreFROMtitle,paperWHEREo=oANDtitle.titleno

29、=paper.titlenoANDpaper.sno='41410051'orderbytitleno;/查看试题SELECTtitle.titleno,title.titlecontentFROMtitleWHEREo='0001'orderbytitleno;/查看课程考试成绩情况Selectstudent.sno,student.sname,sc.gradefromstudent,sco='0001'ANDsc.sno=student.sno;/查看课程平均分Selectavg(grade)fromscWo='0001'4.

30、4登陆设计由于做登陆的时候分表查询用户信息一直出bug,经过搜索解决办法后决定建立一个教师学生用户表来解决问题createtableP_USER(usernameCHAR(9),passwordVARCHAR2(20),)从此表中只判断登陆是否成功。4.4.1jsp页面部分login.jsp<%pagecontentType="text/html"pageEncoding="UTF-8"%><!DOCTYPEhtml><html><head><metahttp-equiv="Content-

31、Type"content="text/html;charset=UTF-8"><title>login</title></head><body><formaction="http:/localhost:8080/loginServlet/LoginServlet"method="post">欢迎使用在线考试系统用户名:<inputtype="text"name二"username"/><br/>密

32、码:<inputtype二"password"name二"password"/><br/><inputtype="submit"value二"登录"/></form></body></html>Welcome.jsp<%pagecontentType="text/html"pageEncoding="UTF-8"%><!DOCTYPEhtml><html><hea

33、d><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>login</title></head><body><formaction="http:/localhost:8080/loginServlet/LoginServlet"method="post">欢迎使用在线考试系统欢迎登陆!</form></body></ht

34、ml>4.4.2 servlet编写UserServlet.javapackagecom.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.b

35、ean.UserBean;/* <p>Title:UserServlet</p>* <p>Description:TODO</p>* <p>Company:</p>* authorzxy* date2016-12-26下午10:50:57*/publicclassUserServletextendsHttpServletpublicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOExceptio

36、ndoPost(request,response);publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOExceptionStringmethod=request.getParameter("method");if("login".equals(method)/登录Stringusername=request.getParameter("username");Stringpassword=requ

37、est.getParameter("password");if(username=null|"".equals(username.trim()|password=null|"".equals(password.trim()System.out.println(“用户名或密码不能为空!");response.sendRedirect("login.jsp");return;UserBeanuserBean=newUserBean();booleanisValid=userBean.valid(usernam

38、e,password);if(isValid)System.out.println("登录成功!");request.getSession().setAttribute("username",username);response.sendRedirect("welcome.jsp");return;elseSystem.out.println(“用户名或密码错误!");response.sendRedirect("login.jsp");return;elseif("logout".e

39、quals(method)/退出登录System.out.println("退出登录!“);request.getSession().removeAttribute("username");response.sendRedirect("login.jsp");return;4.4.3javabeans编写DBAcess.javapackagecom.baosight.bean;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;impor

40、tjava.sql.SQLException;importjava.sql.Statement;/*数据库操作类* <p>Title:DBAcess</p>* <p>Description:TODO</p>* <p>Company:</p>* authorzxy* date2016-12-25下午12:40:24*/publicclassDBAcessprivateStringdriver="oracle.jdbc.driver.OracleDriver"privateStringurl="j

41、dbc:oracle:"+"thin:25:1158:orcl"privateStringusername="system"privateStringpassword="123456"privateConnectionconn;privateStatementstm;privateResultSetrs;/创建连接publicbooleancreateConn()booleanb=false;tryClass.forName(driver);/加载Oracle驱动程序conn=DriverManager.

42、getConnection(url,username,password);b=true;catch(SQLExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();/获取连接catch(ClassNotFoundExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();returnb;/查询publicvoidquery(Stringsql)trystm=conn.createStatement();rs=stm.executeQuery(sql);catch(SQLExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();/判断有无数据publicbooleannext()booleanb=false;tryif(rs.next()b=true;catch(SQLExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();returnb;/获取表字段值publicStringgetValue(Stringfield)Stringvalue=null;tryif(rs!=null)value=rs.getSt

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论