专业:信息管理与信息系统
小组成员:解玉龙 408105010210
杜小青 408105010126
安雪娇 408105010201
一.功能模块设计…………………………………………………1
二.系统分析概述…………………………………………………2
(一)系统分析的内容………………………………………2
(二)系统的目标与任务……………………………………3
三.详细调查……………………………………………………….3
四.业务流程分析………………………………………………….7
五.数据流程分析………………………………………………….8
六.数据字典……………………………………………………….8
(1)数据项……………………………………………………..8
(2)数据结构…………………………………………………..9
(3)数据流……………………………………………………..9
(4)数据存储………………………………………………….10
(5)处理逻辑………………………………………………….10
(6)外部实体………………………………………………….11
七. 总结………………………………………………………….. 12
教师工作量系统
一.功能模块设计
系统的总体结构图如下:
系统支持三类用户:系统管理员,系统管理员和普通教师。每类用户均需要通过相应的身份验证才能完成相应的系统功能。
1.教师模块
教师模块主要包括的功能是:每位教师(含实验人员)可以根据自己的工号录入和查询自己在理论教学,试验,实习课程设计,毕业论文指导,研究生指导,答辩,监考等工作量。
2.系统管理员模块
该模块的功能如下:
系统管理员可以查询所有教师的工作量情况。
系统管理员可以对系部教师工作量进行汇总,上报学校教务处。
系部根据自己的学科情况在遵守教务处有关文件精神的基础上对教师教学工作量计算进行适当的修订和折减,主要用于系部的课时费,各种奖金的发送。
3.系统管理员模块
系统管理员按照学校教务处有关文件的规定统计和修改全校教师的教学工作量,主要用于各种考评,检查,教师个人职称评定等。
可对系统的数据进行备份和维护
二.系统分析概述
(一)系统分析的内容
教师教学工作量是教师直接从事与教学相关工作的数量与质量的总构成,是衡量教师教学工作业绩的尺度,也是对教师进行考核的重要指标。
教师工作量统计具体来说包括课程工作量、指导实习工作量、指导论文工作量、评议论文工作量、监考工作量、补考阅卷工作量、命题工作量和其他工作量的统计。统计的关键在于数据的真实性与易取性。
在深化教育改革的过程中,科学合理的教师工作量统计方法是教学改革与人事分配制度改革的重要依据。因此采用科学、合理的计算方法对学校管理工作的建设和发展都有着重要的意义。我校现有排课系统,其中存储的数据是教师工作量统计所需的基础数据,但这在现有的工作流程中并没有得到充分的利用,这无疑形成了一种浪费。利用逐级式推动的统计管理方法,不仅效率低,还易造成不科学,不规范,不准确的弊病,而且不能为管理提供科学的依据。
信息技术的迅速发展,使计算机已经成为人们工作和生活中不可缺少的工具,现在人们越来越依靠计算机来实现自动化办公,应用计算机在数据处理和数据存储方面的优异性能, 可帮助工作人员提高工作的效率、减少错误。同时还能提供快速的查询检索功能以及按要求进行报表打印功能。为实现教师工作量统计工作的科学化,规范化,需要进行教师教学工作量计算机统计工作实现计算机化,从而减少中间环节,提高工作效率,降低统计人员的工作强度,使管理工作实现科学化。
(二)系统的目标与任务:
1.主要用于学院教学管理工作,因此要考虑设计成一个综合性的系统,能够适应教学考核,职位评定及新专业的学位申请,计算课酬和其他各项工作所需要教学量统计数据的支持。由于在软件设计时,不可能准确的预见未来所有的统计需求,因此需设计为一个组合查询统计模块来支持软件的功能。
2.因为教学工作量折算方法首先是遵照学校的有关规定,而目前学校的管理规定仍然处于不断的探索和优化中,因此将会不断的对折算方法和系数作出调整,所以要求本系统中的所有计算公式都必须设计成动态可修改,这样当计算方法发生变化后,不必修改系统源程序,只需由使用者重新定义相关的计算公式即可,这就必须要解决如何较直观的定义表达式并计算求职的问题。
3.对教学工作量的计算,学校有一系列具体规定,这些规定也是教学管理的重要依据,因此也必须在系统设计时加以考虑。
三.详细调查
教师工作量每学期统计一次,年底进行全年汇总,作为教师工作业绩考核和奖励的重要依据。石家庄经济学院的教师工作量统计工作到目前为止一直采用手工操作管理模式。每学期末教研室主任到教学秘书处领取《石家庄经济学院教师工作量登记表》,分发给教研室里的各位教师。教师根据自己的实际情况填写完毕后交给教研室主任审核签字,教研室主任统一核对签字完毕后交与教学秘书,教学秘书再根据存档资料对收到的登记表再次进行核对。若有不一致则返还给教研室主任,重复上述过程。核对一致后再手工输入《教师工作量汇总表》,交与有关部门存档。
这种统计管理方法是逐级推动式的,整个流程中涉及到的人员更多的是基于手工的、纸质资料的操作。纸质资料积累多了之后查询起来就会比较费力,更不必说对数据进行深层挖掘了。整个工作量统计过程中需要进行多重审核,一方面增加了教学秘书和教研室主任的工作负担,另一方面,也使得统计工作所需时间的延长。我校现有排课系统,其中存储的数据是教师工作量统计所需的基础数据,但这在现有的工作流程中并没有得到充分的利用,这无疑形成了一种浪费。这种逐级推动式的统计管理方法,不仅效率低,易造成不科学、不规范、不准确的弊病,而且不能为管理、决策提供科学的依据。
教师工作量计算公式和计算参数由教务处决定,其中公式是固定的,但计算参数可能会根据需要做一些调整。现行的计算方法与计算参数如下:
专业课的工作量计算方法为:学时*(1.25+人数/120);
基础课的计算方法为:学时*(1+人数/120)。
实习的工作量具体计算方法如下:
大一实习:天数*0.5*人数/20;
大二实习:天数*0.6*人数/20;
大三实习:天数*0.7*人数/20;
大四实习:天数*0.7*人数/20;
野外实习:天数*0.9*人数/20。
指导论文工作量计算:指导一份论文8个工作量。
评议论文工作量:评议一份论文1个工作量。
监考工作量:监考一次1个工作量。
补考阅卷工作量:一份0.1个工作量。
命题工作量:一份命题1个工作量。
教师工作量登记表 | |||||
/ 学年 第 学期 | |||||
所在单位 | 工号 | 教师姓名 | 转储号 | 工作量合计 | 备注 |
理论课名称 | 课程性质 | 学时 | 结课考 试人数 | 上课时间 | 工作量 |
理论课工作量小计 | |||||
实验课名称 | 地点 | 学时 | 人数 | 上课时间 | 工作量 |
实验课工作量小计 | |||||
实习名称 | 实习地点 | 联系人 | 实 习 人 数 | 教师实际指导实习 起止日期及天数 | 工作量 |
一年级实习 | |||||
二年级实习 | |||||
三年级实习 | |||||
四年级实习 | |||||
野外踏勘 | |||||
实习工作量小计 | |||||
指导毕业论文(设计) 份数 | 指导毕业论文(设计)工作量 | ||||
评议毕业论文(设计) 份数 | 评议毕业论文(设计)工作量 | ||||
监考次数 | 监考工作量 | ||||
补考阅卷份数 | 阅卷工作量 | ||||
命题份数 | 命题工作量 | ||||
其他工作 | |||||
本人签字: | 年 月 日 | ||||
教研室主任签字: | 年 月 日 | ||||
单位领导签字: | 年 月 日 | ||||
五.数据流程分析
六.数据字典
(1)数据项
(2)数据结构
(3)数据流
(4)数据存储
(5)处理逻辑
(6)外部实体
七.总结
高校教务管理工作是高等教育中的一个极为重要的环节,是整个院校管理的核心和基础。教师工作量管理是教务管理中不可缺少的部分,面对种类繁多的数据和报表,手工处理方式已经很难跟上现代化管理的步伐,随着计算机及通讯技术的飞速发展,高等教育对教务管理工作中的工作量管理提出了更高的要求。尽快改变传统的管理模式,运用现代化手段进行科学管理,已经成为整个教育系统亟待解决的课题之一。
教师教学工作量管理系统实现了教学任务,教学计划的下达,上交的网络管理,同时通过教学任务的管理又方便的实现了各个院系教师教学工作量的统计,具有技术先进,管理科学,性能良好等特点,实现了教师教学工作量管理的办公自动化。为领导决策层提供更加准确可靠的分析数据,促进学习教学管理工作的建设和改革。
教师工作量计算系统设计
闪现窗体截屏
代码
Private Sub Form_Load()
Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2
End Sub
Private Sub Timer1_Timer()
Label1.Left = Label1.Left + 1000
End Sub
Private Sub Timer2_Timer()
Unload Me
系统说明.Show
End Sub
系统说明窗体截屏
代码
Option Explicit
Sub ChangeColor(Ctl As Control, Color1 As Integer, Color2 As Integer, Color3 As Integer, Color4 As Integer)
' 改变字体颜色
If Val(Ctl.Tag) = Color1 Then
Ctl.Tag = Color2
ElseIf Val(Ctl.Tag) = Color2 Then
Ctl.Tag = Color3
ElseIf Val(Ctl.Tag) = Color3 Then
Ctl.Tag = Color4
ElseIf Val(Ctl.Tag) = Color4 Then
Ctl.Tag = Color1
Else
Ctl.Tag = Color1
End If
Ctl.ForeColor = QBColor(Ctl.Tag)
End Sub
Private Sub Form_Load()
Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2
End Sub
Private Sub Timer1_Timer()
If Label1.Left < Me.Width Then '从左到右滚动
Label1.Left = Label1.Left + 100
ElseIf Label1.Left > Me.Width Then
Label1.Left = -Label1.Width
End If
Call ChangeColor(Label1, 1, 3, 5, 9) '调用自定义函数,改变文字颜色
Label2.Left = Label2.Left - 100 '从右到左滚动
If Label2.Left < -Label2.Width Then
Label2.Left = Me.ScaleWidth
End If
Call ChangeColor(Label2, 1, 3, 5, 9) '调用自定义函数,改变文字颜色
Label3.Top = Label3.Top - 100 '从下往上滚动
If Label3.Top < -Label3.Height Then
Label3.Top = Picture1.ScaleHeight
End If
End Sub
Private Sub Timer2_Timer()
Unload Me
主窗体.Show
End Sub
主窗体截屏
代码
Private Sub ActiveBar21_ToolClick(ByVal Tool As ActiveBar2LibraryCtl.Tool)
AlignToForm = True
Select Case Tool.Name
Case "系统登录"
欢迎界面.Show
Case "密码修改"
密码修改.Show
Case "数据备份和恢复"
数据备份和恢复.Show
Case "退出"
Unload Me
提示信息.Show
Case "连接数据库"
连接服务器.Show
End Select
End Sub
Private Sub Form_Load()
Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2
End Sub
欢迎登录窗体截屏
代码
Private Sub Command2_Click()
Unload Me
管理员登录窗体.Show
End Sub
Private Sub Form_Load()
Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2
End Sub
Private Sub 登录窗体_Click()
Unload Me
教师登录窗体.Show
End Sub
教师登录窗体截屏
代码
Private Sub Command1_Click()
If Trim(Combo2.Text) = "" Then
MsgBox "请输入用户名!", 48, "用户名要填写"
Combo2.SetFocus
Else
If Text1.Text = "" Then
MsgBox "请输入密码!", 48, "密码为空!"
Else
Unload Me
计算工作量.Show
End If
End If
End Sub
Private Sub Form_Load()
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordsetcnn.ConnectionString = "Provider=SQLOLEDB.1;Persist
Security Info=False;User ID=sa;Initial Catalog=教师工作量;Data Source=ERP47"
cnn.Open
rst.Open "select * from 教师表", cnn, adOpenDynamic, adLockOptimistic
rst.MoveFirst
Do While Not rst.EOF
Combo2.AddItem rst.Fields("教师姓名").Value
rst.MoveNext
Loop
Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2
End Sub
计算工作量窗体截屏
代码
Private Sub Command10_Click()
Combo10.Text = ""
Combo11.Text = ""
Combo12.Text = ""
Combo13.Text = ""
Combo14.Text = ""
Text7.Text = ""
Text2.Text = ""
Text3.Text = ""
Text8.Text = ""
Text9.Text = ""
Text10.Text = ""
End Sub
Private Sub Command2_Click()
Dim xlswrs As Excel.Worksheet
Set xlsapp = CreateObject("excel.application")
xlsapp.Visible = True
Set xlswrb = xlsapp.Workbooks.Add
Set wksheet = xlswrb.Sheets(1)
wksheet.Name = "工作量登记表"
'设置表头
wksheet.Cells(1, 1).Value = "石家庄经济学院教师工作量登记表 "
wksheet.Range("a1").Font.Name = "宋体"
wksheet.Range("a1").Font.Size = 16
wksheet.Range("a1").Font.Bold = True
wksheet.Rows("1").RowHeight = 33
wksheet.Range("a1").HorizontalAlignment = xlCenter '文字水平居中"
wksheet.Range("a1").VerticalAlignment = xlCenter '文字垂直居中
'合并单元格
wksheet.Range("d2:f2,a20:e20,b21:c21,b22:c22,d21:e21,d22:e22,b23:e23,d23:e23").MergeCells = True
wksheet.Range("a1:f1,b26:f26,a13:e13,a20:e20").MergeCells = True
'设置表格中的字体格式
With wksheet
.Range("a3,b3,c3,d3,e3,f3,a5,b5,c5,d5,e5,f5,a13,a14,b14,c14,d14,e14,f14,a26,a27,b27,c27,d27,e27,f27 ").Font.Name = "宋体"
.Range("a3,b3,c3,d3,e3,f3,a5,b5,c5,d5,e5,f5,a13,a14,b14,c14,d14,e14,f14,a26,a27,b27,c27,d27,e27,f27 ").Font.Size = 11
.Range("a3,b3,c3,d3,e3,f3,a5,b5,c5,d5,e5,f5,a13,a14,b14,c14,d14,e14,f14,a20,a26,a27,b27,c27,d27,e27,f27 ").Font.Bold = True
.Range("a32").Font.Size = 12
End With
wksheet.Cells.HorizontalAlignment = xlCenter '全部文字水平居中"
wksheet.Cells.VerticalAlignment = xlCenter '全部文字垂直居中
'设置行高
With wksheet
.Rows("2").RowHeight = 18.75
.Rows("3").RowHeight = 24
.Rows("4").RowHeight = 21
.Rows("5:13").RowHeight = 27.75
.Rows("14").RowHeight = 15.75
.Rows("14").RowHeight = 15.75
.Rows("15:26").RowHeight = 27.75
.Rows("27").RowHeight = 36.75
.Rows("28:29").RowHeight = 30
.Rows("26").RowHeight = 172.5
End With
'设置列宽
With wksheet
.Columns("A").ColumnWidth = 21.38
.Columns("B").ColumnWidth = 9.13
.Columns("C").ColumnWidth = 8
.Columns("D").ColumnWidth = 8.13
.Columns("E").ColumnWidth = 19.38
.Columns("F").ColumnWidth = 10.75
End With
'设置部分单元格内容为文本格式
wksheet.Range("b4,d4").Select
xlsapp.Selection.NumberFormatLocal = "@"
'设置工作量为两位小数
wksheet.Range("e4,f6:f13,f15:f26,f28:f33").Select
xlsapp.Selection.NumberFormatLocal = "0.00_ "
'为单元格设置边框
wksheet.Range("A3:F29").Select
xlsapp.Selection.Borders(xlDiagonalDown).LineStyle = xlNone
xlsapp.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With xlsapp.Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With xlsapp.Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With xlsapp.Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With xlsapp.Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With xlsapp.Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With xlsapp.Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
wksheet.Range("a2").Select
'填写表格中信息
With wksheet
.Cells(2, 4).Value = "/ 学年 第 学期 "
.Cells(3, 1).Value = "所在单位"
.Cells(3, 2).Value = "工号"
.Cells(3, 3).Value = "教师姓名"
.Cells(3, 4).Value = "转储号"
.Cells(3, 5).Value = "工作量合计"
.Cells(3, 6).Value = "备注"
.Cells(5, 1).Value = "课程性质"
.Cells(5, 2).Value = "结果人数"
.Cells(5, 3).Value = "天数"
.Cells(5, 4).Value = "学时"
.Cells(5, 5).Value = "参数"
.Cells(5, 6).Value = "工作量"
.Cells(13, 1).Value = "课程工作量小记"
.Cells(14, 1).Value = "实习名称"
.Cells(14, 2).Value = "实习人数"
.Cells(14, 3).Value = "实习天数"
.Cells(14, 4).Value = ""
.Cells(14, 5).Value = "参数"
.Cells(14, 6).Value = "工作量"
.Cells(15, 1).Value = "一年级实习"
.Cells(16, 1).Value = "二年级实习"
.Cells(17, 1).Value = "三年级实习"
.Cells(18, 1).Value = "四年级实习"
.Cells(19, 1).Value = "野外踏勘"
.Cells(20, 1).Value = "实习工作量小计"
.Cells(21, 1).Value = "指导毕业论文(设计)" & Chr(10) & "份数"
.Cells(21, 4).Value = "指导毕业论文(设计)工作量"
.Cells(22, 1).Value = "评议毕业论文(设计)" & Chr(10) & "份数"
.Cells(22, 4).Value = "评议毕业论文(设计)工作量"
.Cells(23, 1).Value = "监考次数"
.Cells(23, 4).Value = "监考工作量"
.Cells(24, 1).Value = "补考阅卷份数"
.Cells(24, 4).Value = "阅卷工作量"
.Cells(25, 1).Value = "命题份数"
.Cells(25, 4).Value = "命题工作量"
.Cells(26, 1).Value = "其他工作"
.Cells(27, 1).Value = "本人签字:"
.Cells(27, 5).Value = " 年 月 日"
.Cells(28, 1).Value = "教研室主任签字:"
.Cells(28, 5).Value = " 年 月 日"
.Cells(29, 1).Value = "单位领导签字:"
.Cells(29, 5).Value = " 年 月 日"
.Cells(6, 1).Value = Combo1.Text
.Cells(6, 2).Value = Combo2.Text
.Cells(6, 3).Value = Combo4.Text
.Cells(6, 4).Value = Combo5.Text
.Cells(6, 5).Value = Combo6.Text
.Cells(6, 6).Value = Text5.Text
.Cells(15, 2).Value = Combo7.Text
.Cells(15, 3).Value = Combo8.Text
.Cells(15, 5).Value = Combo9.Text
.Cells(15, 6).Value = Text6.Text
.Cells(21, 2).Value = Combo10.Text
.Cells(21, 6).Value = Text2.Text
.Cells(22, 2).Value = Combo11.Text
.Cells(22, 6).Value = Text3.Text
.Cells(23, 2).Value = Combo12.Text
.Cells(23, 6).Value = Text8.Text
.Cells(24, 2).Value = Combo13.Text
.Cells(24, 6).Value = Text9.Text
.Cells(25, 2).Value = Combo14.Text
.Cells(25, 6).Value = Text10.Text
End With
End Sub
Private Sub Command3_Click()
Unload Me
欢迎界面.Show
End Sub
Private Sub Command5_Click()
Text5.Text = Val(Combo5.Text) * (Val(Combo6.Text) + Val(Combo2.Text) / 120)
End Sub
Private Sub Command6_Click()
Combo1.Text = ""
Combo2.Text = ""
Combo4.Text = ""
Combo5.Text = ""
Combo6.Text = ""
Text5.Text = ""
End Sub
Private Sub Command8_Click()
Combo3.Text = ""
Combo7.Text = ""
Combo8.Text = ""
Combo9.Text = ""
Text6.Text = ""
End Sub
Private Sub Command9_Click()
Text7.Text = Val(Combo10.Text) * 8 + Val(Combo11.Text) * 1 + Val(Combo12.Text) * 1 + Val(Combo13.Text) * 0.1 + Val(Combo14.Text) * 1
Text2.Text = Val(Combo10.Text) * 8
Text3.Text = Val(Combo11.Text) * 1
Text8.Text = Val(Combo12.Text) * 1
Text9.Text = Val(Combo13.Text) * 0.1
Text10.Text = Val(Combo14.Text) * 1
End Sub
Private Sub Form_Load()
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
cnn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=教师工作量;Data Source=ERP47"
cnn.Open
rst.Open "select * from 课程计算表,实习计算表,其他工作量", cnn, adOpenDynamic, adLockOptimistic
rst.MoveFirst
Do While Not rst.EOF
Combo1.AddItem rst.Fields("课程性质").Value
Combo2.AddItem rst.Fields("结课人数").Value
Combo4.AddItem rst.Fields("天数").Value
Combo5.AddItem rst.Fields("学时").Value
Combo6.AddItem rst.Fields("参数").Value
Combo3.AddItem rst.Fields("实习名称").Value
Combo7.AddItem rst.Fields("实习人数").Value
Combo8.AddItem rst.Fields("实习天数").Value
Combo9.AddItem rst.Fields("参数").Value
Combo10.AddItem rst.Fields("指导论文数量").Value
Combo11.AddItem rst.Fields("评议论文数量").Value
Combo12.AddItem rst.Fields("监考次数").Value
Combo13.AddItem rst.Fields("补考阅卷份数").Value
Combo14.AddItem rst.Fields("命题份数").Value
rst.MoveNext
Loop
Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2
End Sub
Private Sub Command7_Click()
Text6.Text = Val(Combo8.Text) * (Val(Combo9.Text) + Val(Combo7.Text) / 120)
End Sub
生成的Excel表截屏
管理员登录窗体
代码
Private Sub Command1_Click()
If Trim(Text1.Text) = "" Then
MsgBox "请输入用户名!", 48, "用户名要填写"
Text1.SetFocus
Else
If Text1.Text <> "admin" Then
MsgBox "用户名不正确,请重新输入!"
Text1.Text = "": Text2.Text = "": Text1.SetFocus
Else
If Text2.Text = "" Then
MsgBox "请输入密码!", 48, "密码为空!"
Else
If Text2.Text = "010101" Then
系统管理员操作.Show
Unload Me
Else
MsgBox "密码错误!请重新输入!"
End If
End If
End If
End If
End Sub
Private Sub Form_Load()
Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2
End Sub
系统管理员操作窗体截屏
代码
Private Sub Command1_Click(Index As Integer)
Adodc1.RecordSource = " select * from 课程计算表"
Adodc1.Refresh
Adodc1.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=教师工作量;Data Source=ERP47" '连接数据库
Set DataGrid1.DataSource = Adodc1
End Sub
密码修改窗体截屏
代码
Private Sub Command1_Click()
If Text1.Text = "" Then
MsgBox "请输入原始密码!", 48, "提示"
Text1.Text = "": Text2.Text = "": Text3.Text = "": Text1.SetFocus
Else
If Text1.Text <> "010101" Then
MsgBox "输入的原始密码无效,你无权更改密码!", 48, "警告!"
Else
If Text2.Text = "" Then
MsgBox "请输入新密码!"
Text2.SetFocus
Else
If Text3.Text = "" Then
MsgBox "请再输入一遍新密码!", , "提示"
Else
If Text2.Text <> Text3.Text Then
MsgBox "两次输入的密码不一致,请重新输入!", 48, "提示信息"
Text2.Text = "": Text3.Text = "": Text2.SetFocus
Else
p = 1
m0 = Text3.Text
If MsgBox("密码修改成功!请重新登陆") = 1 Then
Unload Me
主窗体.Show
End If
End If
End If
End If
End If
End If
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Form_Load()
Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2
End Sub
连接服务器窗体截屏
代码
Option Explicit
Dim oSQLServerDMOApp As SQLDMO.Application
Dim oSQLServer As SQLDMO.SQLServer
Private Sub cboServer_Click()
On Error GoTo ErrorHandler
'Disconnect from the server if connected
If Not oSQLServer Is Nothing Then
oSQLServer.Disconnect
Set oSQLServer = Nothing
End If
'Connect to the server
Set oSQLServer = New SQLDMO.SQLServer
With oSQLServer
.LoginTimeout = 10
.Name = cboServer.Text
.LoginSecure = True
.Connect
End With
Exit Sub
ErrorHandler:
Select Case Err.Number
Case -2147221504 'Server is most likely not started
'Attempt to start the server
oSQLServer.Start False, cboServer.Text
'Connect to the server
With oSQLServer
.LoginTimeout = 10
.Name = cboServer.Text
.LoginSecure = True
.Connect
End With
Case Else
MsgBox Err.Description
End Select
End Sub
Private Sub cboServerGroup_Click()
Dim oRegisteredServer As SQLDMO.RegisteredServer
Dim oServerGroup As SQLDMO.ServerGroup
Set oSQLServerDMOApp = New SQLDMO.Application
Set oRegisteredServer = New SQLDMO.RegisteredServer
Set oServerGroup = oSQLServerDMOApp.ServerGroups(cboServerGroup.Text)
cboServer.Clear
cboServer.AddItem "(local)"
For Each oRegisteredServer In oServerGroup.RegisteredServers
cboServer.AddItem oRegisteredServer.Name
Next
cboServer.ListIndex = 0
Set oSQLServerDMOApp = Nothing
RefreshStatus
End Sub
Private Sub cmdRefresh_Click()
RefreshStatus
End Sub
Private Sub Form_Load()
Dim i As Integer
'Use the SQL DMO Application Object to find the available SQL Servers
Set oSQLServerDMOApp = New SQLDMO.Application
'Look for the registered server groups
Dim oServerGroup As SQLDMO.ServerGroup
For Each oServerGroup In oSQLServerDMOApp.ServerGroups
cboServerGroup.AddItem oServerGroup.Name
Next
cboServerGroup.ListIndex = 0
Set oSQLServerDMOApp = Nothing
RefreshStatus
End Sub
Private Sub Timer1_Timer()
RefreshStatus
End Sub
Private Sub cmdStartContinue_Click()
On Error GoTo ErrorHandler
If oSQLServer.Status = SQLDMOSvc_Paused Then
oSQLServer.Continue
Else
oSQLServer.Start False, cboServer.Text
End If
RefreshStatus
Exit Sub
ErrorHandler:
MsgBox Err.Description
End Sub
Private Sub cmdPause_Click()
On Error GoTo ErrorHandler
If oSQLServer.Status = SQLDMOSvc_Running Then
oSQLServer.Pause
End If
RefreshStatus
Exit Sub
ErrorHandler:
MsgBox Err.Description
End Sub
Private Sub cmdStop_Click()
On Error GoTo ErrorHandler
If oSQLServer.Status = SQLDMOSvc_Running Then
oSQLServer.Stop
End If
RefreshStatus
Exit Sub
ErrorHandler:
MsgBox Err.Description
End Sub
Private Sub RefreshStatus()
'
cboServices.Clear
cboServices.AddItem "SQL Server"
cboServices.ListIndex = 0
SQLServerStatus oSQLServer
End Sub
Private Sub SQLServerStatus(oSQLServer As SQLDMO.SQLServer)
On Error GoTo ErrorHandler
Dim sServerName As String
sServerName = cboServer.Text
'The server is disconnected or not running
If oSQLServer Is Nothing Then
Exit Sub
End If
Select Case oSQLServer.Status
'SQLDMOSvc_Continuing = 6 Service execution state in transition from paused to running
Case SQLDMOSvc_Continuing
sbrStatus.SimpleText = sServerName & " - Continuing"
Set imgStatus.Picture = ImageList1.ListImages(0).Picture
'SQLDMOSvc_Paused = 2 Service execution is paused
Case SQLDMOSvc_Paused
sbrStatus.SimpleText = sServerName & " - Paused"
cmdStartContinue.Enabled = True
cmdPause.Enabled = False
cmdStop.Enabled = True
Set imgStatus.Picture = ImageList1.ListImages(3).Picture
'SQLDMOSvc_Pausing = 7 Service execution state in transition from running to paused
Case SQLDMOSvc_Pausing
sbrStatus.SimpleText = sServerName & " - Pausing"
Set imgStatus.Picture = ImageList1.ListImages(3).Picture
'SQLDMOSvc_Running = 1 Service is running
Case SQLDMOSvc_Running
sbrStatus.SimpleText = sServerName & " - Running"
cmdStartContinue.Enabled = False
cmdPause.Enabled = True
cmdStop.Enabled = True
Set imgStatus.Picture = ImageList1.ListImages(1).Picture
'SQLDMOSvc_Starting = 4 Service execution state in transition from stopped to running
Case SQLDMOSvc_Starting
sbrStatus.SimpleText = sServerName & " - Starting"
Set imgStatus.Picture = ImageList1.ListImages(1).Picture
'SQLDMOSvc_Stopped = 3 Service is stopped
Case SQLDMOSvc_Stopped
sbrStatus.SimpleText = sServerName & " - Stopped"
cmdStartContinue.Enabled = True
cmdPause.Enabled = False
cmdStop.Enabled = False
Set imgStatus.Picture = ImageList1.ListImages(2).Picture
'SQLDMOSvc_Stopping = 5 Service execution state in transition from running to stopped
Case SQLDMOSvc_Stopping
sbrStatus.SimpleText = sServerName & " - Stopping"
cmdStartContinue.Enabled = True
cmdPause.Enabled = False
cmdStop.Enabled = False
Set imgStatus.Picture = ImageList1.ListImages(2).Picture
'SQLDMOSvc_Unknown = 0 Unable to determine service execution state
Case SQLDMOSvc_Unknown
sbrStatus.SimpleText = sServerName & " - Unknown"
Set imgStatus.Picture = ImageList1.ListImages(3).Picture
End Select
Exit Sub
ErrorHandler:
MsgBox sServerName & ": " & Err.Description
End Sub
Private Sub Form_Unload(Cancel As Integer)
If oSQLServer.Status = SQLDMOSvc_Running Then
'Disconnect from the server
oSQLServer.Disconnect
'and clean up
Set oSQLServer = Nothing
Set imgStatus.Picture = Nothing
End If
End Sub
数据备份与恢复窗体截屏
代码
Option Explicit
Dim con As New ADODB.Connection
Dim sql As String
Private Sub Command1_Click()
CommonDialog1.Filter = "备份文件(*.bak)|*.bak|文本文件(*.txt)|*.txt|ALL File(*.*)|*.*"
CommonDialog1.ShowSave
Text1.Text = CommonDialog1.FileName
End Sub
Private Sub Command2_Click()
CommonDialog2.Filter = "备份文件(*.bak)|*.bak|文本文件(*.txt)|*.txt|ALL File(*.*)|*.*"
CommonDialog2.ShowOpen
Text2.Text = CommonDialog2.FileName
End Sub
Private Sub Command3_Click()
If Text1.Text = "" Then
MsgBox "请您选择数据库备份的路径!", , "提示信息"
Else
con.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=教师工作量"
con.Open
sql = "backup DATABASE 教师工作量 TO disk='" & Text1.Text & "'"
con.Execute (sql)
con.Close
MsgBox "数据库备份成功!", , "提示信息"
End If
End Sub
Private Sub Command5_Click()
On Error GoTo err1
If Text2.Text = "" Then
MsgBox "请您选择数据库恢复的路径!", , "提示信息"
Else
con.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=master"
sql = "RESTORE DATABASE 教师工作量 from disk='" & Text2.Text & "'"
con.Execute (sql)
MsgBox "数据库恢复成功!!", , "提示信息"
End If
Exit Sub
err1:
MsgBox Err.Description
con.Close
End Sub
Private Sub Command6_Click()
Unload Me
End Sub
Private Sub Command4_Click()
Unload Me
End Sub
添加数据窗体截屏
代码
Dim c As String
Private Sub Command1_Click()
If Adodc1.Recordset.RecordCount > 0 Then
Adodc1.Recordset.MoveLast
Text1(0).Text = Format((Val(Right(Trim(Adodc1.Recordset.Fields("教师编码")), 4)) + 1), "000000")
End If
End Sub
Private Sub Command2_Click()
Dim Conn As ADODB.Connection
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Set Conn = New ADODB.Connection
ConnStr = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=教师工作量;Data Source=ERP47" '这是连接SQL数据库的语句
Conn.Open ConnStr
rs.Open "教师表", Conn, adOpenKeyset, adLockOptimistic
For i = 0 To Text1.UBound
If Text1(i).Text = "" Then
MsgBox "输入的信息不许为空!", , "信息提示"
Text1(0).SetFocus
Exit Sub
End If
Next i
If Adodc1.Recordset.RecordCount > 1000 Then
MsgBox "该信息已经存在,信息保存不成功", , "保存信息提示"
Else
c = MsgBox("您确认要保存该信息吗?", 33, "保存信息提示")
If c = vbOK Then
If Text1(1).Text = " " Then
MsgBox "教师的教师姓名", 48, "保存信息提示"
Else
rs.AddNew
For i = 0 To Text1.UBound
rs.Fields(i) = Text1(i)
Next i
rs.Update
rs.Close
Adodc1.Refresh
DataGrid1.Refresh
MsgBox "数据保存成功!", , "提示"
End If
End If
End If
End Sub
Private Sub Form_Load()
Adodc1.RecordSource = " select * from 教师表 order by 教师编码 "
Adodc1.Refresh
Adodc1.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=教师工作量;Data Source=ERP47" '连接数据库
Adodc1.RecordSource = "select * from 教师表"
Set DataGrid1.DataSource = Adodc1
End Sub
Private Sub Command3_Click()
Unload Me
End Sub
提示信息窗体截屏
代码
Private Sub Command1_Click() '退出系统
End
End Sub
Private Sub Command2_Click() '取消操作
Unload Me
End Sub
系统设计心得体会
教师工作量系统设计通过了软件和硬件上的调试,我想这对于自己以后的学习和工作都会有很大的帮助。在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。对于教师工作量计算系统,其程序是比较简单的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此在整个设计过程中大部分时间是用在程序上面的。很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对系统的结构很熟悉。因此可以说系统的设计是软件和硬件的结合,二者是密不可分的。通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。
这也激发了我们今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。其次,这次课程设计让我充分认识到团队合作的重要性,只有分工协作才能保证整个项目的有条不絮。另外在课程设计的过程中,当我们碰到不明白的问题时,老师总是耐心的讲解,给我们的设计以极大的帮助,使我们获益匪浅。因此非常感谢老师的教导。通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。我觉得作为一名信息管理与信息系统专业的学生,这次课程设计是很有意义的。更重要的是如何把自己平时所学的东西应用到实际中。虽然自己对于这门课懂的并不多,很多基础的东西都还没有很好的掌握,觉得很难,也没有很有效的办法通过自身去理解,但是靠着这一个多礼拜的“学习”,在小组同学的帮助和讲解下,渐渐对这门课逐渐产生了些许的兴趣,自己开始主动学习并逐步从基础慢慢开始弄懂它。
我认为这个收获应该说是相当大的。一开始我们选定了课题,但是后来发现很多程序都不是我们想象中的那么简单,这让我们伤透了脑筋。调试程序经常出现问题,无法达到预期想要的结果。设计这种东西最后还是要靠自己动脑筋,然后我们大家一起齐心协力,从平时做的实验、老师上课的举例、书本上的知识以及老师的辅导和其他同学的帮助下终于完成了。应该说这是通过我们小组成员的共同努力和动脑完成的,虽然内容并不是很复杂,但是我们觉得设计的过程相当重要,学到了很多,收获了很多。我觉得课程设计反映的是一个从理论到实际应用的过程,但是更远一点可以联系到以后毕业之后从学校转到踏上社会的一个过程。小组人员的配合、相处,以及自身的动脑和努力,都是以后工作中需要的。