教学质量评价系统的设计与实现文档格式.docx
《教学质量评价系统的设计与实现文档格式.docx》由会员分享,可在线阅读,更多相关《教学质量评价系统的设计与实现文档格式.docx(28页珍藏版)》请在冰豆网上搜索。
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
院系数据表示记录院系信息的数据表。
第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"
);
("
d_no,d_name,d_introduction,d_ext1"
)"
values"
(?
?
//System.out.println(sql.toString());
Stringarr[]={department.getD_no(),department.getD_name(),department.getD_introduction(),"
0"
};
returnExecuteSql(sql.toString(),arr);
}
2.院系一览:
功能是浏览学校所有院系
单击院系一览
图19
publicList<
Department>
queryDepartments(intpageSize,intpageNo)
throwsException{
List<
list=newArrayList<
();
selecttop"
+pageSize+"
*"
fromdepartmentwhereidnotin"
(selecttop"
+(pageNo-1)*pageSize+"
"
idfromdepartmentorderbyidasc)"
orderbyidasc"
//desc
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{
insertintoprofessional"
p_no,p_name,p_introduction,d_no,d_ext1"
Stringarr[]={professional.getP_no(),professional.getP_name(),
professional.getP_introduction(),professional.getD_no(),"
4.专业一览:
功能是浏览所有的专业
单击专业一览
Professional>
queryProfessionals(intpageSize,intpageNo)
selecttop"
p.id,p_no,p_name,p.d_no,p_introduction,d_name"
fromprofessionalasp,departmentasd"
wherep.d_no=d.d_noandp.idnotin"
idfromprofessionalorderbyidasc)"
//selecttop5p.id,p_no,p_name,p_introduction,d_name
//fromprofessionalasp,departmentasd
//wherep.d_no=d.d_noandp.idnotin
//(selecttop10idfromprofessionalorderbyidasc)orderbyidasc
Professionalprofessional=newProfessional();
professional.setId(rs.getInt("
professional.setD_no(rs.getString("
professional.setP_no(rs.getString("
p_no"
professional.setD_ext1(rs.getString("
professional.setP_name(rs.getString("
p_name"
professional.setP_introduction(rs.getString("
p_introduction"
list.add(professional);
图20
课程管理:
1.班级添加:
功能是添加新的班级
选择所属院系——所属专业——所属年级——临时班级〔是/否〕——输入班级名称
publicintaddGradeClass(GradeClassgradeClass)throwsException{
insertintogradeclass"
g_no,g_name,g_flag,p_no,d_no,g_ext1"
Stringarr[]={gradeClass.getG_no(),gradeClass.getG_name(),gradeClass.getG_flag()+"
"
gradeClass.getP