VB课程设计报告
课程题目 企业职工工资管理系统
课程名 面向对象程序设计
任课教师 ***
姓名 ***
学号 ********
专业 ********
一 课程设计目的
通过一学期多个学时的学习,对VB这种语言有了一定的了解,VB是一种半面向对象的程序设计语言,而VB.NET是一种完全面向对象的编程语言,学好VB对进一步的学习大有裨益,而课程设计是最能深入应用所学知识,发现不足和错误的最好方式。通过课程设计,加强对算法、语法、程序结构等的综合应用,培养独立自主的开发能力及善于思考问题并与别人交流的能力,更重要的是开发过程当中激发创新思维的火花。
二 课程设计的题目与简介
本次课程设计的题目是企业工资管理系统。在现代经济高速发展的大背景下,企业充当着经济发展的载体和驱动器,而企业职工工资管理的好坏直接影响着企业的健康发展,因此一个有长远眼光和伟大战略的企业必然要建立起高效、准确的职工管理系统,来应对市场对人才的争夺,更好的留住人才、发展人才。
由于自身能力有限,所设计的工资管理系统比较简单,功能不强。本系统连接的是ACCESS数据库,共两张表,分别是职工个人信息表和职工工资信息表,并利用vb的优势设计各个窗体以完成增、删、查、改等功能。
三 设计说明
Ⅰ:总体说明
本系统共设计了15个窗体,除一个多文档窗体MDI和一个启动登陆窗体外,其余13个窗体均是MDI窗体的子窗体,所有的增删查改功能实现均在MDI窗体内实现。进入登陆界面后,经准确输入用户名和密码后,系统将进入MDI窗体,允许用户进行增、删、查、改等操作,最后用户通过单击菜单项—退出,将完成退出系统操作。
Ⅱ:数据库说明
在设计操作当中,用MICROOSOFT ACCESS 设计的数据库,在VB窗体中添加DATA 控件,系统提示不是有效的路径,而经检查数据库的路径是准确的,因此用VB自带的外接程序来设计ACCESS数据库,经DATA控件试验可以正常使用 。本系统共建立了职工个人信息表和职工工资表,信息叫少,也比较简单。
Ⅲ:窗体设计
本系统共设计了15个窗体,每个窗体都有一定数目的控件和代码来完成不同的功能。
用一个MDI多文档窗体来内涵需要完成增、删、查、改和报表输出等功能的子窗体,并利用VB的菜单编辑器来设计菜单,以友好的界面来等待用户的访问,做到与一个应用程序相似的设计。用户每单击相应的功能菜单项就会弹出相应的窗体,只须在MDI窗体编写代码
Load 窗体名 – 窗体名.show 即可完成窗口弹出操作。
Ⅳ:运行调试
运行环境是VB6.0,在实际编程当中,通过设置断点等方法查找逻辑错误,使序能够按照设想正确运行出来。难以解决的问题通过上网查资料,查阅书籍,询问同学都得到了有效地解决。
四 源代码及运行结果
1登陆界面
本系统登陆允许用户有四次机会,如果超过四次,系统自动退出,其代码如下:
Private Sub Command1_Click()
Dim a As Integer, b As Integer, secret As Integer, c As String
secret = 12151
masg1$ = "您确认要登录系统吗?"
masg2$ = "登录系统确认"
a = MsgBox(masg1$, 35, masg2$)
If a = 6 Then
c = CStr(InputBox("请用户输入登陆账号", "用户登陆", "用户名"))
If c = "tree" Then
b = Val(InputBox("请用户输入登陆密码", "用户密码登陆", "secret"))
If b = secret Then
Load MDIForm1
MDIForm1.Show
form2.Hide
ElseIf b <> secret Then
MsgBox "您还有三次机会", "48", "错误"
masg3$ = "抱歉,您输入密码有误,请重新输入"
masg4$ = "密码重新输入"
i = i% + 1
c = MsgBox(masg3$, 50, masg4$)
If c = 4 Then
b = Val(InputBox("请用户输入登陆密码", "用户密码登陆", "secret"))
If b = secret Then
Load MDIForm1 '如果密码输入正确,则装载多文档窗体
MDIForm1.Show '显示多文档窗体
form2.Hide '登陆窗体隐藏
Else
masg3$ = "抱歉,您输入密码有误,请重新输入"
masg4$ = "密码重新输入"
i = i% + 1
c = MsgBox(masg3$, 50, masg4$)
If c = 4 Then
b = Val(InputBox("请用户输入登陆密码", "用户密码登陆", "secret"))
If b = secret Then
Load MDIForm1
MDIForm1.Show
form2.Hide
Else
masg3$ = "抱歉,您输入密码有误,请重新输入"
masg4$ = "密码重新输入"
i = i% + 1
c = MsgBox(masg3$, 50, masg4$)
If c = 4 Then
b = Val(InputBox("请用户输入登陆密码", "用户密码登陆", "secret"))
If b = secret Then
Load MDIForm1
MDIForm1.Show
form2.Hide
End If
End If
End If
End If
End If
If i = 3 Then
End
End If
End If
End If
End If
End If
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_Load()
Command1.FontName = "隶书"
Command2.FontName = "隶书"
Label1.FontSize = 30
Label2.FontSize = 30
Command1.FontSize = 15
Command1.FontName = "隶书"
Command2.FontSize = 15
Command2.FontName = "隶书"
Label3.FontName = "微软雅黑"
Label3.FontSize = 28
End Sub
Private Sub Image1_Click()
End Sub
2 多窗体界面
以下为装载及显示单项所对应的窗体代码:
Private Sub MDIForm_Load()
Top = 0
Width = 82000
Left = 0
Height = 89852
End Sub
Private Sub shanchugongzi_Click()
Load Form7
Form7.Show
End Sub
Private Sub shanchuyuangong_Click()
Load Form11
Form11.Show
End Sub
Private Sub tuichu_Click()
Load Form14
Form14.Show
End Sub
Private Sub xiugaigeren_Click()
Load Form10
Form10.Show
End Sub
Private Sub xiugaigongzi_Click()
Load Form5
Form5.Show
End Sub
Private Sub zengjiayuangong_Click()
Load Form8
Form8.Show
End Sub
3 职工个人信息概览
Private Sub Form_Load()
FontName = "微软雅黑"
FontSize = 25
Width = 422145
Left = 0
Top = 0
Height = 545622
Set MSHFlexGrid1.DataSource = Adodc1 '数据源来自Adodc所连接的数据库
MSHFlexGrid1.Row = 0
MSHFlexGrid1.Col = 0
MSHFlexGrid1.Text = "姓名" '设置MSHFlexGrid1每一列的字段名称
MSHFlexGrid1.Col = 1
MSHFlexGrid1.Text = "学历"
MSHFlexGrid1.Col = 2
MSHFlexGrid1.Text = "职位"
MSHFlexGrid1.Col = 3
MSHFlexGrid1.Text = "职称"
MSHFlexGrid1.Col = 4
MSHFlexGrid1.Text = "毕业院校"
MSHFlexGrid1.Col = 5
MSHFlexGrid1.Text = "出生日期"
MSHFlexGrid1.Col = 6
MSHFlexGrid1.Text = "居住地址"
MSHFlexGrid1.Col = 7
MSHFlexGrid1.Text = "联系方式"
MSHFlexGrid1.ColWidth(0) = 600 '字段的宽度
MSHFlexGrid1.ColWidth(1) = 1000
MSHFlexGrid1.ColWidth(2) = 1000
MSHFlexGrid1.ColWidth(3) = 1000
MSHFlexGrid1.ColWidth(4) = 1000
MSHFlexGrid1.ColWidth(5) = 1000
MSHFlexGrid1.ColWidth(6) = 1000
MSHFlexGrid1.ColWidth(7) = 2800
End Sub
Private Sub MSHFlexGrid1_Click()
Adodc1.Recordset.AbsolutePosition = MSHFlexGrid1.Row '用户每点击MSHFlexGrid1网格就会在上面的文本框内显示
End Sub
4 职工工资信息一览
5添加职工个人信息窗体
Private Sub Command1_Click()
Adodc1.Refresh
Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields("姓名") = Text1.Text
Adodc1.Recordset.Fields("学历") = Text2.Text
Adodc1.Recordset.Fields("职位") = Text3.Text
Adodc1.Recordset.Fields("职称") = Text4.Text
Adodc1.Recordset.Fields("毕业院校") = Text5.Text
Adodc1.Recordset.Fields("出生日期") = CDate(Text6.Text) 'cdate强制转化成日期格式
Adodc1.Recordset.Fields("居住地址") = Text7.Text
Adodc1.Recordset.Fields("联系方式") = Text8.Text
Adodc1.Recordset.Update
End Sub
Private Sub Form8_Load()
FontName = "微软雅黑"
FontSize = 25
Width = 264520
Left = 0
Top = 0
Height = 445622
6改员工个人数据
Data1.Recordset.Edit
Data1.Recordset.Fields("姓名") = Text1.Text
Data1.Recordset.Fields("学历") = Text2.Text
Data1.Recordset.Fields("职称") = Text3.Text
Data1.Recordset.Fields("职位") = Text4.Text
Data1.Recordset.Fields("毕业院校") = Text5.Text
Data1.Recordset.Fields("出生日期") = CDate(Text6.Text)
Data1.Recordset.Fields("居住地址") = Text7.Text
Data1.Recordset.Fields("联系方式") = Text8.Text
Data1.Recordset.Update
End If
End Sub
Private Sub Form_Load()
FontName = "微软雅黑"
FontSize = 25
Width = 184520
Left = 0
Top = 0
Height = 245622
End Sub
7删除员工个人信息
Private Sub Form_Load()
Top = 0
Width = 82000
Left = 0
Height = 454852
End Sub
Private Sub Command1_Click()
Dim a As Integer
a = MsgBox("你确定要删除记录吗?", 52, "消息确认")
If a = 6 Then
Data1.Recordset.Delete '删除当前记录
Data1.Recordset.MoveLast '指针移动到最后一条记录
If Data1.Recordset.EOF Then '判定是否在末记录之后
Data1.Recordset.MoveLast
End If
End If
End Sub
Private Sub Image1_Click()
End Sub
8查询员工个人信息
以下为查询记录的代码:
Dim a As String
a = InputBox("请输入准确的姓名", "查找记录", "姓名")
Data1.Recordset.FindFirst "姓名='" & a & "'" '指针找到满足条件的第一条记录
If Data1.Recordset.NoMatch Then '找到相应的记录,属性值为faulse,否则为true
MsgBox "没有符合条件的记录"
Else
MsgBox "符合条件的职工为" & Data1.Recordset.Fields(0) '显示字段名
End If
End Sub
Private Sub Form_Load()
FontName = "微软雅黑"
FontSize = 25
Width = 184520
Left = 0
Top = 0
Height = 445622
End Sub
8 添加职工工资信息
添加员工工资信息的代码如下:
Private Sub Command1_Click()
Data1.Recordset.AddNew
Data1.Recordset.Fields("姓名") = Text1.Text
Data1.Recordset.Fields("工号") = Text2.Text
Data1.Recordset.Fields("工作部门") = Text3.Text
Data1.Recordset.Fields("职称") = Text4.Text
Data1.Recordset.Fields("基本工资") = Val(Text5.Text)
Data1.Recordset.Fields("岗位工资") = Val(Text6.Text)
Data1.Recordset.Fields("职务补贴") = Val(Text7.Text)
Data1.Recordset.Fields("奖金") = Val(Text8.Text)
Data1.Recordset.Fields("水电费") = Val(Text9.Text)
Data1.Recordset.Fields("房租") = Val(Text10.Text)
Data1.Recordset.Fields("股票分红") = Val(Text13.Text)
Data1.Recordset.Fields("是否股东") = Text12.Text
Data1.Recordset.Fields("实发工资") = Val(Text5.Text) + Val(Text6.Text) + Val(Text7.Text) + Val(Text8.Text) - Val(Text9.Text) - Val(Text10.Text) + Val(Text13.Text)
Data1.Recordset.Update
End Sub
Private Sub Form_Load()
FontName = "微软雅黑"
FontSize = 25
Width = 84520
Left = 0
Top = 0
Height = 45622
End Sub
9 查询工资信息
其代码为
Private Sub Command1_Click()
Dim a As Variant
a = InputBox("请输入准确的工号", "工号", "查找记录")
Data1.Recordset.FindFirst "工号='" & a & "'"
If Data1.Recordset.NoMatch Then
MsgBox "没有符合条件的记录"
Else
MsgBox "符合条件的职工为" & Data1.Recordset.Fields(1)
End If
End Sub
Private Sub Form_Load()
FontName = "微软雅黑"
FontSize = 25
Width = 84520
Left = 0
Top = 0
Height = 45622
End Sub
10 退出窗体
a% = MsgBox("您真的要退出吗", 52, "退出")
If a = 6 Then
End
End If
End Sub
Private Sub Form_Load()
FontName = "微软雅黑"
FontSize = 25
Width = 14520
Left = 0
Top = 0
Height = 45622
End Sub
五 设计体会
计算机科学是一门博大精深、抽象而又极富乐趣的科学。
一个想要基业长青的公司必然建设有准确、高效的公司数据库系统,而职工工资管理系统则是公司战略数据库系统的一员,因此选择这个课题基于一定的商业价值。而VB这一面向对象设计语言提供了窗体和控件来设计友好的界面,并且能连接ACCESS数据库和SQL数据库,通过一定的编程可以实现数据库的增、删、查、改等操作。
通过本次课程设计,虽然时间只有几天,但感觉学到的知识比平常一个月学到的知识还多。在数据库的建设当中,用ACCESS所建的数据库在VB中data控件无法正常连接,于是改用VB外接程序建立数据库,data和adodc均可以连接。在设计的过程当中,因为要用到MDI窗体和多窗体,因此加深了这两种窗体特性的印象,并能灵活应用。通过load 窗体名以及 窗体名.show可以在一个窗体上弹出另一个窗体。在登陆界面的设计上,多次应用了msgbox函数,弹出消息框,并结合if语句设计密码登陆。在数据库的操作中,利用recordset .addnew.、recordset.edit、recordset.delete、recordset.update进行增删查改。
总之,要学的知识还很多,需要不断学习,不断实践,才能厚积薄发,迈向成功!