工资管理系统设计(doc 49页)经济管理学院数据库综合训练课程设计课程设计题目工资管理系统专业班级信管L032学生姓名路丹学号 031607224指导教师陈军霞张娜萍2006年04 月08 日1.问题描述1.1背景随着经济的发展,企业正向着大型化、规范化发展,而对于大中型企业,员工、职称等跟工资管理有关的信息随之急剧增加,在这种情况下,单靠人工来处理员工的工资显得力不从心,而且极易出错。
该系统的具体任务就是设计一个企业工资的数据库管理系统,由计算机来代替人工执行一系列诸如增加新员工、删除旧员工、工资修改、查询、统计、打印等操作。
1.2数据需求●尽量利用企业现有的软硬件环境,采用先进的管理系统开发方案,达到充分利用企业现有资源,提高系统开发水平和应用效果的目的;●系统符合企业工资管理的规定,满足企业相关人员日常使用的需要,并达到操作过程中的直观、方便、使用、安全等要求;●系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员进行补充、维护。
系统具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。
1.3事务需求通过使用该系统,使企业的工资管理工作系统化、规范化、自动化,从而提高企业管理效率。
开发的总体任务是使办公人员可以轻松快捷的完成工资管理任务。
2.解决方案(或数据库系统设计)2.1 E-R模型设计本实例根据上面的设计规划出的实体有:员工实体、员工工资实体、工资等级实体、部门岗位体、工资实体、公司福利实体。
实体和实体之间的关系E---R图如图1-1所示。
图1-1 实体之间关系E-R 图2.2 数据字典数据库需求分析是数据库设计的第一个员工 员工工资 基础工岗位工工龄工福利费对应 包含对对对对工资部门工龄 公司阶段,是非常重要的一个阶段。
这个阶段主要是确定基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为以后进一步设计打下基础。
在仔细调查企业工资管理过程的基础上,我们得到本系统所处理的数据流程,如图1-2所示。
图1-2 数据流程图 通过对企业工资管理的内容和数据流程分析,针对本实例,我们设计的数据项和数据结构如下:员工基本情况。
包括的数据库项有员工号、级别工岗位工工龄工工资基员工 员工员工姓名、性别,所在部门、身份证号、生日、籍贯、国籍、民族、婚姻状况、健康状况、参加工作时间、员工状态、状态时间、家庭住址、联系电话等。
●工资级别和工资金额。
包括的数据库项有工资等级、工资额。
●企业部门及工资岗位信息。
包括的数据库项由部门名称、工作岗位名称、工作岗位工资等。
●工龄的工资金额。
包括的数据库项有工龄及对应工资额。
●公司福利表。
包含的数据库项有福利名称、福利值。
●工资信息。
包含的数据库项有员工号、员工姓名、员工基础工资、员工岗位工资、员工工龄工资、公司福利、员工实得工资。
2.3 数据库逻辑结构设计在实体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。
工资管理系统数据库中各个表格的设计结果见表1-6所示。
每个表格表示在数据库中的一个表(只列出与本例相关的字段)表1—1为员工基本状况表PERSONNEL 员工基本状况表说明列名数据类型可否为空PID CHARACTER(3) NOT NULL 员工号(索引)PNAME CHARACTER(10) NULL 员工姓名PSEX CHARACTER(2) NULL 员工性别PDEPT CHARACTER(10) NULL 所在部门PJOB CHARACTER(10) NULL 所在岗位PINDATE CHARACTER(2) NULL 工龄PRANK CHARACTER(2) NULL 工资等级表1—2为工资等级表PANK工资等级表列名数据类型可否为空说明RNAME CHARACTER(2) NOTNULL 工资等级(索引)RSALARY NUMERIC(10,2) NULL 相应工资额表1—3为工作岗位情况表DEPT 工作岗位情况表列名数据类型可否为空说明JOBNAME CHARACTER(10) NULL 工作岗位名称(索引)JOBSALARY NUMERIC(10,2) NULL 岗位工资表1—4为工龄工资表GONGLING工龄工资表列名数据类型可否为空说明GNAME CHARACTER(2) NOTNULL工龄(索引)GSALARY NUMERIC(10,2) NULL 工龄工资额表1—5为公司福利表WELFARE为公司福利表列名数据类型可否为空说明WNAME CHARACTER(10) NOTNULL 福利名称(索引)WMONEY NUMERIC(10,2) NULL 福利费用表1—6为系统的用户口令表系统的用户口令表USER_PSWD 列名数据类型可否为空说明TMS_USER CHARACTER(10) NOTNULL 用户名(索引)TMS_PSWD CHARACTER(10) NOTNULL口令3系统实现3.1开发环境开发工具:Visual FoxPro 6.0;运行环境:Windows 9X 或Windows 2000。
3.2系统流程图系统功能分析●系统数据初始化;●员工基本信息数据的输入;●员工基本信息数据的修改、删除;●企业工资的基本设定;●员工工资的浏览;●员工个人工资表的查询;●工资报表的打印在系统功能分析的基础上,得到如图1-3所示的系统功能模块图。
图1-3系统功能模块图 3.3程序调试情况在设计的过程中,预览中发现报表的行之间有空白,无法连接成表,如图1-41所示。
工资管员工信工资基工资汇员工查工龄工资料输员工增公司福岗位工基础工工资汇个人工资查询浏览打印图1-42 错误的报表这是由于报表栏中的细节栏设计又有误,下面是对应的设计,如图1-42所示。
可以看出两个空白是相同的,因此要想打印出没有空白的表,应将小细节的底框紧贴在表的下缘,如图1-43所示。
图1-43 错误的细节设置3.4 数据库结构的实现在需求分析、概念结构设计的继承上得到数据库的结构之后,我们就可以在Visual FoxPro 数据库系统中实现该逻辑结构。
首先建一个名为salary(工资)的项目,保存磁盘中。
例如D:\salary.可以直接在Visual FoxPro的文件中选择“新建”→“项目”。
打开salary项目后,在项目管理器中展开数据文件夹,鼠标选中数据库,单击右键的“新建”按钮,如图1-4所示,存储为D:\salary\datebase\salary.dbc。
图1-4 新建数据库在弹出的数据库设计器中单击鼠标右键,选择“新建表,如图1-5所示。
为数据库添加数据表,表的具体内容见表1-1—表1-6。
下面以表6为例。
图1-5 新建数据表在选择“新建表”命令后,在弹出的对话框中将表存储为:D:salary\datebase\tms.dbf。
在弹出的表设计器中填写表的内容,如图1-6所示。
图1-6 设计表的内容与表1-6 比较,可以发现表的字段名就是列名。
要注意的是在以后的编写程序中对数据库的数据的操作通常是引用表的字段,因此在设计字段是要挑选容易理解的名称。
字段设置完成后,单击“确定”按钮后为表输入数据。
3.5各个功能模块的创建经过前面对系统功能的分析,我们将企业工资管理系统分为4个模块:系统主界面、员工信息管理、工资基本设定和工资汇总。
3.5.1系统主界面的设计为了让使用者有一个轻松操作的界面,系统的主界面设计要求界面友好、功能分块明确、美观大方。
下面将以主界面的设计为例,仔细讲解表单的创建。
首先,展开项目管理器中的文档,选中表单,单击右侧“新建”按钮。
如图1-7所示。
图1-7 新建表单在弹出的对话框中单击“新建”按钮后,会弹出“表单设计器”的界面,如图1-8所示。
图1-8 为设计的表单可以根据界面的需要向其中添加控件如图1-9所示。
图1-9 向表单中添加控件更改各个控件的属性值为所属值,各更改值见表1-7。
表1-7 控件属性更改值控件Caption AlignmentPictureStretchForm1 企业工资管理系统Label1 欢迎使用2-中央Comma nd 员工基本信息Comma nd 员工基本设定Comma nd 工资汇总Comma nd 个人工资设定Command退出Image1 D:\salary\main.jpg 2-变比填充Caption属性表示控件的显示名,是为了使用者方便特意设计的名称,为一些常用的提示信息。
Alignment为控件中Caption的位置状态,对于Label(标签),有“0-左(缺省)”、“1-右”、“2-中央”等3种设置。
另外,设置Label的Font (字体)和Fontsize(字体大小)属性可以改变Caption显示的字体及大小。
在Picture中可以把控件的界面设为图象,以便使用者能更形象地使用所开发的软件。
对应Image(图象)控件,则表示显示在其中的图象。
其属性值应为要显示的图象的路径和文件名。
并应设置其Streth属性为“2-变比填充”以使图象能正确显示。
更改之后的表单如图1-10所示。
图1-10 更改后的表单要注意的是向容器中添加按钮时候,必须先添加容器,然后在容器单击鼠标右键,选择编辑,此时容器边缘变为绿色,表明此时容器正处于编辑状态。
此时添加按钮到容器中才能是按钮真正处于容器中,如果直接添加,则按钮实际上处于与容器同一层次上。
可以通过查阅表单的结构层次来理解,如图1-11所示图1-11 表单中的控件的结构控件添加结束后,表单并未完成设计,此时的表单运行后会发现只有一个空壳,单击其中的按钮没有任何反应。
因此,此时需要为表单设计事件响应。
选中Command1(按钮1),双击后弹出控件“方法程序”对话框,如图1-12所示.图1-12为控件Com mand1设置Click 事件程序填写代码如下:Do from salary\form\personnel*打开下级表单pensonnel..scx,salary\form\personnel为它的路径对Command2(按钮2)、Command3(按钮3)、Command4(按钮4)、Command5(按钮5)、进行同样的操作。
Command2的Click代码为:do form salary\form\dataformat*打开下级表单dateformatCommand3的Click代码为:do form salary\form\result*打开下级表单resultCommand4的Click代码为:do form salary\form\grcx*打开下级表单grectCommand5的Click代码为:thisform.releaseclear events*释放表单,结束程序为了使表单更富动感,这里设计了一个闪烁效果,闪烁的对象为“Label”。