员工信息管理系统课程设计.docx
《员工信息管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《员工信息管理系统课程设计.docx(38页珍藏版)》请在冰豆网上搜索。
![员工信息管理系统课程设计.docx](https://file1.bdocx.com/fileroot1/2023-1/5/33617543-ad37-4256-bbf8-cb3923da2865/33617543-ad37-4256-bbf8-cb3923da28651.gif)
员工信息管理系统课程设计
《信息系统设计》
软件工程课程设计
课题名称:
职员信息治理系统
姓名:
兰朝仁
学号:
080153035
学院:
接着教育学院
专业:
计算机科学与技术
年级:
2008级(夜大专升本)
指导教师:
陈郞钦
完成日期:
2010年10月11日
【摘要】本文从职员信息治理系统规划、需求分析、系统设计、系统实现及系统测试等多个方面,分不叙述系统研发的整个实现过程,简述采纳Delphi7编程工具及Access数据库实现系统应用的设计要点,重点阐述系统实现过程中的重点和难点问题的分析及其解决方案,解决企业对职员的计算机治理。
【关键词】职员、人事、工资、治理、数据库
引言
随着我国国民经济建设的蓬勃进展和社会主义市场经济体制的迅速完善,各个行业都在积极使用现代化的手段,不断改善服务质量,提高工作效率,这些都在专门大程度上给企业提出越来越严峻的挑战,对企业体系不管是在行政职能、企业治理水平以及优质服务上都提出更高的要求。
建设一个科学高效的信息治理系统是解决这一问题的必由之路。
职员信息治理作为企业内部的一种职员差不多档案治理也是如此,由于企业的人数较多,每一位职员的具体实际情况也不尽相同,假如没有一个完整的职员信息治理系统去完成,将使工作变得复杂,同时关于工作的效率也将使一个致命的打击,使不管如何也无法适应现代社的需要。
另外,目前部分企业使用的职员信息治理系统只有信息的录入,修改和删除的功能,而不具有信息查询的功能,这关于企业的信息治理工作来讲是一个专门遗憾的情况。
因此,开发一套功能完整,设计合理,使用方便的企业职员信息治理系统成为专门有必要的情况。
企业职员信息治理系统的内容功能关于企业的决策者和治理者来讲都至关重要,因此企业职员信息治理系统应该能够为治理者提供充足的信息和快捷的查询与治理手段。
作为计算机应用的一部分,使用计算机对企业职员信息进行治理,具有手工治理所无法比拟的优点.例如:
查询迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够降低职员治理工作的成本,减轻企业治理人员的负担,方便职员信息的更新、维护和查询,增加数据的可靠性;从而提高企业职员信息治理的效率,开拓企业职员治理工作的新局面,提高治理水平,是企业治理的科学化、正规化、信息化治理,与世界接轨的重要条件。
当前主流的程序开发环境有MicrosoftVisualStudio.NET,SunJava,BorlandDelphi等。
VisualStudio.NET对Windows系统兼容性好;Java能够支持多种环境及操作系统平台;而Delphi则可在Windows系统下快速开发C/S结构程序,具有多方成熟的控件完善系统开发。
主流的数据系统则有Oracle,MicrosoftSQLServer和Access。
Oracle功能强大,稳定性好;SQLServer稳定,功能齐全;而Access简单快速、小巧便捷。
下面采纳BorlandDelphi7开发环境,结合MicrosoftAccess数据库,对职员信息治理系统的开发过程和系统规划、系统需求及分析、系统设计、系统实现及系统测试等各个时期,论述其数据库应用系统的设计要点,实现过程中存在的难点、问题的分析及其解决方案。
1.系统规划
系统规划的要紧内容是信息系统设计的目标及信息系统的总体方案。
1.1系统设计目标
本系统的设计目标是建立企业对职员档案及工资的计算机治理系统。
1.2系统总体规划
系统本着合理性、可靠性和先进性的原则,实现:
(1)完整的数据分析系统,能对数据流实施操纵与动态分析;
(2)有功能强大、资料齐全的查询系统;
(3)方便用户使用及操作的界面,操作简便、运行稳定。
1.3设计方案(步骤)
在职员信息需求的基础上,提出整个信息系统的总体结构方案,确定系统开发设计的次序及时刻的安排。
具体分为五个步骤:
(4)分析职员档案及工资等信息治理的业务活动,搞清业务流程及数据流程;
(5)依照业务流程及数据流程,确定属于系统业务处理的范围;
(6)分析业务流程及数据流程所涉及的数据,确定数据库及其数据表;
(7)确定系统概要设计(总体结构、数据结构)、详细设计(模块、算法)框架;
(8)进行系统实施过程的程序设计及其软件测试。
2.系统分析
系统分析的最要紧内容有职员信息治理系统的业务需求分析、业务流程图、数据流程图、数据库设计等四个部分。
2.1业务需求与分析
(1)系统数据需求
通过对企业职员的信息治理业务流程的调查,总结系统对其数据的需求,要紧有:
职员档案信息,
职职员资信息,
部门、职务、工资类型等基础信息
(2)系统功能需求
系统的要紧需求,即所设计的系统在功能上应做什么。
本系统要紧的功能有:
职员治理:
完成职员档案的新增、修改、删除、查询及打印等功能;要紧实现对所有职员的姓名、编号、部门、职务、入职时刻、性不、身份证号、出生日期、学历、私人电话及工作电话等信息的治理。
工资治理:
完成职职员资的录入、查询、分析及相关打印等功能;要紧实现对职员的姓名、工资类不及工资金额等信息的治理。
差不多信息治理:
完成部门设置、职务设置、工资类不设置、用户口令设置,系统数据初始化等功能。
部门设置要紧实现部门编号和部门名称的设置;职务设置要紧实现职务编号和职务名称的设置;工资类不设置要紧实现工资类不编号和工资类不名称的设置;口令更改实现用户口令的修改;系统初始化清除系统所有历史数据,使数据库进入初始状态。
系统关心:
关心用户解决问题,沟通与软件开发者的联系。
(3)系统性能需求
系统的性能指标包括存储容量限制、运行时刻限制、传输速度要求、安全保密性等几个方面。
(4)系统运行环境需求
硬件方面:
采纳的设备机型以及外部设备等;
软件方面:
支持系统运行的系统软件,如操作系统、数据库系统等。
(5)系统可靠性及安全保密需求
对系统、重要子系统在运行中的安全、可靠、保密方面提出要求。
2.2系统业务流程图
从实际业务功能的角度将系统规划中有关的业务做进一步的分析,用一个完整的图型来反映业务处理过程。
系统业务流程图(TFD)如下:
2.3系统数据流程图
以数据流程图表示数据流向和对数据进行的加工;分析系统数据,对数据流图中的数据流给出具体定义。
系统的顶层数据流程图(DFD)如下:
3.系统设计
系统设计要紧有以下几项内容:
3.1系统软件功能结构
3.2系统要紧技术
本系统采纳BorlandDelphi7开发环境,结合MicrosoftAccess数据库。
BorlandDelphi7使用的是面向对象的ObjectPascal语言,能够灵活得进行大型应用系统的开发。
Delphi7提供了对数据库系统及标准SQL语言支持,能够开发出符合标准SQL的应用系统,提高系统的可移植性,可依照不同企业的需求,使用Oracle、SQLServer、Access等标准的SQL数据库。
同时,Delphi7自身提供了专门多数据库操作的控件,还有第三方优势的数据库操控件,从面更快,更好得开发出优秀的应用系统。
本系统就采纳了DevExpress公司的DevExpressVCL数据控件一起实现职员信息治理系统的开发。
3.3系统数据库设计
3.3.1数据库设计要点
(9)第一时期的设计任务是收集和分析用户需求,完成数据库的概念设计。
(10)第二时期设计任务是数据库的逻辑设计,完成E-R模型向逻辑模型转换。
(11)第三时期设计任务是数据库的物理设计,确定表的结构,建立数据库模型。
3.3.2数据库系统设计要点及难点
(12)建立数据库,确定数据库中表的数量及其每个表中各个字段的字段名、类型、宽度、小数及索引、排序。
(13)确定数据库中各个表的字段的主键值、主索引及一般索引。
(14)建立各个表数据环境,确定主表并建立主表与各个表之单的关联。
(15)程序设计过程中的标签、文本框、编辑框、复选框、列表框、数据库连接、数据查询的属性。
(16)采纳结构化编程方法,确定系统功能模块及其相互之间的关系。
3.3.3数据库及其表的建立和使用
使用Access程序建立Access数据库,建立相应表,设置各个表中具体字段名称、类型、主键、索引,设置各个表间的关系。
3.3.4系统组成及数据环境
(1)数据库:
PersonnelInfo.mdb
(2)表:
职员-职员信息表,工资-工资表,
部门-部门信息表,职务-职务信息表,
工资类不-工资类不信息表
(3)项目:
PersonnelInfo.dpr:
职员信息治理系统项目治理器
(4)表单:
Main.dfm-系统主界面Personnel.dfm-职员治理界面
Wage.dfm-工资治理界面Department.dfm-部门治理界面
Post.dfm-职务治理界面About.dfm-关于界面
WageCategory.dfm-工资类型治理界面
(5)程序:
Main.pas-系统主程序Personnel.pas-职员治理程序
Wage.pas-工资治理程序Department.pas-部门治理程序
Post.pas-职务治理程序About.pas-关于程序
WageCategory.pas-工资类型治理程序
(6)数据环境:
3.3.5数据库概念设计
数据库概念设计要紧采纳E-R模型进行设计.E-R模型的关系是确定每一处理模块的实体、实体属性和实体间的联系。
实体、属性、联系及数据结构描述如下:
(1)职员治理模块
实体:
职员、部门、职务;
属性:
职员的属性有姓名、职员编号、部门、职务、入职时刻、性不、身份证号、出生日期、学历、私人电话、工作电话及备注等;部门的属性有部门编号和部门名称;职务的属性有职务编号和职务名称。
联系:
职员与部门之间是多对一(M:
1)的关系;职员与职务之间也是多对一(M:
1)的关系。
数据项:
见数据库的物理设计。
(2)工资治理模块
实体:
工资、工资类不;
属性:
工资的属性有职员编号、工资类不和工资金额;工资类不有工资类不编号、工资类不名称。
关系:
工资类不与工资这间是一对一(1:
1)的关系。
数据项:
见数据库的物理设计。
3.3.6数据库逻辑设计
数据库的逻辑设计要紧完成从E-R模型向数据逻辑模型的转换。
首先将E-R模型中同一实体的所有属性放在同一记录类型中,变成记录的数据项;其次假如两个实体间有M:
N的关系,除各自建立记录类型之外,还需增加一个记录类型,这一记录类型应包括两个实体各自的主键。
逻辑模型规范化及总E-R图描述如下:
职员(职员编号、姓名、部门编号、职务编号、入职时刻、性不、身份证号、出生日期、学历、私人电话、工作电话、备注);
部门(部门编号、部门名称、备注);
职务(职务编号、职务名称、备注);
工资(职员编号、工资类型编号、金额、备注);
工资类不(工资类不编号、工资类不名称、备注);
用户(用户名、密码、确认密码、备注)。
消除冗余数据和联系后,其系统的E-R图如下:
3.3.7数据库物理设计
数据库的物理设计将完成数据逻辑模型向数据物理模型的转换。
每一记录类型确定为数据库中的一张表;记录类型中的数据项成为相应表中的字段,字段属性依照各字段特点设置;确定索引和表之间的联系。
系统表结构描述如下:
(1)职员表
用于存放职员信息,包括职员编号、姓名、部门编号、职务编号、入职时刻、性不、身份证号、出生日期、学历、私人电话、工作电话、备注。
字段
字段名称
类型
宽度
必需
索引
讲明
1
职员编号
文本
20
是
有无重复
主键
2
姓名
文本
10
是
3
部门编号
数字
长整型
4
职务编号
数字
长整型
5
入职时刻
日期/时刻
6
性不
文本
2
7
身份证号
文本
20
8
出生日期
日期/时刻
9
学历
文本
10
10
私人电话
文本
20
11
工作电话
文本
20
12
备注
文本
100
(2)部门表
用于存放职员的部门信息,包括部门编号、部门名称和备注。
字段
字段名称
类型
宽度
必需
索引
讲明
1
部门编号
数字
长整型
是
有无重复
主键
2
部门名称
文本
20
是
3
备注
文本
100
(3)职务表
用于存放职员的职务信息,包括职务编号、职务名称和备注。
字段
字段名称
类型
宽度
必需
索引
讲明
1
职务编号
数字
长整型
是
有无重复
主键
2
职务名称
文本
20
是
3
备注
文本
100
(4)工资表
用于存放职员的工资信息,包括职员编号、工资类不编号、金额和备注。
字段
字段名称
类型
宽度
必需
索引
讲明
1
职员编号
文本
20
是
有重复
主键
2
工资类不编号
数字
长整型
是
有重复
主键
3
金额
数字
单精度型
4
备注
文本
100
(5)工资类不表
用于存放职员的工资类不,包括工资类不编号、工资类不名称和备注。
字段
字段名称
类型
宽度
必需
索引
讲明
1
工资类不编号
数字
长整型
是
有无重复
主键
2
工资类不名称
文本
20
是
3
备注
文本
100
(6)用户表
用于存放系统的用户名和密码,包括用户名、密码和备注。
字段
字段名称
类型
宽度
必需
索引
讲明
1
用户名
文本
20
是
有无重复
主键
2
密码
文本
30
是
3
确认密码
文本
30
是
4
备注
文本
100
3.4输出设计
(1)选择输出方式:
显示终端、打印机;
(2)确定输出格式:
格式设计体现在各类报表中;
(3)输出的要紧形式:
报表;
(4)输出的内容:
要紧有职员信息、工资信息、部门信息、职务信息、工资类不信息和用户信息。
3.5输入设计
(1)输入方式设计
键盘输入和鼠标操作,为常规的数据录入方式;
磁盘传递数据。
(2)用户界面设计(详见各子模块用户界面)
人机对话方式:
通过屏幕、键盘、鼠标与系统对话,当操作错误时系统给出提示和警告。
菜单方式:
设计成下拉式、上弹式、按钮式,功能选择:
有光带移动、数字或字母选择、鼠标驱动。
4.系统实现
系统实施的最要紧工作是程序设计,此外还包括了物理系统的实施、程序的调试等。
本系统的程序设计由主程序和各模块表单程序等两大部份组成。
4.1系统主程序流程
4.2系统主界面设计
4.3系统主程序设计
unitMain;
interface
usesWindows,SysUtils,Classes,Graphics,Forms,Controls,Menus,
StdCtrls,Dialogs,Buttons,Messages,ExtCtrls,ComCtrls,StdActns,
ActnList,ToolWin,ImgList,DB,ADODB,cxControls,cxContainer,cxEdit,
cxLabel;
type
TMainForm=class(TForm)
MainMenu:
TMainMenu;
File1:
TMenuItem;
Window:
TMenuItem;
Help:
TMenuItem;
FileExitItem:
TMenuItem;
WindowCascadeItem:
TMenuItem;
WindowTileItem:
TMenuItem;
WindowArrangeItem:
TMenuItem;
HelpAboutItem:
TMenuItem;
WindowMinimizeItem:
TMenuItem;
ActionList:
TActionList;
FileExit:
TAction;
WindowCascade1:
TWindowCascade;
WindowTileHorizontal1:
TWindowTileHorizontal;
WindowArrangeAll1:
TWindowArrange;
WindowMinimizeAll1:
TWindowMinimizeAll;
HelpAbout1:
TAction;
WindowTileVertical1:
TWindowTileVertical;
WindowTileItem2:
TMenuItem;
ImageList:
TImageList;
FileWage:
TMenuItem;
FilePersonnel:
TMenuItem;
FileDepartment:
TMenuItem;
ADOConnection:
TADOConnection;
FilePost:
TMenuItem;
N1:
TMenuItem;
FileWageCategory:
TMenuItem;
Image1:
TImage;
FileUser:
TMenuItem;
ADOQueryDelete:
TADOQuery;
FileDataInit:
TMenuItem;
procedureHelpAbout1Execute(Sender:
TObject);
procedureFileExitExecute(Sender:
TObject);
procedureFilePersonnelClick(Sender:
TObject);
procedureFileDepartmentClick(Sender:
TObject);
procedureFilePostClick(Sender:
TObject);
procedureFileWageCategoryClick(Sender:
TObject);
procedureFileWageClick(Sender:
TObject);
procedureFormActivate(Sender:
TObject);
procedureFileUserClick(Sender:
TObject);
procedureFileDataInitClick(Sender:
TObject);
private
{Privatedeclarations}
public
{Publicdeclarations}
end;
var
MainForm:
TMainForm;
ShowLogin:
Boolean=True;
implementation
{$R*.dfm}
usesLogin,Personnel,Department,Post,Wage,WageCategory,User,About;
procedureTMainForm.FileExitExecute(Sender:
TObject);
begin
Close;
end;
procedureTMainForm.HelpAbout1Execute(Sender:
TObject);
begin
AboutBox.ShowModal;
end;
procedureTMainForm.FilePersonnelClick(Sender:
TObject);
var
MDIPersonnel:
TMDIPersonnel;
i:
integer;
begin
fori:
=0toMDIChildCount-1do
ifMDIChildren[i]isTMDIPersonnelthen
begin
MDIChildren[i].BringToFront;
ifMDIChildren[i].WindowState=wsMinimizedthen
MDIChildren[i].WindowState:
=wsNormal;
Exit;
end;
MDIPersonnel:
=TMDIPersonnel.Create(Application);
MDIPersonnel.Show;
end;
procedureTMainForm.FileDepartmentClick(Sender:
TObject);
var
MDIDepartment:
TMDIDepartment;
i:
integer;
begin
fori:
=0toMDIChildCount-1do
ifMDIChildren[i]isTMDIDepartmentthen
begin
MDIChildren[i].BringToFront;
ifMDIChildren[i].WindowState=wsMinimizedthen
MDIChildren[i].WindowState:
=wsNormal;
Exit;
end;
MDIDepartment:
=TMDIDepartment.Create(Application);
MDIDepartment.Show;
end;
procedureTMainForm.FilePostClick(Sender:
TObject);
var
MDIPost:
TMDIPost;
i:
integer;
begin
fori:
=0toMDIChildCount-1do
ifMDIChildren[i]isTMDIPostthen
begin
MDIChildren[i].BringToFront;
ifMDIChildren[i].WindowState=wsMinimizedthen
MDIChildren[i].WindowState:
=wsNormal;
Exit;
end;
MDIPost:
=TMDIPost.Create(Application);
MDIPost.Show;
end;
procedureTMainForm.FileWageCategoryClick(Sender:
TObject);
var
MDIWageCategory:
TMDIWageCategory;
i:
integer;
begin
fori:
=0toMDIChildCount-1do
ifMDIChildren[i]isTMDIWageCategorythen
begin
MDIChildren[i].Bring