标签:计算机论范文,毕业论文范文,毕业论文格式,
企业工资管理系统的开发,http://www.dxs89.com
5. 退出
此功能块为退出系统。
5.3系统的运行要求
1.硬件要求。
设备名称 说明
处理器 奔腾III以上,256MB
内 存 256MB,内存越大,速度越快
硬 盘 40GB
鼠 标 双飞燕2D鼠标
2.软件要求。
名 称 说明
操作系统 WINDOWS95/98,WINDOWSXP
应用软件 VISUAL FOXPRO6.0(中文版)
本部分简明扼要的介绍了各个部分要实现的功能,搭好了设计的总体框架,使我们对要开发的系统能够更加系统的,全面的,确切的认识,下一步就可以进行系统的详细设计与具体功能的实现了。
第六章.详细设计与实现
本部分说明了系统的整个设计,再以工资数据输入,工资计算以及查询为例详细说明了系统是怎样实现的。
6.1数据库设计
6.1.1概念设计
概要设计基础是完成需求分析后提供的需求说明书,用概念数据模型表示数据及其相互间的关系,这种数据模型是与DBMS无关的、面向现实世界的、易如理解的数据模型,其独立于计算机的数据模型,独立于计算机的软硬件系统,与用户进行交流十分方便。
www.dxs89.com
概念性数据模型关心的是如何完整、正确地反映客观实际情况,不关心在数据库中如何实现。这种数据模式能真实地反应用户要求的实际情况,是一种容易被人们理解的直观的数据库结构模式。同时也是一种相对稳定统一的数据模式,一般情况下很少变动。概念性数据在用户和设计者之间建立了桥梁。是设计数据库结构的基础。
概念设计中自顶向下的实体分析方法,即常用的实体联系模型(简称E-R模型),对具体数据进行抽象加工,将实体集合抽象成实体类型。用实体间联系反映现实世界事物间的内在联系。E-R模型是建立概念性数据模型的有力工具。
通过对企业工资管理内容和过程的分析,本系统应设计的实体和属性如下:
本系统一共用到了3个表。如下:
岗位表(dept.dbf)(包括岗位名称,岗位工资)
工龄表(gongling.dbf)(包括工龄,工龄工资)
工人信息表(personnel.dbf)(包括编号,姓名,性别,工作岗位,工龄,工资等级)。
图6-1为本系统中工人信息的实体集及有关属性的图例:
6.1.2实体和实体之间的关系E-R图如图6-2:
6.2系统中有关数据库表结构设计如下:
部门表
字段名 类型 宽度 小数位数 索引
部门 字符型 10
部门工资 数值型 10 2
2.工龄表
字段名 类型 宽度 小数位数 索引
工龄 数值型 10 索引
工龄工资 数值型 10 2
3.员工信息表
字段名 类型 宽度 小数位数 索引
序号 数值型 10 主索引
姓名 字符型 6
性别 字符型 2
岗位 字符型 10
工龄 数值型 5
工资等级 字符型 5
6.3系统模块设计举例
下面对本系统的具体的几个模块做详细说明。
1、系统主程序MAIN.PRG
clear screen
clear events
set defa to d:\qygz
open database database\salary
do salary\main.mpr
do form salary\form\ksjm
read events
2、Ksjm.frm
(1)打开表单设计器,设计好表单,并且设置好必要的属性,设计结果见图6-3。
Form1.load事件代码:
public i
i=0
Timer.timer事件代码:
if Thisform.Label1.Left<0-Thisform.Label1.Width
Thisform.Label1.Left=Thisform.Width+3
Endif
Thisform.Label1.Left=Thisform.Label1.Left-10
www.dxs89.com
I=I+10
If I>=255*2-6
I=0
Endif
(2)“员工基本信息“按钮的CLICK事件为:
do form salary\form\personnel
personnel.frm的有关设计见第3目
图6-3
(3)“工资基本设定“按钮的CLICK事件为:
do form salary\form\dataformat
(4)“工资汇总“按钮的CLICK事件为:
do form salary\form\result
(5)“个人工资查询“按钮的CLICK事件为:
do form salary\form\grcx
(6)“退出“按钮的CLICK事件为:
thisform.release
clear events
3. personnel.frm的有关设计:
(1)打开表单设计器,设计好表单,并且设置好必要的属性,设计结果见图6-4。
Form1.init事件代码:
set multilocks on
cursorsetprop("buffering",3)
(2) thisform.pageframe1.page1.command1.click事件代码:
thisform.pageframe1.page1.fy1.enabled=.F.
thisform.pageframe1.page1.command2.enabled=.F.
thisform.pageframe1.page1.command3.enabled=.F.
thisform.pageframe1.page1.command4.enabled=.T.
if thisform.pageframe1.page1.command1.caption='增加新记录'
thisform.pageframe1.page1.txtpid.enabled=.T.
thisform.pageframe1.page1.txtpname.enabled=.T.
thisform.pageframe1.page1.txtp***.enabled=.T.
thisform.pageframe1.page1.txtpjob.enabled=.T.
thisform.pageframe1.page1.txtpindate.enabled=.T.
thisform.pageframe1.page1.txtprank.enabled=.T.
append blank
thisform.pageframe1.page1.command1.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)
get***=alltrim(thisform.pageframe1.page1.txtp***.value)
getjob=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(get***) or empty(getjob) or empty(getindate) or empty(getrank)
www.dxs89.com
messagebox("资料不足",48,"错误")
else
thisform.pageframe1.page1.command1.caption='增加新记录'
tableupdate(.t.)
thisform.pageframe1.page1.txtpid.enabled=.F.
thisform.pageframe1.page1.txtpname.enabled=.F.
thisform.pageframe1.page1.txtp***.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.
thisform.pageframe1.page1.command2.enabled=.T.
thisform.pageframe1.page1.command3.enabled=.T.
thisform.pageframe1.page1.command4.enabled=.F.
endif
endif
4.工龄工资设定窗体代码:
1.”修改”按钮有关代码:
thisform.grdgongling.column1.text1.enabled=.T.
thisform.grdgongling.column2.text1.enabled=.T.
thisform.grdgongling.column1.text1.setfocus
2.”修改确认”按钮有关代码:
thisform.grdgongling.column1.text1.enabled=.F.
thisform.grdgongling.column2.text1.enabled=.F.
3.”添加” 按钮有关代码:
append blank
go bottom
thisform.grdgongling.column1.text1.enabled=.T.
thisform.grdgongling.column2.text1.enabled=.T.
thisform.grdgongling.column1.text1.setfocus
4.”删除” 按钮有关代码:
thisform.grdgongling.recordsource=''
use gongling exclusive
delete from gongling where gname=getgname
pack
thisform.grdgongling.recordsource='gongling'
thisform.grdgongling.refresh
5.”退出” 按钮有关代码
thisform.release
do form salary\form\dataformat
5.个人查询窗体有关代码:
(1).”确定”按钮有关代码:
inname=alltrim(thisform.text1.value)
inpswd=alltrim(thisform.text2.value)
set order to tms_user
seek inname
if !found()
cMessageTitle='设备管理系统'
cMessageText='用户名错误,请重新输入'
nDialogType=4+32
nAnswer=messagebox(cMessageText,nDialogType,cMessageTitle)
www.dxs89.com
do case
case nAnswer=6
thisform.text1.value=''
thisform.text1.setfocus
case nAnswer=7
messagebox("请勿****他人资料",48,"警告")
thisform.release
endcase
else
if tms_pswd!=inpswd
cMessageTitle='设备管理系统'
cMessageText='密码错误,请重新输入'
nDialogType=4+32
nanswer=messagebox(cMessageText,nDialogType,cMessageTitle)
do case
case nAnswer=6
if flag<2
thisform.text2.value=''
thisform.text2.setfocus
flag=flag+1
else
messagebox("请勿****他人资料",48,"警告")
thisform.release
endif
case nAnswer=7
messagebox("请勿****他人资料",48,"警告")
thisform.release
endcase
,企业工资管理系统的开发