ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:689.80KB ,
资源ID:5912356      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/5912356.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(在线考试系统数据库设计与实现.docx)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

在线考试系统数据库设计与实现.docx

1、网上测试系统 西南财经大学 Southwestern University of Finance and Economics 课程实验报告 课程名称: 数据库 学生姓名: 周小钰、李佳颖 学 院: 经济信息工程学院 专 业: 计算机科学与技术 指导教师: 李 玉 荣 . 2016年 12月 1. 课程设计题目与要求 1.1数据库设计题目 设计和实现一个网上在线考试系统,系统应完

2、成以下基本的业务: a. 至少两个教师,每个教一门课程 b. 每个班至少包含十名学生。 c. 教师能够修改试卷的题目并模仿一名同学参加一门考试 d. 教师可提取一份试卷查卷 e. 教师可检查其所教班级的成绩、任一学生的成绩以及查询全班的平均成绩和总成绩。 f. 每一套题至少包括十道选择题 g. 选择题自动阅卷,书写题人工阅卷 以上很粗略描述了网上考试系统的基本要求,你们可以根据实际问题的需要,补充和细化系统的要求。 本课程设计包括两个部分:数据库和用户界面(用户图形化界面基本要求就是登录加试卷内容的提取) 1.2数据库设计要求 a.使用java/c语言,

3、源程序要有适当的注释,使程序易于阅读 b.建议作出用户界面 c.学生可自动增加新功能模块 2. 数据库设计过程 2.1需求分析 2.1.1业务范围 a.增加、删除、维护学生账号,老师账号,课程信息和选课信息 b.在线出题、出题过程可修改试题、答题、分数 c.学生若有疑问可以由老师提出自己的答卷查卷 d.统计一个班的学生的成绩情况供老师分析 e.提取试题 2.1.2业务流程 a.进入在线考试系统 b.通过输入账号密码判断身份,分别进入不同界面: (1)进入管理员界面后获取管理员身份。管理员具有对整个系统的管理权限,可以管理所有账户,管理课程,以及对选课过程控

4、制。 (2)进入教师界面后获取教师身份。教师有权自出题、对题库进行管理以及对学生试卷进行查询。 进入出题模块后,教师可自主命题,命题内容分为单选题和填空题。 进入改题模块后,首先判断是否已有人做题,若已存在完成题目的记录,则执行修改题目功能;若无学生完成题目的记录,则执行修改题目和答案两项功能。 进入查询模块后,教师可执行试卷、答卷以学生成绩的查询功能。 (3)进入学生考试界面后,学生可选择参加考试或成绩查询。 c.结束所有操作,退出界面。 2.1.3业务流程图 图1 业务流程图 2.2概念结构设计 2.

5、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设计目的 把概念结构设计阶段设计好的概念模型转换为逻辑模

6、型,即将基本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

7、cno,titleno,titlecontent,A,B,C,D,answear,score); Testpaper(cno,testpaperno,titleno,titlecontent); 后期title1删去,统一使用了title0题库表表 图2-9 ER图转关系模式 2.4数据库实施和维护 针对数据库维护部分,我们小组将及时对该系统数据库进行备份,将各用户信息保存在文件中,保证用户信息的安全性。 3. 运行结果 登入(以管理员为例): 管理员管理相关表信息: 登入老师后出题: 老师修改题目:

8、 老师查卷(生成的视图): 运行结果: 试卷提取: 查看相关成绩信息: 学生答题后生成的数据 学生查询自己的成绩(后两门暂时没有考试): 登陆界面: 4. 源代码 4.1建表 //课程表 CREATE TABLE COURSE ( CNO CHAR(4) NOT NULL , CNAME VARCHAR2(20) NOT NULL , CONSTRAINT COURSE_PK PRIMARY KEY ( CNO ) EN

9、ABLE ); //创建学生信息表 CREATE TABLE STUDENT ( SNO CHAR(9) NOT NULL , SNAME CHAR(20) NOT NULL , PASSWORD VARCHAR2(20) NOT NULL , CONSTRAINT STUDENT_PK PRIMARY KEY ( SNO ) ENABLE ); //创建选课表 CREATE TABLE SC ( CNO CHAR(4) NOT NULL , SNO CHAR(9) NOT NULL , GRA

10、DE CHAR(4) , CONSTRAINT SC_PK PRIMARY KEY ( CNO , SNO ) ENABLE ); ALTER TABLE SC ADD CONSTRAINT SC_FK1 FOREIGN KEY ( CNO ) REFERENCES COURSE ( CNO ) ENABLE; ALTER TABLE SC ADD CONSTRAINT SC_FK2 FOREIGN KEY ( SNO ) REFERENCES STUDENT ( SNO )

11、 ENABLE; //老师信息表 CREATE TABLE TEACHER ( TID CHAR(9) NOT NULL , PASSWORD VARCHAR2(20) , CONSTRAINT TEACHER_PK PRIMARY KEY ( TID ) ENABLE ); //试题信息表 CREATE TABLE TITLE ( CNO CHAR(4) NOT NULL , TITLENO CHAR(4) NOT NULL , TITLECONTENT VARCHAR2(40) , AN

12、SWER VARCHAR2(10) , SCORE CHAR(4) , CONSTRAINT TITLE_PK PRIMARY KEY ( CNO , TITLENO ) ENABLE ); ALTER TABLE TITLE ADD CONSTRAINT TITLE_FK1 FOREIGN KEY ( CNO ) REFERENCES COURSE ( CNO ) ON DELETE CASCADE ENABLE; //创建学生答题表 CREATE TABLE PAPER ( CNO

13、 CHAR(4) NOT NULL , SNO CHAR(9) NOT NULL , TITLENO CHAR(4) NOT NULL , SANSWER VARCHAR2(10) , GETSCORE CHAR(4) , CONSTRAINT PAPER_PK PRIMARY KEY ( CNO , SNO , TITLENO ) ENABLE ); ALTER TABLE PAPER ADD CONSTRAINT PAPER_FK1 FOREIGN KEY ( CNO ) REFERENCES C

14、OURSE ( CNO ) ON DELETE CASCADE ENABLE; ALTER TABLE PAPER ADD CONSTRAINT PAPER_FK2 FOREIGN KEY ( SNO ) REFERENCES STUDENT ( SNO ) ON DELETE CASCADE ENABLE; ALTER TABLE PAPER ADD CONSTRAINT PAPER_FK3 FOREIGN KEY ( CNO , TITLENO ) REFERENCES TITLE ( CNO , TI

15、TLENO ) ON DELETE CASCADE ENABLE; CREATE USER teacer1 IDENTIFIED BY 123456 ; 4.2存储过程 //管理员存储过程 Create or replace procedure manastu( sno in CHAR, sname in char, password in varchar2 ) Is Begin Insert into student Values(SNO, SNAME, PASSWORD); Commit; End; CALL MANASTU ('4141051','

16、赵日天','123456'); Create or replace procedure manatea( tid in CHAR, password in varchar2 ) Is Begin Insert into teacher Values(TID, PASSWORD); Commit; End; CALL MANATEA ('teacher1','123456'); Create or replace procedure manacou( cno in CHAR, cname in varchar2 ) Is Begin Insert in

17、to course Values(CNO, cname); Commit; End; CALL MANACOU ('0001','课程1'); Create or replace procedure manasc( cno in CHAR, sno in char ) Is Begin Insert into SC Values(cno, sno,NULL); Commit; End; CALL MANASC ('0001','41410051'); //出题存储过程 Create or replace procedure ks( Cno_inp

18、ut in CHAR, Sno_input in char, Titleno_input in char, Sanswer_input in varchar2 ) Is answer1 varchar2(10); score1 char(4); Cno1 char(4); Sno1 char(9); Begin Select cno,sno INTO cno1,sno1 from sc WHERE o=cno_input and sc.sno = sno_input; exception when no_data_found then dbms_outpu

19、t.put_line('没有选课不能考试!'); select answer,score INTO answer1,score1 FROM title WHERE o=cno_input AND title.titleno=Titleno_input; if Sanswer_input = answer1 THEN Insert into paper Values(cno_input,sno_input,titleno_input,sanswer_inut,score1); else Insert into paper Values(cno_input

20、sno_input,titleno_input,sanswer_inut,'0'); END IF; Commit; End; Call KS('0001','41410051','01','B'); //修改题目存储过程 //修改题目 create or replace procedure XGTM( cno_input in char, titleno_input in char, titlecontent_input in varchar2 ) is begin update title set title.titleconte

21、nt = titlecontent_input WHERE o = cno_input AND title.titleno = titleno_input; commit; end; //修改答案 create or replace procedure XGDA( cno_input in char, titleno_input in char, answer_input in varchar2 ) is begin update title set title.answer = answer_input WHERE o = cno_input AN

22、D title.titleno = titleno_input; commit; end; //修改分数 create or replace procedure XGFS( cno_input in char, titleno_input in char, score_input in char ) is begin update title set title.score = score_input WHERE o = cno_input AND title.titleno = titleno_input; commit; end; /

23、/学生查卷过程 create or replace procedure CJ ( cno_input in char, sno_input in char ) is v_sql varchar2(1024); begin v_sql := 'create or replace VIEW PAPER_VIEW(titleno,titlecontent,answer,sanswer,gerscore) AS SELECT title.titleno,title.titlecontent,title.answer,paper.sanswer,paper.getsco

24、re FROM title,paper WHERE o=o AND title.titleno=paper.titleno AND paper.sno=sno_input AND o=cno_input order by titleno'; EXECUTE IMMEDIATE v_sql using cno_input,sno_input; end; //成绩统计过程(学生考试完成点击提交时) create or replace procedure TJ( cno_input in char, sno_input in char) is

25、 totle number(10,0); begin select SUM(GETSCORE) into totle from paper WHERE paper.CNO = cno_input AND paper.SNO = sno_input; update sc set sc.grade = totle WHERE sc.CNO = cno_input AND SC.SNO = sno_input; commit; end; call TJ ('0001','41410050'); 4.3 查询 //查卷(视图) CREATE or replace VIEW P

26、APER_VIEW_41410051(titleno,titlecontent,answer,sanswer,gerscore) AS SELECT title.titleno,title.titlecontent,title.answer,paper.sanswer,paper.getscore FROM title,paper WHERE o=o AND title.titleno=paper.titleno AND paper.sno='41410051' order by titleno; //查卷(sqlplus) set

27、linesize 200 pagesize 999 newpage; Col answer format a47; SELECT title.titleno,title.titlecontent,'正确答案是',title.answer,'你的答案是',paper.sanswer,'得分',paper.getscore FROM title,paper WHERE o=o AND title.titleno=paper.titleno AND paper.sno='41410051' order by titleno; //查看试题 SELECT

28、title.titleno,title.titlecontent FROM title WHERE o='0001' order by titleno; //查看课程考试成绩情况 Select student.sno,student.sname,sc.grade from student,sc where o='0001' ANDsc.sno = student.sno; //查看课程平均分 Select avg(grade) from sc Where o='0001'; 4.4 登陆设计 由于

29、做登陆的时候分表查询用户信息一直出bug,经过搜索解决办法后决定建立一个教师学生用户表来解决问题 create table P_USER ( username CHAR(9), password VARCHAR2(20), ) 从此表中只判断登陆是否成功。 4.4.1 jsp页面部分 login.jsp <%@page contentType="text/html" pageEncoding="UTF-8"%> login

欢迎使用在线考试系统 用户名:
密码:

31、t type="password" name="password" />

Welcome.jsp <%@page contentType="text/html" pageEncoding="UTF-8"%>

32、ntent="text/html; charset=UTF-8"> login

欢迎使用在线考试系统 欢迎登陆!
4.4.2 servlet编写

33、UserServlet.java package com.baosight.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;

34、 import com.baosight.bean.UserBean; /** *

Title:UserServlet

*

Description:TODO

*

Company:

* @author zxy * @date 2016-12-26 下午10:50:57*/ public class UserServlet extends HttpServlet { public void doGet(HttpServletRequest request, Htt

35、pServletResponse response) throws ServletException, IOException { doPost(request,response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String method =

36、request.getParameter("method"); if("login".equals(method)){//登录 String username = request.getParameter("username"); String password = request.getParameter("password"); if(username==null||"".equals(username.trim())||password==null||"".equals(pa

37、ssword.trim())){ System.out.println("用户名或密码不能为空!"); response.sendRedirect("login.jsp"); return; } UserBean userBean = new UserBean(); boolean isValid = userBean.valid(username,password);

38、 if(isValid){ System.out.println("登录成功!"); request.getSession().setAttribute("username", username); response.sendRedirect("welcome.jsp"); return; }else{ System.ou

39、t.println("用户名或密码错误!"); response.sendRedirect("login.jsp"); return; } }else if("logout".equals(method)){//退出登录 System.out.println("退出登录!"); request.getSession().removeAttribute("username");

40、 response.sendRedirect("login.jsp"); return; } } } } 4.4.3 javabeans编写 DBAcess.java package com.baosight.bean; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; im

41、port java.sql.SQLException; import java.sql.Statement; /**数据库操作类 *

Title:DBAcess

*

Description:TODO

*

Company:

* @author zxy * @date 2016-12-25 下午12:40:24*/ public class DBAcess { private String driver = "oracle.jdbc.driver.OracleDr

42、iver"; private String url = "jdbc:oracle:" + "thin:@10.53.75.125:1158:orcl"; private String username = "system"; private String password = "123456"; private Connection conn; private Statement stm; private ResultSet rs; //创建连接 public boolean cre

43、ateConn() { boolean b = false; try { Class.forName(driver);// 加载Oracle驱动程序 conn = DriverManager.getConnection(url, username, password); b = true; } catch (SQLException e) { // TODO Auto-generated catch block

44、 e.printStackTrace(); }// 获取连接 catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } return b; } //查询 public void query(String sql){ try {

45、 stm = conn.createStatement(); rs = stm.executeQuery(sql); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //判断有无数据 public boolean next(){ boolean b

46、 false; try { if(rs.next()){ b = true; } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return b; } //获取表字段值 public S

47、tring getValue(String field) { String value = null; try { if (rs != null) { value = rs.getString(field); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace()

48、 } return value; } //关闭连接 public void closeConn() { try { if (conn != null) { conn.close(); } } catch (SQLException e) { // TODO Auto-generated catch block

49、 e.printStackTrace(); } } //关闭statement public void closeStm() { try { if (stm != null) { stm.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //关闭ResultSet public void closeRs() { try { if (rs != null) { rs.close();

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服