您当前的位置:首页 > 计算机论文>软件开发论文

基层电大排课系统的设计与实现

2015-08-05 09:04 来源:学术参考网 作者:未知

摘 要:摘要:面授课课表编排是电大教学管理工作的基础性工作,采用EXCEL软件开发的教学管理排课系统,既保留了手工排课方便灵活的特点,又可以快速地进行课务报表输出。

关键词:关键词:EXCEL;VBA;数据库;课表;编排;报表;管理系统


中途分类号:TP302.1    文献标识码:A    文章编号:
1. 系统开发的意义
  电大面授课课表的编排过程实际上就是教学资源分配、教学策略的实施过程。由于教育市场需求变化,每学期在专业开设、招生人数、课程性质、师资情况等都是不一样的,所以课表编排工作具有复杂性。在课表编排同时,还需要为各使用者,如班主任、教学管理部门、学生提供各式课务报表,这些报表如何快速、准确地生成,是值得探讨的。
  多数教学管理部门虽利用现代化的办公软件制作课表,但往往依赖人工决策和校对,忽视数据库及编程技术的运用,许多基层电大管理人员在开学前疲于排课,压力大不用说,到头来仍存在许多错误。而某些全封闭的自动化排课程序,总是以牺牲排课方案的质量为代价换取一、两个小时的速度[1]。这类软件也不能在广大基层电大得到充分推广使用。
  因此,好的软件应充分发挥人的主观能动性,让排课人员掌控自己的排课思路、策略和原则[1]。一款实用的排课软件,应具有如下特征:一是能提高了教学管理工作的效率,可以方便地进行课务报表的输出;二是排课更加科学,可以减少甚至消除错误的发生;三是在安排好课程表的同时,可以利用排课数据为各种教学管理提供更好的支持服务,如打印任课通知书、各类统计报表等;四是具有较大灵活性,能充分发挥操作者的主观能动性,这样才有助于推广使用。
2.系统功能及分析
2.1 主要业务处理流程
 
  排课过程中,主要工作由教学管理部门的教学秘书来完成,具体业务处理流程,根据金玉明(2010)研究得出的结论,可用图1加以概括[1],本文对其解释如下:
2.1.1 教务员:根据专业课程规则做好开课计划,向教学管理部门提供新学期的开课信息。
2.1.2 教学秘书:
  (1) 检查教师库信息,及时更新教师库信息,以便根据开课信息表,提出任课教师人选的建议;
  (2) 安排任课教师:检索教师信息,结合教师工作量要求,给每位教师安排适当的课程和课时数,对存在师资不足的情况,及时向上级反映;
  (3) 排课:根据现有的教学任务、教师、课室、可安排的日期时间段,安排好各班课程,要做到无遗漏、无冲突;
  (4) 发布课务安排表:根据课程安排结果,根据不同需求生成班级课表、教师课表、总课表等报表。
  注:(3)、(4)是本文研究的重点。
2.2 系统构成
  为了较好地完成以上工作,本排课系统设计了三个子功能系统,如图2所示:
 

  其中教学安排决策子系统,整合开课计划表、班级情况表、教师情况表、考试合格率等信息,为教学管理部门的决策提供综合信息,以便教学秘书进行进一步课表编排。(注:限于篇幅,本文对决策子系统不作具体介绍)
  课表编排子系统,根据开课信息表、课室信息表、开课日期时间信息表、教师信息表,利用二维表格的直观形式进行人工编排,再利用VBA代码进行二维表格向数据库表的转换,以便下一步    在课务安排(报表)子系统中利用该数据进行报表生成。
  课务安排表(报表)子系统,利用EXCEL数据透视表技术,生成各类报表。
3.关键技术介绍
3.1 EXCEL控件在排课子系统中的应用
  该系统实现在EXCEL中完成全部操作,各工作表由信息表、若干编排子表构成,其中信息表存放了教师、课程、班级、教师、总表数等信息,这些信息在编排课程子表时,由系统自动调用,以提高录入速度和准确性,减少人工录入的差错。
  该系统具有教师、教室、班级、课程信息既可直接输入,也可从自制的排课工作栏的组合框控件中选择输入。如图3所示:
 
                        图3课表编排子系统
3.2 VBA编程技术在排课软件中的应用
3.2.1 利用VBA代码进行错误的动态排查
  在排课子程序中,在输入时自动进行教师、教室冲突检查,并及时提示。VBA代码如下[2]:
Sub ck_tr(s_tc, s_rm, row_no)
  For m = 1 To zbs                              '总表1到zbs循环
    s_sheet = "总表" & m                        '形成工作表名
    For k = Asc("E") To Asc("N") Step 3         '列E、H、K、N循环
      s_cell = Chr(k) & row_no                  '形成单元格名
      s_tc_v = Worksheets(s_sheet).Range(s_cell).Value               '变化教师
      s_rm_v = Worksheets(s_sheet).Range(s_cell).Offset(0, -1).Value '变化教室
      If s_rm <> "" And s_tc <> "" And (s_tc = s_tc_v And s_rm <> s_rm_v Or _
        s_tc <> s_tc_v And s_rm = s_rm_v) Then
        '同教室而不同教师,或者不同教室同一教师,则属于排课"冲突"
        s_msg = "教师或教室冲突!(" & s_sheet & "," & Chr(k) & row_no & ")"
        MsgBox s_msg, vbExclamation, "提醒"
      End If
    Next
  Next
End Sub

3.2.2 排课数据表的自动生成
  排课结束后,利用以下VBA代码,可将课表编排结果整理成数据表,字段名包括专业、课程、教师、日期、课室等:
Sub kebiao()
  '设置目标单元格所在行号
     hh = 2
  '提取整理结果
  For m = 1 To 15
    s_sheet = "总表" & Trim(Str(m)) '形成工作表名
    For k = Asc("C") To Asc("L") Step 3
        For n = 5 To 106
             s_cell_tc = Chr(k) & Trim(Str(n)) '形成课程单元格名
             s_kc = Worksheets(s_sheet).Range(s_cell_tc).Value '形成课程名
            
            If s_kc <> "" Then '如果课程名不为空
                '形成教室名、日期、老师、班级名单元格地址
                s_cell_js = Chr(k + 1) & Trim(Str(n))
                s_cell_rq = IIf(n Mod 2 = 1, "A" & Trim(Str(n)), "A" & Trim(Str(n - 1)))
                s_cell_teacher = Chr(k + 2) & Trim(Str(n))
                s_cell_bj = Chr(k) & "3"
                '将有关信息填写到整理结果表中
                  s_cell_jg = "A" & hh
                Worksheets("整理结果").Range(s_cell_jg).Value = Worksheets(s_sheet).Range(s_cell_bj).Value '班级
                   ……(省略4行)
                hh = hh + 1 '下一行
            End If
        Next
    Next
Next

End Sub

3.3 利用数据透视表和VLOOKUP函数生成课务报表
  以生成“教师授课总表”为例,试将所整理的课程数据表用数据透视表处理一下,我们会发现,尽管数据透视表功能强大,得出的结果却不尽如人意,因为数据透视表的强项是处理数字,对于文本内容,常常无能为力,结果与我们的要求相 距甚远。
  当然,处理得当也能为我所用,经研究我们发现,只要给每门课程及所在课室一个检索编号,就可以利用VLOOKUP函数把它重新找回来,用“平均值项”作为数据的处理方式即可。只要排除了课程安排上的冲突,只要同一个课室,就是同一个编号,计算的结果都是准确的。如图4、5、6所示。最后,生成了“教师授课总表”,如图7所示。
 
图4给课程和课室信息加上检索编号
 
                    图5,数据透视表处理结果1
 
              图6,数据透视表操作向导
 
                    图7  数据透视表处理结果2

4. 结束语
  以上分析主要从管理和技术角度介绍排课系统的特点,由于各个学校情况相差较大,可以直接采用其技术的可能性还是较小的,但如果从提高教学管理水平的愿望出发,则充分进行交流还是有必要的。本软件开发过程,能利用数据库管理知识,把课程安排变成一项教学研究工作,跳出常规的思维,可以说找到适当基层电大的一种较理想的模式,在此撰文,希望起到抛砖引玉的作用。
参考文献:
1,金玉明,课务安排计算机管理系统的一种设计方案,机电信息,2010,(6)
2.李政,梁海英,李昊,《VBA应用基础与实例教程》,国防工业出版社,2005年
3,倪海鸥,教室调度表的设计与实现,宁波广播电视大学学报,2006,(6)
4,张建成,EXCEL在高职院校师资预测中的应用,中国科教创新导刊,2011,(28)
5,何志斌,广播电视大学排课系统研究与实现,电脑与电信,2007,(3)
6,EXCEL HOME,《EXCEL数据处理与分析实战技巧精粹》,人民邮电出版社,2008年8月第一版


 

相关文章
学术参考网 · 手机版
https://m.lw881.com/
首页