工资管理 软件工程 课程设计.docx
- 文档编号:8447940
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:37
- 大小:302.12KB
工资管理 软件工程 课程设计.docx
《工资管理 软件工程 课程设计.docx》由会员分享,可在线阅读,更多相关《工资管理 软件工程 课程设计.docx(37页珍藏版)》请在冰豆网上搜索。
工资管理软件工程课程设计
(此文档为word格式,下载后您可任意编辑修改!
)
软件工程课程设计
工资管理系统的设计与实现
题目:
工资管理系统
1开发背景说明
随着科技的发展现在越来越多的办公都实行了自动化,随着就职人员的增加,这对工资管理提出了新的要求,传统的纯手工或简单的计算工具,已经不适应现代经济高速发展和信息快速增长的要求,因此必须运用现代化管理手段,配备完善的自动化设备,采用全新的计算机网络和工资管理系统,来提高企业的办公效率,最大限度地发挥准确、快捷、高效等作用,从而赢得企业的高信誉、强实力、好效益,运用计算机管理就势在必行!
!
2系统分析:
2.1问题定义
工资管理系统有着许多手工管理所无法比拟的优点:
检索迅速、查找方便、可靠性高、存储量高、保密性好、寿命长、成本低等.这些优点能够极大的提高工资管理的效率。
2.2可行性分析
2.2.1目标方案可行性
1)计算机设备处理繁杂的工资增减问题,大幅度减少人力、物力,极大地提高企业的管理水平和管理效率。
2)管理水平和管理效率的提高能直接产生经济效益。
3)高效率的管理形成了良好的经营氛围,为企业打造优良形象,提高企业竞
争力。
4)本系统安全保密性可靠,实施独立的局域网络,人员进入系统需要登录,需输入账户和密码。
5)本系统的管理,可以根据市场需要进行调整,实用性强
2.2.2技术可行性
(1)工作人员一般都要求掌握计算机技术,会使用各种管理软件。
(2)在新系统投入使用时,需对员工进行少量的培训,熟悉系统的功能和使用方法使系统能够顺利运行。
2.2.3经济可行性
(1)企业有能力承担系统开发费用。
(2)新系统将为企业带来经济效益。
管理系统是一个信息化、智能化和先进
理理念的集合体。
而管理是一个动态过程,在其运行过程中要采取多项措施。
其最主要的表现就是减少了企业管理费用和人力开支。
2.2.4操作可行性
(1)本系统采用基于Windows的图形用户界面,而该系统是大家熟悉的操作系统,对于那有一般的计算机知识的人员就可以轻松上手。
(2)整个工资管理系统采用较友好的交互界面,简单明了,操作方便,不需要对数据库进行深入的了解。
2.3需求分析
2.3.1市场需求分析
1)工资管理系统是一个企业单位不可或缺的部分,他能为用户提供充足的信息和快捷的查询手段。
2)一个工资管理系统可以高效能、大容量的收集、处理、存储工资管理信息,大幅度的工资管理信息系统的工作质量和效率。
3)能够为企业管理人员及时掌握整个工资管理系统的全面情况,提供系统的准确的工资管理信息,可以促进工资管理工作的规范化及各项管理制度与指标体系的建立和健全。
4)为企业提供各种加工管理了工资管理信息,以满足工资管理的特殊要求,适应新形势对职工队伍建设提出的新要求,帮助管理人员选择方案,实现优化决策。
虽然当前,不少单位的工资管理部门对于计算机应用还仅限于简单的单机应用,随着时间的推移、任务的复杂、用户的需求,其应用还会扩大。
2.3.2系统功能需求分析
工资管理系统涉及到员工基本信息的录入、修改和删除,工资标准的设定、查询和结算等。
典型的工资管理系统主要有以下基本功能:
a)员工基本信息的录入、修改、删除等功能
b)工资标准的设定功能,集体包括职务工资、职称工资以及其他工资标准的设定。
c)工资信息的浏览
d)员工工资信息表的创建
e)工资调整管理
f)工资统计
2.3.3系统需求分析和目标
企业工资管理系统可以用于支持企业完成工资管理工资,有如下3个方面的目标。
1)支持企业实现规范化的管理。
2)支持企业高效率完成人事管理的日常业务,包括新员工加入时人事档案的建立,老员工转出、辞职、退休等。
3)支持企业进行人事管理及其相关方面的科学决策,如企业领导根据现有的员工合同期限决定是否继续聘用等。
3概要设计
通过分析,将工资管理系统分为六个模块:
人事档案管理模块、职工工资管理模块、工资统计模块的实现、部门查询模块、特殊查询模块、报表查询模块
对六个模块做具体说明:
人事基本信息管理模块:
输入:
职员信息
输出:
“人员档案表”
功能:
对人事基本信息的查询
职工工资管理模块
输入:
人员月工资
输出:
“职工工资表”
功能:
完成员工工资的查询
工资统计模块
输出:
“职工工资统计表”
功能:
完成员工工资的统计和打印
部门查询模块
输出:
以部门为索引的“职工档案信息”
功能:
完成以部门为索引的“职工档案信息”的统计和查询
特殊查询模块的实现
输出:
满足查询条件的“职工档案信息”和职工合同的期限
功能:
完成满足查询条件的“职工档案信息”和职工合同的期限的查询
报表查询模块的实现
输出:
员工履历信息和工资信息基本情况的查询及打印功能
功能:
完成员工履历信息和工资信息基本情况的查询及打印功能
3.1系统业务流程图
3.2系统E-R图
3.4数据流图
图3.4.1底层数据流图
图3.4.2工资管理第一层数据流图
图3.4.3工资管理的展开
图3.4.4本月工资管理的展开
3.5数据字典
通过需求分析,对企业工资管理系统编制数据字典如下:
(1)数据流定义
(2)数据存储定义
(3)处理逻辑定义
(4)外部实体定义
4系统设计
4.1系统处理流程和数据流程
4.2系统数据库概念结构
4.3数据库设计
4.3.1数据录入功能
主要任务是对各种工资信息进行日常的管理,如工资信息的输入、查询、修改、增加、删除,迅速准确地完成各种工资信息的统计计算和汇总,快速打印出报表。
4.3.2.数据查询功能
系统需要提供以下查询功能:
1)员工考勤情况
2)员工工种情况,反映员工的工种、等级,岗位工资等信息
3)员工津贴信息情况,反映员工的加班时间,加班类别、加班天数、岗位补贴情况等
4)员工基本信息情况
4.3.3.数据统计功能
1)统计员工年终奖金
2)统计每部门月工资情况
4.4.4数据库概念设计
分析前面的系统功能要求,需要一个表来存储和管理员工信息,使系统能够接受员工原始的各项数据,以实现数据录入、查询或统计员工信息等功能。
员工是本系统的第一个实体。
为了能实现查询和统计部门内员工情况等功能,必须有一个表来存储和管理所有部门的信息。
部门是本系统的第二个实体。
工资是以员工工作情况来制定的。
需要建立一个表来记录各种工资、津贴、扣款的信息。
它主要为各种查询和统计功能提供工资数据。
工资是第3个实体。
据此可以绘出工资管理系统数据库的E-R图如下:
1
N
MM1
实体属性列表如下:
4.4数据库逻辑设计
将数据库的概念模型转换为关系模型:
实体转换成的关系模式有:
部门(部门编号,部门名称,部门负责人,部门人数)
工资(工号,工资年月,岗位工资,岗位补贴,出勤天数,加班工时,加班工资,加班天数,加班类别,病假扣除,事假扣除,其它扣除,应发工资,实发工资)
因为,员工与工资是1:
N的关系,所以各关系模式为:
部门(部门名称,部门负责人,部门人数)
工资(工号,工资年月,岗位工资,岗位补贴,出勤天数,加班工时,加班工资,加班天数,加班类别,病假扣除,事假扣除,其它扣除,应发工资,实发工资)
字体为粗体的属性为各关系模式的主码。
关系规范式:
工资管理系统∈1NF每个属性均不可再分
4.5数据库与数据表设计——物理结构设计
4.5.1.数据库与数据表设计
①员工信息数据表定义
其中,“工号”是表的主键,惟一标识。
“部门名称”是外键。
“工号”将记录员工的编号,在员工信息表中增加这一列时,虽然增加了数据冗余,但可以在查询每个员工信息时,提高系统的性能。
因为员工信息表的记录数相对固定,相比之下,增加这个冗余的列对于整个系统来说是有利的。
通过它,系统将引用到工资信息。
此表取名为“员工”
②部门信息数据表定义
其中,部门名称是该表的主键,惟一标识一个部门。
此表取名为“部门”
③工资数据表定义
其中,“工号”作为该表的主键,唯一标识,保证客房信息表数据的参照完整性。
此表表取名为“工资”
根据上面三个数据表的设计,可执行下面的步骤创建数据表
1)打开企业管理器,在本地服务器上创建新的数据库“工资管理库”
2)创建表员工、部门、工资
4.5.2.数据完整性设计
1)给每个表实施主键约束。
①主键约束、非空值约束
员工:
工号为主键,所以此项非空
部门:
部门名称为主键,所以此项非空
工资:
工号为主键,所以此项非空
2)实施CHECK约束
●员工表中建立一个检查约束,即员工性别不是‘男’就是‘女’
CHECK(性别IN('男','女')
●工资表中建立一个对于出勤天数的检查约束,即出勤天数在0-20天之间
check(出勤天数>=0and出勤天数<=20)
3)外键约束
员工表中,工号、部门名称为外键。
FK_员工_工资FOREIGNKEY(工号)REFERENCES工资(工号)
FK_员工_部门FOREIGNKEY(部门名称)REFERENCES部门(名称)
通过此键建立3个表的联系
4)惟一约束
a)每个表的主键需定义为惟一性:
对于工资表,因为工号是主键,联系着员工表,所以建立唯一性
altertable工资addconstraintUQ_工号unique(工号)
b)对于员工表,员工的工号、身份证号、部门名称都是用于识别员工身份,所以建立唯一约束
altertable员工addconstraintUQ_工号unique(工号)
5)强制约束
对INSERT和UPDATE操作强制约束,表明以后对员工表中的工号、部门名称的添加和更新操作都会分别检查在工资表、部门表中是否存在与此相应的内容。
6)规则
为了检查员工表中输入的身份证号码是有效位数,可以创建一个规则绑定到该列;在数据操作时进行检查。
规则的定义语句为:
(LEN((@身份证号)=15)OR(LEN(@身份证号)=18)
5系统测试
该平台可以实现员工和管理员的登陆验证,根据登录的身份不同进入的管理系统如:
普通员工进入工资查询系统,管理员则进入工资发放系统
5.1部分代码
5.1.1登录模块代码
OptionExplicit
DimWithEventsrsAsRecordset
PrivateSubcmdOK_Click()
DimSqlAsString
Sql="select*fromt_userwhereusercode='"&Trim$(Me.txtUser)&"'andpassword='"&Trim$(Me.txtPassword)&"'"
Setrs=ConnWZ.Execute(Sql)
IfNotrs.EOFThen
WithUserInfo
.UserCode=Trim$(rs!
UserCode)
.UserName=Trim$(rs!
UserName)
.Pwd=Trim$(rs!
Password)
.QX=rs!
QX
EndWith
'CallLogInfo(True)
Me.Hide
RSGL.Show
rs.Close
ExitSub
Else'
MsgBox"用户名或口令输入错误!
",vbExclamation,"系统提示"
txtUser.Text=""
txtUser.SetFocus
txtPassword.Text=""
rs.Close
ExitSub
EndIf
Err:
MsgBox"用户名、口令或数据库连接串输入错误!
数据库连接失败!
",vbExclamation,"系统提醒你:
"
EndSub
PrivateSubForm_Load()
DimSqlAsString
Me.txtPassword=""
WithMe.txtUser
.Text=""
.SelStart=0
.SelLength=Len(.Text)
EndWith
Sql="select*fromt_user"
Setrs=ConnWZ.Execute(Sql)
Ifrs.EOFThen
Sql="insertt_user(usercode,username,password,qx)values('Admin','管理员','123456',0)"
ConnWZ.Execute(Sql)
EndIf
rs.Close
EndSub
PrivateSubForm_Unload(CancelAsInteger)
End
EndSub
PrivateSublblLabels_Click(IndexAsInteger)
EndSub
PrivateSubtxtpassword_keypress(KeyAsciiAsInteger)
IfKeyAscii=13Then
CallcmdOK_Click
EndIf
EndSub
PrivateSubtxtUser_KeyPress(KeyAsciiAsInteger)
IfKeyAscii=13Then
txtPassword.SetFocus
EndIf
EndSub
5.1.2员工工资查询代码
DimWithEventsrsAsRecordset
DimWithEventsadoPrimaryRSAsRecordset
DimWithEventsadoXianshiRSAsRecordset
DimJieYue_IDAsString'为找到ID的查询SQL语句
PrivateSubCheck1_Click()
IfCheck1.Value=1Then
Check2.Value=0
Check3.Value=0
Check4.Value=0
Check5.Value=0
Combo1.Clear
Sql="select员工号from员工基本信息orderby员工号"
Setrs=db.Execute(Sql)
DoWhileNotrs.EOF
IfIsNull(rs("员工号"))=FalseThen
Combo1.AddItemrs("员工号")
EndIf
rs.MoveNext
Loop
Combo1.Visible=True
Label4.Visible=False
Label5.Visible=False
DTPicker1.Visible=False
DTPicker2.Visible=False
Frame2.Visible=False
Frame3.Visible=False
EndIf
EndSub
PrivateSubCheck2_Click()
IfCheck2.Value=1Then
Check1.Value=0
Check3.Value=0
Check4.Value=0
Check5.Value=0
Combo1.Visible=True
Combo1.Clear
WithCombo1
.AddItem"博士"
.AddItem"硕士"
.AddItem"大学"
.AddItem"大专"
.AddItem"职高"
.AddItem"中技"
.AddItem"初中"
EndWith
Label4.Visible=False
Label5.Visible=False
DTPicker1.Visible=False
DTPicker2.Visible=False
Frame2.Visible=False
Frame3.Visible=False
EndIf
EndSub
PrivateSubCheck3_Click()
IfCheck3.Value=1Then
Check1.Value=0
Check2.Value=0
Check4.Value=0
Check5.Value=0
Combo1.Clear
Sql="selectdistinct岗位from员工基本信息"
Setrs=db.Execute(Sql)
DoWhileNotrs.EOF
IfIsNull(rs("岗位"))=FalseThen
Combo1.AddItemrs("岗位")
EndIf
rs.MoveNext
Loop
Combo1.Visible=True
Label4.Visible=False
Label5.Visible=False
DTPicker1.Visible=False
DTPicker2.Visible=False
Frame2.Visible=False
Frame3.Visible=False
EndIf
EndSub
PrivateSubCheck4_Click()
IfCheck4.Value=1Then
Check1.Value=0
Check2.Value=0
Check3.Value=0
Check5.Value=0
Combo1.Clear
Sql="selectdistinct籍贯from员工基本信息"
Setrs=db.Execute(Sql)
DoWhileNotrs.EOF
IfIsNull(rs("籍贯"))=FalseThen
Combo1.AddItemrs("籍贯")
EndIf
rs.MoveNext
Loop
Combo1.Visible=True
Label4.Visible=False
Label5.Visible=False
DTPicker1.Visible=False
DTPicker2.Visible=False
Frame2.Visible=False
Frame3.Visible=False
EndIf
EndSub
PrivateSubCheck5_Click()
IfCheck5.Value=1Then
Check1.Value=0
Check2.Value=0
Check3.Value=0
Check4.Value=0
Combo1.Clear
Sql="selectdistinct身份证号from员工基本信息"
Setrs=db.Execute(Sql)
DoWhileNotrs.EOF
IfIsNull(rs("身份证号"))=FalseThen
Combo1.AddItemrs("身份证号")
EndIf
rs.MoveNext
Loop
Combo1.Visible=True
Label4.Visible=False
Label5.Visible=False
DTPicker1.Visible=False
DTPicker2.Visible=False
Frame2.Visible=False
Frame3.Visible=False
EndIf
EndSub
PrivateSubCmdXianShi_Exit_Click()
Frame2.Visible=True
Frame3.Visible=False
EndSub
PrivateSubCommand1_Click()
DimDataGrid_sqlAsString'数据表格中的数据源
DimoTextAsTextBox、
IfCheck1.Value=1Then
DataGrid_sql="select*from员工基本信息where员工号='"&Combo1.Text&"'"
EndIf
IfCheck2.Value=1Then
DataGrid_sql="select*from员工基本信息where学历='"&Combo1.Text&"'"
EndIf
IfCheck3.Value=1Then
DataGrid_sql="select*from员工基本信息where岗位='"&Combo1.Text&"'"
EndIf
IfCheck4.Value=1Then
DataGrid_sql="select*from员工基本信息where籍贯='"&Combo1.Text&"'"
EndIf
IfCheck5.Value=1Then
DataGrid_sql="select*from员工基本信息where身份证号='"&Combo1.Text&"'"
EndIf
SetadoPrimaryRS=NewRecordset
adoPrimaryRS.OpenDataGrid_sql,db,adOpenStatic,adLockOptimistic
SetDataGrid1.DataSource=adoPrimaryRS
Frame3.Visible=False
Frame2.Visible=True
EndSub
PrivateSubCommand2_Click()
RSGL.Enabled=True
UnloadMe
EndSub
PrivateSubCommand3_Click()
DimXianShi_sqlAsString'单条数据显示的数据源
IfJieYue_ID=""Then
MsgB
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工资管理 软件工程 课程设计