整理第13章教学信息管理系统Word格式.docx
- 文档编号:20922337
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:55
- 大小:153.58KB
整理第13章教学信息管理系统Word格式.docx
《整理第13章教学信息管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《整理第13章教学信息管理系统Word格式.docx(55页珍藏版)》请在冰豆网上搜索。
字段含义
是否必填
索引
是否主键
CourID
文本
3
课程代号
是
有(无重复)
CourName
20
课程名称
无
CourCredit
数字
单精度型
课程学分
否
CourCore
是/否
是否核心课程
表14.2学生信息表(StuInfo)
StuID
6
学生学号
StuName
10
学生姓名
StuSex
2
学生性别
StuBirthDate
日期/时间
学生出生日期
StuClass
学生所在班级
StuFrom
学生来源
StuTel
学生联系电话
StuMem
学生备注
StuPhoto
OLE对象
学生照片
StuPhotoSize
学生照片大小
表14.3学生成绩表(StuScore)
StuScore
学生成绩
表14.4教师信息表(TechInfo)
TechID
教师工号
TechName
教师姓名
TechAge
整型
教师年龄
TechUnit
教师所在系(二级单位)
TechTel
教师联系电话
TechMem
备注
教师备注
表14.5教师任课表(TechAppoint)
任课教师工号
任课课程代号
ClassTime
8
上课时间
ClassPlace
51
上课地点
表14.6用户信息表(UserInfo)
UserName
用户名
UserRealName
用户实名
UserTel
用户联系电话
UserPurview
用户权限
UserPassword
用户密码
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
学生成绩(&
mnuStuScore
教师信息(&
T)
mnuTechInfo
mnuEditStuScore
用户信息(&
U)
mnuUserInfo
成绩查询(&
Q)
mnuQueryStuScore
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
PrivateSubmnuEditStuScore_Click()
frmStuScore.Show
PrivateSubmnuEditTechAppoint_Click()
frmTechAppoint.Show
PrivateSubmnuExit_Click()
End
PrivateSubmnuQueryStuScore_Click()
frmQueryStuScore.Show
PrivateSubmnuQueryTechAppoint_Click()
frmQueryTechAppoint.Show
PrivateSubmnuStuInfo_Click()
frmStuInfo.Show
PrivateSubmnuTechInfo_Click()
frmTechInfo.Show
PrivateSubmnuUserInfo_Click()
frmUserInfo.Show
另外,添加模块,在模块窗口定义模块级变量,用户数据库的连接和记录集的存储。
PubliccnAsNewADODB.Connection
PublicrsAsNewADODB.Recordset
14.4课程信息管理模块
14.4.1模块功能
课程信息管理模块主要完成课程管理的功能,内容包括课程代号、课程名称、学分、是否核心课程等,本模块实现对课程的添加、删除、修改等操作。
14.4.2界面设计
根据上述模块功能要求,按表14.9设计“课程信息管理”窗体,并添加控件,控件的属性设置参见表14.9,设计完成后的窗体界面如图14.4所示。
表14.9课程信息管理窗体主要控件的属性设置及其功能说明表
控件
属性设置或功能说明
Label
Label1
Caption属性为“课程代号”
Label2
Caption属性为“课程名称”
Label3
Caption属性为“学分”
CheckBox
chkCourCore
Caption属性为“是否核心课程”,用于录入或编辑是否核心课程
TextBox
txtCourID
用于录入或编辑课程代号
txtCourCredit
用于录入或编辑课程学分
txtCourName
用于录入或编辑课程名称
CommandButton
cmdAdd
Picture属性为“add.bmp”,Style属性为“1-Graphical”,Caption属性为“”(空)
cmdDel
cmdEdit
Picture属性为“Edit.bmp”,Style属性为“1-Graphical”,Caption属性为“”(空)
cmdSave
Picture属性为“Save.bmp”,Style属性为“1-Graphical”,Caption属性为“”(空)
cmdCancel
Picture属性为“Cancel.bmp”,Style属性为“1-Graphical”,Caption属性为“”(空)
cmdFirst
Picture属性为“First.bmp”,Style属性为“1-Graphical”,Caption属性为“”(空)
cmdPrevious
Picture属性为“Previous.bmp”,Style属性为“1-Graphical”,Caption属性为“”(空)
cmdNext
Picture属性为“Next.bmp”,Style属性为“1-Graphical”,Caption属性为“”(空)
cmdLast
Picture属性为“Last.bmp”,Style属性为“1-Graphical”,Caption属性为“”(空)
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
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
(3)定义过程clearcontrol,用于实现窗体控件内容的清空。
Subclearcontrol()
txtCourID.Text="
"
txtCourName.Text="
txtCourCredit.Text="
chkCourCore.Value=0
(4)定义过程ControltoField,用于实现窗体控件内容的保存,其中过程的参数类型为记录集类型。
SubControltoField(rssAsADODB.Recordset)
rss!
CourID=Trim(txtCourID.Text)
CourName=Trim(txtCourName.Text)
CourCredit=Val(Trim(txtCourCredit.Text)+"
)
IfchkCourCore.Value=1Then
CourCore=True
Else
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
(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
(7)为命令按钮“添加”单击事件过程,为记录的添加作好准备。
SubcmdAdd_Click()
CallSetCmdNotEnable(Me)
Callclearcontrol
IfNotrs.EOF()AndNotrs.BOF()Thenrs.MoveLast
rs.AddNew
txtCourID.SetFocus
AddMode=True
txtCourID.Enabled=True
(8)为命令按钮“编辑”单击事件过程,为记录的编辑作好准备。
SubcmdEdit_Click()
AddMode=False
CallSetCmdNotEnable(Me)
Ifrs.EOFOrrs.BOFOrTrim(txtCourID)="
Then
无记录可修改?
48+vbOKCancel,"
警告"
ExitSub
txtCourID.Enabled=False
(9)为命令按钮“保存”单击事件过程,将添加的记录或对记录的修改进行保存。
PrivateSubcmdSave_Click()
IfTrim(txtCourID.Text)="
课程代号不能为空"
vbCritical,"
不能保存"
OnErrorResumeNext
CallSetCmdEnable(Me)
IfAddMode=TrueThen
select*fromCourInfowhereTrim(CourID)='
Trim(Me.txtCourID.Text)&
'
Setrstmp=NewADODB.Recordset
rstmp.OpenstrSql,cn,adOpenKeyset,adLockPessimistic
Ifrstmp.RecordCount>
MsgBox"
您添加的课程代号已存在,不能有相同的代号!
请为新课程选择不重复的代号"
Me.txtCourID.SetFocus:
Me.txtCourID.SelStart=0
Me.txtCourID.SelLength=Len(Me.txtCourID.Text)
CallSetCmdNotEnable(Me):
CallMe.ControltoField(rs)
rs.Update:
(10)为命令按钮“取消”单击事件过程,取消当前的添加操作或对记录的修改。
SubcmdCancel_Click()
rs.CancelUpdate
CallSetCmdEnable(Me)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 整理 13 教学 信息管理 系统