教学信息管理系统.ppt
第13章 教学信息管理系统,系统分析与设计创建数据库及数据表 创建工程和系统主窗体 课程信息管理模块 成绩管理模块 教师信息管理模块 教师任课管理模块用户信息管理模块学生基本信息管理模块教师课程表查询模块学生成绩综合查询模块小结,返回书目,第13章 教学信息管理系统,13.1 系统分析与设计需求分析 模块设计,13.1 系统分析与设计,需求分析 根据高校教学信息管理的实际要求,结合教学信息管理的实际流程,开发的教学信息管理系统需要满足以下需求:对学生的基本信息进行管理,其中包括学号、姓名、性别、出生日期、所在班级、联系电话、备注等。对教师的基本信息进行管理,其中包括工号、姓名、年龄、所在系(二级单位)、联系电话、备注等。对学生成绩进行管理,方便学生成绩的录入和查询。对教师的任课进行管理,能输出每位教师的课程表。对成绩等信息提供灵活的浏览和综合查询等功能,可以方便地查看和浏览学生基本信息、教师基本信息、成绩数据。教务员可以对学生、教师基本信息以及课程信息、成绩等具有添加、删除和编辑等操作。,13.1 系统分析与设计,模块设计根据系统需求分析,结合实际情况,经过模块分析,系统应具有以下几个功能模块:1用户管理模块本系统的用户分为三类:学生用户、教师用户和教务员用户。2学生基本信息管理模块此部分功能只有教务员具有操作权限。3课程基本信息管理模块此部分功能只有教务员具有操作权限。4教师基本信息管理模块此部分功能只有教务员具有操作权限。5程表查询模块由教师根据自己的工号,查询生成相应时间所授课程的时间和地点,并生成课程表。,第13章 教学信息管理系统,13.2 创建数据库及数据表设计数据表 创建数据库,13.2 创建数据库及数据表,设计数据表根据系统功能需求,数据库采用Access,它完全可以满足上述需求中提出的要求,并且它所支持的数据类型十分丰富,维护简便,费用低,人员素质要求不是很高,容易升级。,13.2 创建数据库及数据表,创建数据库创建数据库包括3方面的内容:(1)首先在Access2002中创建名为TuiMag的数据库;(2)然后按表13.1至表13.6的要求,在数据库中创建课程信息表、学生信息表、学生成绩表、教师信息表、教师任课表和用户信息表;(3)最后建立课程信息表、学生信息表、学生成绩表之间的关系:通过CourID字段建立课程信息表与学生成绩表间一对多的关系,通过StuID字段建立学生信息表与学生成绩表间一对多的关系,如图13.1所示。,课程信息表、学生信息表、学生成绩表间的关系,第13章 教学信息管理系统,13.3 创建工程和系统主窗体创建工程 创建系统主窗体,13.3 创建工程和系统主窗体,创建工程在VB中创建一个工程,命名为“TuiMag.vbp”,将创建的TuiMag.mdb数据库拷贝到代码目录中,以便建立数据库连接。,添加对ADO的引用,13.3 创建工程和系统主窗体,创建系统主窗体在Visual Basic中,既可以创建单文档(SDI)应用程序,也可以创建多文档(MDI)应用程序。在单文档应用程序中,每个窗体彼此独立。而多文档应用程序,有一个窗体是主窗体,它可以包含若干个子窗体。,13.3 创建工程和系统主窗体,系统主窗体菜单的创建在设计视图下,右单击主窗体,选择快捷菜单中的“菜单编辑器”,在“菜单编辑器”依据表13.8,建立系统菜单。菜单建立完成后,运行主窗体的效果如图13.3所示。,主窗体的运行效果,13.3 创建工程和系统主窗体,系统主窗体代码系统各功能模块通过主窗体的菜单项来调用,因此系统主窗体各菜单项的代码主要功能是显示各窗体,当然,也可以把一些简单的代码段写在主窗体的菜单项的单击事件中。主窗体作为系统运行时第一个装载的窗体,在窗体装载事件中,完成与数据库的连接。,第13章 教学信息管理系统,13.4 课程信息管理模块界面设计编写模块代码,13.4 课程信息管理模块,界面设计根据上述模块功能要求,按表13.9设计“课程信息管理”窗体,并添加控件,控件的属性设置参见表13.9,设计完成后的窗体界面如图13.4所示。,课程信息管理窗体,13.4 课程信息管理模块,编写模块代码 窗体的属性设置在模块文件中添加SetCmdNotEnable过程和SetCmdEnable过程,用于设置当前各命令按钮是否可用,其中过程的参数类型为Form类型,可以被各窗体调用。定义过程clearcontrol,用于实现窗体控件内容的清空。定义过程ControltoField,用于实现窗体控件内容的保存,其中过程的参数类型为记录集类型。定义过程FieldtoControl,用于实现在窗体控件中显示记录集各字段内容,其中过程的参数类型为记录集类型。窗体激活事件过程,根据CourInfo表生成记录集,并显示在窗体各控件中,也可以看成对窗体的初始化。为命令按钮“添加”单击事件过程,为记录的添加作好准备。为命令按钮“编辑”单击事件过程,为记录的编辑作好准备。为命令按钮“保存”单击事件过程,将添加的记录或对记录的修改进行保存。为命令按钮“取消”单击事件过程,取消当前的添加操作或对记录的修改。为命令按钮“删除”单击事件过程,删除当前记录。,第13章 教学信息管理系统,13.5 成绩管理模块模块功能界面设计编写模块代码,13.5 成绩管理模块,模块功能成绩管理模块主要完成课程成绩管理的功能,内容包括学号、课程代号、成绩等,本模块实现对课程成绩添加、删除、修改等操作。,13.5 成绩管理模块,界面设计根据上述模块功能要求,按表13.10设计“学生成绩管理”窗体,并添加控件,控件的属性设置参见表13.10,设计完成后的窗体界面如图13.5所示。,学生成绩管理窗体,13.5 成绩管理模块,编写模块代码窗体的属性设置 定义过程clearcontrol,用于实现窗体控件内容的清空 定义过程ControltoField,用于实现窗体控件内容的保存 定义过程FieldtoControl,用于实现在窗体控件中显示记录集各字段内容 窗体激活事件过程,根据StuScore表生成记录集,并显示在窗体各控件中 各命令按钮的单击事件过程与14.5完全相同或稍加改动,这里从略。,第13章 教学信息管理系统,13.6 教师信息管理模块本模块功能界面设计编写模块代码,13.6 教师信息管理模块,本模块功能教师信息管理模块主要完成教师信息管理的功能,内容包括工号、所在系、年龄、姓名、联系电话、备注等,本模块实现对教师信息的添加、删除、修改等操作。,13.6 教师信息管理模块,界面设计根据上述模块功能要求,按表13.11设计“教师信息管理”窗体,并添加控件,控件的属性设置参见表13.11,设计完成后的窗体界面如图13.6所示。,教师信息管理窗体,13.6 教师信息管理模块,编写模块代码 窗体的属性设置 定义过程clearcontrol,用于实现窗体控件内容的清空。定义过程ControltoField,用于实现窗体控件内容的保存,其中过程的参数类型为记录集类型。定义过程FieldtoControl,用于实现在窗体控件中显示记录集各字段内容,其中过程的参数类型为记录集类型。窗体激活事件过程,根据TechInfo表生成记录集,并显示在窗体各控件中,也可以看成对窗体的初始化。,第13章 教学信息管理系统,13.7 教师任课管理模块模块功能 界面设计 编写模块代码,13.7 教师任课管理模块,模块功能教师任课管理模块主要完成教师任课管理的功能,内容包括课程代号、教师工号、上课时间、上课地点等,本模块实现对教师任课信息的添加、删除、修改等操作。,13.7 教师任课管理模块,界面设计根据上述模块功能要求,按表13.12设计“教师任课管理”窗体,并添加控件,控件的属性设置参见表13.12,设计完成后的窗体界面如图14.7所示。,教师任课管理窗体,13.7 教师任课管理模块,编写模块代码窗体的属性设置 定义过程clearcontrol,用于实现窗体控件内容的清空。Sub clearcontrol()txtCourID.Text=txtTechID.Text=txtClassTime.Text=txtClassPlace.Text=End Sub定义过程ControltoField,用于实现窗体控件内容的保存,其中过程的参数类型为记录集类型。定义过程FieldtoControl,用于实现在窗体控件中显示记录集各字段内容,其中过程的参数类型为记录集类型。窗体激活事件过程,根据TechAppoint表生成记录集,并显示在窗体各控件中,也可以看成对窗体的初始化。,第13章 教学信息管理系统,13.8 用户信息管理模块模块功能界面设计 编写模块代码,13.8 用户信息管理模块,模块功能用户信息管理模块主要完成用户信息管理的功能,内容包括用户名、用户密码、用户权限、姓名、联系电话等,本模块实现对用户信息的添加、删除、修改等操作。,13.8 用户信息管理模块,界面设计根据上述模块功能要求,按表14.13设计“用户信息管理”窗体,并添加控件,控件的属性设置参见表14.13,设计完成后的窗体界面如图14.8所示。,13.8 用户信息管理模块,编写模块代码窗体的属性设置:名称为frmUserInfo,BorderStyle为3-Fixed Dialog,Caption属性为“用户信息管理”。并在窗体的通用声明段添加如下代码,用于指定当前编辑模式。Dim AddMode As Boolean定义过程clearcontrol,用于实现窗体控件内容的清空。Sub clearcontrol()txtUserName.Text=txtUserRealName.Text=txtUserPassword.Text=cboUserPurview.Text=txtUserTel.Text=End Sub定义过程ControltoField,用于实现窗体控件内容的保存,其中过程的参数类型为记录集类型。Sub ControltoField(rss As ADODB.Recordset)rss!UserName=Trim(txtUserName.Text)rss!UserRealName=Trim(txtUserRealName.Text)rss!UserPassword=Trim(txtUserPassword.Text)rss!UserPurview=cboUserPurview.Text rss!UserTel=txtUserTel.TextEnd Sub,第13章 教学信息管理系统,13.9 学生基本信息管理模块模块功能界面设计编写模块代码,13.9 学生基本信息管理模块,模块功能学生基本信息管理模块主要完成学生基本信息管理的功能,内容包括学号、姓名、性别、出生日期、所在班级、来源、联系电话、备注、照片、照片大小等,本模块实现对学生基本信息的添加、删除、修改等操作。,运行时学生基本信息窗体界面,13.9 学生基本信息管理模块,界面设计根据上述模块功能要求,窗体中需使用通用对话框控件、MSHFlexGrid控件和状态栏控件,因些选择菜单中的“工程”/“部件”,在出现的对话框中选择“Microsoft Common Dialog Control 6.0”、“Microsoft Hierarchical FlexGrid Control 6.0(OLEDB)”和“Microsoft Windows Common Control6.0”,单击“确定”按钮,向工具箱中增加该控件的类。如图14.10所示。,选择部件对话框,13.9 学生基本信息管理模块,编写模块代码窗体的属性设置:名称为frmStuInfo,BorderStyle为3-Fixed Dialog,Caption属性为“学生基本信息管理”。定义过程clearcontrol,用于实现窗体控件内容的清空。定义过程Add_Photo,用于实现将图片或称照片文件录入到数据库OLE字段.,第13章 教学信息管理系统,13.10 教师课程表查询模块模块功能界面设计编写模块代码,13.10 教师课程表查询模块,模块功能教师课程表查询模块主要实现教师任课信息的查询操作,通过输入的教师工号,作简单查询。并以常见的课程表形式呈现出来。,运行时教师课程表窗体界面,13.10 教师课程表查询模块,界面设计根据上述模块功能要求,按表14.15设计“教师课程表”窗体,并添加控件,控件的属性设置参见表14.15,设计完成后的窗体界面参见图14.11。,教师课程表窗体主要控件的属性设置及其功能说明表,13.10 教师课程表查询模块,编写模块代码窗体的属性设置:名称为frmQueryTechAppoint,BorderStyle为3-Fixed Dialog,Caption属性为“教师课程表”。定义过程initMSHFlexGrid,用于实现在窗体MSHFlexGrid控件显示课程表的框架。窗体的装载过程,调用过程initMSHFlexGrid,实现MSHFlexGrid控件的初始化。txtTechID文件框获得焦点的事件过程,实现当txtTechID文件框获得焦点时,选中文件框中已有的内容,方便再次查询时的输入。查询按钮cmdQuery的单击事件过程,实现从TechAppoint、CourInfo二个表中进行任课教师任课信息的查询。,第13章 教学信息管理系统,13.11 学生成绩综合查询模块模块功能界面设计编写模块代码,13.11 学生成绩综合查询模块,模块功能学生成绩综合查询模块主要实现学生成绩多种条件的组合查询,通过勾选各查询选项,可以实现多条件精确查询或模糊查询,查询结构以列表形式显示出来。,运行时学生成绩综合查询窗体界面,13.11 学生成绩综合查询模块,界面设计根据上述模块功能要求,按表14.16设计“学生成绩综合查询”窗体,并添加控件,控件的属性设置参见表14.16,设计完成后的窗体界面参见图14.12。,13.11 学生成绩综合查询模块,编写模块代码窗体的属性设置:名称为frmQueryStuScore,BorderStyle为3-Fixed Dialog,Caption属性为“学生成绩综合查询”。并在窗体的通用声明段添加如下代码,用于存储查询命令行。Dim strSql As String定义过程FillMSHFlexGrid1,用于实现在窗体MSHFlexGrid控件显示成绩查询结果。为窗体的激活事件过程编写代码,实现成绩表的显示,其中调用了上述定义的FillMSHFlexGrid1过程。为查询按钮cmdSearch单击事件过程编写代码,实现成绩多条件综合查询,其中调用了上述定义的FillMSHFlexGrid1过程。为查询按钮cmdAll单击事件过程编写代码,实现成绩全部显示,恢复至查询前的显示,其中调用了上述定义的FillMSHFlexGrid1过程。,13.12 小结和习题,小结本章通过一个具体的示例高校教学信息管理系统,完整地介绍了数据库应用系统的开发方法和过程,通过本章,将本书前面的各章节的知识加以综合的运用,以解决实际问题。例中的分析设计方法及源代码对读者解决实际问题有一定的参考价值,尤其是例中SQL语句的书写,读者可以借此加深对SQL语法的理解。需要说明的是,本章的示例从功能上来讲,并不完善或者说还较少,希望读者能够作进一步的扩充成具有实用价值的教学信息管理系统。习题(P408 习题),