资源描述
精选资料
目 录
摘 要 I
ABSTRACT II
第一章 引言 1
1.1 背景 1
1.1.1教师管理系统 1
1.2开发教师管理系统的目的和原则 3
1.3开发环境介绍 3
1.3.1 开发平台 4
1.3.2数据库设计工具——ACCESS数据库管理系统 7
第二章 系统设计 9
2.1 系统分析 9
2.2 系统流程和操作方式设计 11
第三章 系统界面设计 12
3.1系统界面设计以及代码分析 12
第四章 数据库的设计 30
4.1数据库设计 30
4.2 数据库概念和发展 30
4.3系统测试与评价 38
总 结 39
致 谢 40
参考文献 41
摘 要
20世纪以来,社会生产力迅速发展,科学技术突飞猛进,人们进行信息交流的深度与广度不断增加,信息量急剧增长,传统的信息处理与决策的手段已不能适应社会的需要,信息的重要性和信息处理问题的紧迫性空前提高了,面对着日益复杂和不断发展,变化的社会环境,特别是企业间日趋剧烈的竞争形势,一个人、一个企业要在现代社会中求生存,求发展,必须具备足够的信息和强有力的信息收集与处理手段。
对于一个学校来说,大量教师信息难于通过传统的方法进行管理;这就迫切需要利用计算机技术来帮助学校管理者来处理教师信息的日常管理.教师管理系统是管理信息系统的一个典型用例.
管理信息系统是一个集信息技术、经济管理理论、统计学与运筹学、数据库技术为一体的综合性系统,是一个资金技术密集型、劳动密集型、智力密集型的项目。我国拥有广阔的市场和丰富的人才资源,有几十年的技术积累和经验积累,有一定的后发优势。管理信息系统的创新工作既不能妄自菲薄,更不能夜郎自大。要抓住当前网络经济兴起的有利时机,以实现我国信息技术和信息产业的跨越式发展,更好地发挥信息产业对国民经济增长的拉动作用。
开发学校教师管理系统的过程就是要实现数据处理方式由人工管理向计算机管理的转变,它在计算机技术和教师管理实践活动两者之间架设桥梁。
关键字:教师管理,管理信息系统,数据库,计算机管理
Abstract:
Since the 20th century, the rapid development of social productive forces, science and technology, exchange of information is the depth and scope of increasing the volume of information rapid growth, the traditional information processing and decision-making tools have not the needs of the community, the importance of information and information processing problems urgency unprecedented increase, in the face of increasingly complex and evolving. changes in the social environment, in particular the increasingly keen competition among enterprises situation, a person or an enterprise to survive in modern society, and development, we must have sufficient information and powerful information gathering and processing tools.
For a school, a lot of information to teachers through traditional means; This urgent need for using computer technology to help school managers to deal with the day-to-day management of information teachers. Teachers management system is a typical use of management information systems cases.
Management Information System is a collection of information technology, economic management theory, statistics and research, database integration technology for the integrated system is a capital-and technology-intensive and labor-intensive, intellectual-intensive projects. China has a vast market and abundant human resources, technical accumulation and decades of accumulated experience, a certain advantages. Mis innovation can not sell, not self-assertive. We should seize the current favorable opportunity to network economy, China's information technology and to achieve a leap forward of the information industry, give better play to the information industry to stimulate economic growth.
Development of school teachers in the management process is to achieve data systems approach to the management of the artificial computer management changes in computer technology and management practices between teachers build bridges.
Keyword : teacher management, management information systems, databases, computer management
第一章 引言
对于一个学校来说,大量教师信息难于通过传统的方法进行管理;这就迫切需要利用计算机技术来帮助学校管理者来处理教师信息的日常管理.教师管理系统是管理信息系统的一个典型用例.
1.1背景
1.1.1教师管理系统
如今随着教育事业的发展,学校对教师需求的增加,一个单位,教师人事信息,编制,排课工资等信息量将迅速的增加,传统的手工的处理方式已经跟不上信息爆炸般的扩增.所以开发一种可靠,高效的教师管理系统是很有必要的.
1.2 开发教师管理系统的目的与原则
教师管理系统的主要目的是服务与中小学,各高校的管理者,方便其管理本校教师信息的软件系统.其原则是做到,界面友好人性,操作简单,可靠.
1.3开发环境介绍
1.3.1开发平台
本教师管理系统的开发平台为微软windows xp visual basic 6.0 以及微软的Access作为操作数据库.
1.3.2 数据库设计工具——ACCESS数据库管理系统
Microsoft Access介绍:
使用 Microsoft Access,可以在单一的数据库文件中管理所有的信息。在这个文件中,用户可以将自己的数据分别保存在各自独立的存储空间中,这些空间称作表;可以使用联机窗体来查看、添加及更新表中的数据;使用查询来查找并检索所要的数据;也可以使用报表以特定的版面布置来分析及打印数据。
如果要保存数据,请为每一种类型的信息创建一个表。如果要从查询、窗体或报表中的多个表中将数据合并在一起,就要定义各个表之间的关系。
如果要搜索并检索符合指定条件的数据,包括来自多个表中的数据,就要创建查询。查询的同时也可以更新或删除多条记录,并对数据执行内嵌或自定义的计算。
如果要简单地直接在某个表中查看、输入及更改数据,请创建一个窗体。在打开一个窗体时,Microsoft Access 将从一个或多个表中检索数据,并使用用户在“窗体向导”选择的版面布局或所创建的版面布局,将窗体显示在屏幕上。
如果要分析数据或将数据以特定的方式打印出来,请创建一个报表。例如,可以打印一份将数据分组并计算数据总和的报表,也可以打印另一份带有各种数据格式的打印邮件标签的报表。
第二章 系统设计
2.1 系统分析
本教师管理系统主要由以下几大模块构成.
一. 通用模块(教师管理,教师查询,重新登陆,退出)
二. .帮助模块
2.2 系统流程和操作方式设计
程序登陆
主界面
教
师
管
理
教
师
查
询
重
新
登
录
退
出
帮
助
第三章 系统界面设计
3.1系统界面设计
1.登陆界面
登陆界面代码设计:
Option Explicit
'表示当前用户登录所选择的身份,即用户类型
'0--表示管理员类用户;1--表示教师类用户
Dim mnUserType As Integer
Private Sub cboUserType_Change()
mnUserType = cboUserType.ListIndex
End Sub
Private Sub cboUserType_Click()
mnUserType = cboUserType.ListIndex
End Sub
Private Sub cmdCancel_Click()
Unload Me
End Sub
Private Sub cmdOK_Click()
''取得用户输入的用户名和密码
Dim user As String, pwd As String
user = txtUser
pwd = txtPwd
''根据不同的身份,选择不同的表用以查询
Dim r As New ADODB.Recordset
Set r = DataEnv.rssqlSeek
Dim strSQL As String
Select Case mnUserType
Case 0: '选择身份为管理员
strSQL = "select * from admin where name='" & user & "' and pwd='" & pwd & "'"
Case 1: '选择身份为教师
strSQL = "select * from teacher where name='" & user & "' and serial='" & pwd & "'"
End Select
On Error Resume Next
If r.State = adStateOpen Then r.Close
r.Open strSQL
''用户密码错误的次数,如果错误次数超过3次,则退出系统
Static nTryCount As Integer
If r.EOF Then ''登录失败
MsgBox "对不起,无此用户或者密码不正确!请重新输入!!", vbCritical, "错误"
txtUser.SetFocus
txtUser.SelStart = 0
txtUser.SelLength = Len(txtUser)
nTryCount = nTryCount + 1
If nTryCount >= 3 Then
MsgBox "您无权操作本系统!再见!", vbCritical, "无权限"
Unload Me
End If
Else ''登陆成功
''显示MDI窗体, 并将用户类型和用户名传到MDI窗体中
Load MDIMain
With MDIMain
.mnUserType = cboUserType.ListIndex
.msUserName = pwd
.Show
End With
Unload Me
End If
End Sub
Private Sub Form_Load()
cboUserType.ListIndex = 0
End Sub
2.主界面
主界面代码:
Option Explicit
'表示当前的用户类型
'0---管理员类型的用户; 1---教师类型的用户
Public mnUserType As Integer
'表示当前登录的用户名
Public msUserName As String
Private Sub MDIForm_Activate()
''根据不同的用户类型,使相应的菜单项可见
Select Case mnUserType
Case 0: '以管理员身份登录
mnuFind.Visible = True
Case 1: '以教师身份登录, 只能查询自己的信息
mnuFind.Visible = False
End Select
End Sub
Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If MsgBox("真的要对出本系统吗?", vbQuestion + vbYesNo + vbDefaultButton2, "退出") = vbNo Then
Cancel = 1
End If
End Sub
Private Sub mnuAbout_Click()
Load frmSplash
frmSplash.mbAbout = True
frmSplash.Show vbModal
End Sub
Private Sub mnuExit_Click()
Unload Me
End Sub
Private Sub mnuFind_Click()
frmTeacher.Show
frmTeacher.cmdSeek.Value = True
End Sub
Private Sub mnuLogin_Click()
If MsgBox("若重新登录,所有窗体都将关闭!是否重新登录?", vbQuestion + vbYesNo + vbDefaultButton2, "重新登录") = vbYes Then
Unload MDIMain
frmLogin.Show
End If
End Sub
Private Sub mnuStudent_Click()
If mnUserType = 0 Then
frmTeacher.Show
Else
frmLook.Show
End If
End Sub
3.教师信息管理界面:
教师信息管理代码:
Option Explicit
Dim mbClose As Boolean '是否能关闭
Dim msSerial As String '当前编辑的教师号
'''在DataEnv.rsTeacher中查询serial为sSerial的学籍信息
Sub SeekTeacher(sSerial As String)
If Not (DataEnv.rsTeacher.EOF And DataEnv.rsTeacher.BOF) Then
Dim Temp As String
Temp = "serial = " & "'" & sSerial & "'"
DataEnv.rsTeacher.MoveFirst
DataEnv.rsTeacher.Find Temp
End If
End Sub
'''当改变记录集时,需要刷新整个网格控件
Sub RefreshGrid()
grdScan.DataMember = ""
grdScan.Refresh
If DataEnv.rssqlSeek.State <> adStateClosed Then DataEnv.rssqlSeek.Close
DataEnv.rssqlSeek.Open
grdScan.DataMember = "sqlSeek"
grdScan.Refresh
''刷新各个绑定控件
Call grdScan_Change
End Sub
'''用以在浏览时,根据当前记录所出的位置不同,来改变个浏览按钮的状态
Sub ChangeBrowseState()
With DataEnv.rssqlSeek
''如果没有任何记录,则清空显示目录;并且使浏览部分和管理部分的按钮无效
If .State = adStateClosed Then .Open
If .BOF And .EOF Then
cmdAdd.Enabled = True
cmdEdit.Enabled = False
cmdDelete.Enabled = False
cmdUpdate.Enabled = False
cmdReport.Enabled = False
fraBrowse.Enabled = False
Else
cmdAdd.Enabled = True
cmdEdit.Enabled = True
cmdDelete.Enabled = True
cmdUpdate.Enabled = False
cmdReport.Enabled = True
fraBrowse.Enabled = True
End If
'''假如处于记录的头部
If .BOF Then
If Not .EOF Then DataEnv.rsTeacher.MoveFirst
cmdPrevious.Enabled = False
cmdFirst.Enabled = False
Else
cmdPrevious.Enabled = True
cmdFirst.Enabled = True
End If
'''假如处于记录的尾部
If .EOF Then
If Not .BOF Then DataEnv.rsTeacher.MoveLast
cmdNext.Enabled = False
cmdLast.Enabled = False
Else
cmdNext.Enabled = True
cmdLast.Enabled = True
End If
End With
End Sub
''刷新教师号为sSerial的教师所受课程的网格控件grdTeach
Sub RefreshTeach(sSerial As String)
' grdTeach.DataMember = ""
' grdTeach.Refresh
With DataEnv.rsOneTeach
If .State <> adStateClosed Then .Close
Dim str
If sSerial = "" Then
str = "select course.* from course, teach where course.serial=teach.courseid"
Else
str = "select course.* from course, teach where course.serial=teach.courseid and teach.teacherid = '" & sSerial & "'"
End If
.Open str
End With
grdTeach.DataMember = "oneteach"
grdTeach.Refresh
End Sub
Private Sub cmdAdd_Click()
DataEnv.rsTeacher.AddNew
txtBirthday.Text = "1970-01-01"
fraInfo.Enabled = True
fraBrowse.Enabled = False
cmdAdd.Enabled = False
cmdEdit.Enabled = False
cmdDelete.Enabled = False
cmdUpdate.Enabled = True
cmdReport.Caption = "取消"
cmdReport.Enabled = True
mbClose = False '不能关闭窗口
End Sub
Private Sub cmdDelete_Click()
On Error GoTo errHandler
If MsgBox("要删除记录?", vbYesNo + vbQuestion + vbDefaultButton2, "确认") = vbYes Then
DataEnv.Con.Execute "delete from Teacher where serial ='" & txtSerial & "'"
DataEnv.rsTeacher.MoveNext
If DataEnv.rsTeacher.EOF Then DataEnv.rsTeacher.MoveLast
''刷新用户导航的网格控件
Call RefreshGrid
End If
Exit Sub
errHandler:
MsgBox Err.Description, vbCritical, "错误"
End Sub
Private Sub cmdDeleteTeach_click()
On Error GoTo errHandler
If MsgBox("确实要删除此授课记录?", _
vbYesNo + vbQuestion + vbDefaultButton2, "确认") = vbYes Then
Dim str
str = grdTeach.Columns(0).CellText(grdTeach.Bookmark)
str = "delete from teach where courseid='" & str & "'"
''使用con来删除所选的记录
DataEnv.Con.Execute str
DataEnv.rsOneTeach.Requery
''刷新用于显示教师授课信息的grdTeach控件
grdTeach.DataMember = "oneteach"
grdTeach.Refresh
End If
Exit Sub
errHandler:
MsgBox Err.Description, vbCritical, "错误"
End Sub
Private Sub cmdEdit_Click()
fraInfo.Enabled = True
cmdAdd.Enabled = False
cmdEdit.Enabled = False
cmdDelete.Enabled = False
cmdUpdate.Enabled = True
cmdReport.Caption = "取消" '''更改为“取消更新”的状态
cmdReport.Enabled = True
mbClose = False '不能关闭窗口
End Sub
Private Sub cmdEditTeach_Click()
''修改当前所选的授课信息
On Error GoTo errHandler
With frmTeach
Load frmTeach
.Caption = "添加" & Trim(txtName) & "老师的所授课程"
''将当前所定位的课程信息写入到frmTeach窗体中
.dcbSerial.Text = grdTeach.Columns(0).CellText(grdTeach.Bookmark)
.Show vbModal
''如果用户没有点击确认按钮,则退出处理过程
If Not .mbAdded Then
Unload frmTeach
Exit Sub
End If
''添加授课记录
If DataEnv.rsTeach.State = adStateClosed Then DataEnv.rsTeach.Open
DataEnv.rsTeach.Fields("CourseID") = .dcbSerial.Text
DataEnv.rsTeach.Fields("TeacherID") = txtSerial.Text
DataEnv.rsTeach.Update
End With
''刷新用于显示授课的grdTeach网格控件
Call RefreshTeach(msSerial)
Exit Sub
errHandler:
MsgBox Err.Description, vbCritical, "错误"
End Sub
Private Sub cmdFirst_Click()
DataEnv.rssqlSeek.MoveFirst
DataEnv.rssqlSeek.MovePrevious
Call ChangeBrowseState
End Sub
Private Sub cmdLast_Click()
DataEnv.rssqlSeek.MoveLast
DataEnv.rssqlSeek.MoveNext
Call ChangeBrowseState
End Sub
Private Sub cmdList_Click()
On Error Resume Next
''针对所选的部门,列出属于该部门的中所有教师的信息
Dim strSQL
If cboDep.ListIndex = 0 Then
strSQL = "select serial, name from Teacher order by serial"
Else
strSQL = "select serial,name from Teacher where dept_id=" & _
cboDep.ItemData(cboDep.ListIndex) & " order by serial"
End If
DataEnv.rssqlSeek.Close
DataEnv.rssqlSeek.Open strSQL
''刷新用以导航的网格控件
Call RefreshGrid
Call ChangeBrowseState
Call grdScan_Change
End Sub
Private Sub cmdNext_Click()
DataEnv.rssqlSeek.MoveNext
Call ChangeBrowseState
End Sub
Private Sub cmdPrevious_Click()
DataEnv.rssqlSeek.MovePrevious
Call ChangeBrowseState
End Sub
Private Sub cmdReport_Click()
On Error Resume Next
If cmdReport.Caption = "取消" Then
''取消更新
DataEnv.rsTeacher.CancelUpdate
''重新显示原来数据集中的内容
If DataEnv.rsTeacher.BOF Then
DataEnv.rsTeacher.MoveFirst
Else
DataEnv.rsTeacher.MovePrevious
DataEnv.rsTeacher.MoveNext
End If
Call ChangeBrowseState
mbClose = True
Else
''生成有关教师信息的报表
Dim strSQL As String
DataEnv.rsrptTeacher.Close
strSQL = "select teacher.*, department.name as dept_name " & _
"From teacher, department " & _
"where teacher.dept_id = department.id and serial = '" & txtSerial.Text & "'"
DataEnv.rsrptTeacher.Open strSQL
rptTeacher.Show
End If
End Sub
Private Sub cmdReportTeach_Click()
On Error Resume Next
Dim rpt As New rptTeach
Load rpt
rpt.Caption = "教师" & Trim(txtName) & "所授的课程"
rpt.Show 1
End Sub
Private Sub cmdSeek_Click()
With frmFind
Dim i As Integer
'显示查找窗口
Load frmFind
''填充查找窗体的字段列表框
.lstFields.Clear
For i = 0 To DataEnv.rsTeacher.Fields.Count - 1
.lstFields.AddItem (DataEnv.rsTeacher(i).Name)
Next i
.lstFields.ListIndex = 0
.Show 1
If .mbFindFailed Then Exit Sub
Dim sTemp As String
If LCase(.msFindOp) = "like" Then
sTemp = .msFindField & " " & .msFindOp & " '%" & .msFindExpr & "%'"
Else
sTemp = .msFindField & " " & .msFindOp & " '" & .msFindExpr & "'"
End If
sTemp = "select
展开阅读全文