案例高校工资管理系统.docx
- 文档编号:6668164
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:63
- 大小:198.97KB
案例高校工资管理系统.docx
《案例高校工资管理系统.docx》由会员分享,可在线阅读,更多相关《案例高校工资管理系统.docx(63页珍藏版)》请在冰豆网上搜索。
案例高校工资管理系统
第7章高校工资管理系统
本章对数据库的连接主要采用Borland提供的BDE控件直接连接,无需额外设置。
7.1摘要与关键字
7.1.1摘要
高校工资管理系统主要是高等院校的财务部门作为使用对象而开发的,工资管理作为一个典型的信息管理系统(MIS),其系统开发任务主要包括数据库的设计与维护、客户端应用程序的开发等两个方面。
对于前者要求建立起的数据库具有完整性和一致性,且具有一定的数据安全性如用户需要密码才能使用等,而对于后者则要求程序界面友好、功能完备等特点。
经过详细的分析,选用Borland公司的Delphi作为前端开发工具,利用其提供的集成开发环境及各种控件,尤其是对数据库的支持完成对数据库的各种操作,达到对图书资料管理的目的。
首先建立系统应用原型,然后对原型系统进行需求迭代,不断修正和改进,直到形成用户满意的实际可行系统。
7.1.2关键词
工资、管理、设计、实现、dbase。
7.2引言
高校工资管理是高等院校的财务部门都必须切实面对的工作,随着高等院校不断地发展,各高校的规模不断地扩大,教职员工的数量也越来越多,这对高校的工资管理提出了新的要求。
使用计算机进行管理成为必然趋势,这不仅仅可以降低管理工作的难度,也可以减少错误和提高效率。
工资管理系统作为计算机应用的一个分支,有着手工管理所无法比拟的优点,如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高工资管理的效率。
因此,开发一套能够为用户提供规范化的工资管理、充足的信息和快捷的查询手段的工资管理系统,将是非常必要的,也是十分及时的。
因此可以把高校工资管理作为毕业设计的题目,正好可以充分利用几年在校所学的各种专业知识开发一个高校工资管理系统来帮助相关部门进行有效的管理。
7.3需求分析
管理系统开发的起点是需求分析,这是整个系统开发过程中最重要的一步,它决定着开发的成败。
7.3.1功能需求
高等院校的工资管理系统涉及到教职员工基本信息的录入、修改和删除,工资标准的设定、查询和结算等。
经过实际考察和分析,典型的高等院校工资管理系统主要应具有以下基本功能:
●员工基本信息的录入、修改、删除等功能。
●工资标准设定功能,具体包括职务工资、职称工资以及其它工资标准的设定。
●工资信息浏览。
●员工工资表创建。
●工资调整管理。
●工资统计。
再进行详细调查,绘制出数据流图,如图7-1所示。
图7-1系统数据流图
7.3.2安全保密需求
为完善系统的管理功能,增加系统用户管理功能,包括系统用户的数据增加、删除和修改。
教职员工为系统普通用户,只能运行个人工资查询功能;系统管理员能够运行系统所有功能,从而保证系统数据的安全性。
7.3.3开发与运行环境
本例的新生报名管理系统开发与运行环境如下:
开发环境:
WindowsXP
开发工具:
Delphi8
数据库管理系统:
dbaseIV
运行环境:
Windows98/ME/2000/XP
7.3.4系统实现过程分析
首先根据系统功能分析设计出数据库,包括各个数据表和数据表关系图的详细结构。
实现功能模块时,采用先模块化,后集成的方式。
即对系统各个功能模块分别独立设计和调试,在创建系统主窗体时再将各个功能模块通过主窗体的菜单系统集成到一起,最后进行系统整体设计调试。
在访问数据库时,采用公用数据模块存放访问数据库需要的对象。
该模块在各个功能模块中被直接调用,避免对数据库的反复连接,并可减少代码编写,从而提高系统开发效率。
7.4系统设计
7.4.1系统模块设计
根据系统功能分析得到如图7-2所示的系统功能模块结构图。
图7-2系统功能模块结构图
7.4.2数据库设计
对于信息管理系统,数据基本上都是使用数据库进行管理。
数据库设计是对保存管理系统数据的数据库结构进行设计,对整个系统的开发具有非常重要的作用。
1.数据字典
根据系统功能模块结构图以及典型高校工资管理系统的需求,分析得到如下数据字典:
●系统用户数据:
包含的数据项有系统用户名、登录口令和用户级别代码。
●员工基本信息数据:
包含的数据项有编号、姓名、性别、部门、职称、职务、入部门时间、是否专家、是否有住房、是否有独生未成年子女等。
●职称工资标准数据:
包含的数据项有高级、副高、中级、初级、工人等。
●职务工资标准数据:
包含的数据项有正处、副处、正科、副科等。
●其它工资标准数据:
包含的数据项有独补、专家津贴、房贴、一次性补发、其它补贴、扣房租、扣公积金、扣失业险、扣医疗险、扣垃圾费、扣其它等。
●工资表数据:
包含的数据项有工资编号、员工编号、工资代码、工资名称、工资金额等。
●工资代码数据:
包含的数据项有工资代码、工资名称、工资金额等。
●部门代码数据:
包含的数据项有部门代码、部门名称。
2.数据库结构设计
根据系统需求,分析出实体-关系图,如图7-3所示。
图7-3实体-关系图
根据实体-关系图和数据字典,设计出工资管理系统数据库中的各个数据表。
根据系统用户使用要求得到系统用户数据表,根据工资、员工、部门实体得到员工信息数据表、部门代码数据表、工资结算数据表,根据工资实体属性设计得到职称工资标准数据表、职务工资标准数据表、其它工资标准数据表。
数据表名称与结构如下:
系统用户数据表:
用于保存系统用户的账户信息,数据表命名为“user”,结构见表7-1。
表7-1“user”表结构
列名
数据类型
长度
索引
说明
Yhm
Character
10
是
用户名
Mm
Character
10
否
密码
Qx
Number
3
否
权限
员工基本信息数据表:
用于保存员工与工资管理有关的信息数据,数据表命名为“ygb”,结构见表7-2。
表7-2“ygb”表结构
列名
数据类型
长度
索引
说明
Bh
Character
10
是
编号
Xm
Character
10
否
姓名
Bmdm
Number
3
否
部门代码
Zwdm
Number
3
否
职务代码
Zcdm
Number
3
否
职称代码
Gzrq
Date
否
工作日期
Bz
Character
100
否
备注
职务工资标准数据表:
用于保存各种职务对应的工资标准数据,数据表命名为“zwdm”,结构见表7-3。
表7-3“zwdm”表结构
列名
数据类型
长度
索引
说明
Zwdm
Number
3
是
职务代码
Zwmc
Character
10
否
职务名称
Zwgz
Number
10.2
否
职务工资
职称工资标准数据表:
用于保存各种职称对应的工资标准数据,数据表命名为“zcdm”,结构见表7-4。
表7-4“zcdm”表结构
列名
数据类型
长度
索引
说明
Zcdm
Number
3
是
职称代码
Zcmc
Character
10
否
职称名称
Zcgz
Number
10.2
否
职称工资
其它工资标准数据表:
用于保存各种其它工资标准数据,数据表命名为“gzdm”,结构见表7-5。
表7-5“gzdm”表结构
列名
数据类型
长度
索引
说明
Gzdm
Number
3
是
工资代码
Gzmc
Character
10
否
工资名称
Gzje
Number
10.2
否
工资金额
工资结算数据表:
用于保存工资结算数据,数据表命名为“gzb”,结构见表7-6。
表7-6“gzb”表结构
列名
数据类型
长度
索引
说明
Gzbh
Character
6
是
工资编号
Ygbh
Character
10
是
员工编号
Gzdm
Number
3
否
工资代码
Gzmc
Character
10
否
工资名称
Gzje
Number
10.2
否
工资金额
部门代码数据表:
用于保存各个部门数据,数据表命名为“bmdm”,结构见表7-7。
表7-7“bmdm”表结构
列名
数据类型
长度
索引
说明
Bmdm
Number
3
是
部门代码
Bmmc
Character
10
否
部门名称
7.5系统实现
7.5.1建立数据库
本例数据库使用dbaseIV。
建立各数据表的有关内容请参阅相关书籍。
7.5.2程序设计
1.主窗体设计
在Delphi中,新建一个“VCLFormsApplication”,将工程文件保存为“P7_1.bdsproj”。
主窗体保存为main.pas,界面设计如图7-4所示(左),包含一个MainMenu组件,菜单设计见图7-4(右)。
图7-4主窗体设计界面与主窗体菜单设计
窗体组件属性设置见表7-8。
表7-8主窗体组件属性设置
组件
属性值
Form1
Name='Main_Form'FormStyle=fsMDIFormCaption='新生报名管理系统'
MainMenu1
主窗体中定义两个全局变量yhm、qx,用于保存登录的用户名和权限代码,便于其它窗体使用。
2.用户登录窗体设计
在启动工资管理系统之前,显示登录对话框,要求用户输入用户名和密码,只有经过系统管理员授权的用户才能使用系统。
用户登录窗体保存为login.pas,界面设计如图7-5所示,包含两个LabeledEdit组件和两个Button组件。
图7-5用户登录窗体设计
窗体主要组件属性设置见表7-9。
表7-9用户登录窗体主要组件属性
组件
属性值
Form2
BorderStyle=bsSingleBorderIcons=[biSystemMenu]
Name=Login_FormCaption='用户登录窗口'
LabeledEdit1
EditLabel.Caption='用户名'Name=yhm_LEdit
LabeledEdit2
EditLabel.Caption='密码'PasswordChar=*Name=mm_LEdit
Button1
Caption='确定'
Button2
Caption='取消'
用户登录窗体代码如下:
public
loginok:
boolean。
//定义公用变量,标识登录成功与否
……
//确定按钮单击事件
procedureTlogin_Form.Button1Click(Sender:
TObject)。
var
yhm,mm,sqlstr:
string。
begin
yhm:
=Trim(yhm_LEdit.Text)。
mm:
=Trim(mm_LEdit.Text)。
sqlstr:
='select*fromuserwhere(yhm='''+yhm+''')and(mm='''+mm+''')'。
if(Length(yhm)>0)or(Length(mm)>0)then
begin
withTQuery.Create(nil)do
try
Close。
SQL.Clear。
SQL.Add(sqlstr)。
Open。
//验证用户合法性
ifRecordCount>0then
begin
MainForm.yhm:
=FieldByName('yhm').AsString。
MainForm.qx:
=FieldByName('qx').AsString。
loginok:
=True。
end
else
begin
loginok:
=False。
ShowMessage('请确认登录的用户名和密码是否正确!
')。
yhm_LEdit.SelectAll。
end。
finally
Free。
end。
Close。
end
else
begin
ShowMessage('请输入登录用户名和密码!
')。
yhm_LEdit.SelectAll。
end。
end。
3.用户管理窗体设计
用户管理包括用户数据(包括编号、密码和权限)的添加、删除和浏览等操作。
高级管理员可以管理系统中所以的用户数据,而普通用户则只能修改自己的密码。
用户管理窗体保存为usergl.pas,界面设计如图7-6所示,包含一个GroupBox组件、两个LabeledEdit组件、一个Label组件、一个ComboBox组件、三个Button组件、一个PopupMenu组件、一个Query组件、一个DataSource组件和一个DBGrid组件。
图7-6用户管理窗体设计
窗体主要组件属性设置见表7-10。
表7-10用户管理窗体主要组件属性
组件
属性值
Form3
FormStyle=fsMDIChildBorderStyle=bsSingleBorderIcons=[biSystemMenu]
Name=usergl_FormCaption='用户管理'
GroupBox1
Caption=''Align=alRight
LabeledEdit1(GroupBox1)
EditLabel.Caption='系统用户名'Name=yhm_LEdit
LabeledEdit2(GroupBox1)
EditLabel.Caption='登录密码'PasswordChar=*Name=mm_LEdit
Label1
Caption='系统权限'
ComboBox1(GroupBox1)
Name=qx_CBox
Items='系统用户普通用户'
Button1(GroupBox1)
Name=cmdmodiCaption='修改'
Button2(GroupBox1)
Name=cmdaddCaption='添加'
Button3(GroupBox1)
Name=cmddelCaption='删除'
Query1
DataSource1
DataSet=Query1
DBGrid1
DataSource=DataSource1Align=alClient
用户管理窗体主要代码如下:
type
……
procedurenewll。
//自定义过程实现数据刷新
public
add:
boolean。
end。
usesmain。
procedureTusergl_Form.newll。
begin
//查询用户表
Query1.Close。
Query1.SQL.Clear。
Query1.SQL.Add('select*fromuser')。
Query1.Open。
//根据用户存在与否,设置按钮的可用性
ifQuery1.RecordCount>0then
begin
cmdmodi.Enabled:
=True。
cmddel.Enabled:
=True。
cmdadd.Enabled:
=True。
end
else
begin
cmdmodi.Enabled:
=False。
cmddel.Enabled:
=False。
cmdadd.Enabled:
=True。
end。
end。
procedureTusergl_Form.FormShow(Sender:
TObject)。
begin
newll。
end。
procedureTusergl_Form.FormClose(Sender:
TObject。
varAction:
TCloseAction)。
begin
Action:
=caFree。
MainForm.N11.Enabled:
=True。
end。
procedureTusergl_Form.FormCreate(Sender:
TObject)。
begin
add:
=False。
end。
//实现数据与文本框的绑定
procedureTusergl_Form.DBGrid1CellClick(Column:
TColumn)。
begin
ifQuery1.RecordCount>0then
begin
yhm_LEdit.Text:
=Query1.FieldByName('yhm').AsString。
mm_LEdit.Text:
=Query1.FieldByName('mm').AsString。
qx_CBox.ItemIndex:
=Query1.FieldByName('qx').AsInteger。
end。
end。
//实现用户修改功能
procedureTusergl_Form.cmdmodiClick(Sender:
TObject)。
var
id,yhm,qx,mm,sqlstr:
string。
begin
//数据合法性检查
yhm:
=Trim(yhm_LEdit.Text)。
ifLength(yhm)<1then
begin
ShowMessage('系统用户名不能为空')。
exit。
end。
mm:
=Trim(mm_LEdit.Text)。
ifLength(mm)<1then
begin
ShowMessage('系统用户的密码不能为空')。
exit。
end。
qx:
=IntToStr(qx_CBox.ItemIndex)。
id:
=Query1.FieldByName('id').AsString。
//执行检验用户名是否有重复的SQL语句
sqlstr:
='select*fromuserwhere(yhm='''+yhm+''')and(id<>'''+id+''')'。
withTQuery.Create(nil)do
begin
try
Close。
SQL.Clear。
SQL.Add(sqlstr)。
Open。
ifRecordCount>0then
begin
ShowMessage('修改的系统用户名有重复,请重新输入!
')。
exit。
end
else
begin
//执行修改系统用户信息的SQL语句
sqlstr:
='updateusersetyhm='''+yhm+''',mm='''+mm。
sqlstr:
=sqlstr+''',qx='''+qx+'''where(id='''+id+''')'。
Close。
SQL.Clear。
SQL.Add(sqlstr)。
ExecSQL。
end。
finally
Free。
end。
ShowMessage('成功修改系统用户!
')。
newll。
end。
end。
//实现用户添加功能
procedureTusergl_Form.cmdaddClick(Sender:
TObject)。
var
id,yhm,qx,mm,sqlstr:
string。
begin
//判断是否处于添加状态
ifaddthen
begin
yhm:
=Trim(yhm_LEdit.Text)。
ifLength(yhm)<1then
begin
ShowMessage('系统用户名不能为空')。
exit。
end。
mm:
=Trim(mm_LEdit.Text)。
ifLength(mm)<1then
begin
ShowMessage('系统用户的密码不能为空')。
exit。
end。
qx:
=IntToStr(qx_CBox.ItemIndex)。
id:
=Query1.FieldByName('id').AsString。
sqlstr:
='select*fromuserwhere(yhm='''+yhm+''')'。
withTQuery.Create(nil)do
begin
try
Close。
SQL.Clear。
SQL.Add(sqlstr)。
Open。
//判断添加的用户名是否有重复
ifRecordCount>0then
begin
ShowMessage('添加的系统用户名有重复,请重新输入!
')。
exit。
end
else
//用户名无重复,添加用户记录
begin
sqlstr:
='insertintouser(yhm,mm,qx)values('''+yhm+''','''+mm+''','''+qx+''')'。
Close。
SQL.Clear。
SQL.Add(sqlstr)。
ExecSQL。
end。
finally
Free。
end。
ShowMessage('成功添加系统用户!
')。
newll。
cmdadd.Caption:
='添加'。
end。
end
else
begin
cmdadd.Caption:
='保存'。
add:
=True。
yhm_LEdit.Clear。
mm_LEdit.Clear。
qx_CBox.ItemIndex:
=0。
end。
end。
//实现系统用户删除功能
procedureTusergl_Form.cmddelClick(Sender:
TObject)。
varid:
string。
begin
try
ifMessageDlg('确认要删除选中的系统用户吗?
',mtConfirmation,
[mbYes,mbNo],0)=mrYesthen
begin
id:
=Query1.FieldByName('id').AsString。
withTQuery.Create(nil)do
begin
try
Close。
SQL.Clear。
SQL.Add('deletefromuserwhereid='''+id+'''')。
ExecSQL。
finally
Free。
end。
end。
ShowMessage('成功删除系统用户')。
newll。
end。
except
end。
end。
4.修改密码窗体设计
用户登录后可以自己修改密码,这样既能保证系统的安全性,同时又减少了系统管理员的工作量。
修改密码窗体保存为password.pas,界面设计如图7-7所示,包含三个Label组件、三个Edit组件和两个Button组件。
图7-7修改密码窗体设计
窗体主要组件属性设置见表7-11。
表7-11修
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 案例 高校 工资管理 系统