职工信息系统设计报告
一、设计思路 1.要达到的目的
培养学生综合利用VB语言进行程序设计的能力,主要是培养学生综合使用基本控件的、文件读写、数组操作和菜单设计等能力。
2.关键问题的解决 ①设置属性
设计时要注意一些功能需要在其它功能之后才能使用,如“平均工资”、“高于平均”等按钮需要在读入数据后才能使用,设计界面时需要将相应的按钮的Enable属性为false,在读入数据后才设置Enable属性为True。
②编写代码
需要对每一个窗体编写事件处理过程。最主要的工作包含在主窗体中,代码包括事件处理过程和必要的声明。变量声明部分声明本程序所需要的变量和数组,由于单击按钮时,都要对姓名、职称、工资进行操作,因此相应的数组和变量应定义为模块级的。在编写事件处理过程代码时注意以下几点: (1定义动态数组分别用于存放姓名、职称、工资数据。
(2单击“读取数据”按钮,利用通用对话框所提供的打开标准对话框来选择要打开的数据文件,并利
用文件的基本操作将该文件中的的数据依次读入到相应数组中。注意为保留动态数组中存放的内容,在使用ReDim语句中要加上Preserve关键字。
(3计算职工的平均工资,并存放在平均工资变量,此变量应定位模块级的。
(4利用InputBox 函数来输入要追加的学生的信息。 (5利用InputBox 函数来输入要删除的职工的姓名。
利用MsgBox 函数或另一个窗体来显示高于及等于(或低于平均工资和分类汇总的结果。。。。
二、部分程序关键源代码及注释 Dim i As Integer, aver As Single Dim a( As String, b( As String, c( As String Private Sub Command1_Click( Dim str As String CommonDialog1.Filter = \"txt (*.txt|*.txt|all file(*.*|*.*\" CommonDialog1.FilterIndex = 1 On Error GoTo usercancle CommonDialog1.ShowOpen usercancle: Text1 = \"姓名职称工资\" fileno = FreeFile Open CommonDialog1.FileName For Input As #fileno i = 1 Do While Not EOF(fileno
ReDim Preserve a(i, b(i, c(i Input #fileno, a(i, b(i, c(i str = a(i & \" \" & b(i & \" \" & c(i Text1 = Text1 + vbNewLine + str i = i + 1 Loop Close #fileno i = i1 Print i aver = sum / i s1 = \"职工的平均工资为:\" & aver s2 = \"职工总人数:\" & i MsgBox s1 & vbCrLf & s2, , \"zh1\" Command3.Enabled = True Command4.Enabled = True End Sub Private Sub Command3_Click( Dim x As Integer, l1 As String, m1 As String Form2.Text1 = \"姓名职称工资\" Form2.Text1 = Form2.Text1 & vbNewLine & \"--------------------------\" x = 0 Print i For i = 1 To i If c(i >= aver Then x = x + 1
l1 = a(i & \" \" & b(i & \" \" & c(i Form2.Text1 = Form2.Text1 & vbNewLine & l1 End If Next i i = i1 Print i Form2.Text1 = Form2.Text1 & vbNewLine & \"--------------------------\" m2 = \"工资小于平均工资的人数\" & y Form2.Text1 = Form2.Text1 & vbNewLine & m2 Form2.Caption = \"工资小于平均工资的人数\" Load Form2 Form2.Show End Sub Private Sub Command5_Click( Dim n1 As Integer, n2 As Integer, n3 As Integer, n4 As Integer Dim str1 As String, str2 As String, str3 As String, str4 As String For i = 1 To i
If a(i = \"教授\" Then n1 = n1 + 1 ElseIf b(i = \"副教授\" Then n2 = n2 + 1 ElseIf c(i = \"讲师\" Then n3 = n3 + 1 Else n4 = n4 + 1 End If Next i i = i1 a(i = a(i + 1 b(i = b(i + 1 c(i = c(i + 1 Next i i = i1 Print i End Sub Private Sub manu1_Click( Dim m1 As Integer, m2 As Integer m1 = InputBox(\"请输入工资下限\" m2 = InputBox(\"请输入工资上限\" Form2.Text1 = \"姓名职称工资\" r = 1 For i = 1 To i If c(i >= m1 And c(i Val(c(j Then t = c(i c(i = c(j c(j = t t = a(i a(i = a(j a(j = t t = b(i b(i = b(j
b(j = t End If Next j Next i i = i1 For j = i + 1 To g If Val(c(i
t = c(i c(i = c(j c(j = t t = a(i a(i = a(j a(j = t t = b(i b(i = b(j b(j = t End If Next j Next i i = i - 1 Form2.Text1 = \"姓名职称工资\" For i = 1 To i str7 = a(i & \" \" & b(i & \" \" & c(i Form2.Text1 = Form2.Text1 & vbNewLine & str7 Next i Form2.Caption = \"降序排序\" Load Form2
Form2.Show End Sub Private Sub manu5_Click( End End Sub
三、设计方案的完善及目前存在的问题 1.设计方案要完善的地方 ①对编程语言的进一步完善 ②对程序的调用 ③程序不够人性化 2.目前存在的问题 ①编程语言不够流畅。
四、本次设计的收获及心得体会
对VB理解不深刻,知识匮乏,但这是颇有实际用处的,认真学习vb,不断认识自己的不足,并不断改进。认真学习科学知识,在学习中充分实践。把运用与学习结合在一起。
五、对该题目和VB设计的意见和建议 1.对该题目的意见和建议 该程序应该充分与现实结合。
让程序更容易让顾客进行操作。 更加人性化。
2.对本次设计的意见和建议
设计课程比较实用,但颇有难度,希望以后能给我们较多时间进行设计,并请老师多帮助解决疑难问题,谢谢。