在线教学质量评价系统的设计与实现 |
您所在的位置:网站首页 › 评价课程的优点语句 › 在线教学质量评价系统的设计与实现 |
在线教学质量评价系统的设计与实现
摘 要 在线教学质量评价系统可以方便和全面地收集教师教学工作的数据,提供师生网上评教的评分结果,快速集中收集各方面的评教信息,使教务管理部门能够及时了解教学动态和师资情况,为教务老师提供相关决策支持,为职称评聘提供教学工作质量的科学依据,同时减轻了教务老师的工作量。 系统用户分为三类,分别是学生、教师和管理员。学生可以在互联网上选课并对教师及其所教授的课程进行打分、留言,教师可以查看学生对自己的评教结果和留言以及对其同行的教学质量进行评估,管理者可以对学生以及教师同行评教的信息进行查询和统计,同时可以查看教师排行榜并打印。查询可根据查询条件的不同显示不同的查询结果,同时也可根据统计要求显示不同的结果。 系统是基于Windows XP操作系统,采用JSP开发,并使用SQL SERVER 2000数据库来实现。 关键词:教学;评教;数据库;统计;JSP: 1 引 言1.1 课题背景 教学评估工作是教学行政部门对高等学校教学质量进行宏观监督的重要手段,目的是提高教育教学质量。教学评估是学校教学管理的一项重要内容,如何科学地、全面、客观公正地评估教师的师德水平和业务素质,是一项理论上和实践上都十分重要的工作。通过学校各层次人员对教学的教学质量进行民主评估,评测结果和分析报表可以帮助学校领导及时全面的掌握全校教师教学业务状况,帮助教师有针对性的改进工作方法、提高教学质量。教学质量评估方面,传统的成绩单或者家长手册已经远远不能满足对教学过程中大量有效信息的分析利用。随着现代教育技术和管理方法的发展以及教学系统化理念的实施研究,我们应该通过精细客观的评价来监督,促进老师的教与学生的学,活化了教学信息,增强对教学质量的分析和监控。 1.2 目的意义 开发《教师教学质量评教系统》有两方面的好处:一是《教师教学质量评教系统》的实用性,一个好的《教师教学质量评教系统》会将一个庞大投票评优工作井井有条的管理起来,计算机与人的不同就在于,计算机是机械的,精确的,它不会使管理工作出现差错。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够大大减轻教工人员的工作量,提高办事效率;各一方面好处,设计《教师教学质量评教系统》只是一种手段, 通过它使我可以更好的了解计算机的工作过程,掌握开发语言的使用方法,掌握开发各种项目的工作技能,适应迅猛发展的社会。 2 开发工具、技术简介及运行环境2.1 开发工具简介 2.1.1 sql server2000简介 建立一个数据库我们有多种选择,现在市场上有各种各样的数据库,而且每一种数据库都有其自身的特点,不能说哪一种更好,只能在其中寻找一种能更好地适应系统需求、更好地满足用户的要求以及适应开发人员的习惯。在本系统中我选择了sql server2000数据库。sql server2000做为一个数据库管理系统,采取了关系型数据库模式,利用它可以方便地实现对信息保存、维护、查询、统计,这些功能对一个一般用户而言已经足够了。 2.1.2 Tomcat 简介 Tomcat是一个免费的开源的Serlvet容器,最新的Servlet和Jsp规范总能在Tomcat中得到体现 同时由于Java的跨平台特性,基于Java的Tomcat也具有跨平台性。 与传统的桌面应用程序不同,Tomcat中的应用程序是一个WAR(Web Archive)文件。WAR按一定目录结构来组织:通常其根目录下包含有Html和Jsp文件或者包含这两种文件的目录,另外还会有一个WEB-INF目录,这个目录很重要。通常在WEB-INF目录下有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的Servlet类和Jsp或Servlet所依赖的其它类(如JavaBean)。通常这些所依赖的类也可以打包成JAR放到WEB-INF下的lib目录下,当然也可以放到系统的CLASSPATH中,但那样移植和管理起来不方便。 在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。编译以后,访问将会很快。 在Tomcat中,你还可以利用Servlet提供的事件监听器功能,来对你的应用或者Session实行监听。Tomcat也提供其它的一些特征,如与SSL集成到一块,实现安全传输。还有Tomcat也提供JNDI支持,这与那些J2EE应用服务器提供的是一致的。 基于Tomcat的开发其实主要是Jsp和Servlet的开发,开发Jsp和Servlet非常简单,你可以用普通的文本编辑器或者IDE,然后将其打包成WAR即可。 2.1.4 Microsoft SQL Server 2000 Driver for JDBC简介 与数据库的交互是动态网站的一个重要组成部分。JSP中使用JDBC技术来实现与数据库的连接,它提供了JSP操作数据库的各种接口程序。通过使用JDBC,开发人员可以很方便地将SQL语句传送给数据库。简单的来说,JDBC实现3个功能:同一个数据库建立连接、向数据库发送SQL语句和处理数据库返回的结果。微软推出的JDBC驱动程序Microsoft SQL Server 2000 Driver for JDBC可以实现直接与SQL server2000数据库的连接,从而方便了开发人员对数据库的操作。 2.2 开发技术简介 2.2.1 JSP简介 JSP技术是用JAVA语言作为脚本语言的,JSP网页为整个服务器端的JAVA库单元提供了一个接口来服务于HTTP的应用程序。JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。 在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送 email 等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无Plugin,无ActiveX,无Java Applet,甚至无Frame。 2.2.2 SQL简介 用户对数据库的使用,是通过数据库管理系统提供的语言来实现的。不同的数据库管理系统提供不同的数据库语言。关系数据库管理系统几乎都提供关系数据库标准语言——SQL。 SQL 的全称是Structured Query Language,即结构化查询语言。SQL语句可以从关系数据库中获得数据,也可以建立数据库、增加数据、修改数据。1986年ANSI采用SQL语言作为关系数据库系统的标准语言,后被国际化标准组织(ISO)采纳为国际标准。SQL语言使用方便、功能丰富、简洁易学,是操作数据库的工业标准语言,得到广泛地应用。例如关系数据库产品DB2、ORACLE等都实现了SQL语言。同时,其它数据库产品厂家也纷纷推出各自的支持SQL的软件或者与SQL的接口软件。这样SQL语言很快被整个计算机界认可。SQL语言是一种非过程化语言,它一次处理一个记录集合,对数据提供自动导航。SQL语言允许用户在高层的数据结构上工作,而不对单个记录进行操作。SQL语言不要求用户指定数据的存取方法,而是使用查询优化器,由系统决定对指定数据存取的最快速手段。当设计者在关系表上定义了索引时,系统会自动利用索引进行快速检索,用户不需知道表上是否有索引或者有什么类型的索引等细节。 SQL语言可以完成许多功能,例如: (1) 查询数据 (2) 在数据库表格中插入、修改和删除记录 (3) 建立、修改和删除数据对象 (4) 控制对数据和数据对象的存取 (5) 确保数据库的一致性和完整性 2.3 运行环境 2.3.1 软件准备 首先在官方网站下载了JDK1.6.0和Tomcat5.0、SQL server 2000个人版,,然后把下载的压缩包根据安装向导安装到C盘下。 2.3.2 环境变量的配置 在弹出菜单中选择"属性"→"系统特性" →"高级" →"环境变量",弹出环境变量对话框,就可以编辑系统的环境变量了。 2.3.3 测试默认服务器 启动Tomcat后,打开浏览器,在地址栏中输入http://localhost:8080(Tomcat默认端口为8080),如果在浏览器中看到Tomcat的欢迎界面,表示Tomcat工作正常。 2.3.4 测试项目 首先编写一个test.jsp文件,使其在页面显示“Hello World!”。然后把test.jsp放在C:\Tomcat 5.0\webapps\ROOT目录下,在地址栏输入http://localhost:8080/test.jsp,如果浏览器显示“Hello World!”,则说明环境变量配置成功了。 3 需求分析3.1系统功能设计 系统要求能够实现以下功能: (1) 要求学生能够进行选课。 (2) 要求学生能够对教师进行教学质量评估及对其留言。 (3) 要求教师能够查看评教,以及对同行进行教学质量评估。 (4) 要求管理员能够对学生,教师信息进行插入,删除等操作 (5) 要求管理员能够对教学质量评估进行统计。 3.2 系统设计思想 本系统存在3种用户:学生、教师、管理员。学生和教师用管理员给定的帐号、密码登陆页面进行操作。登陆判定上首次基于数据库验证,然后把用户信息写进session,然后其他页面采用session验证。 系统结构上采用页面镶嵌程序和语句,工作原理如下图所示。 在系统结构中,用户界面层通过统一的接口向数据库存储层发送请求,数据库存储层收到请求处理之后把数据返回到用户界面层。 3.3 数据库分析 3.3.1 数据库需求分析 数据库需求分析就是要了解在这个系统中,用户需要查询、更新、删除和保存哪些数据,收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。 针对教师教学质量评估系统功能的需求,总结出如下需求信息。 (1) 用户分教师、学生和管理员。 (2) 教师担任一门或多门课程。 (3) 学生能选修一门或多门课程,学生选择的课程要有选课记录。 (4) 学生对自己所选择的课程相对应的教师进行教学评估(进行打分),并根据情况意愿留言。 (5) 教师根据自己所授课程查看学生对自己的评分,同时查看学生对自己的留言。 经过需求总结,考虑到将来功能上的扩展,设计如下数据项和数据结构。 (1) 学生,包括数据项:学号、姓名、系名、班名、密码等。 (2) 教师,包括数据项:教师ID、姓名,所属院系、所授课程、所带班级、密码等。 (3) 管理员,包括数据项:管理员ID、密码等。 (4) 课程,包括数据项:课程编码、课程名称、授课教师等。 (5) 选课记录,包括数据项:课程编号、课程名称、学号。 (6) 学生分数记录表:包括数据项:学号、教师姓名、课程名称、分数。 (7) 教师分数记录表:包括数据项:教师ID、教师姓名、所属院系、所授课程、分数 (8) 留言, 包括数据项:留言、编号、教师姓名等。 3.3.2 数据库概念结构 得到上面的数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体以及实体之间的关系,为后面的数据库逻辑结构设计打下基础。这些实体包括各种具体信息通过互相之间的作用形成数据流动。 本系统根据上面的设计规划出的实体有:学生实体、教师实体、管理员实体、课程实体、选课实体、学生分数记录实体、教师分数记录实体、留言实体。 实体之间的关系的E-R图如下所示。 其他实体的E-R图比较简单,这里就不详细介绍了。 3.3.3 数据库逻辑结构设计 数据库概念结构设计完后,将数据概念结构转化为数据库系统所支持的实际数据模型,也就是数据库逻辑结构。 教师教学质量评估系统中各个表设计如下:
在设计表的过程中,由于每个表设计为独立的表,所以没有设计主键。系统处理数据库的数据,就根据表内字段的内容来进行查询,删除,更新,插入等。 4总体设计4.1系统功能设计 本系统分为学生操作界面、教师操作界面和管理员操作界面。学生界面能完成如下操作。 (1) 个人信息:通过该功能模块,学生能查看自己的学号和班级等信息。 (2) 网上教学:通过该功能模块,学生能进行选课,及其对已选课程的授课教师的评教。 (3) 其他:通过该功能模块,学生能修改密码,保证用户的安全性,以及能够退出系统。 教师界面能完成如下操作: (1) 个人信息:通过该功能模块,教师能查看自己的教师编号和所在院系等信息。 (2) 信息管理:通过该功能模块,教师能够查看学生对自己所授课程的评分和留言。 (3) 其他:通过该功能模块,教师能修改密码,以及能够退出系统。 管理员界面能完成如下操作: (4) 学生管理:通过该功能模块,管理员能够查看学生信息,以及对学生的添加、更新、删除。 (5) 教师管理:通过该功能模块,管理员能够查看教师信息,以及对教师的添加、更新、删除。 (6) 课程管理:通过该功能模块,管理员能够查看课程信息,以及对课程的添加、更新、删除。 (7) 统计:通过该功能模块,管理员能对学生及其教师同行的评分进行查看,以及被评教师在院系的得分排行榜。 (8) 其他:通过该功能模块,管理员能够对学生、教师、管理员的密码修改,以及能够退出系统。 4.2 系统功能图 通过系统功能设计,画出系统功能图如下: 4.3 系统功能流程图 系统的功能流程如下图: 5 详细设计和实现 5.1 系统页面主体设计 系统登陆页面设计如图: 5.2 数据操作类 基本的数据库操作都被封装到DB类,该类对数据库访问的方法包括了数据库的连接、查询、插入、删除、更新等操作。在开发过程中,涉及到数据库的操作时,可以直接调用DB的方法。这样可以提高开发人员的效率,充分体现了组件的重用性。类代码如下: package Javabeans; import java.sql.*; public class DB { private Connection con; private Statement stm; private ResultSet rs; private String classname="com.microsoft.jdbc.sqlserver.SQLServerDriver"; private String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=教师教学质量评估系统"; public DB(){} public Connection getCon(){ try{ Class.forName(classname); } catch(ClassNotFoundException e){ e.printStackTrace(); } try{ con=DriverManager.getConnection(url,"sa",""); } catch(Exception e){ e.printStackTrace(System.err); con=null; } return con; } public Statement getStm(){ try{ con=getCon(); stm=con.createStatement(); }catch(Exception e){e.printStackTrace(System.err);} return stm; } public Statement getStmed(){ try{ con=getCon(); stm=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); }catch(Exception e){e.printStackTrace(System.err);} return stm; } public ResultSet search(String sql){ if(sql==null)sql=""; System.out.println("sql:"+sql); try{ stm=getStmed(); rs=stm.executeQuery(sql); } catch(Exception e){e.printStackTrace();} return rs; } public int dosql(String sql){ int num=-1; if(sql==null)sql=""; try{ stm=getStmed(); num=stm.executeUpdate(sql); } catch(Exception e){e.printStackTrace();num=-1;} return num; } public void closed(){ try{ if(rs!=null)rs.close(); } catch(Exception e){e.printStackTrace();} try{ if(stm!=null)stm.close(); } catch(Exception e){e.printStackTrace();} try{ if(con!=null)con.close(); } catch(Exception e){e.printStackTrace();} } } 5.3 学生界面及其基本功能的实现 5.3.1 学生登录 在使用本系统时均需要登录后,才可使用,登录时会让你输入用户名,及用户密码。用户名均是管理员分配给每位用户的且具有唯一性,用户自己不可更改,但是用户自己可以更改密码。在登录时,系统根据你输入的用户名和密码,给出不同的提示信息,如果用户名和密码正确,将会提示进入学生主页面进行操作,如果用户名和密码不正确,将会提示返回登陆主页面重新登陆。提示部分代码如下: [返回]
[进入]
其中username和userpassword是利用JSP中request对象的getParameter方法从表单中读取的值,同时在代码设计中将值传递给JSP中的session对象,方便在其他页面中使用。 5.3.2 个人信息显示 学生登录后,查看个人信息,将会显示学生的学号,班级,班名等信息,此实现比较简单,就不重点阐述了。 5.3.3 网上选课 学生选择一门要学习的课程,选择后将结果录入到选课记录表中,其中已经选择了的课程不能重复选择。实现过程中对数据库的操作是利用IN把course、teacher、student 3个表联系起来进行查询将得到学生所需要学习的课程信息显示在页面上供学生进行选课,同时利用超链接传递课程编号、课程名称的值,以及利用session对象的getAttribute方法得到的学号一起录入到选课记录表中。关键代码如下: (1) 课程的显示 String course_code=""; String course_name=""; String sql="select * from course where 课程名称 in(select 所授课程 from teacher where 所带班级 in(select 班名 from student where 学号='"+session.getAttribute("username")+"'))"; try{ ResultSet rs=mych.search(sql); while(rs.next()){ course_code=rs.getString("课程编号"); course_name=rs.getString("课程名称"); (2)超链接 (3)录入选课记录 String c_code=request.getParameter("course_code"); String c_name=request.getParameter("course_name"); c_code=new String(c_code.getBytes("ISO-8859-1"),"gbk"); c_name=new String(c_name.getBytes("ISO-8859-1"),"gbk"); String sqlstr="select * from record where 学号='"+session.getAttribute("username")+"' and 课程编号='"+c_code+"' and 课程名称='"+c_name+"'"; ResultSet rs=myst.search(sqlstr); rs.last(); if(rs.getRow()==0){ String sql="insert record(课程编号,课程名称,学号) values('"+c_code+"','"+c_name+"','"+session.getAttribute("username")+"')"; int m=myst.dosql(sql); myst.closed(); 5.3.3 网上评教 网上评教分为打分和留言两部分。打分部分要求学生从准备情况、教学效果、教学内容、教学方法、教学育人与职业道德五个方面对任课教师进行评分。要求认真阅读每一条评价指标,并根据你的观察和感受认真,实事求是地对其打分。此部分为必选项,要求学生对所有评价指标打分,不要遗漏。留言部分,学生根据自己的自身情况和意愿来填写。在此部分的实现过程中,页面首先会显示学生正在学习的课程以及此课程的授课教师,然后学生开始对教师进行评教。一个学生对一个老师只能评教一次,不能对同一教师进行多次评教。学生在评教完成后,系统会把评教结果存入数据库。代码方面将会多次运用到JSP中的request对象和session对象,同时也会运用到超链接来完成对数据值的传递。关键代码如下: 判断学生是否已经对教师已经评教String sql="select分数 from score where 学号='"+session.getAttribute("username")+"' and 教师姓名='"+name+"' and 课程名称='"+course+"'"; ResultSet rs=dd.search(sql); rs.last(); if(rs.getRow()==0){ 超链接request对象和session对象传递值的应用 String name=request.getParameter("name"); String course=request.getParameter("course"); name=new String(name.getBytes("ISO-8859-1"),"gbk"); course=new String(course.getBytes("ISO-8859-1"),"gbk"); session.setAttribute("name",name); session.setAttribute("course",course); 评分录入数据库String t1=request.getParameter("t1"); ………… //代码的省略 String t20=request.getParameter("t20"); int score=0; int s1=0,s2=0,s3=0,s4=0,s5=0,s6=0,s7=0,s8=0,s9=0,s10=0,s11=0,s12=0,s13=0,s14=0,s15=0,s16=0,s17=0,s18=0,s19=0,s20=0; int sun=0; s1=Integer.parseInt(t1); ……… //代码的剩略 s20=Integer.parseInt(t20); score=s1+s2+s3+s4+s5+s6+s7+s8+s9+s10+s11+s12+s13+s14+s15+s16+s17+s18+s19+s20; String sql="insert score(学号,教师姓名,课程名称,分数) values('"+session.getAttribute("username")+"','"+session.getAttribute("name")+"','"+session.getAttribute("course")+"',"+score+")"; int i=myst.dosql(sql); myst.closed(); 留言录入数据库String biaoshi="yes"; if(request.getParameter("board")!=null){ String bname=request.getParameter("board"); String sql="insert liuyan(留言,教师姓名,标识) values('"+bname+"','"+session.getAttribute("name")+"','"+biaoshi+"')" 5.3.4 更改密码和退出 出于安全考虑,用户登录后,可随时更改密码,以免帐号被别人盗取,进行非法操作,扰乱本系统,也影响用户正常使用。同时也建议用户经常更改个人密码。当用户完成操作后,能够点击退出安全的退出系统。关键代码如下: 退出
Rs.last(); if (Rs.getRow()==0) out.println("旧密码不正确!"); else { sql="Update student Set 密码='"+npassword+"' where 密码='"+opassword+"'"; mymo.dosql(sql); out.println("密码修改成功!"); } } catch(SQLException e) 5.4 教师页面及基本功能的实现 在上面的学生页面中具体介绍了学生模块的各个功能,教师模块部分功能与其大同小异,这里就不一一介绍了,重点介绍下几个关键的功能实现。 5.4.1 评分查看 教师登陆进系统,点击链接,页面首先会显示此教师所授的课程信息以及所带班级信息,然后教师选择想查看的课程评分,评分表将会显示一个班级每个学生对此教师的评分以及班级总评分和平均分。在此部分的实现过程中,利用了超链接传递班级和课程信息。关键代码如下: (1)评分显示 //班级每个学生的评分 String cla=request.getParameter("cla"); cla=new String(cla.getBytes("ISO-8859-1"),"gbk"); String course=request.getParameter("course"); course=new String(course.getBytes("ISO-8859-1"),"gbk"); int count=0; int sum=0; double avg=0; int i; String sql="select 分数 from score where 学号 in(select 学号 from student where 班名 in(select 所带班级 from teacher where 所带班级='"+cla+"')) and 课程名称='"+course+"'"; try{ ResultSet rs=my.search(sql); rs.last(); count=rs.getRow(); rs.beforeFirst(); while(rs.next()){ } //总评分 for(i=0;i sum=sum+rs.getInt("分数");} //平均分 5.4.2 留言查看 教师查看学生对自己所授课程的评价留言,首先教师点击链接,查看是否有新留言,有新留言的话选择查看,此时会出现一个窗体,里面的内容即是留言信息。在此部分的实现过程中,判断是否有新留言,我在留言表中设置了个标识字段,当为yes的时候,此条留言为新留言,当教师查看后,标识变为no,表示已经查看的留言。关键代码如下: 显示是否有新留言String biaoshi="yes"; String sql="select * from liuyan where 教师姓名 in(select 教师姓名 from teacher where 教师ID='"+session.getAttribute("username")+"') and 标识='"+biaoshi+"'"; ResultSet rs=myt.search(sql); rs.last(); int i=rs.getRow(); rs.beforeFirst(); 留言信息//留言信息的显示 String id=request.getParameter("id"); id=new String(id.getBytes("ISO-8859-1"),"gbk"); int lid=Integer.parseInt(id); String sql="select 留言 from liuyan where 编号='"+lid+"'"; ResultSet rs=message.search(sql); //实现次留言为已查看留言 if(rs.getString("留言")!=null){ String biaoshi="no"; String sqlstr="update liuyan set 标识='"+biaoshi+"' where 编号='"+lid+"'"; message.dosql(sqlstr); 5.5 管理员页面及其基本功能的实现 此页面管理员主要对学生,教师,课程信息进行查询,更改,录入等操作以及对统计结果的操作,对信息处理就不重点介绍了。下面就对评分结果统计重点介绍下。 在统计功能中,管理员可以通过表单对教师及其所授课程的输入,查看学生对此教师的评分,同时计算出总分和平均分,管理员还可以根据具体情况对评分结果进行删除。为了更直观的查看评教情况,管理员还可以根据教师所属院系来查看教师排行榜。并能打印排行榜表。关键代码如下: (1)删除结果 String sql="delete from score where 教师姓名='"+request.getParameter("name0")+"' and 课程名称='"+request.getParameter("name1")+"'"; int m=yy.dosql(sql); yy.closed(); (2)教师排行榜(学生评分排行) 注:教师评分排行设计大体一致 这个功能的实现,重点是利用了SQL语言中的聚集函数AVG来计算平均分。
ResultSet rs=yy.search(sql); rs.last(); int count=rs.getRow(); rs.beforeFirst(); while(rs.next()){ %>
|
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |