资源描述
精品范文模板 可修改删除撰写人:_日 期:_目 录摘 要IABSTRACTII第一章 引言11.1 背景1教师管理系统11.2开发教师管理系统的目的和原则31.3开发环境介绍3 开发平台4数据库设计工具ACCESS数据库管理系统7第二章 系统设计92.1 系统分析92.2 系统流程和操作方式设计11第三章 系统界面设计123.1系统界面设计以及代码分析12第四章 数据库的设计304.1数据库设计304.2 数据库概念和发展304.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, Chinas 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.2 开发教师管理系统的目的与原则教师管理系统的主要目的是服务与中小学,各高校的管理者,方便其管理本校教师信息的软件系统.其原则是做到,界面友好人性,操作简单,可靠.1.3开发环境介绍开发平台 本教师管理系统的开发平台为微软windows xp visual basic 6.0 以及微软的Access作为操作数据库.1.3.2 数据库设计工具ACCESS数据库管理系统MicrosoftAccess介绍:使用MicrosoftAccess,可以在单一的数据库文件中管理所有的信息。在这个文件中,用户可以将自己的数据分别保存在各自独立的存储空间中,这些空间称作表;可以使用联机窗体来查看、添加及更新表中的数据;使用查询来查找并检索所要的数据;也可以使用报表以特定的版面布置来分析及打印数据。 如果要保存数据,请为每一种类型的信息创建一个表。如果要从查询、窗体或报表中的多个表中将数据合并在一起,就要定义各个表之间的关系。 如果要搜索并检索符合指定条件的数据,包括来自多个表中的数据,就要创建查询。查询的同时也可以更新或删除多条记录,并对数据执行内嵌或自定义的计算。 如果要简单地直接在某个表中查看、输入及更改数据,请创建一个窗体。在打开一个窗体时,MicrosoftAccess将从一个或多个表中检索数据,并使用用户在“窗体向导”选择的版面布局或所创建的版面布局,将窗体显示在屏幕上。 如果要分析数据或将数据以特定的方式打印出来,请创建一个报表。例如,可以打印一份将数据分组并计算数据总和的报表,也可以打印另一份带有各种数据格式的打印邮件标签的报表。第二章 系统设计2.1 系统分析 本教师管理系统主要由以下几大模块构成.一. 通用模块(教师管理,教师查询,重新登陆,退出)二. .帮助模块2.2 系统流程和操作方式设计程序登陆 主界面教师管理教师查询重新登录退出帮助第三章 系统界面设计3.1系统界面设计1.登陆界面登陆界面代码设计:Option Explicit表示当前用户登录所选择的身份,即用户类型0-表示管理员类用户;1-表示教师类用户Dim mnUserType As IntegerPrivate Sub cboUserType_Change() mnUserType = cboUserType.ListIndexEnd SubPrivate Sub cboUserType_Click() mnUserType = cboUserType.ListIndexEnd SubPrivate Sub cmdCancel_Click() Unload MeEnd SubPrivate 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 IfEnd SubPrivate Sub Form_Load() cboUserType.ListIndex = 0End Sub2.主界面主界面代码:Option Explicit表示当前的用户类型0-管理员类型的用户; 1-教师类型的用户Public mnUserType As Integer表示当前登录的用户名Public msUserName As StringPrivate Sub MDIForm_Activate()根据不同的用户类型,使相应的菜单项可见 Select Case mnUserType Case 0: 以管理员身份登录 mnuFind.Visible = True Case 1: 以教师身份登录, 只能查询自己的信息 mnuFind.Visible = False End SelectEnd SubPrivate Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer) If MsgBox(真的要对出本系统吗?, vbQuestion + vbYesNo + vbDefaultButton2, 退出) = vbNo Then Cancel = 1 End IfEnd SubPrivate Sub mnuAbout_Click() Load frmSplash frmSplash.mbAbout = True frmSplash.Show vbModalEnd SubPrivate Sub mnuExit_Click() Unload MeEnd SubPrivate Sub mnuFind_Click() frmTeacher.Show frmTeacher.cmdSeek.Value = TrueEnd SubPrivate Sub mnuLogin_Click() If MsgBox(若重新登录,所有窗体都将关闭!是否重新登录?, vbQuestion + vbYesNo + vbDefaultButton2, 重新登录) = vbYes Then Unload MDIMain frmLogin.Show End IfEnd SubPrivate Sub mnuStudent_Click() If mnUserType = 0 Then frmTeacher.Show Else frmLook.Show End IfEnd Sub3.教师信息管理界面:教师信息管理代码:Option ExplicitDim 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.Find Temp End IfEnd Sub当改变记录集时,需要刷新整个网格控件Sub RefreshGrid() grdScan.DataMember = grdScan.Refresh grdScan.DataMember = sqlSeek grdScan.Refresh 刷新各个绑定控件 Call grdScan_ChangeEnd 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 cmdPrevious.Enabled = False cmdFirst.Enabled = False Else cmdPrevious.Enabled = True cmdFirst.Enabled = True End If 假如处于记录的尾部 If .EOF Then cmdNext.Enabled = False cmdLast.Enabled = False Else cmdNext.Enabled = True cmdLast.Enabled = True End If End WithEnd Sub刷新教师号为sSerial的教师所受课程的网格控件grdTeachSub 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.RefreshEnd SubPrivate Sub cmdAdd_Click() 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 SubPrivate Sub cmdDelete_Click() On Error GoTo errHandler If MsgBox(要删除记录?, vbYesNo + vbQuestion + vbDefaultButton2, 确认) = vbYes Then DataEnv.Con.Execute delete from Teacher where serial = & txtSerial & t 刷新用户导航的网格控件 Call RefreshGrid End If Exit Sub errHandler: MsgBox Err.Description, vbCritical, 错误End SubPrivate 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 SuberrHandler: MsgBox Err.Description, vbCritical, 错误End SubPrivate 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 SubPrivate 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 添加授课记录elds(CourseID) = .dcbSerial.Text DataEnv.rsTeach.Fields(TeacherID) = txtSerial.Text End With 刷新用于显示授课的grdTeach网格控件 Call RefreshTeach(msSerial) Exit Sub errHandler: MsgBox Err.Description, vbCritical, 错误End SubPrivate Sub cmdFirst_Click() Call ChangeBrowseStateEnd SubPrivate Sub cmdLast_Click() Call ChangeBrowseStateEnd SubPrivate 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.Open strSQL 刷新用以导航的网格控件 Call RefreshGrid Call ChangeBrowseState Call grdScan_ChangeEnd SubPrivate Sub cmdNext_Click() Call ChangeBrowseStateEnd SubPrivate Sub cmdPrevious_Click() Call ChangeBrowseStateEnd SubPrivate Sub cmdReport_Click() On Error Resume Next If cmdReport.Caption = 取消 Then 取消更新 重新显示原来数据集中的内容 If DataEnv.rsTeacher.BOF Then Else End If Call ChangeBrowseState mbClose = True Else 生成有关教师信息的报表 Dim strSQL As String 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 IfEnd SubPrivate Sub cmdReportTeach_Click() On Error Resume Next Dim rpt As New rptTeach Load rpt rpt.Caption = 教师 & Trim(txtName) & 所授的课程 rpt.Show 1End SubPrivate 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 * from Teacher where & sTemp & order by serial Unload frmFind End With 查找数据,并刷新用以导航的网格控件 DataEnv.rssqlSeek.Open sTemp Call RefreshGrid Exit Sub errHandler: MsgBox 没有符合条件的纪录!, vbExclamation, 确认End SubPrivate Sub cmdUpdate_Click() On Error GoTo errHandler: Dim str As String str = txtSerial.Text cmdReport.Caption = 报表(&R) cmdUpdate.Enabled = False fraInfo.Enabled = False mbClose = True 刷新右端用以导航的网格控件 Call RefreshGrid 根据记录集中记录的个数,改变各个按钮的状态 Call ChangeBrowseState 定位到刚刚添加或者修改过的记录 DataEnv.rssqlSeek.Find serial= & str & Exit Sub errHandler: MsgBox Err.Description, vbCritical, 错误End SubPrivate Sub cmdAddTeach_Click() On Error GoTo errHandler With frmTeach Load frmTeach .Caption = 添加 & Trim(txtName) & 老师的所授课程 .Show vbModal 如果用户没有点击确认按钮,则退出处理过程 If Not .mbAdded Then Unload frmTeach Exit Sub End If 添加授课记录 DataEnv.rsTeach.Fields(CourseID) = .dcbSerial.Text DataEnv.rsTeach.Fields(TeacherID) = txtSerial.Text End With 刷新整个网格控件 Call RefreshTeach(msSerial) Exit Sub errHandler: MsgBox Err.Description, vbCritical, 错误End SubPrivate Sub Form_Load() On Error Resume Next Dim rsDep As New ADODB.Recordset, rsClass As New ADODB.Recordset Set rsDep = DataEnv.rsDepartment 从Department表中读取数据,填充cboDep复合框到中 rsDep.Open cboDep.Clear cboDep.AddItem 全部 将各个部门的id号作为ItemData附加到复合框中 cboDep.ItemData(0) = 0 While Not rsDep.EOF cboDep.AddItem rsDep(Name) cboDep.ItemData(cboDep.ListCount - 1) = rsDep(id) rsDep.MoveNext Wend cboDep.ListIndex = 0 点击“列出”按钮 cmdList.Value = True fraManage.Enabled = True fraBrowse.Enabled = True fraSeek.Enabled = True grdScan.Enabled = True mbClose = True Call grdScan_ChangeEnd SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) If Not mbClose Then MsgBox 数据正被修改,窗口不能关闭, vbCritical, 错误 Cancel = True End IfEnd SubPrivate Sub grdScan_Change() If grdScan.ApproxCount 0 Then msSerial = grdScan.Columns(0).CellText(grdScan.Bookmark) Call SeekTeacher(msSerial) End IfEnd SubPrivate Sub grdScan_RowColChange(LastRow As Variant, ByVal LastCol As Integer) 如果当前记录正处于编辑状态,则不允许在导航栏中移动记录 If Not mbClose Then grdScan.Row = LastRow - 1 如果当前行改变,则动态改变所要显示的记录 If LastRow grdScan.Bookmark Then If grdScan.ApproxCount 0 Then msSerial = grdScan.Columns(0).CellText(grdScan.Bookmark) Call SeekTeacher(msSerial) End If End IfEnd SubPrivate Sub txtName_Validate(Cancel As Boolean) txtName.Text = Trim(txtName.Text)End SubPrivate Sub txtSerial_Change() 当教师编号改变时,就刷新用于显示授课信息的grdTeach控件 If Not fraInfo.Enabled Then Call RefreshTeach(msSerial) End IfEnd Sub4.教师查询界面:教师查询界面代码Option ExplicitPublic msFindField As String 查找字段Public msFindOp As String 查找运算符Public msFindExpr As String 查找表达式Public mbFindFailed As BooleanPrivate Sub cmdCancel_Click() mbFindFailed = True Me.HideEnd SubPrivate Sub txtExpression_Change() cmdOK.Enabled = Len(lstFields.Text) 0 And Len(lstOperators.Text) 0 And Len(txtExpression.Text) 0End SubPrivate Sub lstFields_Click() cmdOK.Enabled = Len(lstFields.Text) 0 And Len(lstOperators.Text) 0 And Len(txtExpression.Text) 0End SubPrivate Sub lstOperators_Click() cmdOK.Enabled = Len(lstFields.Text) 0 And Len(lstOperators.Text) 0 And Len(txtExpression.Text) 0End SubPrivate Sub Form_Load() 查询所需要使用的运算符号 lstOperators.AddItem = lstOperators.AddItem lstOperators.AddItem = lstOperators.AddItem lstOperators.AddItem lstOperators.AddItem Like lstOperators.ListIndex = 0 mbFindFailed = TrueEnd SubPrivate Sub cmdOK_Click() mbFindFailed = False 改变指针,告知读者当前处于忙的状态 Screen.MousePointer = vbHourglass msFindField = lstFields.Text msFindExpr = txtExpression.Text msFindOp = lstOperators.Text Me.Hide 改变指针,告知读者系统已经不忙 Screen.MousePointer = vbDefaultEnd Sub第四章 数据库的设计4.1数据库设计1.ADMIN表2.course课程表:3.coursetype课程类型表:4.Department系别:5.teach表:6.teacher表:4.2 数据库概念和发展关系数据库是目前各类数据库中最重要、最流行的数据库,他应用数学方法来处理数据库数据,是目前使用最广泛的数据库系统。20世纪70年代以后开发的数据库管理系统产品几乎都是基于关系的。在数据库发展的历史上,最重要的成就就是关系模型。 关系数据库系统与非关系数据库系统的区别是:关系系统只有“表“这一种数据结构;而非关系数据库系统还有其他数据结构,对这些数据结构有其他的操作。结构化查询语言SQL(Structured Query Language)是一种介于关系代数与关系演算之间的语言,其功能包括查询、操纵、定义和控制四个方面,是一个通用的、功能极强的关系数据库语言。目前已成为关系数据库的标准语言4.3系统测试与评价测试在软件开发过程中一直都是备受关注的,即使在传统的软件工程中,也有一个明确、独立的测试阶段。随着软件危机的频频出现以及人们对于软件本质的进一步认识,测试的地位得到了前所未有的提高。测试已经不仅仅局限于软件开发中的一个阶段,它已经开始贯穿于整个软件开发过程,人们已经开始认识到:测试开始的时间越早,测试执行的越频繁,所带来的整个软件开发成本的下降就会越多。Extreme Programming更是把测试推到了极限的位置,一切软件开发活动都要从首先编写测试代码开始。总 结教师管理系统是一个典型的信息管理系统,其主要通过软件工程方面的选择课题、需求分析、总体设计、选用工具、程序模块、系统测试等几个步骤来实现。开发本系统的过程中,首先要对教师信息管理进行系统调研,熟悉学校教师的人事、档案管理的流程、步骤;其次在系统需求分析过程中,要透过现象看本质,敏锐观察到学校教师管理中存在的各种问题,并在总体设计把握好对问题的分析、理解,进而解决问题;选用开发工具要选用自己最熟悉、应用较多的开发工具,本系统开发选用MS Visual Basic 6.0,其具有语言简单、功能强大、组件众多的优点。程序模块的编制中,重点把握系统内部完整性、功能性、实用性、便捷性,使其能够协调统一、运行无误。运行结果证明,本学校教师信息管理系统极大提高了工作效率,节省了人力和物力,最终满足学校管理、学校员工工作的需要,同时也成为现代化学校管理的标志 致 谢我首先感谢我的指导老师吕老师,在他严格的要求下我懂得了开发软件要有一种极其认真负责的态度。无论做什么事都要大胆的去想去做,这样会有好的创意,才能更有作为。在这里我还要感谢我们宿舍的其它5个同学。他们和我共同生活了四年,在生活和学习上给了我很
展开阅读全文