管理信息系统课程设计个人报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
沈阳化工大学科亚学院
管理信息系统课程设计报告
( 2015 -- 2016学年第二学期)
题目:企业人事薪酬管理信息系统设计
院系:工商管理
班级:1302
组号:01
组长:龚玥珅
组员:隋越陈爽李旭
指导教师:王嘉冰
设计周数:一周
个人姓名:龚玥珅
个人成绩:
日期:2016年6月 14日
目录
1.项目背景及系统目标 (1)
1.1 项目背景.。
1.2 系统目标
2系统分析
2.1业务流程分析
2.2 数据流程分析
3系统设计
3.1 代码设计
(包括代码的设计和代码校验位的计算)
3.2 I/O设计
(设计部分输入报表和输出报表)
3.3 数据库设计
3.3.1 数据库文件名规范
3.3.2 字段名规范
3.3.3 数据表结构设计
3.4 系统功能结构图
4. 系统实施
4.1 程序流程图
4.2 源程序
4.3 系统测试
4.4 系统使用说明书
4.4.1 软硬件环境
4.4.2 使用说明
5. 收获和体会....................................................
24
1、项目背景及系统目标
1.1项目背景
随着科学技术的发展和整个社会的进步,计算机技术也得到了很大的提高,特别是微型计算机的大范围普及,使计算机的应用逐渐由科学计算、实时控制等方面向非数值处理的各个领域中渗透并发挥着越来越重要的作用。
尤其是以微型计算机为处理核心,以数据库管理系统为开发环境的管理系统在办公室自动化以及商业信息管理等方面的应用,日益受到人们的关注。
1.2系统目标
人事工资管理是企业内部很重要的一个管理事项,其管理方式和工具对企业的决策者和管理者来说至关重要。
但一直以来大多数企业内部人事和工资的管理基本上都是传统的手工操作,这种人工管理的方式效率低,保密性差,而且很难满足及时记录、随时查询的需要,为信息的管理者带来诸多不便。
利用计算机进行信息控制和数据处理,不仅从整体上大大提高了工作效率和安全性,而且具有存储量大,寿命长,成本低等优点,这些更是手工管理所无法比拟的。
用计算机支持完成人事管理的日常事务,能够使人事管理自动化和科学化,提高了信息处理的速度和准确性;工资管理更是一项琐碎、复杂而又十分细致的工作,如果实行手工操作,会浪费工作人员很多时间和精力,且失误在所难免,而使用计算机进行工资计算和发放,不仅能够保证工资核算准确无误,而且能对相关信息进行统计,使企业内部管理体制更加科学有效。
总之,为了很好的实现数据的录
入、插入、删除、查询、统计、更新等功能,以达到使企业人事工资信息管理科学化、系统化、规范化和自动化的目的,建立人事工资管理系统是十分必要的。
一个基于网络的人事工资管理系统,能在网络环境下实现数据的录入、插入、删除、查询、统计、更新等功能。
将工资管理作为一个独立的模块与人事管理相联系,同时关联员工单位福利等管理,来生成每个员工的基本工资,能够实现人事信息和工资管理的科学化、系统化、规范化和自动化。
2、系统分析
2.1业务流程分析
当薪酬业务发生时,企业的人力资源部门需要新建业务,整理原始文档,同时将新建的业务归并到原始文档里,同时要登陆系统处理由A新建的任务,将新建的业务和登录系统同时进行判断,之后进行处理,并由系统保存处理结果,下面系统将会进行逻辑核对,业务过程存档,之后将岗位中的基本工资数据,绩效工资数据,保险业务数据,外聘工资津贴数据进行汇总,人事部门会生成费类汇总数据,最后由财务部门发放,并定期反馈发放报表。
2.2 数据流程分析
数据流程分析是把数据在组织内部的流动情况抽象地独立出来, 舍去了具体的组织机构等,以发现和解决数据流中的问题。
员工通过员工号可以查询到员工信息以及员工个人工资,得到员工基本信息表、员工基本工资表、员工岗位工资表、员工工龄工资表。
通过这4个表进行工资汇总处理,最终得出工资报表。
最后将工资报表
上交人事部门以及财务部门。
财务部门发放,并定期反馈发放报表
业务流程图
2.1:
数据流程图
3、系统分析
3.1代码设计
任何信息都是通过一定的编码方式、以代码的形式输入并存储到计算机中的,一个信息系统如果有比较科学的、严谨的代码系统,将大大提高系统的质量。
编写代码要遵循唯一性、规范性、系统性、简单性、适用性的原则。
我们将员工按性别都进行了分类,分别将男设置为01,女设置为02。
而且还按员工进入公司的日期进行了员工号排序,这样就能区分不同的员工,而且就今后招聘员工进行排序也提供了依旧和方便。
3.2 I/O设计
(1)输入设计
输入内容:用户名、密码,登录成功即可进入。
输入设计要遵循控制人工输入量、减少输入延迟、减少输入错误、避免额外步骤、简化输入过程的原则,以便提高效率和减少错误。
企业人事薪酬管理信息系统能够完成员工基本信息的录入以及查询各种详细信息,根据人事部的提交情况完成输入。
在输入界面中,可以通过选择、填写等方式来完成输入,数据库文件由手工写入的教材信息组成,可完成以后的数据保存、编辑等工作。
(2)输出设计
输出内容:
1、在我们的企业人事薪酬管理信息系统中登陆成功,用户将直接进入系统进行操作。
2、正常操作下输出用户所查询等操作显示内容,包括输出项目、位数、数据形式(文字、数字)。
3、若这个用户或密码错误,将会跳出对话框显示出现错误;
4、当输入内容出现格式错误或其他错误,则不能进行正常录入。
在这个企业人事薪酬管理信息系统可以通过条件查询,满足一定的需求,生成上报的表格和统计表格,使用显示器来显示这些数据,实现数据的输出。
信息系统的输出采用最为广泛的输出方式之一的屏幕显示。
在功能选择、查询、检索信息时采用的是屏幕输出方式。
3.3.2 字段名规范
(1)数据库表字段应是有意义而且易于理解的,最好是能够表达字段含义的英文字母。
在企业薪酬管理系统中,员工为employee,薪酬为remuneration。
(2)仅用于标识唯一性和程序内部用到的标识性字段,字段名称建议取为 ID ,采用类型为整型或长整型.
(3)系统中属于是业务内的编号字段,代表一定业务信息,建议字段命名为code , 如员工信息查询编号D1_code .
(4)不要在数据库表字段名中包含数据类型,如:datetime
(5)不要在数据库表字段命名时重复表名,可以使用表名首字母(不包含数据库表名前缀)
3.3.3 数据表结构设计
1、员工信息表:PERSONNEL.DBF
2、基础工资设置表:COURSE.DBF
3、岗位工资设置表:RANK.DBF
4、工龄工资设置表:GONGLING.DBF
5、用户注册表:ADMINER.DBF
3.4 系统功能结构图
企业人事薪酬管理信息系统功能结构图如图所示:
4、系统实施
4.1程序流程图
企业人事薪酬管理信息系统程序流程图如图:
4.2源程序
1.员工工资查询登录界面设计
其主要验证代码如下:
dim user,password,selstorage u ser=request("username")
password=request("password")
sql="select * from user where username="&user&" and password="&password &""
rs.open sql,conn,32
if rs.eof and rs.bof then
response.write"<SCRIPT language=JavaScript>alert('错误的用户名或密码,请重新输入!');"
response.write"javascript:history.go(-1)</SCRIPT>" else
rs("isonline")=True rs("login_time")=now()
rs("ip")=Request.ServerVariables("REMOTE_HOST")
rs.update
session("userlogin")="true"
session("storage")=selstorage
session("username")=user
员工工资查询主界面设计
其主要验证代码如下:
员工基本信息的click事件:do form\salary\form\personne1
工资基本设定的click事件:do form salary\form\dataformat
工资汇总的click事件:do form\salary\form\result.scx
个人工资查询的click事件:do form\salary\form\grcx.scx
退出的click事件:hisform.release
timer1事件:
if i=0
bel1.visible=.F.
i=1
else
bel1.visible=.T.
i=0
endi
员工基本信息界面设计
1、员工基本信息增删改功能
具体编码如下:
(1)“增加新记录”按钮控件源代码:
thisform.pageframe1.page1.fy1.enabled=.F.
mand2.enabled=.F.
mand3.enabled=.F.
mand4.enabled=.T.
if mand1.caption='增加新记录'
thisform.pageframe1.page1.txtpid.enabled=.T.
thisform.pageframe1.page1.txtpname.enabled=.T.
thisform.pageframe1.page1.txtpsex.enabled=.T.
thisform.pageframe1.page1.txtpjob.enabled=.T.
thisform.pageframe1.page1.txtpindate.enabled=.T.
thisform.pageframe1.page1.txtprank.enabled=.T. append blank
mand1.caption='增加确认'
thisform.pageframe1.page1.refresh
thisform.pageframe1.page1.txtpid.setfocus
else
getid=alltrim(thisform.pageframe1.page1.txtpid.value)
getname=alltrim(thisform.pageframe1.page1.txtpname.value)
getsex=alltrim(thisform.pageframe1.page1.txtpsex.value) g
etjob=alltrim(thisform.pageframe1.page1.txtpjob.value)
getindate=alltrim(thisform.pageframe1.page1.txtpindate.value)
getrank=alltrim(thisform.pageframe1.page1.txtprank.value)
if empty(getid) or empty(getname) or empty(getsex) or empty(getjob) or empty(getindate) or empty(getrank)
messagebox("资料不足",48,"错误")
else
mand1.caption='增加新记录'
tableupdate(.t.)
thisform.pageframe1.page1.txtpid.enabled=.F.
thisform.pageframe1.page1.txtpname.enabled=.F.
thisform.pageframe1.page1.txtpsex.enabled=.F.
thisform.pageframe1.page1.txtpjob.enabled=.F.
thisform.pageframe1.page1.txtpindate.enabled=.F.
thisform.pageframe1.page1.txtprank.enabled=.F.
thisform.pageframe1.page1.fy1.enabled=.T.
mand2.enabled=.T.
mand3.enabled=.T.
mand4.enabled=.F.
endif
endif
(2)“修改这条记录”按钮控件源代码:
mand1.enabled=.F.
mand3.enabled=.F.
mand4.enabled=.T.
thisform.pageframe1.page1.fy1.enabled=.F.
if mand2.caption='修改这条记录'
thisform.pageframe1.page1.txtpid.enabled=.T.
thisform.pageframe1.page1.txtpname.enabled=.T.
thisform.pageframe1.page1.txtpsex.enabled=.T.
thisform.pageframe1.page1.txtpjob.enabled=.T.
thisform.pageframe1.page1.txtpindate.enabled=.T.
.pageframe1.page1.txtprank.enabled=.T
mand2.caption='修改确认'
thisform.pageframe1.page1.refresh
thisform.pageframe1.page1.txtpid.setfocus else
mand2.caption='修改这条记录' tableupdate(.t.) thisform.pageframe1.page1.txtpid.enabled=.F.
thisform.pageframe1.page1.txtpname.enabled=.F.
thisform.pageframe1.page1.txtpsex.enabled=.F.
thisform.pageframe1.page1.txtpjob.enabled=.F.
thisform.pageframe1.page1.txtpindate.enabled=.F.
thisform.pageframe1.page1.txtprank.enabled=.F.
mand1.enabled=.T.
mand3.enabled=.T.
mand4.enabled=.F.
thisform.pageframe1.page1.fy1.enabled=.T.
endif
2、员工信息查询功能
具体编码如下:
“查询”按钮控件源代码:
getpid=alltrim(thisform.pageframe1.page2.text1.value)
getpname=alltrim(thisform.pageframe1.page2.text2.value)
flag1=thisform.pageframe1.page2.check1.value f
lag2=thisform.pageframe1.page2.check2.value
if flag1=0 and flag2=0
messagebox("请输入查询条件",48,"错误")
endif
if flag1=1 and flag2=0
set order to pid
seek getpid
if found()
messagebox("查到记录",48,"注意")
select * from personnel where pid=getpid into cursor ling thisform.pageframe1.page3.enabled=.T.
thisform.pageframe1.page3.refresh
else
messagebox("没有这条记录",48,"注意")
endif
endif
if flag1=0 and flag2=1
set order to pname seek getpname
if found()
messagebox("查到记录",48,"注意")
select * from personnel where pname=getpname into cursor ling thisform.pageframe1.page3.enabled=.T.
thisform.pageframe1.page3.refresh
else
messagebox("没有这条记录",48,"注意")
endif
endif
if flag1=1 and flag2=1
set order to pid
seek getpid
if personnel.pname=getpname
messagebox("查到记录",48,"注意")
select * from personnel where pid=getpid and pname=getpname into curs or ling
thisform.pageframe1.page3.enabled=.T.
thisform.pageframe1.page3.refresh
else
messagebox("没有这条记录",48,"注意")
endif
endif
工资基本设定界面设计
其主要验证代码如下:
基本工资的click事件:Do form salary\form\jcgz Thisform.release
岗位工资的click事件:Do form salary\form\gwgz Thisform.release
工龄工资的click事件:Do form salary\form\glgz Thisform.release
设定结束的click事件:Thisform.release
相应的代码设计如下:
修改的click事件:
Thisform.grdrank.column1.text1.enabled=.t.
Thisform.grdrank.column2.text1.enabed=.t.
Thisform.grdrank.column1.text1.setfocus
修改确认的click事件:
Thisform.grdrank.column1.text1.enabled=.f.
Thisform.grdrank.column2.text1.enabed=.f.
添加的click事件:Append blank Go bottom
Thisform.grdrank.column1.text1.enabled=.t.
Thisform.grdrank.column2.text1.enabed=.t.
Thisform.grdrank.column1.text1.setfocus
删除的click事件:
Thisform.grdrank.recordsourcec= Use rank exclusive
Delete from rank where rname=getid
Thisform.grdrank.recordsource=’rank’
Thisform.grdrank.refresh
退出的click事件:Thisform.release
Delete from rank where rname=getid Thisform.grdrank.recordsource=’rank’Thisform.grdrank.refresh
退出的click事件:Thisform.release
相应的代码设计如下:修改的click事件:
Thisform.grdrank.column1.text1.enabled=.t.
Thisform.grdrank.column2.text1.enabed=.t.
Thisform.grdrank.column1.text1.setfocus
修改确认的click事件:
Thisform.grdrank.column1.text1.enabled=.f.
Thisform.grdrank.column2.text1.enabed=.f.
添加的click事件:Append blank Go bottom
Thisform.grdrank.column1.text1.enabled=.t.
Thisform.grdrank.column2.text1.enabed=.t.
Thisform.grdrank.column1.text1.setfocus
删除的click事件:
Thisform.grdrank.recordsourcec= Use rank exclusive
Delete from rank where rname=getid
Thisform.grdrank.recordsource=’rank’
Thisform.grdrank.refresh
退出的click事件:Thisform.release
4.3系统测试
软件测试是系统质量保证的主要活动之一,测试虽然不是质量保证的“安全网”,但它是不可缺少的,而且是重要的环节。
因为,在系统开发的过程中,涉及一系列的活动,而在这个活动过程中,人们可能犯很多错误,错误可能发生在设计阶段,也可能发生在整个过程的开始阶段。
测试方法与过程
系统测试的目标是:
1)测试是一个程序的执行过程,其目标在于发现错误。
2)2)一个好的测试用例能够发现至今尚未察觉的错误。
3)3)一个成功的测试则是发现至今尚未察觉的错误的测试。
4)总之,测试是发现错误,这不只是从技术角度测试下定义。
测试用例
为了发现程序中的错误,应竭力设计能暴露错误的测试用例。
一个好的测试用例是极有可能发现迄今为止尚未发现的错误的测试用例;一个成功的测试是发现了至今尚未发现的错误的测试。
测试除采用正常的数据外,还编制了一些异常的和错误的数据,用来考
察程序的正确性和容错能力。
1.用正常数据进行测试
例如:用正确的用户名进入系统,测试能否进入系统。
2.用异常数据进行测试
例如:要查询编号为002002的员工信息,却忘了在查询条件中输入员工号,则系统操作界面会出现错误信息提示框“请输入查询条件”,并要求用户输入缺少的部分。
3.用错误数据进行测试
例如:在查询时输入错误的员工号,系统会提示“无此员工,该员工不存在”
4.4使用说明书
4.4.1软硬件环境
建议使用的硬件环境:
●处理器:Inter Pentium 4 或更高。
●内存:256M以上
●硬盘空间:20GB以上
●显卡:SVGA显示适配器
建议使用的软件环境:
●操作系统:w7
●数据库:SQL Server 2005 Express
4.4.2使用说明
1、首先打开软件安装包,在电脑上安装软件完毕后打开该软件。
2、运行本软件,出现系统登录窗口
3、输入正确的用户名和密码登录本系统后,就进入本系统的操作主界面,用户可以根据自己的操作需要选择功能菜单。
如点击“工资查询”“基本工资查询”,可以进行按部门代码、职工号进行查询员工的劳务奖金查询,单击“打印”则会对劳务奖金进行报表打印,“退出”按扭则是退出本录入界面,回到操作主界面。
4、如点击“计算数据”下的“计算基本工资”,“上一个、下一个”按钮可以查询其他员工的工资计算结果,该表还可以对员工工资变动进行修改,修改后单击“保存”按钮即可。
“退出”按扭则是退出本录入界面,回到操作主界面。
5、对于其他的功能,因其操作方法与上述操作类似,不再重复叙述。
6、单击“推出系统”,则会退出企业工资管理系统。
关闭主表单。
5.收获与体会
这学期新学了《管理信息系统》,觉得受益匪浅。
它在实际运用中是极为重要的一门专业的学科,管理信息系统是为了适应现代化管理的需要,融汇了管理、信息技术等多门学科的相关知识。
在科技不断发展、信息技术日新月异的科技时代,我们只有在大学里密切结合社会实践,关注新科技知识,掌握技能,我们才能在以后毕业后迅速融入社会,被社会所接受。
学习中老师让我们接触了一些以前从来没有用过的软件,临近结课时老师布置了分组完成课程设计报告的作业,以检验大家本学期的学习成果,在实践的过程中进行熟悉和掌握,达到学以致用的教学目的。
我们的课题是企业人事薪酬管理信息系统,由4个人完成,需要完成企业人力资源管理系统子系统的开发、调试与运行,此外还要撰写课程设计报告。
我的工作主要是课程设计报告的整理兼撰写。
但实际上每个文档之间都有着联系,仅仅做自己分配到的部分是不够的,系统分为哪些模块以及各模块的功能都需要大家一起讨论确定,统一思路,否则文档无法衔接,课程设计无法完成。
我们在分工编写文档前先在一起讨论确定了系统的主要模块和每个模块的功能,统一它们的名称,然后各自编写文档,发现应该添加新功能或原先的设计有问题时再一起讨论,统一修改,防止文档出现偏差。
通过大家的讨论,发现很多问题和没有想到的细节,在不断发现问题,不断改正错误、不断完善系统设计的过程中,我们对人力资源系统的理解和研究也越来越深入,也使我们认识到团队的力量。
课程设计需要使用很多建模和作图工具软件,例如Visio、rose,以及网页制作、图像处理软件,同时需要查阅资料和做一些必要的调研。
虽然平时上课这些软件的使用老师都讲过,考试也能通过,但当用这些软件和课本上的知识来独立地设计一个实际的系统时,很多问题就暴露出来了,比如什么时候要用E-R图、什么时候要用流程图,虽然这些图我们每个人都会画,但是这些图是用来描述什么的、作用是什么、什么时候需要使用这些图我们却不是很清楚。
课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,这次课程设计虽然很累,但
我学到了不少东西,对软件的设计过程和方法有了更深入的了解,培养了我们的团队精神,锻炼了我们的沟通和表达能力。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
通过此次课程设计,使我更加扎实的掌握了有关人力资源管理系统方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。
实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。
在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。
最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。
这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在大家的努力下,终于游逆而解。
在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。
回顾起此课程设计,至今我仍感慨颇多,从理论到实践,我学到很多
很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
参考文献
【1】武新华.Visual FoxPro管理信息系统开发案例.西安电子科技大学出版社,第一版,2004.7
【2】黄梯云.管理信息系统.高等教育出版社,第四版,2009.7 【3】葛世伦.企业管理信息系统.科学出版社,第一版,2010.2 【4】百度:
【5】王忠群《visual foxpro 程序设计》2010年
【6】张海藩《软件工程》 2009年。