用VB编写一个考勤登记表

用VB编写一个考勤登记表,第1张

Dim Late As Integer, Aarly As Integer, Absenteeism As Integer, AskLeave As Integer, Total  As Integer

Private Sub Command1_Click()

  Dim AttendanceCase As String

  If Option1.Value Then Late = Late + 1: AttendanceCase = Option1.Caption

  If Option2.Value Then Aarly = Aarly + 1: AttendanceCase = Option2.Caption

  If Option3.Value Then Absenteeism = Absenteeism + 1: AttendanceCase = Option3.Caption

  If Option4.Value Then AskLeave = AskLeave + 1: AttendanceCase = Option4.Caption

  List1.AddItem Text1.Text + Space(2) + AttendanceCase

End Sub

Private Sub Command2_Click()

  Label2.Caption = ""

  Total = Late + Aarly + Absenteeism + AskLeave

  Label2.Caption = Label2.Caption + "迟到人数:" + CStr(Late) + vbCrLf + "早退人数:" + CStr(Aarly) + vbCrLf + "旷课人数:" + CStr(Absenteeism) + vbCrLf + "请假人数:" + CStr(AskLeave) + vbCrLf + "总 人 数:" + CStr(Total)

End Sub

Private Sub Command3_Click()

  List1.Clear

  Late = 0

  Aarly = 0

  Absenteeism = 0

  AskLeave = 0

  Total = 0

  Label2.Caption = ""

End Sub

Private Sub Command4_Click()

  End

End Sub

我们公司的门禁读卡器读回来的数据时串口数据,一般考勤机都是串口的(个别也有网口的,但占资源不常用)所以你只需要在vb里用Mscomm32。ocx控件就行了,进行串口通讯。

读卡器读出来的应该是一串数字编码,你需要做一个数据表,将这些编码与持卡人的名字一一对应起来,然后一收到编码就显示名字。

非接触射频IC卡的编码格式就需要参考考勤机的说明书了。

祝你好运。

考勤登记表设计报告

学院 班级 学号 姓名 成绩

一、设计思路

1.要达到的目的

①要求用Visual Basic对象的思想来完成程序的设计。

②在设计程序的过程中,要求会使用按钮(commandbutton)、文本框(text)、标签(label)、框架(frame)、单选按钮option等基本控件。

③要求要完成此设计题目,必须熟练使用和掌握combobox控件和option控件数组

④动态切换显示查询条件

⑤要求在程序中能够运用结构化程序设计的选择和循环结构,并熟练使用相关的语句(如select case 、for等)。

⑥熟练运用文件的写 *** 作完成提交保存功能,以及使用文件的读 *** 作完成统计查询功能。

2.关键问题的解决

正文(宋体5号字,单倍行距)

①设计程序界面

因为用的全是基本控件,界面设计没有什么难度,照样子拼就可以了。

五种出勤情况:正常、迟到、早退、旷工、请假可用单选按钮来选择(要用控件数组)。统计情况的输出用Picturebox控件来实现。

②编写代码

代码主要包括事件处理过程。

事件处理包括下面的主要事件:

①Form_Load() ‘作一些初始化的工作。

主要是完成控件可见与否及相关Combobox控件中内容的输入。

②Command1_Click() ‘将输入数据进行保存

将输入数据存入某一数组中,然后将数组中的内容写入文件中。

③Combo5_Click() ‘根据统计条件动态更新条件界面。

主要是统计条件确定后,应使哪些控件可见,哪些控件不可见。

④Command3_Click() ‘根据设定的统计条件进行统计。

主要工作有对符合条件的记录的存储,需要一个数组来存储一条完整记录的内容,并进行格式化,另外为了读取下一条记录,此数组的内容要转入另外一个动态数组(因为不确定符合条件的记录有多少条)中作为其中的一个元素。

三、部分程序关键源代码及注释

Private Sub Command3_Click()

Dim s As String, s1 As String, f

Dim b(1 To 10) As String, c(1 To 10) As String, d(1 To 10) As String, e(1 To 10) As String, f(1 To 10) As String

Dim ss() As String

Form2.Show

Form2.Picture1.Cls

fileno = FreeFile

Select Case Combo5.ListIndex

Case 1

s = Combo6.Text &"月" &Combo7.Text &"日"

Open "aa.txt" For Input As #fileno

Do While Not EOF(fileno)

i = i + 1

Input #fileno, b(i), c(i), d(i), e(i), f(i)‘将每一项内容都保存在一个数组中

Loop

Close #fileno

s1 = ""

For j = 1 To i

If s = b(j) Then

k = k + 1

ReDim Preserve ss(k) As String‘设置一个动态数组

ss(k) = b(j) &c(j) &d(j) &e(j) &f(j)

End If

Next j

Case 2

s = "第" &Combo8.Text &"组"

Open "aa.txt" For Input As #fileno

Do While Not EOF(fileno)

i = i + 1

Input #fileno, b(i), c(i), d(i), e(i), f(i)

Loop

Close #fileno

s1 = ""

For j = 1 To i

If s = c(j) Then

k = k + 1

ReDim Preserve ss(k) As String

ss(k) = b(j) &c(j) &d(j) &e(j) &f(j)

End If

Next j

Case 3

s = Text2.Text

Open "aa.txt" For Input As #fileno

Do While Not EOF(fileno)

i = i + 1

Input #fileno, b(i), c(i), d(i), e(i), f(i)

Loop

Close #fileno

s1 = ""

For j = 1 To i

If s = d(j) Then

k = k + 1

ReDim Preserve ss(k) As String

ss(k) = b(j) &c(j) &d(j) &e(j) &f(j)

End If

Next j

Case 4

s = Combo9.Text

Open "aa.txt" For Input As #fileno

Do While Not EOF(fileno)

i = i + 1

Input #fileno, b(i), c(i), d(i), e(i), f(i)

Loop

Close #fileno

s1 = ""

For j = 1 To i

If s = e(j) Then

k = k + 1

ReDim Preserve ss(k) As String

ss(k) = b(j) &c(j) &d(j) &e(j) &f(j)

End If

Next j

Case 0

For n = 0 To 4

If Option2(n).Value = True Then

s = Option2(n).Caption

Open "aa.txt" For Input As #fileno

Do While Not EOF(fileno)

i = i + 1

Input #fileno, b(i), c(i), d(i), e(i), f(i)

Loop

Close #fileno

s1 = ""

For j = 1 To i

If s = f(j) Then

k = k + 1

ReDim Preserve ss(k) As String

ss(k) = b(j) &c(j) &d(j) &e(j) &f(j)

End If

Next j

End If

Next n

End Select

For i = 1 To k

Form2.Picture1.Print ss(i) ‘将经过条件选取的记录显现在picture1中

Next i

End Sub

1.设计方案要完善的地方

方案还行,最后一步需要简化一些,是程序看起来更简洁

2. 目前存在的问题

①Option控件数组的选中出现了错误,如Option1.(0)选中以后处于一直选中的状态。

五、本次设计的收获及心得体会

这次设计思路都很明确,只是在具体设计代码时总会粗心。因为几个字母的错误使得程序无法运行,而且对各种空间的属性掌握不够熟悉,使得编码工作花费了太多时间,不过,经过几天的学习与 *** 作,我对VB的 *** 作知识与设计的细节,有了更多的掌握,为以后更深入的学习打下了良好的基础。

六、对该题目和VB设计的意见和建议

1. 对该题目的意见和建议

题目很好。

2.对本次设计的意见和建议

对具体的项目如:日期,班组号,姓名,职称,可以设的少一些,只要基本要求做到了就可以了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11598979.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存