版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、此文档仅供收集于网络,如有侵权请联系网站删除西南财经大学Southwestern University of Finance and Economics课程实验报告课程名称:数据库学生姓名:周小钰、李佳颖学院:经济信息工程学院专业:计算机科学与技术指导教师:李 玉 荣.2016 年 12 月只供学习与交流此文档仅供收集于网络,如有侵权请联系网站删除1. 课程设计题目与要求1.1 数据库设计题目设计和实现一个网上在线考试系统,系统应完成以下基本的业务:a. 至少两个教师,每个教一门课程b. 每个班至少包含十名学生。c. 教师能够修改试卷的题目并模仿一名同学参加一门考试d. 教师可提取一份试卷查卷
2、e. 教师可检查其所教班级的成绩、任一学生的成绩以及查询全班的平均成绩和总成绩。f. 每一套题至少包括十道选择题g. 选择题自动阅卷,书写题人工阅卷以上很粗略描述了网上考试系统的基本要求,你们可以根据实际问题的需要,补充和细化系统的要求。本课程设计包括两个部分 : 数据库和用户界面(用户图形化界面基本要求就是登录加试卷内容的提取)1.2 数据库设计要求a. 使用 java/c语言,源程序要有适当的注释,使程序易于阅读b. 建议作出用户界面c. 学生可自动增加新功能模块2. 数据库设计过程2.1 需求分析2.1.1 业务范围a. 增加、删除、维护学生账号,老师账号,课程信息和选课信息b. 在线出
3、题、出题过程可修改试题、答题、分数c. 学生若有疑问可以由老师提出自己的答卷查卷d. 统计一个班的学生的成绩情况供老师分析e. 提取试题2.1.2 业务流程a 进入在线考试系统b. 通过输入账号密码判断身份,分别进入不同界面:(1)进入管理员界面后获取管理员身份。管理员具有对整个系统只供学习与交流此文档仅供收集于网络,如有侵权请联系网站删除的管理权限,可以管理所有账户,管理课程,以及对选课过程控制。(2)进入教师界面后获取教师身份。教师有权自出题、对题库进行管理以及对学生试卷进行查询。进入出题模块后,教师可自主命题,命题内容分为单选题和填空题。进入改题模块后,首先判断是否已有人做题,若已存在完
4、成题目的记录,则执行修改题目功能;若无学生完成题目的记录,则执行修改题目和答案两项功能。进入查询模块后,教师可执行试卷、答卷以学生成绩的查询功能。(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图只供学习与交流此
5、文档仅供收集于网络,如有侵权请联系网站删除图 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
6、);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题库表表只供学习与交流此文档仅供收集于网络,
7、如有侵权请联系网站删除图 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)ENABLE);/ 创建学生信息表CREATE TABLE STUDENT(SNO CHAR(9) NOT NULL, SNAME CHAR(20) NOT NULL, PASSWORD VARCHAR
9、2(20) NOT NULL, CONSTRAINT STUDENT_PK PRIMARY KEY(SNO)ENABLE );/ 创建选课表CREATE TABLE SC(CNO CHAR(4) NOT NULL, SNO CHAR(9) NOT NULL, GRADE CHAR(4), CONSTRAINT SC_PK PRIMARY KEY(CNO , SNO)ENABLE);只供学习与交流此文档仅供收集于网络,如有侵权请联系网站删除ALTER TABLE SCADD CONSTRAINT SC_FK1 FOREIGN KEY(CNO)REFERENCES COURSE(CNO)ENABL
10、E;ALTER TABLE SCADD CONSTRAINT SC_FK2 FOREIGN KEY(SNO)REFERENCES STUDENT(SNO)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(4
11、0), ANSWER VARCHAR2(10)只供学习与交流此文档仅供收集于网络,如有侵权请联系网站删除, SCORE CHAR(4), CONSTRAINT TITLE_PK PRIMARY KEY(CNO, TITLENO)ENABLE);ALTER TABLE TITLEADD CONSTRAINT TITLE_FK1 FOREIGN KEY(CNO)REFERENCES COURSE(CNO)ON DELETE CASCADE ENABLE;/ 创建学生答题表CREATE TABLE PAPER(CNO CHAR(4) NOT NULL, SNO CHAR(9) NOT NULL, T
12、ITLENO CHAR(4) NOT NULL, SANSWER VARCHAR2(10), GETSCORE CHAR(4), CONSTRAINT PAPER_PK PRIMARY KEY(CNO, SNO, TITLENO)ENABLE);ALTER TABLE PAPERADD CONSTRAINT PAPER_FK1 FOREIGN KEY(CNO)REFERENCES COURSE只供学习与交流此文档仅供收集于网络,如有侵权请联系网站删除(CNO)ON DELETE CASCADE ENABLE;ALTER TABLE PAPERADD CONSTRAINT PAPER_FK2 F
13、OREIGN KEY(SNO)REFERENCES STUDENT(SNO)ON DELETE CASCADE ENABLE;ALTER TABLE PAPERADD CONSTRAINT PAPER_FK3 FOREIGN KEY(CNO, TITLENO)REFERENCES TITLE(CNO, TITLENO)ON DELETE CASCADE ENABLE;CREATE USER teacer1 IDENTIFIED BY 123456 ;4.2 存储过程/ 管理员存储过程Create or replace procedure manastu(sno in CHAR,sname in
14、 char,password in varchar2)IsBeginInsert into studentValues(SNO, SNAME, PASSWORD);Commit;End;只供学习与交流此文档仅供收集于网络,如有侵权请联系网站删除CALL MANASTU ('4141051',' 赵日天 ' ,'123456');Create or replace procedure manatea(tid in CHAR,password in varchar2)IsBeginInsert into teacherValues(TID, PASS
15、WORD);Commit;End;CALL MANATEA ('teacher1','123456');Create or replace procedure manacou(cno in CHAR,cname in varchar2)IsBeginInsert into courseValues(CNO, cname);Commit;End;CALL MANACOU ('0001',' 课程 1') ;Create or replace procedure manasc(cno in CHAR,sno in char)IsBeg
16、inInsert into SCValues(cno, sno,NULL);Commit;End;CALL MANASC ('0001','41410051');/ 出题存储过程Create or replace procedure ks(Cno_input in CHAR,Sno_input in char,Titleno_input in char,只供学习与交流此文档仅供收集于网络,如有侵权请联系网站删除Sanswer_input in varchar2)Isanswer1 varchar2(10);score1 char(4);Cno1 char(4);
17、Sno1 char(9);BeginSelect cno,sno INTO cno1,sno1 from scWHERE o=cno_input and sc.sno = sno_input; exceptionwhen no_data_foundthen dbms_output.put_line('没有选课不能考试! ');select answer,score INTO answer1,score1 FROM title WHERE o=cno_input AND title.titleno=Titleno_input;ifSanswer_input = answer1 T
18、HENInsert into paperValues(cno_input,sno_input,titleno_input,sanswer_inut,score1);elseInsert into paperValues(cno_input,sno_input,titleno_input,sanswer_inut,'0');END IF;Commit;End;Call KS('0001','41410051','01','B');/ 修改题目存储过程/ 修改题目create or replace procedure
19、XGTM(cno_input in char,titleno_input in char,titlecontent_input in varchar2)isbeginupdate title settitle.titlecontent = titlecontent_inputWHERE o = cno_input AND title.titleno = titleno_input;只供学习与交流此文档仅供收集于网络,如有侵权请联系网站删除commit;end;/ 修改答案create or replace procedure XGDA(cno_input in char,titleno_inp
20、ut in char,answer_input in varchar2)isbeginupdate title settitle.answer = answer_inputWHERE o = cno_input AND title.titleno = titleno_input;commit;end;/ 修改分数create or replace procedure XGFS(cno_input in char,titleno_input in char,score_input in char)isbeginupdate title settitle.score = score_inputWH
21、ERE o = cno_input AND title.titleno = titleno_input;commit;end;/ 学生查卷过程create or replace procedure CJ (cno_input in char,sno_input in char)isv_sql varchar2(1024);beginv_sql := 'create or replace VIEWPAPER_VIEW(titleno,titlecontent,answer,sanswer,gerscore)ASSELECT只供学习与交流此文档仅供收集于网络,如有侵权请联系网站删除titl
22、e.titleno,title.titlecontent,title.answer,paper.sanswer,paper .getscoreFROMtitle,paperWHEREo=o AND title.titleno=paper.titleno AND paper.sno=sno_input AND o=cno_inputorder by titleno'EXECUTE IMMEDIATE v_sql using cno_input,sno_input; end;/ 成绩统计过程(学生考试完成点击提交时) create or replace procedure TJ( cno_
23、input in char,sno_input in char)istotle number(10,0);beginselect SUM(GETSCORE) into totle from paperWHERE paper.CNO = cno_input AND paper.SNO = sno_input; update sc set sc.grade = totleWHERE sc.CNO = cno_input AND SC.SNO = sno_input;commit;end;call TJ ('0001','41410050');4.3查询/ 查卷(视图
24、)CREATE or replace VIEWPAPER_VIEW_41410051(titleno,titlecontent,answer,sanswer,gers core)AS SELECTtitle.titleno,title.titlecontent,title.answer,paper.sanswer, paper.getscoreFROMtitle,paperWHEREo=o AND title.titleno=paper.titlenoANDpaper.sno='41410051'只供学习与交流此文档仅供收集于网络,如有侵权请联系网站删除order by tit
25、leno;/ 查卷( sqlplus )set linesize 200 pagesize 999 newpage;Col answer format a47;SELECTtitle.titleno,title.titlecontent,'正确答案是 ',title.answer,'你的答案是 ',paper.sanswer,'得分 ',paper.getscoreFROMtitle,paperWHEREo=o AND title.titleno=paper.titleno ANDpaper.sno='41410051'order
26、 by titleno;/ 查看试题SELECTtitle.titleno,title.titlecontentFROMtitleWHEREo='0001'order by titleno;/ 查看课程考试成绩情况Select student.sno,student.sname,sc.grade from student,scwhere o='0001' ANDsc.sno = student.sno;/ 查看课程平均分Select avg(grade) from scWhere o='0001'只供学习与交流此文档仅供收集于网络,如有侵权请联系
27、网站删除4.4登陆设计由于做登陆的时候分表查询用户信息一直出 bug,经过搜索解决办法后决定建立一个教师学生用户表来解决问题create table P_USER(username CHAR(9),password VARCHAR2(20),)从此表中只判断登陆是否成功。4.4.1 jsp页面部分login.jsp<%page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html><html><head><meta http-equ
28、iv="Content-Type" content="text/html; charset=UTF-8"><title>login</title></head><body><formaction="http:/localhost:8080/loginServlet/LoginServlet"method="post">欢迎使用在线考试系统用户名: <input type="text" name="username&
29、quot; /><br/>密码: <input type="password" name="password"/><br/><input type="submit" value="登录 " /></form></body></html>Welcome.jsp<%page contentType="text/html" pageEncoding="UTF-8"%><!DO
30、CTYPE html><html><head><meta http-equiv="Content-Type" content="text/html;只供学习与交流此文档仅供收集于网络,如有侵权请联系网站删除charset=UTF-8"><title>login</title></head><body><formaction="http:/localhost:8080/loginServlet/LoginServlet"method=&quo
31、t;post">欢迎使用在线考试系统欢迎登陆!</form></body></html>4.4.2 servlet编写UserServlet.javapackage com.baosight.servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletReq
32、uest;import javax.servlet.http.HttpServletResponse;import com.baosight.bean.UserBean;/* <p>Title:UserServlet </p>* <p>Description:TODO </p>* <p>Company: </p>* author zxy* date 2016-12-26下午 10:50:57*/public class UserServlet extends HttpServlet public void doGet(Ht
33、tpServletRequest request, HttpServletResponse response)throws ServletException, IOException doPost(request,response);只供学习与交流此文档仅供收集于网络,如有侵权请联系网站删除public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException String method = request.getParameter(&quo
34、t;method");if("login".equals(method)/登录String username =request.getParameter("username");String password =request.getParameter("password");if(username=null|"".equals(username.trim()|password=null|"".equals(password.trim()System.out.println("
35、;用户名或密码不能为空!");response.sendRedirect("login.jsp");return;UserBean userBean = new UserBean();boolean isValid =userBean.valid(username,password);if(isValid)System.out.println("登录成功! ");request.getSession().setAttribute("username", username); response.sendRedirect(&qu
36、ot;welcome.jsp"); return;elseSystem.out.println(" 用户名或密码错误! "); response.sendRedirect("login.jsp"); return;else if("logout".equals(method)/退出登录System.out.println("退出登录! ");request.getSession().removeAttribute("username"); response.sendRedirect(&
37、quot;login.jsp");return;只供学习与交流此文档仅供收集于网络,如有侵权请联系网站删除4.4.3 javabeans编写DBAcess.javapackage com.baosight.bean;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;/* 数据库操作类* <p>Title:DBAcess </p>* <
38、;p>Description:TODO </p>* <p>Company: </p>* author zxy* date 2016-12-25下午 12:40:24*/public class DBAcess private String driver = "oracle.jdbc.driver.OracleDriver" private String url = "jdbc:oracle:" +"thin:25:1158:orcl"private String usern
39、ame = "system"private String password = "123456"private Connection conn;private Statement stm;private ResultSet rs;/ 创建连接public boolean createConn() boolean b = false;try Class.forName(driver);/ 加载 Oracle 驱动程序 conn = DriverManager.getConnection(url, username,password);b = true; c
40、atch (SQLException e) / TODO Auto-generated catch block e.printStackTrace();/获取连接catch (ClassNotFoundException e) / TODO Auto-generated catch block e.printStackTrace();只供学习与交流此文档仅供收集于网络,如有侵权请联系网站删除return b;/ 查询public void query(String sql)try stm = conn.createStatement();rs = stm.executeQuery(sql);
41、catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace();/ 判断有无数据 public boolean next() boolean b = false;try if(rs.next()b = true; catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace();return b;/ 获取表字段值public String getValue(String field) String value = null;try if (rs != null) value = rs.getString(field); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace();return value;/ 关闭连接public void closeConn() try if (conn != null) conn.close();只供学习与交流此文档仅供收集于网络,如有侵权请联系网站删除 catch (SQLException e) / TODO Auto-gener
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 44457-2024加氢站用储氢压力容器
- GB/T 24986.6-2024家用和类似用途电器可靠性试验及评价第6部分:空气净化器的特殊要求
- 《2024年 基于汉语语料库的中文词句快速检索算法研究》范文
- 八年级沪科版物理-
- DB21-T 3990-2024 玉米大豆轮作耕地保育技术规范
- 出版行业内容优化与发行创新策略方案
- 农产品质量安全监管与追溯体系建设方案
- 仪器分析智慧树知到答案2024年杭州医学院
- 半自理全护理老人护理管理服务投标方案(技术方案)
- 残疾人就业存在的问题及对策
- 2025届高考专题复习:文言实词推断七法 课件
- 第十三章《内能》和第十四章《内能的利用》测试卷-2024-2025学年人教版物理九年级全一册
- 兽医检验题库与答案
- 江苏开放大学2023年秋《组织行为学 060044》第一次作业参考答案
- 放射培训考试习题及答案
- 单位介绍信(范本)标准(共1页)
- 重庆市新建居民住宅小区供配电设施配置指导意见(试行)
- 铁路隧道仰拱、底板质量缺陷整治技术研究
- 最新工厂生产线承包协议范本
- 培养小学生赏析传统诗词能力的研究课题实施方案一、研究背景及意义
- 浅谈中班幼儿玩沙玩水区活动的有效策略
评论
0/150
提交评论