员工信息管理系统课程设计Word文件下载.docx
《员工信息管理系统课程设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《员工信息管理系统课程设计Word文件下载.docx(46页珍藏版)》请在冰点文库上搜索。
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:
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
性别
7
身份证号
8
出生日期
9
学历
私人电话
11
工作电话
12
备注
100
(2)部门表
用于存放员工的部门信息,包括部门编号、部门名称和备注。
部门名称
(3)职务表
用于存放员工的职务信息,包括职务编号、职务名称和备注。
职务名称
(4)工资表
用于存放员工的工资信息,包括员工编号、工资类别编号、金额和备注。
有重复
工资类别编号
金额
单精度型
(5)工资类别表
用于存放员工的工资类别,包括工资类别编号、工资类别名称和备注。
工资类别名称
(6)用户表
用于存放系统的用户名和密码,包括用户名、密码和备注。
用户名
密码
30
确认密码
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:
Help:
FileExitItem:
WindowCascadeItem:
WindowTileItem:
WindowArrangeItem:
HelpAboutItem:
WindowMinimizeItem:
ActionList:
TActionList。
FileExit:
TAction。
WindowCascade1:
TWindowCascade。
WindowTileHorizontal1:
TWindowTileHorizontal。
WindowArrangeAll1:
TWindowArrange。
WindowMinimizeAll1:
TWindowMinimizeAll。
HelpAbout1:
WindowTileVertical1:
TWindowTileVertical。
WindowTileItem2:
ImageList:
TImageList。
FileWage:
FilePersonnel:
FileDepartment:
ADOConnection:
TADOConnection。
FilePost:
N1:
FileWageCategory:
Image1:
TImage。
FileUser:
ADOQueryDelete:
TADOQuery。
FileDataInit:
procedureHelpAbout1Execute(Sender:
TObject)。
procedureFileExitExecute(Sender:
procedureFilePersonnelClick(Sender:
procedureFileDepartmentClick(Sender:
procedureFilePostClick(Sender:
procedureFileWageCategoryClick(Sender:
procedureFileWageClick(Sender:
procedureFormActivate(Sender:
procedureFileUserClick(Sender:
procedureFileDataInitClick(Sender:
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:
begin
Close。
end。
procedureTMainForm.HelpAbout1Execute(Sender:
AboutBox.ShowModal。
procedureTMainForm.FilePersonnelClick(Sender:
MDIPersonnel:
TMDIPersonnel。
i:
integer。
fori:
=0toMDIChildCount-1do
ifMDIChildren[i]isTMDIPersonnelthen
begin
MDIChildren[i].BringToFront。
ifMDIChildren[i].WindowState=wsMinimizedthen
MDIChildren[i].WindowState:
=wsNormal。
Exit。
MDIPersonnel:
=TMDIPersonnel.Create(Application)。
MDIPersonnel.Show。
procedureTMainForm.FileDepartmentClick(Sender:
MDIDepartment:
TMDIDepartment。
ifMDIChildren[i]isTMDIDepartmentthen
MDIDepartment:
=TMDIDepartment.Create(Application)。
MDIDepartment.Show。
procedureTMainForm.FilePostClick(Sender:
MDIPost:
TMDIPost。
ifMDIChildren[i]isTMDIPostthen
MDIPost:
=TMDIPost.Create(Application)。
MDIPost.Show。
procedureTMainForm.FileWageCategoryClick(Sender:
MDIWageCategory:
TMDIWageCategory。
ifMDIChildren[i]isTMDIWageCategorythen
MDIChildren[i].BringT