1、信息系统设计与开发系统名称:工资管理系统开发人员:薛靖峰学号:1009034122专业:信息管理与信息系统(1)编写目的随着社会的发展,中国的中小型企业越来越多,而对企业而言,人力资源是企业最宝贵的资源,也是企业的“生命线。工资管理又是人力资源管理的重中之重.实行电子化智能化的工资管理,可以让人力资源管理人员从繁重琐碎的案头工作解脱出来,去完成更重要的工作。实现企业更大的工作效益和利润。提高工作效率,减少人力;节省开支;先前人工劳动的自动化;针对使用企业与人群为中小型的管理者。(2)背景借助现代信息技术和管理理论,建立企业管理信息系统是当今社会的重要趋势,企业要在当今激烈的社会竞争中生存并发展
2、,单靠人工或九十年代的手动,机械化操作是不够的,社会的发展,要求企业要跟上时代的步伐,抓住新时代的新科技的机遇,运用自动化,智能化的电脑管理,实现企业的高效益发展,这其中,企业员工的工资管理,对一个企业起着很关键的作用。因此开发一个能自动化的管理企业员工工资的发放,员工内部信息的管理,企业招聘的管理等功能的系统,对一个企业的发展铺上了一条奔向高速发展的道路。在一个企业中,工资管理是一项琐碎、复杂而又十分细致的工作,工资计算、发放、核算的工作量很大,一般不允许出错,如果实行手工操作,每月发放工资须手工填制大量的表格,这就会耗费工作人员大量的时间和精力,计算机进行工资发放工作,不仅能够保证工资核算
3、准确无误、快速输出,而且还可以利用计算机对有关工资的各种信息进行统计,服务于财务部门其他方面的核算和财务处理,同时计算机具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等.这些优点能够极大地提高人事工资资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。2、可行性研究的前提(1)要求主要功能:为企业提供工资管理的软件,方便公司进行准确的工资管理.性能要求:可以准确登记出勤率以及一些特殊的影响工资的因素,工资的计算及发放等,可以以不同的方式查询工资情况.最重要的是准确。输入要求:数据完整、准确,真实.输出要求:简洁、快速、实时、
4、可以打印相关的报表,提供一定的视图.安全与保密要求:本系统的管理员要对该管理系统的安全负责,系统由特定人员修改及进行更新,计算等功能实现.职工只有查询的权利,不能对其中的数据进行修改。上级管理者可以利用视图进行查看,或是打印报表。(2)目标系统实现后,大大地提高职工工资管理系统的运行效率,可以减少由人为而导致的纪录及运算错误。可以对某些特殊工资的界定条件进行设定保护,使公司更好的运行.(3)评价尺度:成本效益分析结果,效益大于成本,技术可行,效益小于成本,技术不可行,现有技术可完全承担开发任务,操作可行,软件可被原工作人员快速接受。(4)1、 管理上的可行性分析 随着市场近几年的发展,公司规模
5、的不断扩大,业务的扩张,为了提高企业的业务水平,为企业简化人事管理,提高商品库存效率,增加公司的业绩.在管理方面已经积累了丰富的管理经验与方法,并建立的成熟的管理制度、齐全的规章制度汇集了正确的原始数据,使管理工作有了制度支持与信息支持。 特别是,能够改进企业管理机制,改善决策方式,减少管理成本,提高工作效率。领导的支持对于信息系统的开发和实施有很大作用,也能保证系统在开发过程中妥善解决矛盾,在企业上下顺利实施信息系统,实现信息系统最初的目标。 2、 技术上的可行性 随着IT技术的发展,特别是网络技术和数据库技术的发展,在软件开发方面,可以采用现行主流的开发技术;硬件技术方面则可以充分利用日益
6、增强的存储能力、通讯能力和处理速度来保证系统开发技术的准备。由此可见,该系统在技术上具有可行性。 3、 经济上的可行性 对于信息系统的初期投资,都是为了以后获得更大的经济效益.通过一定的成本、效益分析,我认为开发这个系统在经济上是可行的。因为虽然系统开发需要初始成本和日后的维护费用,但是,信息系统可以提供比以前更加准确和及时的信息,可以改善领导层的决策方式,促进故那里体制改革和提高工作效率,减少人员费用,这些都是可以在以后的管理过程中体现出来的,并且可以令公司比其他竞争对手更加具有竞争优势,对企业长远的发展有不可忽视的作用。所以,经济上的可行性是肯定的. 4、 可行性分析结论 在对系统目标和环
7、境进行分析的基础上,更进一步对系统的技术可行性、经济可行性、营运可行性等方面进行系统的可行性分析研究: 二、组织机构图 三、业务流程图四、功能结构图 五、数据流程图1.第一层数据流程图2。第二层数据流程图六、数据字典(1)数据流 数据流编号:D0103 数据流名:出勤情况 简要说明:每月员工出勤统计情况 数据流来源:人事部 数据流去向:工资信息设置处理 数据流组成:考勤统计时间+出勤天数+迟到早退次数+旷工次数+正常加班次数+特殊加班次数+出差次数 (2)数据存储 数据存储编号:F1 数据存储名称:月工资表 简要说明:每月按部门的工资表 数据存储来源:工资核算处理 数据存储去向:工资查询处理
8、数据存储组成:工资统计时间+基本工资+职务津贴+奖金+福利+加班费+出差费+迟到早退扣发+旷工扣发+其他 (3)处理逻辑 编号:P 011。2 处理逻辑的名称:工资计算 简述:计算本月所有部门员工工资 输入数据流:基本工资,来自“工资信息设置”处理逻辑 其他项目,来自“工资信息设置”处理逻辑 效益工资,来自“工资信息设置处理逻辑 出勤情况,来自“工资信息设置”处理逻辑 数据存储组成:工资统计时间+基本工资+职务津贴+奖金+福利+加班费+出差费+迟到早退扣发+旷工扣发+其他 输出的数据流:部门工资,去“月工资表数据存储 员工个人工资,去“工资单”数据存储 (4)外部实体 编号:S04 名称:员工
9、 简述:本单位的员工 输入的数据流:工资单 输出的数据流:确认 七、ER图 八、对象关系图九、数据表详情1、工资表2、职工表3、财务表十、系统截图系统分析报告借助现代信息技术和管理理论,建立企业管理信息系统是当今社会的重要趋势,企业要在当今激烈的社会竞争中生存并发展,单靠人工或九十年代的手动,机械化操作是不够的,社会的发展,要求企业要跟上时代的步伐,抓住新时代的新科技的机遇,运用自动化,智能化的电脑管理,实现企业的高效益发展,这其中,企业员工的工资管理,对一个企业起着很关键的作用。因此开发一个能自动化的管理企业员工工资的发放,员工内部信息的管理,企业招聘的管理等功能的系统,对一个企业的发展铺上
10、了一条奔向高速发展的道路。在一个企业中,工资管理是一项琐碎、复杂而又十分细致的工作,工资计算、发放、核算的工作量很大,一般不允许出错,如果实行手工操作,每月发放工资须手工填制大量的表格,这就会耗费工作人员大量的时间和精力,计算机进行工资发放工作,不仅能够保证工资核算准确无误、快速输出,而且还可以利用计算机对有关工资的各种信息进行统计,服务于财务部门其他方面的核算和财务处理,同时计算机具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等.这些优点能够极大地提高人事工资资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件.1、系统的易
11、用性和易维护性工资信息管理系统是直接面对使用人员的,而使用人员往往对计算机并不时非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。工资信息管理系统中涉及到的数据是企业的相当重要的信息,系统要提供方便的手段供系统维护人员进行数据的备份,日常的安全管理,系统意外崩溃时数据的恢复等工作。系统的标准性系统在设计开发使用过程中都要涉及到很多计算机硬件、软件。所有这些都要符合主流国际、国家和行业标准。例如在开发中使用的操作系统、网络系统、开发工具都
12、必须符合通用标准.如规范的数据库操纵界面、作为业界标准的TCP/IP网络协议及ISO9002标准所要求的质量规范等;同时,在自主开发本系统时,要进行良好的设计工作,制订行之有效的软件工程规范,保证代码的易读性、可操作性和可移植性。3、系统的先进性目前计算系统的技术发展相当快,做为员工信息管理系统工程,应该保证系统在下个世纪仍旧是先进的,在系统的生命周期尽量做到系统的先进,充分完成企业信息处理的要求而不至于落后。这一方面通过系统的开放性和可扩充性,不断改善系统的功能完成。另一方面,在系统设计和开发的过程中,应在考虑成本的基础上尽量采用当前主流并先进且有良好发展前途的产品.代码设计:添加用户:Pr
13、ivate Sub cmdcancel_Click() Unload Me Exit SubEnd SubPrivate Sub cmdok_Click() Dim sql As String Dim rs As ADODB。Recordset If Trim(username。Text) = ” Then MsgBox ”请输入用户名称”, vbOKOnly + vbExclamation, ”提示 Exit Sub username。SetFocus Else sql = ”select * from userinfo where userid= username ” Set re = g
14、etrs(sql, salary”) If re。EOF = False Then MsgBox ”这个用户已经存在,请重新输入用户名, vbOKOnly + vbExclamation, 提示 username。SetFocus username。Text = password。Text = ” confirmpwd。Text = ” Exit Sub Else If Trim(password。Text) Trim(confirmpwd。Text) Then MsgBox 两次输入密码不一致,请重新输入密码”, vbOKOnly + vbExclamation, ”提示 password。
15、Text = ” confirmpwd。Text = ” password。SetFocus Exit Sub ElseIf Trim(password。Text) = ” Then MsgBox ”密码不能为空”, vbOKOnly + vbExclamation, ”提示 password。Text = ” confirmpwd = ” password.SetFocus Elsesql = insert into userinfo (userid,userpwd) values(” & username sql = sql ”, & password ) Call transactsql
16、(sql, salary”) MsgBox 添加成功”, vbOKOnly + vbExclamation, ”添加结果” username。Text = password。Text = ” confirmpwd。Text = ” username.SetFocus End If End If End IfEnd SubPrivate Sub Form_Load()End Sub出勤结果:Option ExplicitPrivate Sub DataGrid1_Click()End SubPrivate Sub Form_Load() Dim sql As String Dim rs As N
17、ew ADODB。Recordset Dim sd As String If strusername ”admin” Then sql = ”select sid from stuffinfo where sname=” & strusername & Set rs = getrs(sql, ”salary”) sd = rs(0) sql = ”select from attendancestatistics where stuffid=” sd ” Me。Adodc1。ConnectionString = Provider=SQLOLEDB。1;Integrated Security=SS
18、PI;Persist Security Info=False;Initial Catalog=工资管理;Data Source=(local)” Me。Adodc1。RecordSource = sql Me。Adodc1。Refresh Set Me。DataGrid1.DataSource = Me.Adodc1。Recordset Me。DataGrid1.Refresh Elsesql = select * from attendancestatistics Me。Adodc1。ConnectionString = ”Provider=SQLOLEDB。1;Integrated Sec
19、urity=SSPI;Persist Security Info=False;Initial Catalog=工资管理;Data Source=(local) Me.Adodc1。RecordSource = sql Me。Adodc1。Refresh Set Me。DataGrid1.DataSource = Me.Adodc1.Recordset Me。DataGrid1.Refresh End IfEnd Sub基本工资设置Option ExplicitPrivate id As StringPrivate Sub cmdcancel_Click() Unload Me Exit Sub
20、End SubPrivate Sub init() Me。composition。ListIndex = 0 Mstuffid。ListIndex = 0 Me。textmoney = ” Me.optionid。Value = TrueEnd SubPrivate Sub addrecord() 添加记录 Dim sql As String Dim rs As New ADODB。Recordsetsql = ”select * from salarysetting” Set rs = getrs(sql, salary”) rs.AddNew rs。Fields(1) = Trim(id)
21、 rs。Fields(2) = Trim(Mposition。Text) rs。Fields(3) = Trim(Me。textmoney) rs.Update rs。CloseEnd SubPrivate Sub cmdok_Click() Dim sql As String Dim rs As New ADODB。Recordset If ichangeflag = 1 Then If Me。optionid。Value = True Then If Me。comstuffid。Text = ” Then MsgBox ”请选择员工编号, vbOKOnly + vbExclamation,
22、 ”提示” ElseIf IsEmpty(Me。textmoney) = True Then MsgBox ”请输入基本工资, vbOKOnly + vbExclamation, ”提示” Me.textmoney。SetFocus ElseIf IsNumeric(Me。textmoney) = False Then MsgBox 请输入数字, vbOKOnly + vbExclamation, ”提示 Me.textmoney = ” Me.textmoney。SetFocus Else sql = ”select from salarysetting where stuffid=” &
23、Me。comstuffid。Text & Set rs = getrs(sql, ”salary”) If rs。EOF = False Then sql = ”delete from salarysetting where stuffid= Me。comstuffid。Text & ” Call transactsql(sql, salary”) End If rs。Closeid = Me。comstuffid.Text Call addrecord MsgBox 已经设置基本工资”, vbOKOnly + vbExclamation, 添加结果” Call init sql = sele
24、ct * from salarysetting Call frmresult.basictopic Call frmresult。showbasic(sql) frmresult。Show frmresult。ZOrder 0 Me.ZOrder 0 End If End If If Me。optionposition.Value = True Then If Me。composition.Text = ” Then MsgBox ”请输入职务”, vbOKOnly + vbExclamation, ”提示” ElseIf IsEmpty(Me.textmoney) = True Then M
25、sgBox 请输入基本工资”, vbOKOnly + vbExclamation, 提示 Me。textmoney。SetFocus ElseIf IsNumeric(Me.textmoney) = False Then MsgBox 请输入数字, vbOKOnly + vbExclamation, 提示 Me。textmoney = ” Me.textmoney。SetFocus Else sql = ”select * from salarysetting where sposition =” & Mposition。Text ” Set rs = getrs(sql, ”salary”)
26、 If rs.EOF = False Then sql = ”delete from salarysetting where sposition =” & Me。composition。Text & ” Call transactsql(sql, salary”) End If rs.Close sql = select from salarysetting where sposition =” Me。composition.Text Set rs = getrs(sql, ”salary”) While Not rs。EOF id = rs(0) Call addrecord rs.Move
27、Next Wend rs。Close MsgBox ”已经设置基本工资”, vbOKOnly + vbExclamation, 添加结果 Call init sql = ”select from salarysetting Call frmresult.basictopic Call frmresult.showbasic(sql) frmresult.Show frmresult。ZOrder 0 Me。ZOrder 0 End If End If Elsesql = ”update salarysetting set salary= & Me.textmoney where stuffid
28、= sql = sql Me。comstuffid ” Call transactsql(sql, ”salary”) MsgBox 已经修改基本工资设置”, vbOKOnly + vbExclamation, ”提示 Unload Mesql = ”select from salarysetting” Call frmresult。basictopic Call frmresult.showbasic(sql) frmresult.Show frmresult.ZOrder 0 Call frmsumsalary。resumsalary(Date) End IfEnd SubPrivate
29、Sub Form_Load() Dim sql As String Dim rs As New ADODB。Recordset If ichangeflag = 1 Then 添加信息sql = ”select sid from stuffinfo order by sid” Set rs = getrs(sql, ”salary”) If rs。EOF = False Then While Not rs。EOF Me。comstuffid。AddItem rs(0) rs.MoveNext Wend rs。Close Mstuffid.ListIndex = 0 End Ifsql = ”s
30、elect distinct sposition from salarysetting” Set rs = getrs(sql, salary”) If rs。EOF = False Then While Not rs。EOF Mposition。AddItem rs(0) rs.MoveNext Wend rs.Close Me。composition。ListIndex = 0 End If Me。optionid。Value = True Else 修改信息 Me.Caption = 修改基本工资设置 Set rs = getrs(strpublicsql, salary) Me。com
31、stuffid。Text = rs(1) Me。composition.Text = rs(2) Me。textmoney = rs(3) Mstuffid.Enabled = False Me。composition.Enabled = False rs.Close End IfEnd Sub修改密码:Private Sub cmdcancel_Click() Unload Me Exit SubEnd SubPrivate Sub cmdok_Click() Dim sql As String Dim rs As ADODB。Recordset If Trim(oldpwd.Text) =
32、 ” Then MsgBox 请输入旧密码, vbOKOnly + vbExclamation, 提示 oldpwd。SetFocus Exit Sub Else If Trim(oldpwd。Text) Trim(userpassword) Then MsgBox ”旧密码与登录的密码不同,请重新输入!, vbOKOnly + vbExclamation, ”提示” oldpwd.Text = ” oldpwd.SetFocus ElseIf Trim(newpwd.Text) = ” Then MsgBox ”请输入新密码”, vbOKOnly + vbExclamation, ”提示”
33、newpwd。SetFocus Exit Sub ElseIf Trim(newpwd。Text) Trim(confirmpwd。Text) Then MsgBox ”两次密码不同”, vbOKOnly + vbExclamation, 警告 newpwd.Text = ” confirmpwd。Text = ” newpwd。SetFocus Else userpassword = newpwd sql = ”update userinfo set userpwd=” & newpwd where userid= strusername & Call transactsql(sql, ”s
34、alary) MsgBox 密码已经修改, vbOKOnly + vbExclamation, 修改结果” Unload Me End If End IfEnd SubPrivate Sub oldpwd_Change()End Sub公式设置Private Sub cmdcancel_Click() Unload Me Exit SubEnd SubPrivate Sub cmddefault_Click() Me。textovertimecom = 200 Me。textovertimespe = 400 Me。texterrand = 200 Me。textabsent = 50 Me。
35、textle = 20 Call setvalueEnd SubPrivate Sub cmdok_Click() If Me。textovertimecom = And IsNumeric(Me。textovertimecom) = True Then MsgBox ”请输入正常加班工资百分比, vbOKOnly + vbExclamation, 提示” Me。textovertimecom = ” Me.textovertimecom。SetFocus ElseIf Me。textovertimespe = ” And IsNumeric(Me.textovertimespe) = Fal
36、se Then MsgBox ”请输入特殊加班工资百分比, vbOKOnly + vbExclamation, 提示” Me。textovertimespe = ” Me.textovertimespe.SetFocus ElseIf Me。texterrand = ” And IsNumeric(Me.texterrand) = False Then MsgBox ”请输入出差工资”, vbOKOnly + vbExclamation, ”提示 Me.texterrand = ” Me.texterrand.SetFocus ElseIf Me。textabsent = ” And IsNu
37、meric(Me。textabsent) = False Then MsgBox 请输入旷工扣发工资”, vbOKOnly + vbExclamation, ”提示” Me。textabsent = ” Me。textabsent。SetFocus ElseIf Me。textle = ” And IsNumeric(Me.textle) = False Then MsgBox 请输入迟到早退扣发工资”, vbOKOnly + vbExclamation, ”提示” Me。textle = Me。textle。SetFocus Else Call setvalue Call init End
38、IfEnd SubPrivate Sub setvalue() Dim sql As String Dim rs As New ADODB。Recordsetsql = select from formulasetting Set rs = getrs(sql, ”salary”) If rs。EOF = False Thensql = delete from formulasetting Call transactsql(sql, ”salary”) End If rs。AddNew rs。Fields(0) = Me.textovertimecom rs。Fields(1) = Me.te
39、xtovertimespe rs.Fields(2) = Me.texterrand rs.Fields(3) = Me。textabsent rs。Fields (4) = Me。textle rs.Update rs。Close MsgBox ”已经设置公式, vbOKOnly + vbExclamation, ”设置结果”End SubPrivate Sub init() 初始化 Me.textabsent = ” Me。texterrand = ” Me.textovertimecom = Me。textovertimespe = Me.textle = Me.textovertimecom。SetFocusEnd Sub