网上评价系统需求分析
图 4-16学生权限管理
3.11.2 教师权限管理
在学生完成评教,并且汇总统计完成之后,才开放教师权限,让教师登录查看自己的得分情况,同学生权限管理类似,但只精确到学院开放。
图 4-17 教师权限管理
3.12 数据导出
由于PHP并未提供操作XLS格式的对象,我采用‘,’号分隔的CSV格式导出数据,ADODB可直接将查询结果集通过GetArray()函数转换为hash数组,
第23页
网上评教系统需求分析
通过对数组元素进行遍例即可输出为CSV格式。
此外,由于采用的是英文列名,所以结果集输出后,列标题仍然为英文列名,不便阅读,因此需要建立了一个hash数组实现列名的转换翻译,最终结果如图。
图 3-18 CSV输出
特别注意的是,需要修改HTTP的header(协议头)的Content-Type才能让浏览器识别文档进行下载,对于IE和Opera,Content-Type为application/octetstream,而对于netscape,Content-Type为application/octet-stream。
图 4-19 CSV导出下载
第24页
网上评价系统需求分析
附录
主要存储过程代码: TeachTask2StuAssess 教学任务书导入评分对象表 CREATE PROCEDURE TeachTask2StuAssess DECLARE @pre varchar(12) BEGIN TRANSACTION COMMIT
CLOSE iCursor DEALLOCATE iCursor WHILE @@FETCH_STATUS = 0 BEGIN END EXEC insertStuAssess_x @term, @pre FETCH NEXT FROM iCursor INTO @pre FETCH NEXT FROM iCursor INTO @pre OPEN iCursor DECLARE iCursor CURSOR FOR SELECT pre FROM table_pre EXEC insertStuAssess @term IF EXISTS(SELECT COUNT(1) FROM stu_assess WHERE as_term = @term) @term nvarchar(6) AS DELETE FROM stu_assess WHERE as_term = @term updateGroupScore 汇总评分 第25页
网上评教系统需求分析
CREATE PROCEDURE updateGroupScore IF EXISTS(SELECT 1 UPDATE stu_group_by_course SET score = f.score,stat_stdev = f.stat_stdev,stat_stdevp = f.stat_stdevp FROM stu_group_by_course a INNER JOIN ( SELECT b.as_te_id, b.as_co_id, b.as_term, b.score, t .stat_stdev, t .stat_stdevp SELECT as_te_id, as_co_id, as_term, FROM (-- 平均分 CAST(AVG(dbo.stu_assess_join.score) AS numeric(18, 2)) AS score FROM stu_assess_join WHERE score > 0 AND as_term = @term GROUP BY as_te_id, as_co_id, as_term ) b SELECT as_te_id, as_co_id, as_term, STDEV(s.score) AS stat_stdev, STDEVP(s.score) AS LEFT JOIN (-- 统计函数 FROM dbo.sysobjects WHERE name = 'stu_group_by_course' AND type = 'U') @term nvarchar(6) AS BEGIN stat_stdevp FROM stu_assess_join AS a INNER JOIN stu_score AS s ON a.as_id = s.as_id WHERE (marked * 100)/StudentNum >= ( SELECT TOP 1 fulfil FROM config ) END ) f AND a.as_co_id = f.as_co_id AND a.as_term = f.as_term ) t b.as_te_id = t.as_te_id AND b.as_co_id = t.as_co_id AND b.as_term = t.as_term AND as_term = @term GROUP BY as_te_id, as_co_id, as_term ON ON a.as_te_id = f.as_te_id updateGroupOrder 统计全校、按课程、按课程类型、所在学院排名 第26页