1、项目设计实训报告西安郵電學院项 目 设 计 实 训 报 告 书院系名称:继职学院学生姓名:张兰专业名称:计算机网络技术班 级:0902班学号:3094202017时间:2011年11月28日至12月9日 实训题目 人事管理系统一、实验目的 综合应用所学的高级语言程序设计知识,自行设计并实现一个较为完整的小型管理信息系统。通过系统分析、系统设计、编程实现,写实训报告等环节,初步掌握软件系统的设计方法和步骤,提高灵活运用程序语言进行软件开发的技能,提高程序设计水平和分析问题、解决问题的能力。二、实验内容 (1):熟悉Visual Basic语言的语法、开发环境和各种内部控件和工具的用法; (2):
2、熟悉大型数据库的使用方法,练习使用MS SQL Server建立和修改数据库。(3):学习Client/Server模式应用系统的开发。三、需求分析和概要设计1、所开发系统的各项功能的详细描述功能描述: 该信息管理系统可以在Windows 2000Server平台上运行,开发工具采用Visual Basic语言开发。其工作流程为:用户可以通过注册登录,进行信息录入、修改和删除的操作。系统的功能特点及描述:1 用户登录与注册该功能是系统在被访问之前,要对进入系统的用户进行核对,对系统安全性的保护。2 主界面(1)主窗体; 主窗体是程序操作过程中必不可少的,它是人机交互的重要环节,通过主窗体,用户
3、可以调用系统相关的各子模块,快速掌握本系统的实现功能及操作方法。当登陆窗体成功以后,用户就会进入主窗体,在主窗体界面中,最上面是菜单栏,里面包含各个项目。(2)系统管理:有用户信息进行注销,和用户注册的功能,对系统中用户信息,员工信息,部门管理,薪酬管理等基本信息进行维护,如用户的添加、修改、删除等。新部门的设立,已有部门的修改等。(3)员工管理:对员工的基本信息进行管理,例如新建一个员工信息,对在职员工的详细信息进行查询、修改、删除、统计、排序操作。查询可以按照员工编号、姓名、电话、部门等多种条件进行查询;统计可以按照员工编号进行统计;排序按照员工编号可以实现升序与降序的功能。(4)薪酬管理
4、:对员工的薪酬信息进行管理,例如新建一个员工薪酬信息,对在职员工的基本工资、奖金、加班工资进行查询、修改、删除、统计、排序操作。查询可以按照员工编号、姓名、电话、部门这些条件进行查询。(5)辅助项目管理:其中包括对部门的管理和员工报表的输出;部门管理中可以实现对部门的管理,例如新建一个部门,对部门信息进行查询、修改、删除、统计、排序操作。查询可以按照部门名称、负责人进行查询。员工报表实现对员工信息的输出报表,可以帮助企业访问、格式化数据,并把数据信息以可靠和安全的方式呈现给使用者。(6)帮助:其中包括对系统的帮助内容与介绍,使用户对本系统有全面的了解。2.数据流程图人事档案管理的数据流图通过对
5、“人事档案管理系统流程图”抽象处理,得到“人事档案管理数据流图”。 E-R图3、软件的总体架构,即软件包括哪些模块以及各模块之间的联系。用户管理模块,员工管理模块,薪酬管理模块,分类管理模块,辅助管理模块,帮助模块。数据库4、数据库设计,即数据库中包括哪些表,表之间的联系。在数据库人事管理系统中一共建了四个表分别如下: Yuangong表 列名 数据类型备注职工编号int 4主键姓名char 10民族char 10身份证号char 50性别char 10学历char 10部门char 20职称char 20电话char 50Email char 50Salary表列名数据类型备注职工编号cha
6、r 10主键基本工资char 500奖金char 500加班工资char 500工资合计char 800Department表列名数据类型备注部门名称char 20负责人char 20部门介绍char 800(二) 运行环境规定1.设备运行本软件要在奔腾III以上、内存在256MB以上的计算机。2.支持软件本系统只是的操作系统包括: Windows XP。本系统支持的数据库:SQL Server 2000。本系统的开发工具:VB6.03.控制本系统通过“用户验证”模块进行用户登录的控制,根据不同用户的权限调用不同的模块。四、详细设计和实现 1、登陆界面: 此界面用到了textbox控件、lab
7、el控件、commandbotton控件利用存储过程读取数据判断用户名、密码是否匹配,如果不匹配则返回,匹配则进入下一个页面。代码如下:登录 Private Sub Form1_Load()Option ExplicitPublic LoginSucceeded As Boolean引用Microsoft ActiveX Data Objects 2.6 Library定义连接对象和记录集Dim conn As ADODB.ConnectionDim rs As ADODB.Recordset对取消按钮单击事件的响应Private Sub cmdCancel_Click()设置全局变量为 fa
8、lse不提示失败的登录LoginSucceeded = FalseMe.HideEnd Sub对登录按钮单击事件的响应Private Sub cmdOK_Click()Set conn = New ADODB.ConnectionSet rs = New ADODB.Recordset建立无源数据库连接conn.ConnectionString = driver=sql server;server=Dell-181;uid=sa;pwd=;Database=人事系统管理conn.ConnectionTimeout = 50conn.OpenDim str As String连接连接对象Set
9、rs.ActiveConnection = conn设置游标类型rs.CursorType = adOpenDynamicIf Trim(txtUserName.Text = ) ThenMsgBox 用户名不能为空,请重新输入用户名!, vbOKOnly + vbExclamation, 警告txtUserName.SetFocusElse设置查询字符串str = select * from login_user where name = & Trim(txtUserName.Text) & rs.Open strIf rs.EOF = True ThenMsgBox 没有这个用户,请重新输
10、入用户名!, vbOKOnly + vbExclamation, 警告txtUserName.SetFocusElse登录成功,连接主窗口If (Trim(txtPassword.Text) = Trim(rs.Fields(password) ThenLoginSucceeded = TrueMe.HideForm2.ShowElseMsgBox 密码不正确,请重输入密码!, , 警告txtPassword.SetFocusSendKeys Home+EndEnd IfEnd IfEnd IfEnd Sub注册:Private Sub Cmd1_Click()Dim mrc As ADODB
11、.RecordsetDim txtsql As String判断文本框中是否有内容If Len(user1.Text) = 0 ThenMsgBox 请输入用户名!, , 提示user1.SetFocusExit SubEnd IfIf Len(user_password.Text) = 0 ThenMsgBox 请输入密码!, , 提示user_password.SetFocusExit SubEnd IfIf Len(password_ch.Text) = 0 ThenMsgBox 请输入确认密码!, , 提示password_ch.SetFocusExit SubEnd IfIf Len
12、(yanzh.Text) = 0 ThenMsgBox 请输入验证码!, , 提示yanzh.SetFocusExit SubEnd IfIf Trim(user_password.Text) Trim(password_ch.Text) Then MsgBox 密码前后输入不一致,请重新输入!, vbOKOnly + vbExclamation, 系统提示 user_password.SetFocus password_ch.Text = Exit Sub End If 判断输入验证码是否等于显示的 If Trim(yanzh.Text) Pic1.Tag Then MsgBox 验证码输入
13、错误,请重新输入!, vbOKOnly + vbExclamation, 系统提示 yanzh.Text = yanzh.SetFocus Call Form_Activate Exit Sub End If txtsql = Select * from login_user where name = & Trim(user1.Text) & 查询是否已存在该用户名 Set mrc = ExecuteSQL(txtsql) If mrc.EOF = False Then MsgBox 该用户名已存在!, vbOKOnly + vbExclamation, 系统提示 user1.SetFocus
14、 user1.Text = user_password.Text = password_ch.Text = yanzh.Text = mrc.Close Exit Sub End If txtsql = Select * from login_user Set mrc = ExecuteSQL(txtsql) mrc.AddNew mrc.Fields(0) = Trim(user1.Text) mrc.Fields(1) = Trim(password_ch.Text) 调用加密函数,并储存加密后的密码 mrc.update mrc.Close MsgBox 用户添加成功!, vbOKOnl
15、y + vbInformation, 系统提示 user1.SetFocus user1.Text = user_password.Text = password_ch.Text = yanzh.Text = Call Form_Activate Unload Form8 Me.Show End Sub 系统流程图如下: 系统登录界面(图1.1): 注册界面(图1.2): 在注册中使用了模块,设置变量:Public PublicStr As StringPublic Function cnn() As ADODB.Connection建立无源数据库连接Set conn = Server.Cre
16、ateObject(ADODB.Connection)conn.ConnectionString = driver=SQL Server;server=Dell-180;uid=sa;pwd=sa;database=人事管理系统conn.OpenEnd SubPublic Sub Main() PublicStr = Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=人事管理系统;Data Source=DELL-180 Provider=SQLOLEDB.1;Int
17、egrated Security=SSPI;Persist Security Info=False;Initial Catalog=人事管理系统;Data Source= & App.Path & H:人事管理人事管理_Data=FalseMe.ShowEnd SubPublic Function EncodePassWord(ByVal PWD As String) As String Dim CodePwd As String Dim OnePwd As String * 1 Dim i As Integer CodePwd = 初始化 OnePwd = PWD = Trim(PWD) i
18、 = 0 If Len(PWD) = 0 Then EncodePassWord = Exit Function End If For i = 1 To Len(PWD) OnePwd = Mid(PWD, i, 1) 从代加密的密码中取出一位字符进行ASCII变换 CodePwd = CodePwd & Chr(Asc(OnePwd) + (3 * i + 1) Next EncodePassWord = CodePwdEnd FunctionPublic Function DecodePassWord(ByVal PWD As String) As String Dim CodePwd A
19、s String Dim OnePwd As String * 1 Dim i As Integer CodePwd = 初始化 OnePwd = PWD = Trim(PWD) i = 0 If Len(PWD) = 0 Then DecodePassWord = Exit Function End If For i = 1 To Len(PWD) OnePwd = Mid(PWD, i, 1) 从代解密的密码中取出一位字符进行ASCII变换 CodePwd = CodePwd & Chr(Asc(OnePwd) - (3 * i + 1) Next DecodePassWord = Cod
20、ePwdEnd FunctionPublic Function ExecuteSQL(ByVal SQL As String) As ADODB.Recordset Dim cnn As New ADODB.Connection Dim rst As ADODB.Recordset Dim sTokens() As String PublicStr = Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=人事管理系统; Data Source=DELL-180 On E
21、rror GoTo Error_Docnn.Open PublicStr sTokens() = Split(SQL) If InStr(INSERT,DELETE,UPDATE, UCase(sTokens(0) Then cnn.Execute SQL Else Set rst = New ADODB.Recordset With rst .ActiveConnection = cnn .CursorLocation = adUseClient .CursorType = adOpenStatic .LockType = adLockOptimistic .Open Trim(SQL) E
22、nd With rst.Open Trim(SQL), cnn, adOpenStatic, adLockOptimistic Set ExecuteSQL = rst End If Set cnn = Nothing Set rst = Nothing Exit FunctionError_Do: Dim Err_Str As String Err_Str = 服务器 & Err.Description If MsgBox(Err_Str, vbRetryCancel + vbCritical, 警告) = vbRetry Then Resume Else Set cnn = Nothing
23、 Set rst = Nothing End End IfEnd Function2、主窗体(菜单栏):利用菜单编辑器来实现菜单栏,其中包含七个项目及以下的子项目;界面背景用Image属性进行添加图片。菜单栏界面如下1.3:3、员工信息管理 员工信息管理其中包括对员工信息的查询、添加、删除、统计、排序。页面利用Adodc与数据库的连接,还可用SQL语句进行数据库字段的筛选,在运用DataGrid进行数据绑定如图1.4:(1)员工信息添加 图1.4 (2)员工信息查询 图1.5(3)员工信息删除、排序 图1.51 添加的代码为:Private Sub cmdAdd_Click()If cmdAd
24、d.Caption = 确定 ThenAdodc1.Recordset.updatecmdAdd.Caption = 添加记录ElseAdodc1.Recordset.AddNewcmdAdd.Caption = 确定update.Enabled = TrueEnd IfEnd Sub2 查询的代码为:Private Sub cmdFind_Click()If Txtfind.Text = ThenMsgBox 请选择查询项目并输入查询内容!, 48, 提示 Exit Sub End IfAdodc1.RefreshAdodc1.Recordset.MoveFirst Adodc1.Recor
25、dset.Find CombFind.Text & = & & Txtfind.Text & If Adodc1.Recordset.EOF Then MsgBox 记录不存在, 64, 提示 End If End SubPrivate Sub Form_Load()Adodc1.Visible = FalseCombFind.AddItem 姓名CombFind.AddItem 职工编号CombFind.AddItem 身份证号CombFind.AddItem 电话End Sub3 删除与排序的代码为:Private Sub Cmddel_Click()Dim strResult As St
26、ring strResult = MsgBox(是否真的要删除该员工信息?, vbYesNoCancel + vbQuestion + vbDefaultButton1, 退出询问) If strResult = vbYes Then Adodc1.Recordset.Delete Adodc1.Recordset.MovePrevious Else If strResult = vbNo Then End IfEnd IfEnd SubPrivate Sub Label7_Click()Adodc1.Refresh Adodc1.Recordset.MoveFirst Adodc1.Comm
27、andType = adCmdText Adodc1.RecordSource = select * from 员工资料 order by 职工编号 asc Adodc1.RefreshEnd SubPrivate Sub Label8_Click()Adodc1.Refresh Adodc1.Recordset.MoveFirst Adodc1.CommandType = adCmdText Adodc1.RecordSource = select * from 员工资料 order by 职工编号 desc Adodc1.RefreshEnd Sub3、分类管理分类管理中运用Option控
28、件、Adodc控件可以实现男女性别分类显示。页面利用Adodc与数据库的连接,在运用DataGrid进行数据绑定;主要代码如下:Dim condstr As Stringcondstr = If Option1.Value = True Then If condstr = Then condstr = 性别=男 Else condstr = condstr + and 性别= 男End If End If If Option2.Value = True Then If condstr = Then condstr = 性别=女 Else condstr = condstr + and 性别=
29、女End If End If If condstr Then 有条件 Adodc1.RecordSource = select * from 员工资料 where + condstr Adodc1.CommandType = adCmdText Adodc1.Refresh Else 无条件 Adodc1.RecordSource = select * from 员工资料 Adodc1.CommandType = adCmdText Adodc1.Refresh End If 图1.74、薪酬查询; 图1.85、辅助项目管理:图1.9 图2.0报表:添加DataEnviroment和DataReport设计器在数据报表中设
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1