整理第13章教学信息管理系统.docx

上传人:b****6 文档编号:7794746 上传时间:2023-01-26 格式:DOCX 页数:55 大小:153.58KB
下载 相关 举报
整理第13章教学信息管理系统.docx_第1页
第1页 / 共55页
整理第13章教学信息管理系统.docx_第2页
第2页 / 共55页
整理第13章教学信息管理系统.docx_第3页
第3页 / 共55页
整理第13章教学信息管理系统.docx_第4页
第4页 / 共55页
整理第13章教学信息管理系统.docx_第5页
第5页 / 共55页
点击查看更多>>
下载资源
资源描述

整理第13章教学信息管理系统.docx

《整理第13章教学信息管理系统.docx》由会员分享,可在线阅读,更多相关《整理第13章教学信息管理系统.docx(55页珍藏版)》请在冰豆网上搜索。

整理第13章教学信息管理系统.docx

整理第13章教学信息管理系统

下篇数据库应用系统开发实例

第14章教学信息管理系统

本章依据前面章节中用到的数据库TuiMag.mdb,向读者介绍一个教学信息管理系统的开发过程,其中主要应用了ADO对象数据库访问技术,以及对SQL语法的综合运用。

14.1系统分析与设计

14.1.1需求分析

根据高校教学信息管理的实际要求,结合教学信息管理的实际流程,开发的教学信息管理系统需要满足以下需求:

(1)对学生的基本信息进行管理,其中包括学号、姓名、性别、出生日期、所在班级、联系电话、备注等。

(2)对教师的基本信息进行管理,其中包括工号、姓名、年龄、所在系(二级单位)、联系电话、备注等。

(3)对学生成绩进行管理,方便学生成绩的录入和查询。

(4)对教师的任课进行管理,能输出每位教师的课程表。

(5)对成绩等信息提供灵活的浏览和综合查询等功能,可以方便地查看和浏览学生基本信息、教师基本信息、成绩数据。

(6)教务员可以对学生、教师基本信息以及课程信息、成绩等具有添加、删除和编辑等操作。

14.1.2模块设计

根据系统需求分析,结合实际情况,经过模块分析,系统应具有以下几个功能模块:

1.用户管理模块

本系统的用户分为三类:

学生用户、教师用户和教务员用户。

学生用户是指系统学生基本信息表中的所有学生,其用户名为学生的学号,初始密码也为学号,学生用户只能查看自己的信息和成绩,不能浏览他人信息和成绩,也不能改动自己的各项信息。

教师用户是指教师基本表中的所有教师,其用户名为教师的工号,初始密码也为工号,教师用户能查看所有学生的基本信息和成绩,能改动自己所任课程的成绩信息。

教务员用户是系统的特权用户,能对所用户信息和学生、教师基本信息以及课程信息、成绩等具有添加、删除和编辑的权限。

2.学生基本信息管理模块

此部分功能只有教务员具有操作权限。

由教务人员负责学生基本信息的维护管理工作,如果学生基本信息有所变动,教务员有权及时更新有关信息,实现对学生基本信息的添加、删除和修改等操作。

3.课程基本信息管理模块

此部分功能只有教务员具有操作权限。

由教务人员负责课程基本信息的维护管理,他包括课程代号、课程名称、课程学分、是否核心课程,由教务员实现对课程基本信息的添加、删除和修改等操作。

4.教师基本信息管理模块

此部分功能只有教务员具有操作权限。

由教务人员负责教师基本信息的维护管理工作,如果教师基本信息有所变动,教务员有权及时更新有关信息,实现对教师基本信息的添加、删除和修改等操作。

5.程表查询模块

由教师根据自己的工号,查询生成相应时间所授课程的时间和地点,并生成课程表。

14.2创建数据库及数据表

14.2.1设计数据表

根据系统功能需求,数据库采用Access,它完全可以满足上述需求中提出的要求,并且它所支持的数据类型十分丰富,维护简便,费用低,人员素质要求不是很高,容易升级。

根据模块的设计,以及根据规范化设计要求,该系统的数据库表设计如表14.1到表14.6所示:

表14.1存放课程信息,表14.2存放学生信息,表14.3存放学生成绩,表14.4表存放教师信息,表14.5存放教师任课信息,表14.6存放系统的用户信息。

表14.1课程信息表(CourInfo)

字段名称

字段类型

字段大小

字段含义

是否必填

索引

是否主键

CourID

文本

3

课程代号

有(无重复)

CourName

文本

20

课程名称

CourCredit

数字

单精度型

课程学分

CourCore

是/否

是否核心课程

表14.2学生信息表(StuInfo)

字段名称

字段类型

字段大小

字段含义

是否必填

索引

是否主键

StuID

文本

6

学生学号

有(无重复)

StuName

文本

10

学生姓名

StuSex

文本

2

学生性别

StuBirthDate

日期/时间

学生出生日期

StuClass

文本

20

学生所在班级

StuFrom

文本

20

学生来源

StuTel

文本

20

学生联系电话

StuMem

文本

学生备注

StuPhoto

OLE对象

学生照片

StuPhotoSize

数字

学生照片大小

表14.3学生成绩表(StuScore)

字段名称

字段类型

字段大小

字段含义

是否必填

索引

是否主键

StuID

文本

6

学生学号

CourID

文本

3

课程代号

StuScore

数字

单精度型

学生成绩

表14.4教师信息表(TechInfo)

字段名称

字段类型

字段大小

字段含义

是否必填

索引

是否主键

TechID

文本

6

教师工号

有(无重复)

TechName

文本

20

教师姓名

TechAge

数字

整型

教师年龄

TechUnit

文本

20

教师所在系(二级单位)

TechTel

文本

20

教师联系电话

TechMem

备注

教师备注

表14.5教师任课表(TechAppoint)

字段名称

字段类型

字段大小

字段含义

是否必填

索引

是否主键

TechID

文本

6

任课教师工号

CourID

文本

3

任课课程代号

ClassTime

文本

8

上课时间

ClassPlace

文本

51

上课地点

表14.6用户信息表(UserInfo)

字段名称

字段类型

字段大小

字段含义

是否必填

索引

是否主键

UserName

文本

6

用户名

有(无重复)

UserRealName

文本

20

用户实名

UserTel

文本

20

用户联系电话

UserPurview

文本

10

用户权限

UserPassword

文本

8

用户密码

14.2.2创建数据库

创建数据库包括3方面的内容:

(1)首先在Access2002中创建名为TuiMag的数据库;

(2)然后按表14.1至表14.6的要求,在数据库中创建课程信息表、学生信息表、学生成绩表、教师信息表、教师任课表和用户信息表;

(3)最后建立课程信息表、学生信息表、学生成绩表之间的关系:

通过CourID字段建立课程信息表与学生成绩表间一对多的关系,通过StuID字段建立学生信息表与学生成绩表间一对多的关系,如图14.1所示。

图14.1课程信息表、学生信息表、学生成绩表间的关系

14.3创建工程和系统主窗体

14.3.1创建工程

在VB中创建一个工程,命名为“TuiMag.vbp”,将创建的TuiMag.mdb数据库拷贝到代码目录中,以便建立数据库连接。

本系统将采取ADO作为数据连接的手段,所以需要在工程中添加对ADO的引用,具体方法如下:

选择菜单中的“工程”/“引用”,在出现的表单中选择“MicrosoftActiveXDataObjects2.5Library”,单击“确定”按钮。

如图14.2所示。

图14.2添加对ADO的引用

14.3.2创建系统主窗体

在VisualBasic中,既可以创建单文档(SDI)应用程序,也可以创建多文档(MDI)应用程序。

在单文档应用程序中,每个窗体彼此独立。

而多文档应用程序,有一个窗体是主窗体,它可以包含若干个子窗体。

本例拟建立一个多文档应用程序,将所建立的多个窗体作为主窗体的子窗体,便于管理。

单击工具栏中的“添加MDI窗体”按钮,生成一个默认名称为MDIForm1的窗体,按表14.7设置它的属性。

表14.7系统主窗体属性的设置

属性

属性值

Caption

教学信息管理系统

StartUpPosition

CenterScreen

WindowState

Maximized

1.系统主窗体菜单的创建

在设计视图下,右单击主窗体,选择快捷菜单中的“菜单编辑器”,在“菜单编辑器”依据表14.8,建立系统菜单。

菜单建立完成后,运行主窗体的效果如图14.3所示。

表14.8主窗体菜单及其名称

标题

名称

标题

名称

基本信息(&B)

mnuBaseInfo

教师任课(&A)

mnuEditTechAppoint

课程信息(&C)

mnuCourInfo

教师课程表

mnuQueryTechAppoint

学生信息(&S)

mnuStuInfo

学生成绩(&S)

mnuStuScore

教师信息(&T)

mnuTechInfo

学生成绩(&S)

mnuEditStuScore

用户信息(&U)

mnuUserInfo

成绩查询(&Q)

mnuQueryStuScore

教师任课(&A)

mnuTechAppoint

退出(&X)

mnuExit

图14.3主窗体的运行效果

2.系统主窗体代码

系统各功能模块通过主窗体的菜单项来调用,因此系统主窗体各菜单项的代码主要功能是显示各窗体,当然,也可以把一些简单的代码段写在主窗体的菜单项的单击事件中。

主窗体作为系统运行时第一个装载的窗体,在窗体装载事件中,完成与数据库的连接。

代码如下:

PrivateSubMDIForm_Load()

Setcn=NewADODB.Connection

cn.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource"_

&"="&App.Path&"\TuiMag.mdb;PersistSecurityInfo=False"

EndSub

PrivateSubmnuCourInfo_Click()

frmCourInfo.Show

EndSub

PrivateSubmnuEditStuScore_Click()

frmStuScore.Show

EndSub

PrivateSubmnuEditTechAppoint_Click()

frmTechAppoint.Show

EndSub

PrivateSubmnuExit_Click()

End

EndSub

PrivateSubmnuQueryStuScore_Click()

frmQueryStuScore.Show

EndSub

PrivateSubmnuQueryTechAppoint_Click()

frmQueryTechAppoint.Show

EndSub

PrivateSubmnuStuInfo_Click()

frmStuInfo.Show

EndSub

PrivateSubmnuTechInfo_Click()

frmTechInfo.Show

EndSub

PrivateSubmnuUserInfo_Click()

frmUserInfo.Show

EndSub

另外,添加模块,在模块窗口定义模块级变量,用户数据库的连接和记录集的存储。

PubliccnAsNewADODB.Connection

PublicrsAsNewADODB.Recordset

14.4课程信息管理模块

14.4.1模块功能

课程信息管理模块主要完成课程管理的功能,内容包括课程代号、课程名称、学分、是否核心课程等,本模块实现对课程的添加、删除、修改等操作。

14.4.2界面设计

根据上述模块功能要求,按表14.9设计“课程信息管理”窗体,并添加控件,控件的属性设置参见表14.9,设计完成后的窗体界面如图14.4所示。

表14.9课程信息管理窗体主要控件的属性设置及其功能说明表

控件

名称

属性设置或功能说明

Label

Label1

Caption属性为“课程代号”

Label

Label2

Caption属性为“课程名称”

Label

Label3

Caption属性为“学分”

CheckBox

chkCourCore

Caption属性为“是否核心课程”,用于录入或编辑是否核心课程

TextBox

txtCourID

用于录入或编辑课程代号

TextBox

txtCourCredit

用于录入或编辑课程学分

TextBox

txtCourName

用于录入或编辑课程名称

CommandButton

cmdAdd

Picture属性为“add.bmp”,Style属性为“1-Graphical”,Caption属性为“”(空)

CommandButton

cmdDel

Picture属性为“add.bmp”,Style属性为“1-Graphical”,Caption属性为“”(空)

CommandButton

cmdEdit

Picture属性为“Edit.bmp”,Style属性为“1-Graphical”,Caption属性为“”(空)

CommandButton

cmdSave

Picture属性为“Save.bmp”,Style属性为“1-Graphical”,Caption属性为“”(空)

CommandButton

cmdCancel

Picture属性为“Cancel.bmp”,Style属性为“1-Graphical”,Caption属性为“”(空)

CommandButton

cmdFirst

Picture属性为“First.bmp”,Style属性为“1-Graphical”,Caption属性为“”(空)

CommandButton

cmdPrevious

Picture属性为“Previous.bmp”,Style属性为“1-Graphical”,Caption属性为“”(空)

CommandButton

cmdNext

Picture属性为“Next.bmp”,Style属性为“1-Graphical”,Caption属性为“”(空)

CommandButton

cmdLast

Picture属性为“Last.bmp”,Style属性为“1-Graphical”,Caption属性为“”(空)

CommandButton

cmdExit

Picture属性为“Exit.bmp”,Style属性为“1-Graphical”,Caption属性为“”(空)

图14.4课程信息管理窗体

14.4.3编写模块代码

(1)窗体的属性设置:

名称为frmCourInfo,BorderStyle为3-FixedDialog,Caption属性为“课程信息管理”。

并在窗体的通用声明段添加如下代码,用于指定当前编辑模式。

DimAddModeAsBoolean

(2)在模块文件中添加SetCmdNotEnable过程和SetCmdEnable过程,用于设置当前各命令按钮是否可用,其中过程的参数类型为Form类型,可以被各窗体调用。

SubSetCmdNotEnable(frmAsForm)

frm.cmdAdd.Enabled=False

frm.cmdEdit.Enabled=False

frm.cmdDelete.Enabled=False

frm.cmdFirst.Enabled=False

frm.cmdPrevious.Enabled=False

frm.cmdNext.Enabled=False

frm.cmdLast.Enabled=False

frm.cmdSave.Enabled=True

frm.cmdCancel.Enabled=True

EndSub

SubSetCmdEnable(frmAsForm)

frm.cmdAdd.Enabled=True

frm.cmdEdit.Enabled=True

frm.cmdDelete.Enabled=True

frm.cmdFirst.Enabled=True

frm.cmdPrevious.Enabled=True

frm.cmdNext.Enabled=True

frm.cmdLast.Enabled=True

frm.cmdSave.Enabled=False

frm.cmdCancel.Enabled=False

EndSub

(3)定义过程clearcontrol,用于实现窗体控件内容的清空。

Subclearcontrol()

txtCourID.Text=""

txtCourName.Text=""

txtCourCredit.Text=""

chkCourCore.Value=0

EndSub

(4)定义过程ControltoField,用于实现窗体控件内容的保存,其中过程的参数类型为记录集类型。

SubControltoField(rssAsADODB.Recordset)

rss!

CourID=Trim(txtCourID.Text)

rss!

CourName=Trim(txtCourName.Text)

rss!

CourCredit=Val(Trim(txtCourCredit.Text)+"")

IfchkCourCore.Value=1Then

rss!

CourCore=True

Else

rss!

CourCore=False

EndIf

EndSub

(5)定义过程FieldtoControl,用于实现在窗体控件中显示记录集各字段内容,其中过程的参数类型为记录集类型。

SubFieldtoControl(rssAsADODB.Recordset)

txtCourID.Text=Trim(rss!

CourID)

txtCourName.Text=Trim(rss!

CourName)

txtCourCredit.Text=Trim(rss!

CourCredit)

Ifrss!

CourCore=TrueThen

chkCourCore.Value=1

Else

chkCourCore.Value=0

EndIf

EndSub

(6)窗体激活事件过程,根据CourInfo表生成记录集,并显示在窗体各控件中,也可以看成对窗体的初始化。

PrivateSubForm_Activate()

strSql="select*fromCourInfo"

Setrs=NewADODB.Recordset

rs.ActiveConnection=cn

rs.OpenstrSql,cn,adOpenKeyset,adLockPessimistic

Ifrs.RecordCount>0Then

rs.MoveFirst:

CallFieldtoControl(rs)

Else

DoEvents

MsgBox"无任何课程记录可显示!

",48,"提示"

CallclearControl

EndIf

cmdFirst_Click

EndSub

(7)为命令按钮“添加”单击事件过程,为记录的添加作好准备。

SubcmdAdd_Click()

CallSetCmdNotEnable(Me)

Callclearcontrol

IfNotrs.EOF()AndNotrs.BOF()Thenrs.MoveLast

rs.AddNew

txtCourID.SetFocus

AddMode=True

txtCourID.Enabled=True

EndSub

(8)为命令按钮“编辑”单击事件过程,为记录的编辑作好准备。

SubcmdEdit_Click()

AddMode=False

CallSetCmdNotEnable(Me)

Ifrs.EOFOrrs.BOFOrTrim(txtCourID)=""Then

MsgBox"无记录可修改?

",48+vbOKCancel,"警告"

ExitSub

EndIf

txtCourID.Enabled=False

EndSub

(9)为命令按钮“保存”单击事件过程,将添加的记录或对记录的修改进行保存。

PrivateSubcmdSave_Click()

IfTrim(txtCourID.Text)=""Then

MsgBox"课程代号不能为空",vbCritical,"不能保存"

ExitSub

EndIf

OnErrorResumeNext

CallSetCmdEnable(Me)

IfAddMode=TrueThen

strSql="select*fromCourInfowhereTrim(CourID)='"&Trim(Me.txtCourID.Text)&"'"

Setrstmp=NewADODB.Recordset

rstmp.OpenstrSql,cn,adOpenKeyset,adLockPessimistic

Ifrstmp.RecordCount>0Then

MsgBox"您添加的课程代号已存在,不能有相同的代号!

请为新课程选择不重复的代号",48,"提示"

Me.txtCourID.SetFocus:

Me.txtCourID.SelStart=0

Me.txtCourID.SelLength=Len(Me.txtCourID.Text)

CallSetCmdNotEnable(Me):

ExitSub

Else

CallMe.ControltoField(rs)

rs.Update:

txtCourID.Enabled=True

EndIf

Else

CallMe.ControltoField(rs)

rs.Update:

txtCourID.Enabled=True

EndIf

EndSub

(10)为命令按钮“取消”单击事件过程,取消当前的添加操作或对记录的修改。

SubcmdCancel_Click()

rs.CancelUpdate

CallSetCmdEnable(Me)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1