《面向计算机专业实验室的实验教学管理系统的数据库实验报告.pdf》由会员分享,可在线阅读,更多相关《面向计算机专业实验室的实验教学管理系统的数据库实验报告.pdf(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、目录 1、设计题目 2、设计内容 3、设计目的 4、设计过程 5、具体设计 6、运行及调试 7、附 录 8、源 程 序 一、设计题目 设计并实现一个面向计算机专业实验室的实验教学管理系统 二、设计内容 设计并实现一个面向计算机专业实验室的实验教学管理系统。该系统包含两大模块,即由实验室工作人员使用的管理模块,以及实验的授课教师和学生使用的网上服务模块。其中网上服务模块要求采用 B/S 模式实现,前端为浏览器。管理模块采用 B/S 或 C/S 模式均可,开发工具不限,可采用PowerBuilder,Delphi,VB,VC,ASP.net 等。后台数据库要求采用 SQL SERVER2000。三
2、、设计目的 计算机专业实验室面向计算机系若干专业的几十个班级全天开放,排课和管理工作非常繁琐。开发本系统的目的是将以往的开放式手工排课方式移植到计算机和网络平台,使授课教师可以通过网络安排实验,实验室管理人员可以通过系统对实验室进行管理,学生也可以通过该平台了解实验相关信息。根据用户的不同角色,该系统的用户可以分为三类:第一种是普通用户,主要身份是学生,可以进行课表查询、实验信息了解、出勤情况查询等操作;第二种是注册用户,身份是实验授课教师,有普通用户的所有权限,同时可以进行实验排课、实验信息管理、成绩录入、学生出勤信息管理等等。实验授课老师包括任课教师和实验室指导老师;第三种用户是实验室工作
3、人员,具有管理权限,可以生成空课表、修改排课信息、统计工作量、管理用户信息等等。四、设计过程 完成一个该系统的开发,整个过程分成以下四个步骤:1.需求分析 2.总体设计 3.详细设计 4.运行及调试 五、具体过程 1、需求分析 该系统主要包含两大模块:实验室工作人员使用的模块,实验室授课教师和学生使用的网上服务模块。系统可实现的功能包括:授课教师模块、学生模块、系统管理员模块和实验室管理员模块。2、总体设计 1)授课教师 a)注册网上服务 b)登陆网上服务 c)安排实验:教师登陆系统之后,可以看到各个周次的排课情况,教师按照教学计划在空闲时段安排实验,要求填写日期、周次、星期、节次、专业、班级
4、、学生人数、课程名称、实验内容,备注等信息。其中,专业、节次、班级、课程名称只能由用户在下拉列表中选择,不能自由输入。d)查询实验安排:提供多种查询方式,包括按周次查询全部课表、按课程名称查询该课程所有实验安排,按任课教师姓名/实验室指导老师姓名查询该教师的所有实验安排,按给定日期查询。e)学生成绩录入、查询 f)学生实验考勤、出勤情况查询 2)学生 a)查询实验安排(功能同上)b)查询实验内容 c)查询成绩 d)查询出勤记录 3)实验室管理人员 a)实验课程注册:实验课程首先要注册,包括课程名称、课程编号、学生人数、实验总学时,实验内容描述等。课程注册之后,在排课模块中才可以通过下拉列表选择
5、该课程。b)实验课程管理:对实验课程的相关信息进行修改、删除等维护工作。c)课表管理:实验室管理人员可以排课,也可以对已排课程进行调整。d)学生班级信息维护:包括专业名称、班级、人数等。e)授课教师基本信息维护 f)实验室实验指导老师基本信息维护 g)参数维护:包括某学期的第一天的日期和学期的规定教学周数。h)查询实验(功能同上)i)工作量计算:学期结束时,计算所有授课教师/实验室指导老师该学期总的实验教学工作量,计算公式见附录。4)系统管理员 a)为实验室工作人员分配操作帐号和操作权限。b)密码管理。操作员忘记密码,可由系统管理员将密码恢复为初始值。3、详细设计 1)E-R 模型图 2)数据
6、表 a)教师信息表 教师编号(主键)int 教师姓名 varchar 教师密码 varchar 权限 int 授课班级 varchar 教授课程 varchar b)学生信息表 学生编号(主键)Int 授课教师 varchar 实验科目 Varchar 实验成绩 Int 学生考勤 State 0未到 1已到 c)实验室管理信息表 实验科目(主键)userId 实验教师 trueName 实验学生 userName 实验安排 userarg 实验选课 userselect 3)数据字典 名字:教师信息 别名:描述:关于教师的信息查询 定义:教师的姓名+教师的权限+授课班级+教授班级 位置:输入到
7、浏览器端 名字:学生信息 别名:描述:关于学生的信息查询 定义:学生的姓名+实验科目+出勤情况 位置:输入到浏览器端 名字:实验室信息 别名:描述:关于实验室的信息查询 定义:教师的信息+学生信息+实验安排+试验选课 位置:输入到浏览器端 4)关键技术 Structs structs 采用 MVC 模式,能够很好地帮助 java 开发者利用 J2EE 开发Web 应用,和其他的 java 架构一样,Struts 也是面向对象设计,将 MVC 模式分离显示逻辑和业务逻辑的能力发挥得淋漓尽致。Structs 框架的核心是一个弹性的控制层,基于如 Java Servlets,JavaBeans,Re
8、sourceBundles与 XML 等标准技术,以及 Jakarta Commons 的一些类库。Struts 有一组相互协作的类(组件)、Serlvet 以及 jsp tag lib 组成。基于 struts 构架的 web应用程序基本上符合 JSP Model2 的设计标准,可以说是一个传统 MVC 设计模式的一种变化类型。服务器启动后,根据 web.xml 加载 ActionServlet 读取 struts-config.xml文件内容到内存。以登陆为例:第一次进 Login.jsp 会先实例化 Form、把默认值赋给表单元素。输入用户名、密码提交表单,提交到 action 属性的
9、UserDeal.do,通过ActionServlet 读 struts-config.xml 文件找到 action 下的 path 属性找到.do,通过name属性找 form-beans中的 form-bean的 name属性得到 ActionForm的包名类名,先实例化 form,把表单的值填充给 form,调用 form 的 validate方法验证、ActionErrors 返回 null 表示验证通过,否则失败返回 input 指定的页面.验证通过会实例化 Action,执行 Action 的 excute 方法。Hibernate hibernate 的作用简单的说就是在数据库
10、的外面包了一件面向对象的外衣传统的数据库操作都是面向过程的,如 insert、delete、update 等操作 而在 hibernate 中这些操作都被封装到了对象中,使原本面向过程的数据库操作变成面向对象编程,从而使 j2ee 的开发一气呵成,不会到数据库操作时又改为面向过程的不便。Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate 可以应用在任何使用 JDBC 的场合,既可以在Java 的客户端程序使用,也可以在 Servlet/JSP 的 Web 应用中
11、使用,最具革命意义的是,Hibernate 可以在应用 EJB 的 J2EE 架构中取代 CMP,完成数据持久化的重任。4、运行 a)登陆 b)学生信息查询 c)实验课查询 d)实验课程管理 e)实验课程管理 f)实验查询 g)结果查询 5、测试 5.1 用例分析-增加学生成绩信息 用例名称 增加学生成绩信息 用例编号 用例描述 授课教师需要增加学生成绩信息时,执行该用例,当新的学生成绩信息保存后,该用例结束 参与者 授课教师 前置条件 授课教师登录系统 后置条件 新的学生成绩信息被保存 基本操作流程 1.授课教师选择专业和班级进行查询 2.授课教师选择学生和课程 3.授课教师输入学生成绩信息
12、 4.系统验证信息的合法性 5.系统提交信息 6.系统保存信息 替代流程(1)替换基本流程第 5 步 触发条件:当基本流程第 4 步验证失败时执行 处理:1.系统给出验证失败的数据项,并给出数据验证的提示信息 2.退回至基本流程第 3 步 被泛化的用例 无 被包含的用例 无 被扩展的用例 无 5.2 用例分析-按班级名称查询学生班级信息 用例名称 按班级名称查询学生班级信息 用例编号 用例描述 实验室工作人员需要按班级名称查询学生班级信息时,执行该用例,当数据显示后,该用例结束 参与者 实验室工作人员 前置条件 实验室工作人员登录系统 后置条件 无 基本操作流程 1.实验室工作人员输入班级名称
13、关键字 2.系统提交信息 替代流程 无 被泛化的用例 无 被包含的用例 无 被扩展的用例 无 5.3 用例分析-按班级查询学生成绩信息 用例名称 按班级查询学生成绩信息 用例编号 用例描述 授课教师需要按班级查询学生成绩信息时,执行该用例,当数据显示后,该用例结束 参与者 授课教师 前置条件 授课教师登录系统 后置条件 无 基本操作流程 1.授课教师输入班级名称关键字 2.系统提交信息 替代流程 无 被泛化的用例 无 被包含的用例 无 被扩展的用例 无 5.4 用例分析增加学生出勤信息 用例名称 增加学生出勤信息 用例编号 用例描述 授课教师需要增加学生出勤信息时,执行该用例,当新的学生出勤信
14、息保存后,该用例结束 参与者 授课教师 前置条件 授课教师登录系统 后置条件 新的学生出勤信息被保存 基本操作流程 4.授课教师选择专业和班级进行查询 5.授课教师选择学生和课程 6.授课教师输入学生成绩信息 4.系统验证信息的合法性 5.系统提交信息 6.系统保存信息 替代流程(1)替换基本流程第 5 步 触发条件:当基本流程第 4 步验证失败时执行 处理:1.系统给出验证失败的数据项,并给出数据验证的提示信息 2.退回至基本流程第 3 步 被泛化的用例 无 被包含的用例 无 被扩展的用例 无 附录:参考书目:大型数据库 数据库教程 Oracle 10g 数据库管理员指南 数据库系统概论 七
15、、实验源码 javaScript 表单验证 function validateInput(formObj)if(formObj.username.value=)alert(用户名不能为空);formObj.username.focus();else if(formObj.password.value=)alert(密码不能为空);formObj.password.focus();else if(formObj.captcha.value=)alert(验证码不能为空);formObj.captcha.focus();else writeMember();checkInputValue();Aj
16、ax无刷新通信 function checkInputValue()var xmlHttpObj=createXMLHttp();xmlHttpObj.open(POST,adminLogin.do?method=adminLogin,true);var sendInfo=&username=+document.form1.username.value+&password=+document.form1.password.value+&captcha=+document.form1.captcha.value+&userType=+document.form1.userType.value;x
17、mlHttpObj.setRequestHeader(Content-type,application/x-www-form-urlencoded);xmlHttpObj.send(sendInfo);xmlHttpObj.onreadystatechange=function()if(xmlHttpObj.readyState=4)var textInfo=xmlHttpObj.responseText;if(textInfo!=登录成功)alert(textInfo);else window.location.href=/ETMProject/admin/default.htm;funct
18、ion createXMLHttp()var aVersions=MSXML2.XMLHttp.5.0,MSXML2.XMLHttp.4.0,MSXML2.XMLHttp.3.0,MSXML2.XMLHttp,Microsoft.XMLHttp;for(var i=0;i aVersions.length;i+)try var oXmlHttp=new ActiveXObject(aVersionsi);return oXmlHttp;catch(oError)/不处理 throw new Error(MSXML is not installed.);javaScript+Xml 技术菜单框
19、var collapse_all=闭合;var expand_all=展开;var collapse=true;function toggleCollapse()var items=document.getElementsByTagName(LI);for(i=0;i items.length;i+)if(collapse)if(itemsi.className=explode)toggleCollapseExpand(itemsi,collapse);else if(itemsi.className=collapse)toggleCollapseExpand(itemsi,explode);
20、ToggleHanlder.Reset();collapse=!collapse;document.getElementById(toggleImg).src=collapse?images/menu_minus.gif:images/menu_plus.gif;document.getElementById(toggleImg).alt=collapse?collapse_all:expand_all;function toggleCollapseExpand(obj,status)if(obj.tagName.toLowerCase()=li&obj.className!=menu-ite
21、m)for(i=0;i obj.childNodes.length;i+)if(obj.childNodesi.tagName=UL)if(status=null)if(obj.childNodes1.style.display!=none)obj.childNodes1.style.display=none;ToggleHanlder.RecordState(obj.getAttribute(key),collapse);obj.className=collapse;else obj.childNodes1.style.display=block;ToggleHanlder.RecordSt
22、ate(obj.getAttribute(key),explode);obj.className=explode;break;else if(status=collapse)ToggleHanlder.RecordState(obj.getAttribute(key),collapse);obj.className=collapse;else ToggleHanlder.RecordState(obj.getAttribute(key),explode);obj.className=explode;obj.childNodes1.style.display=(status=explode)?b
23、lock:none;document.getElementById(menu-list).onclick=function(e)var obj=Utils.srcElement(e);toggleCollapseExpand(obj);document.getElementById(tabbar-div).onmouseover=function(e)var obj=Utils.srcElement(e);if(obj.className=tab-back)obj.className=tab-hover;document.getElementById(tabbar-div).onmouseou
24、t=function(e)var obj=Utils.srcElement(e);if(obj.className=tab-hover)obj.className=tab-back;document.getElementById(tabbar-div).onclick=function(e)var obj=Utils.srcElement(e);var mnuTab=document.getElementById(menu-tab);var hlpTab=document.getElementById(help-tab);var mnuDiv=document.getElementById(m
25、enu-list);var hlpDiv=document.getElementById(help-div);if(obj.id=menu-tab)mnuTab.className=tab-front;hlpTab.className=tab-back;mnuDiv.style.display=block;hlpDiv.style.display=none;if(obj.id=help-tab)mnuTab.className=tab-back;hlpTab.className=tab-front;mnuDiv.style.display=none;hlpDiv.style.display=b
26、lock;loc=parent.framesmain-frame.location.href;pos1=loc.lastIndexOf(/);pos2=loc.lastIndexOf(?);pos3=loc.indexOf(act=);pos4=loc.indexOf(&,pos3);filename=loc.substring(pos1+1,pos2-4);act=pos4 0?loc.substring(pos3+4):loc.substring(pos3+4,pos4);loadHelp(filename,act);/*载入帮助内容 */function loadHelp(filenam
27、e,act)var doc=createDocument();var path=help/+helpLang+/+filename+.xml;document.getElementById(help-title).innerHTML=;document.getElementById(help-content).innerHTML=noHelp;try doc.load(path);var items=doc.getElementsByTagName(section);for(i=0;i items.length;i+)if(itemsi.getAttribute(id)=act)var tit
28、le=itemsi.getElementsByTagName(title);document.getElementById(help-title).innerHTML=(Browser.isIE)?title0.text:title0.textContent;var content=itemsi.getElementsByTagName(content);document.getElementById(help-content).innerHTML=(Browser.isIE)?content0.text:content0.textContent;break;catch(e)alert(e.m
29、essage);/*创建 XML 对象 */function createDocument()var xmlDoc;/create a DOM object if(window.ActiveXObject)try xmlDoc=new ActiveXObject(Msxml2.DOMDocument.6.0);catch(e)try xmlDoc=new ActiveXObject(Msxml2.DOMDocument.5.0);catch(e)try xmlDoc=new ActiveXObject(Msxml2.DOMDocument.4.0);catch(e)try xmlDoc=new
30、 ActiveXObject(Msxml2.DOMDocument.3.0);catch(e)alert(e.message);else if(document.implementation&document.implementation.createDocument)xmlDoc=document.implementation.createDocument(,doc,null);else alert(Create XML object is failed.);xmlDoc.async=false;return xmlDoc;/菜单展合状态处理器 var ToggleHanlder=new O
31、bject();Object.extend(ToggleHanlder,SourceObject:new Object(),CookieName :Toggle_State,RecordState:function(name,state)if(state=collapse)this.SourceObjectname=state;else if(this.SourceObjectname)delete(this.SourceObjectname);var date=new Date();date.setTime(date.getTime()+);document.setCookie(this.C
32、ookieName,this.SourceObject.toJSONString(),date.toGMTString();,Reset:function()var date=new Date();date.setTime(date.getTime()+);document.setCookie(this.CookieName,date.toGMTString();,Load:function()if(document.getCookie(this.CookieName)!=null)this.SourceObject=eval(+document.getCookie(this.CookieNa
33、me)+);var items=document.getElementsByTagName(LI);for(var i=0;i items.length;i+)if(items0.getAttribute(name)=menu)for(var k in this.SourceObject)if(typeof(itemsi)=object)if(itemsi.getAttribute(key)=k)toggleCollapseExpand(itemsi,this.SourceObjectk);collapse=false;document.getElementById(toggleImg).sr
34、c=collapse?images/menu_minus.gif:images/menu_plus.gif;document.getElementById(toggleImg).alt=collapse?collapse_all:expand_all;);ToggleHanlder.CookieName+=_3;/初始化菜单状态 ToggleHanlder.Load();Struts 标签库 INPUT type=checkbox value=name=classId A title=修改 href=classInfo.do?method=InitUpdateClassInfo&classId
35、=A title=回收站 href=classInfo.do?method=deleteClassInfo&classId=JSP 标签分页 public int doStartTag()throws JspException String pageNum=pageContext.getRequest().getParameter(pageNumber);int pageNumber=1;if(pageNum!=null)pageNumber=Integer.parseInt(pageNum);int pageCount=1;if(pageContext.getRequest().getAtt
36、ribute(pageCount)!=null)pageCount=(Integer)pageContext.getRequest().getAttribute(pageCount).intValue();else pageCount=(Integer)pageContext.getSession().getAttribute(pageCount).intValue();JspWriter out=pageContext.getOut();String page=null;if(pageCount=1)page=首页 上一页 下一页 &nb
37、sp;尾页 else if(pageNumber=pageCount)page=首页 上一页 page=page+下一页 尾页 else if(pageNumber=1)page=首页 上一页 page=page+下一页 尾页 else page=首页 上一页 page=page+下一页 尾页 page=page
38、+ +第+pageNumber+/+pageCount+页;try out.write(page);catch(IOException e)e.printStackTrace();return this.EVAL_BODY_INCLUDE;CSS 样式表 BODY PADDING-RIGHT:0px;PADDING-LEFT:0px;PADDING-BOTTOM:0px;MARGIN:0px;FONT:12px sans-serif,Arial,Verdana;COLOR:#192e32;PADDING-TOP:0px P FONT:12px sans-serif,Ari
39、al,Verdana TD FONT:12px sans-serif,Arial,Verdana DIV FONT:12px sans-serif,Arial,Verdana TH FONT:bold 12px sans-serif,Arial,Verdana FORM PADDING-RIGHT:0px;PADDING-LEFT:0px;PADDING-BOTTOM:0px;MARGIN:0px;PADDING-TOP:0px INPUT FONT:12px courier new TEXTAREA FONT:12px courier new SELECT FONT:12px courier
40、 new A:visited COLOR:#335b64;TEXT-DECORATION:none A:link COLOR:#335b64;TEXT-DECORATION:none A:hover COLOR:#eb8a3d;TEXT-DECORATION:underline A:active COLOR:#eb8a3d;TEXT-DECORATION:underline .clear CLEAR:both;PADDING-RIGHT:0px;DISPLAY:block;PADDING-LEFT:0px;FONT-SIZE:0px;FLOAT:none;PADDING-BOTTOM:0px;MARGIN:0px;PADDING-TOP:0px .nowrap WHITE-SPACE:nowrap