教学质量评价系统的设计与实现.docx
《教学质量评价系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《教学质量评价系统的设计与实现.docx(30页珍藏版)》请在冰豆网上搜索。
![教学质量评价系统的设计与实现.docx](https://file1.bdocx.com/fileroot1/2023-1/25/1d9e1776-57cb-4c66-bc66-4907a12b75d9/1d9e1776-57cb-4c66-bc66-4907a12b75d91.gif)
教学质量评价系统的设计与实现
第1章开发背景及相关技术介绍
1.1开发背景
在高校教学活动中,教师的教学质量评价是教学质量监控的关键环节,对提高教学质量和办学效益起着至关重要的作用。
因此只有建立完善的教学质量监控体系才能客观公正地评价教师教学工作,激发教师教学的质量意识,全面提高高校教师教学业务水平和教学效果。
然而传统的评教方式在评教的时效性、数据处理的直观和准确性、可操作性等方面已不能很好地满足现代学校的要求。
随着信息技术的快速发展,我们应该充分利用其优势,建立教师评价系统,使学校对教学实现实时监控,及时掌握教学过程中的问题。
与传统的纸本评教的做法相比,使用系统进行评教,有以下四个优点:
1.打破了之前评教方式的局限,可以更科学、更准确地对教师教学的工作进行客观的评价,可以降低评教打分的个人主观性、个人随意性。
2. 因为问卷设计了不同的评教指标,方便从多个不同的角度对学校评教的结果进行更客观分析,提供更科学与准确的数据,大大提高了教学评价的准确度。
3. 提升了原有纸质评教的地域局限性,若将信息网络中心端口对外开放,整个校园网甚至互联网上的所有用户都可以访问本教学评教系统。
因而就可以在更广泛的地域、任意时刻都可以用自己的身份访问此系统进行评教,大大提高了教学评教的灵活性,更对于远程异地的教学工作尤显本系统的优越性。
4.突破了传统评教耗时、耗力的情况。
应用系统,可大大减低教务人员及评价人员的消耗。
使评教更加便捷、简单。
1.2开发目的
随着计算机技术,网络技术,特别是信息技术的高速发展。
动态交互式网页提供了人们对最新信息的需求和发布迫切需要及时性。
本系统就是一个能够通过网络实现教师评教系统,能够大大减轻教工人员的工作量,提高办事效率;设计教师教学质量评教系统只是一种手段,作为一名即将毕业的计算机学生,我想通过它使我可以更好的了解计算机的工作过程,掌握开发语言的使用方法,掌握开发各种项目的工作技能,适应迅猛发展的社会。
1.3教学质量评价系统的容
教师教学质量评价系统,包括用户登陆系统、用户管理、用户信息录入、教师评价、统计分析、系统帮助等基本功能实现。
用户可根据需要自行设计评价及其评价项目,给出评分标准。
1.4开发技术简介
1.4.1开发语言——Java简介
Java是一门优秀的编程语言,具有面向对象、与平台无关、安全、稳定和多线程等特点,是目前软件设计中极为健壮的编程语言[1]。
Java不仅可以用来开发大型的应用程序,而且特别适合于Internet的应用开发[2]。
1995年6月SUN公司将Java这种革命性的编程语言引进到这个世界,且在同一年,被美国的著名杂志《PCMagazine》评为十大优秀科技作品之一[1]。
之所以称Java编程语言具有革命性,是因为传统的软件往往依赖于具体的实现环境,环境一旦有所变化就要对软件进行相应改动,耗时费力,而Java编写的软件能在执行码上实现兼容。
1.4.2SQLServer2005简介
SQL即StructuredQueryLanguage全称是结构化查询语言,SQLServer2005是微软公司开发的一个大型的关系数据库系统,它为用户提供了一个安全、可靠、易管理和高端的客户/服务器平台,而且SQL语言有统一的操作规、操作方式集合化、简单智能化、功能强大、语句简洁和简单易学等特点,便于使用者掌握和使用[5]。
SQL具有如下的优点:
(1)SQL是一种非过程化的语言,它采用一次一记录的方式,对数据提供自动导航。
SQL允许用户将工作提升到高层的数据结构上,可以对记录集进行操作,并非单个记录。
SQL的集合特性允许SQL语句采用嵌套查询的方式,在一条SQL语句中插入另一条语句。
SQL不限定数据的存放方法,这种特性使用户更易集中精力于要得到的结果[11]。
(2)统一的语言
SQL为许多任务提供了命令,包括:
①查询数据
②在表中插入、在表中修改和在表中删除记录
③建立数据表、修改数据类型和删除无用数据
④掌控对数据和数据对象的存取
⑤保证数据库的一致性及完整性
(3)是所有关系性数据库的公共语言
因为所有主要的关系性数据库管理系统都会支持SQL语言,用户完全可以使用SQL的技能从一个RDBMS转移到其他上。
所有用SQL编写任何程序都是可以移植使用的[11]。
1.4.3TomCat简介
本系统的Web服务器选用Apache开元组织提供的TomCat,因为TomCat是一个免费的开元软件是SUN公司推荐的web服务器。
它因为技术先进、性能稳定而深受Java开发者的喜爱和部分软件开发商的认可,更重要的是它运行时占用的系统资源小,扩展性好,支持负载平衡与服务等开发系统常用的功能。
另外,TomCat是一个轻量级服务器,在中小型系统和并发用户不是很多的情况下被普遍使用,是开发和调试JSP程序的首选[7]。
1.5JSP技术简介
java服务器页面是由SunMicrosystems公司倡导、其他许多公司参与一起建立的一种动态网页技术标准。
JSP技术有点类似ASP技术,它是在传统的网页HTML文件中插入Java程序代码和JSP标记,形成JSP文件,后缀名是(*.jsp)。
JSP(JavaServerPages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来[6]。
JSP页面由HTML代码和嵌入其中的Java代码所组成。
服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。
JavaServlet是JSP的技术基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成。
JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠[6]。
1.6JSP工作原理
JSP是面向服务器的,所以支持不同的浏览器。
当Web服务器或JSP引擎遭到JSP网页的请求时,JSP引擎会将这个请求对象发送给服务器端的相关组件,比如JavaBean组件等,之后由服务器端组件处理传过来的请求,将会从数据库或数据存储中检索相关的信息,之后服务器端组件将会响应对象的请求返回JSP引擎[6]。
JSP引擎再将响应的对象信息传递给JSP页面,再根据JSP页面的HTML所用的格式完成对数据编排,最后Web服务器及JSP引擎再将格式化后的JSP页面及HTML格式响应给客户浏览器[10]。
这就是目前流行构建中广泛采用的浏览器——Web服务器——后台数据库的三层架构模式。
因为JSP所有的程序操作全部都是在服务器端执行,网络上传送给客户端的数据仅仅是得到的响应结果。
1.7系统数据库连接
JDBC技术是JavaDataBaseConnectivity的缩写。
JDBC是SUN公司提供的一种支持基本SQL语言功能通用的应用程序的接口(ApplicationProgrammingInterface)。
JDBC能完成下列三件事:
同一个数据库建立连接;
向数据库建立连接;
返回数据库处理后的结果。
JDBC是JAVA应用程序与数据库的沟通纽带。
JDBC提供了服务功能:
首先与数据库建立连接。
第二将编好SQL语句传递数据库。
最后从数据库获得SQL语句执行结果。
数据库的连接处理:
//建立JDBC——ODBC桥
sun.jdbc.odbc.JdbcOdbcDriver;
//桥建立不成功时的错误处理
catch(ClassNotFoundExceptionevent){}
//建立和数据库的连接,并发送SQL查询语句,将结果保存到rs对象中
Con=建立JDBC——ODBC桥
Sql=SQL查询语句
执行查询
Rs=返回结果
//SQL出错处理
catch(SQLExceptione1){}
第2章系统分析
2.1需求分析
(1)用户登录:
该功能提供用户的登录服务。
用户设置功能只有使用正确的用户密码才能进入。
如果用正确密码进入系统,则可具有对教师教学质量的评价权限。
否则提示错误。
(2)用户管理:
该功能是为用户管理设置的,主要功能是对用户进行添加、删除、修改等。
方便用户的管理。
(3)录入信息:
该功能是对数据的录入。
其中包括:
学生信息录入、院校信息录入、教师信息录入。
使用户信息更加完善。
(4)教师评价:
该功能是对教师教学质量进行系统的评价。
主要功能包括:
学生评价、院校(领导、同行)评价、教师自我评价等三个部分。
这也是本系统最重要的组成部分之一。
用户登陆界面后,可自行对教师进行评价。
(5)统计分析:
该功能是结合教师评价功能而计算出总评价。
其中包括:
统计结果和查询结果两项。
在统计结果中,用户可对前面教师评价进行系统的评价,可以得出对教师的总评价。
在查询结果中,用户可以浏览教师被评价的结果,可对该教师有个初步认识。
(6)系统功能:
该功能让用户能了解本系统及其使用方法。
其中包括:
关于、帮助、退出三部分功能。
关于:
阐述了系统所使用的软件开发工具。
帮助:
系统的介绍了各个功能模块的应用。
退出:
退出整个系统。
2.2系统功能设计
系统要求能够实现以下功能:
(1)要求学生能够进行选课。
(2)要求学生能够对教师进行教学质量评估。
(3)要求教师能够查看评教,以及对同行进行教学质量评估。
(4)要求管理员能够对学生,教师信息进行插入,删除等操作
(5)要求管理员能够对教学质量评估进行统计。
2.3系统设计思想
本系统存在3种用户:
学生、教师、管理员。
学生和教师用管理员给定的帐号、密码登陆页面进行操作。
登陆判定上首次基于数据库验证,然后把用户信息写进session,然后其他页面采用session验证。
系统结构上采用页面镶嵌程序和语句,工作原理如下图所示[5]。
图1
在系统结构中,用户界面层通过统一的接口向数据库存储层发送请求,数据库存储层收到请求处理之后把数据返回到用户界面层[4]。
2.4数据库分析
数据库各表之间的关系图
图2
数据库各表之间的关系图
图3
课程数据表,记录学校所开的课程。
记录课程名称、课程编号、课程所属年级、学期、班级以及代课老师的编号。
主键c_no,c_flag记录该课程是否是选修课(0表示正常课,1表示选修课)。
图4
教师数据表记录教师的基本信息:
、编号、性别、联系方式等。
其中d_no对应着院系表的主键d_no,记录教师所属院系。
主键t_no。
图5
学生数据表是记录学生基本信息的一表。
其中g_no是班级数据表中的主键g_no,表示该学生所属班级。
主键s_no
图6
专业数据表记录着专业的一些信息,包括专业名称、专业编号等。
其中p_no对应着院系数据表中的p_no,表示该专业所属院系。
主键d_no
图7
班级数据表记录着学校班级信息。
它是一关键表,是连接院系和学生的一表。
其中d_no和p_no分别对应着院系表和专业表的主键d_no和p_no。
主键g_no。
图8
评价数据表是记录学生或教师对教师的评价数据的一表。
其中t_no表示被评价的教师编号,t_no1表示评价教师编号,c_no表示评价的课程编号。
S_no表示评价的学生编号。
E_flag表示评价标识(0表示学生评价代课教师,1表示教师评价同行)。
图9
院系数据表示记录院系信息的数据表。
主键d_no
第3章系统设计与实现
3.1系统功能设计
本系统分为学生操作界面、教师操作界面和管理员操作界面。
学生界面能完成如下操作[3]。
(1)个人信息:
通过该功能模块,学生能查看自己的信息。
(2)教学质量评价:
通过该功能模块,学生对授课教师进行评教。
教师界面能完成如下操作:
(1)查看我的评价:
通过该功能模块,教师查看自己的评价分数。
管理员界面能完成如下操作:
(1)学生管理:
通过该功能模块,管理员能够查看学生信息,以及对学生的添加、更新、删除。
(2)教师管理:
通过该功能模块,管理员能够查看教师信息,以及对教师的添加、更新、删除。
(3)评价一级指标:
通过该功能模块,管理员能够添加和管理一级指标信息。
(4)评价二级指标:
通过该功能模块,管理员能够添加和管理二级指标信息。
3.2用户登录流程图
通过系统功能设计,画出用户登陆流程图如下:
图10
该版块是对于用户登陆的管理和操作,其中涉及到登陆的权限问题,当用户名为admin或教师时,可以对所有信息进行操作,包括更新,查询,删除等等。
普通用户只要浏览信息的权限。
3.3系统功能流程图
系统的功能流程如下图:
图11
系统登陆实现如图:
图12
图13
图14
在使用本系统时均需要登录后,才可使用,登录时会让你键入用户名和密码。
用户名都是管理员分配给用户的并且具有唯一的标示性,用户不可更改,但是用户可以更改自己的密码。
登录时,系统会根据你所输入的用户名和密码,给出相应的提示,若用户名及密码正确,会进入学生的主页面进行相应的操作,若用户名及密码都不正确,会提示重回登陆的主页面再次登陆。
其中username和userpassword是利用JSP中request对象的getParameter方法从表单中读取的值,同时在代码设计中将值传递给JSP中的session对象,方便在其他页面中使用。
3.4登录模块
登录模块的主要功能:
用户可直接进行用户类型的选择,用户类型包括:
管理员、教师、学生三种。
登录界面如图10所示[2]。
1.判断是否输入了正确的用户名及正确的密码,若没有输入,则返回,要求用户输入;
2.判断当前输入的用户名是否存在,若不存在,则返回,要求用户再次输入;
3.若键入的用户名存在,则读取此用户的数据,再将用户密码与键入的密码进行比较,若密码错误,则返回,要求用户再次输入;
4.关闭登录窗体。
图15
3.5管理员实现管理设计
管理员功能模块的主要功能:
院系管理,课程管理,人员管理。
图16
图17
院系管理:
1.院系添加:
功能是添加一个新的院系
操作:
输入院系名称——输入院系的简介
图18
代码实现:
publicintaddDepartment(Departmentdepartment)throwsException{
StringBuffersql=newStringBuffer();
sql.append("insertintodepartment");
sql.append("(");
sql.append("d_no,d_name,d_introduction,d_ext1");
sql.append(")");
sql.append("values");
sql.append("(?
?
?
?
)");
//System.out.println(sql.toString());
Stringarr[]={department.getD_no(),department.getD_name(),department.getD_introduction(),"0"};
returnExecuteSql(sql.toString(),arr);
}
2.院系一览:
功能是浏览学校所有院系
操作:
单击院系一览
图19
代码实现:
publicListqueryDepartments(intpageSize,intpageNo)
throwsException{
Listlist=newArrayList();
StringBuffersql=newStringBuffer();
sql.append("selecttop"+pageSize+"*");
sql.append("fromdepartmentwhereidnotin");
sql.append("(selecttop"+(pageNo-1)*pageSize+"");
sql.append("idfromdepartmentorderbyidasc)");
sql.append("orderbyidasc");//desc
//System.out.println(sql.toString());
ResultSetrs=null;
try{
rs=ExecuteQuerySql(sql.toString());
while(rs.next()){
Departmentdepartment=newDepartment();
department.setId(rs.getInt("id"));
department.setD_no(rs.getString("d_no"));
department.setD_name(rs.getString("d_name"));
department.setD_introduction(rs.getString("d_introduction"));
list.add(department);
}
}catch(Exceptione){
throwe;
}finally{
Close(rs);
}
returnlist;
}
3.专业添加:
功能是添加新的专业
操作:
选择所属院系——输入专业名字——输入专业介绍
代码实现:
publicintaddProfessional(Professionalprofessional)throwsException{
StringBuffersql=newStringBuffer();
sql.append("insertintoprofessional");
sql.append("(");
sql.append("p_no,p_name,p_introduction,d_no,d_ext1");
sql.append(")");
sql.append("values");
sql.append("(?
?
?
?
?
)");
//System.out.println(sql.toString());
Stringarr[]={professional.getP_no(),professional.getP_name(),
professional.getP_introduction(),professional.getD_no(),"0"};
returnExecuteSql(sql.toString(),arr);
}
4.专业一览:
功能是浏览所有的专业
操作:
单击专业一览
代码实现:
publicListqueryProfessionals(intpageSize,intpageNo)
throwsException{
Listlist=newArrayList();
StringBuffersql=newStringBuffer();
sql.append("selecttop"+pageSize+"");
sql.append("p.id,p_no,p_name,p.d_no,p_introduction,d_name");
sql.append("fromprofessionalasp,departmentasd");
sql.append("wherep.d_no=d.d_noandp.idnotin");
sql.append("(selecttop"+(pageNo-1)*pageSize+"");
sql.append("idfromprofessionalorderbyidasc)");
sql.append("orderbyidasc");//desc
//selecttop5p.id,p_no,p_name,p_introduction,d_name
//fromprofessionalasp,departmentasd
//wherep.d_no=d.d_noandp.idnotin
//(selecttop10idfromprofessionalorderbyidasc)orderbyidasc
//System.out.println(sql.toString());
ResultSetrs=null;
try{
rs=ExecuteQuerySql(sql.toString());
while(rs.next()){
Professionalprofessional=newProfessional();
professional.setId(rs.getInt("id"));
professional.setD_no(rs.getString("d_no"));
professional.setP_no(rs.getString("p_no"));
professional.setD_ext1(rs.getString("d_name"));
professional.setP_name(rs.getString("p_name"));
professional.setP_introduction(rs.getString("p_introduction"));
list.add(professional);
}
}catch(Exceptione){
throwe;
}finally{
Close(rs);
}
returnlist;
}
图20
课程管理:
1.班级添加:
功能是添加新的班级
操作:
选择所属院系——所属专业——所属年级——临时班级(是/否)——输入班级名称
代码实现:
publicintaddGradeClass(GradeClassgradeClass)throwsException{
StringBuffersql=newStringBuffer();
sql.append("insertintogradeclass");
sql.append("(");
sql.append("g_no,g_name,g_flag,p_no,d_no,g_ext1");
sql.append(")");
sql.append("values");
sql.append("(?
?
?
?
?
?
)");
Stringarr[]={gradeClass.getG_no(),gradeClass.getG_name(),gradeClass.getG_flag()+"",
gradeClass.getP_no(),grad