课堂考勤系统说明书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机程序设计说明书
题目课堂考勤数据管理
专业信管09级 2 班
学号0911200239 _____
姓名陈政宇 ___
2011年6月
一、设计目的与要求:
设计一个Excel VAB程序,来对数信学院纪检部课堂考勤数据库进行管理,设置第一张工作表为汇总表,在第一张工作表中可以快速查找到某同学的课堂考勤记录,同时可以查询已达到惩罚条件的同学,并将他们列到汇总表中。
原始数据:
设置第一张工作表页面:
:
单击“第一个查询”按钮的结果:
出现等待查询界面:
查询结果:
没有符合查询要求的时候:
单击接下来几个查询按钮的结果类似上图。
单击“查询学生具体情况”按钮,出现如下所示:
如果班级、姓名为空或者输入的班级不是数信学院的班级:
输入正确的班级和姓名后,界面跳到相应的班级,出现结果如下
二. 需求分析:
本程序主要是5个按钮代码和一个窗体代码的编写。
各部分设计分析
1. 编写“惩罚方式”相应按钮的大致步骤都如下:
①删除上次的查询结果;
②查询所有学生旷课数或迟到数达到了惩罚要求的学生,并列出到汇总表中相应的位置。
③对汇总表中的数据进行筛选删除重复的数据
2. 编写“查询学生具体情况”按钮的大致步骤:
①创建一个查询窗体;
②显示该窗体
3. 编写“查询学生具体情况”窗体的大致步骤:
①检验输入中的数据不能为空,如果为空则给出提示。
②检验输入中的班级名称是否是我们学院的班级,如果不是,则给出提示。
③查询所在班级工作表中某学生的情况,如果没有该学生信息,则给出提示。
④清空查询窗体中的数据
三、详细设计
(一)查询学生具体情况的流程图:
1.编写“查询学生具体情况”按钮代码:
Private Sub CommandButton5_Click() UserForm3.Show …显示窗体3
End Sub
2.:编写“查询学生具体情况”窗体代码
①.主要编程代码
Private Sub CommandButton1_Click()
Dim X As String, b As String, hang As Integer, q As Integer
b = TextBox1.Text
X = TextBox2.Text
p = 0
q = 0
t = Worksheets.Count
If X = "" Or b = "" Then …文本框中不能为空格
MsgBox " 请同时输入班级和姓名进行查询!", vbOKOnly, "个人课堂表现情况查询"
Else
For i = 2 To t
If Sheets(i).Name = b Then
hang = Sheets(i).UsedRange.Rows.Count
p = 1 + p
Sheets(i).Select
ActiveSheet.AutoFilterMode = False '关闭自动筛选
Range("A2").Select '选择表格的左上角单元格
Selection.AutoFilter '给单元格设置自动筛选
Selection.AutoFilter Field:=3, Criteria1:=X '筛选出“姓名”列为"x"的单元格
For j = 3 To hang '查询是否有X的存在
If Sheets(i).Cells(j, 3) = X Then
q = 1 + q
End If
Next j
End If
Next i
'如果输入的不是我们学院的班级,给出提示
If p = 0 Then
MsgBox "请输入我们学院正确的班级名称!", vbOKOnly, "个人课堂表现情况查询"
End If
'如果查找不到该同学的信息,给出提示
If q = 0 Then
MsgBox "请确认您所输入姓名和班级是否正确或者没有该同学信息!", vbOKOnly, "个人课堂表现情况查询"
ActiveSheet.AutoFilterMode = False ‘关闭自动筛选,并返回汇总工作表
Sheets(1).Select
End If
'清空文本框
TextBox1.Text = ""
TextBox2.Text = ""
UserForm3.Hide
End If
End Sub
②.设置窗体标题
Private Sub UserForm_Initialize()
'设置窗体标题
Me.Caption = "数信学院纪检部课堂考勤管理系统"
End Sub
(二)“惩罚方式”按钮代码编写:
院通报批评(旷课5节左右或迟到早退8节左右)按钮代码:
Private Sub CommandButton1_Click()
Dim kks As Integer, cdzts As Integer, xm As String, xh As String, bj As String, hang As Integer, X As Integer, hang0 As Integer ‘定义需要用到的函数
Range("C10:G1000").Select '选择上次查询结果区域Selection.ClearContents '删除上次查询时的数据UserForm1.Show ‘显示窗口一
t = Worksheets.Count '总共使用的工作表
X = 10
For i = 2 To t
Sheets(i).AutoFilterMode = False
hang = Sheets(i).UsedRange.Rows.Count '每个工作表使用的行数
'汇总表中出现数据
If hang > 4 Then '如果每个工作表行数大于四则进行筛选For j = 3 To hang
cdzts = 0
kks = 0
For k = 3 To hang
If Sheets(i).Cells(k, 3) = Sheets(i).Cells(j, 3) Then '选择同一个姓名记录的旷课数和迟到早退数kks = Sheets(i).Cells(k, 8) + kks '旷课数If Sheets(i).Cells(k, 9) <> "" Or Sheets(i).Cells(k, 10) <> "" Then
cdzts = cdzts + 1 '迟到早退数
End If
End If
Next k
If kks > 5 Or cdzts > 8 Then '如果旷课数大于5或迟到早退数大于8