郑志荣
摘要:随着计算机软件的发展,很多人工对数据的管理都逐渐被计算机软件所淘汰。目前各大高校都会针对本学院实际情况采购整套教务管理系统,方便学院的教务管理。但对于部分小的学校和培训机构,不愿意承担更多的经费来采购大的教务管理系统,仅仅是为了解决课程管理方面的问题,那么用本文所提出的课程管理系统就可以实现课程安排、课程管理以及班级课表查询等功能。
关键词:课程管理系统;设计;实现
中图分类号:G642 文献标识码:A 文章编号:1009-3044(2016)29-0120-02
1系统的实现目标
通过本系统,可以实现对本学院的教学任务进行录入、课程进行编排。通过计算机智能排课,把2系统模块设计
本系统主要有以下模块:
1.1课程管理模块
1)课程库管理
2)课程安排
3)课程安排查询
4)班级课表
1.2系统维护模块
1)用户管理
2)关于
3)帮助
4)退出系统
2详细设计
2.1课程管理模块
课程管理模块能实现对人才培养方案所规定的课程进行导人,对教学计划进行调整。并可通过手工增加课程信息,完成课程管理的基本功能,比如输入课程信息、修改课程信息、修改教室信息、删除课程信息、备份课程信息等。本节内容包括如下几个方面:课程管理模块的分析;窗口基本空间的实际;软件界面的设计;软件数据库的构建。
1)模块功能分析
实现思路:课程信息保存在Course数据表中,通过ADO的Recordset对象从数据表中取出记录,并通过DataGrid表格将数据显示在数据表上,实现数据的浏览。由于是单表操作,可以通过Recordset对象的AddNew、Delete、Updme等方法可以实现添加、删除和修改功能。
2)窗体的设计
单击“工程”菜单下的——“添加窗体”,给工程创建一个新的窗体控件,窗体的控件属性如下所示:
将窗体保存为kechengguanh.frm。
3)课程管理模块界面的设计
课程管理模块界面设计一定要人性化,便于用户操作。颜色上选择浅色作为底色,在窗体上添加日期选择框、文本框控件、按钮控件、组合框控件以及若干标签和数据控件。其中dt-pBeginDate是日期选择框。数据表格dbgClass的设置可以参考“院系设置模块”中对dbgDepart的操作。
4)模块功能的实现
窗体卸载过程,在窗体的卸载过程中完成以下功能:断开数据表格和数据集的绑定;关闭打开
的数据集;断开模块和数据库的连接;
释放ADO对象实例。代码如下:
Private Sub Form_Unload(Cancel As Integer)
Set dgCourse.DataSource=Nothing
rs.Close
Conn.Close
Set rs=Nothing
Set Conn=Nothing
End Sub
数据浏览功能的实现:
通过四个导航按钮实现对数据库的浏览。代码如下:
Private Sub cmdFirst_Click0
If rs.RecordCount>0 Then rs.MoveFirst
End Sub
Private Sub cmdLast_Click0
If rs.RecordCount>0 Then rs.MoveLast
End Sub
Private Sub cmdNext_Click0
If Not rs.EOF Then rs.Mo eNext
If rs.EOF And rs.RecordCount>0 Then
rs.MoveLast
End If
End Sub
Private Sub cmdPrevious_Click()
If Not rs.BOF Then rs.MovePrevious
If rs.BOF And rs.RecordCount>0 Then
rs.MoveFirst
End If
End Sub
记录添加功能的实现:
界面上的文本框没有和数据集绑定,在里面输入数据并不影响数据集里面的记录。当单击[添加]按钮时,利用Recordset对象的AddNew方法将文本框中的数据加到数据集中。添加前先对数据进行规格化处理,然后验证數据的合法性,并利用另一个Recordset对象检查课程编号的合法性。使用AddNew方法添加记录后,数据只保存在缓冲区中,需要调用UpdateBatch(或者Update)方法将数据写到数据库中。注意,rsValid使用完毕后应该将其释放。
数据修改/保存功能的实现:
当用户按下[修改]按钮时,请数据集中的字段信息取出放到文本框中供用户修改,使[保存]按钮能够被用户单击,以保存修改后的数据。Credit和Period是数值型字段,需要进行类型转化。
[保存]按钮功能的实现和[添加]按钮比较相似,不同的是如果课程编号被修改,为了保持数据库的完整性,其他数据表(包括选课数据表、成绩数据表)中的课程编号也应作相应的修改,也就是数据的“级联更新”。级联更新通过ADO的Com—mand对象来实现,利用该对象执行一个更新数据的SQL语句实现对表中多条数据的一次性更新。使用Command对象时,注意Command对象属性的设置。
当用户单击导航按钮移动数据集指针后,为了防止单击[保存]按钮错误修改数据,应禁止[保存]按钮。在代码编写窗口对象组合框中选择“rs”,从事件组合框中选择“MoveCom-Dlete”事件。
2.2课程编排模块
课程编排模块主要负责人物、时间、地点等要素的合理分配,智能编排出科学合理的课表。主要涉及录入教室信息、教室信息、课程信息和各种约束条件。软件设计内容包括如下几个方面:模块分析;窗体的创建;模块用户界面的设计;模块功能的实现。
2.2.1模块功能分析
实现思路:可以列出所有班级和课程供用户选择安排,已经安排好的课程用表格显示出来供用户修改、删除。数据的显示通过ADO的Recordset对象实现,数据的添加、修改、删除通过ADO的Command对象完成。
2.2.2窗体的设计
在工程中新建一个窗体,将窗体保存为FormCourseAr-range.frm。窗体的主要属性设置如下表所示:
2.2.3课程安排查询模块
课程安排模块实现对各门课程安排情况的查询。本节内容包括如下几个方面:模块分析;窗体的创建;模块用户界面的设计;模块功能的实现。
1)模块功能分析
实现思路:为了便于用户查询课程安排情况,可以从常用的几个选项来查询。比如按教室查询课程情况;按教师查询课程情况;按课程名查询任课信息等。使用组合框或者多选项来完成。用户只需要点击相关选项,输入必须的关键字段,比如教室号或者教师名等信息,就将课程安排的整体情况显示出来。设置导出和打印按钮控件,方便用户导出编辑或者直接打印课表安排信息。
2)窗体的设计在工程中新建一个窗体,将窗体保存为CourseQuery.frm。窗体的主要属性设置如下表所示:
3)模块功能的实现
仿照前面的程序代码,不难实现本模块。这里只简要说明编程思路。窗体加载时,需要将所有课程的编号填充到组合框中;为了初始化界面,应在窗体加载过程中调用组合框的Click事件;组合框被单击时,需要显示该课程的基本信息;组合框被单击时,还需要将该课程被安排的情况显示在表格中。具体的编程实现可参考“课程安排”模块。
2.2.4班级课表查询模块
课程课表查询模块实现对各班级的课程安排情况的查询。本节内容包括如下几个方面:模块分析;窗体的创建;模块用户界面的设计;模块功能的实现。实现思路:本模块和“课程安排查询”模块都是查询选课数据表(CourseSelectl,不同之处在于本模块是按照班级查询选课课表,而“课程安排查询”模块是按照课程查询。窗体的设计与前面的模块设计基本类似,不再介绍。
3系统的编译和发行
所有模块设计完成以后,系统的工程窗口应该如右图所示。单击[运行]→[启动]菜单项(或者按F5功能键),运行程序,输入实验数据,测试系统的功能,如果有任何问题请检查、修改各项设置和程序代码。单击[文件]→[生成教学管理系统.exe]菜单项,Visual Basic编译生成一個可执行文件教学管理系统.exe。将教学管理系统.exe和教学管理系统.mdb复制到任意一个文件夹或者其他的机器上,双击教学管理系统.exe,进行独立运行测试。
4总结与提高
本文采用ADO方式设计开发了一套课程管理系统。与数据控件方式比较,采用ADO方式设计开发编程的技术难度更大,不过ADO方式更加灵活,可读性,稳定性更高。特别是在软件开发的实际中,采用AOD方式设计开发的方式应用更为普遍。软件开发过程用,用户的需求永远是第一位的,在保证软件实现功能的基础上,尽最大可能的满足用户操作,界面设计友好,操作简单,便于上手操作。对某些细节问题进行适当的处理。ADO对象库中,部分对象的功能重叠,例如,Recordset对象、Command对象、Connection对象都可以实现数据的添加、修改和删除,但不同对象处理的相同功能的方式是不一样的,以添加数据为例,使用Command对象效率更高,而使用Record-set对象操作更加方便一些。在学习ADO编程时应仔细体会它们的区别,以便更好地掌握它们。