员工培训管理系统DOC文档格式.docx
《员工培训管理系统DOC文档格式.docx》由会员分享,可在线阅读,更多相关《员工培训管理系统DOC文档格式.docx(46页珍藏版)》请在冰豆网上搜索。
2.2.1系统设计目标4
2.2.2开发设计思想4
2.2.3系统功能模块设计4
第三章数据库设计6
3.1引入背景6
3.2数据库需求分析6
3.3数据库概念结构设计7
3.4数据库逻辑结构设计9
第四章系统详细设计与实现11
4.1公共类设计与实现11
4.2数据访问层类设计与实现12
4.3业务逻辑层类设计与实现16
4.4界面设计及实现20
4.4.1登陆界面及代码20
4.4.2管理员主界面及代码22
4.4.3员工主界面及代码24
4.4.4教员主界面及代码26
第五章系统测试28
5.1管理员功能测试28
5.2员工功能测试29
5.3教员功能测试30
结论31
心得体会32
参考文献33
第一章开发环境和开发工具
1.1C#语言简介
C#是微软公司在2000年7月发布的一种全新且简单、安全、面向对象的程序设计语言,是专门为.NET的应用而开发的语言。
它吸收了C++、VisualBasic、Delphi、Java等语言的优点,体现了当今最新的程序设计技术的功能和精华。
C#继承了C语言的语法风格,同时又继承了C++的面向对象特性。
不同的是,C#的对象模型已经面向Internet进行了重新设计,使用的是.NET框架的类库;
C#不再提供对指针类型的支持,使得程序不能随便访问内存地址空间,从而更加健壮;
C#不再支持多重继承,避免了以往类层次结构中由于多重继承带来的可怕后果。
.NET框架为C#提供了一个强大的、易用的、逻辑结构一致的程序设计环境。
同时,公共语言运行时(CommonLanguageRuntime)为C#程序语言提供了一个托管的运行时环境,使程序比以往更加稳定、安全。
其特点有:
语言简洁、保留了C++的强大功能、快速应用开发功能、语言的自由性、强大的Web服务器控件、支持跨平台、与XML相融合。
1.2开发背景
随着当今世界计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现企业管理势在必行。
使用传统的手工管理方式,一方面效率低下,另一方面容易造成错误。
只有将计算机引入企业的管理,才能真正形成现代化企业的组织形式、管理和运用方式,才能真正体现企业规范化、科学化、现代化管理的手段。
各行各业的管理、控制都越来越离不开计算机的辅助。
“员工培训管理系统”的开发就是为了辅助大多数企业的员工培训管理,实现培训信息管理的系统化、规范化和自动化。
以前的手工管理效率低是最明显的缺陷,另外,数据的一致性不好维护,如某个员工信息的某条记录有所改动,那么该员工的其他记录就与此不一致,造成查询的费时费力。
要把全部数据都更改又相当不方便。
对培训信息盘点也很不方便,而且需要较多的人来进行管理操作,而且容易出错,造成数据的不一致。
因此,运用高效、准确的员工培训管理系统来替代手工管理是完善员工培训管理的有效手段。
鉴于此,本文研究了一种基于关系型数据库的员工培训管理方案。
利用SQLServer2005数据库管理系统灵活性和开发效率高的特点,采用面向对象的C#的方法,开发出员工培训管理系统。
该系统具有手工管理所无法比拟的优点,如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、信息利用率高、成本低等。
该系统能够极大地提高处理的效率,为企业管理的信息化、正规化奠定了坚实的基础。
1.3开发环境
本系统开发所采用的开发环境是MicrosoftVisualStudio2005,采用C#作为前台开发工具,SQLServer2005作为后台数据库平台的基于C/S模式的三层模式的员工培训管理系统。
第二章员工培训管理系统的分析与设计
2.1系统需求分析
2.1.1用户需求分析
这个系统是帮助完成日常繁重业务的工具。
借助计算机系统,使他们凌乱的工作变得有条理,解脱需要记忆大量信息的困难。
减轻汇总、统计、报告和传递这些信息的负担。
尽量符合功能完整,操作简单,响应迅速,界面友善,易学易用成为这类软件必须满足的要求。
管理员登陆以后可以很方便的实现人员和课程的管理。
这个员工培训管理系统主要涉及管理员对员工的操作、对课程的操作和对教员的操作,以及审批员工对课程的申请,每个操作主要包括对数据的增加、删除、修改和查询。
员工登陆以后可以很方便的实现课程的申请和查看申请结果以及自己的课程成绩。
教员登陆后可以查看自己的授课情况和对学生的成绩进行录入。
每类角色都可以对自己的信息进行修改。
系统从用户的角度出发,使用C/S结构,对于页面的美观也需要做一番苦功。
在登陆及各个模块的功能做到最好的人性化和审美的结合。
2.1.2功能需求分析
(1)登陆功能
只是一个企业的员工培训管理系统,需要有账号和密码才能进入进行操作。
(2)管理员功能
管理员登陆后可以添加、查询、修改和删除员工信息、课程信息和教员信息,处理课程申请。
其中查询可以根据不同的查询条件进行查询。
(3)员工功能
员工登陆后可以进行选课,选课后可以随时查询自己选课的结果是否被审批,还可以查询自己的课程成绩,查询要根据课程号进行查询。
(4)教员功能
教员登陆后可以查询自己的授课情况,还可以对选修自己课程的同学进行成绩录入,录入的时候按课程号查询后按课程录入。
2.2系统总体设计
2.2.1系统设计目标
本系统为了实现企业轻松方便地实现员工培训管理,现提出以下目标:
(1)系统应具有实用性、可靠性和适用性;
(2)要有良好的编程风格和界面设计;
(3)要有全面的系统分析与功能分析;
(4)能够按照不同的条件进行简单快速查询;
(5)能够完成系统中信息的录入、修改、删除与查询等操作;
(6)方便用户的操作,尽量减少用户不必要的操作。
2.2.2开发设计思想
基于以上系统设计目标,本文在开发员工培训管理系统时遵循了以下开发设计思想:
(1)尽量企业现有软硬环境,及先进的管理系统开发方案,从而达到充分利用企业现有资源,提高系统开发水平和应用效果的目的。
(2)系统应符合企业员工培训管理的规定,满足企业日常员工培训工作的需要,并达到操作过程中的直观、方便、实用、安全等要求。
(3)系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。
(4)系统应具备数据库维护功能,及时根据用户需求进行数据的增加、删除、修改、备份等操作。
2.2.3系统功能模块设计
本系统分为四个模块:
系统登陆模块、管理员功能块、员工功能块和教员功能块。
得到如图2-1所示的系统功能模块图。
图2-1系统功能模块图
第三章数据库设计
3.1引入背景
员工培训管理系统是一个数据库应用系统,员工的所有信息都保存在数据库中。
数据库结构设计是数据库应用系统开发过程中一个非常重要的环节,设计的好坏将直接对所开发的人事管理信息系统的效率以及实现的效果产生影响。
好的数据库结构设计会减少数据库的存储量,数据的完整性和一致性比较高,系统具有较快的响应速度,简化基于此数据库的应用程序的实现等等。
数据库结构设计主要就是要设计好数据库中各个表的结构,包括信息保存在哪些表格中、各个表的结构如何以及各个表之间的关系。
由于数据库设计的重要性,人们提出了许多数据库结构设计的技术。
3.2数据库需求分析
数据库需求分析是数据库结构设计的第一个阶段,也是非常重要的一个阶段。
在这个阶段主要工作是收集基本数据以及数据处理的流程,为以后进一步设计一打下基础。
需求分析主要解决两个问题:
(1)内容要求。
调查应用系统用户所需要操作的数据,决定在数据库中存储什么数据。
(2)处理要求。
调查应用系统用户要求对数据库进行什么样的处理,理清数据库中各种数据之间的关系。
在数据库需求分析后,得到一个数据字典文档,包括3方面内容。
(1)数据项。
包括名称、含义、类型、取值范围、长度以及和其他数据项之间的逻辑关系。
(2)数据结构。
若干个数据项的有意义的集合,包括名称、含义以及组成数据结构的数据项。
(3)数据流。
指数据中数据的处理过程,包括输入、处理和输出。
本系统数据项和数据结构设计如下:
(1)员工基本情况。
包括的数据项有员工号、员工姓名、性别、所属部门、出生日期、联系地址、联系电话、入职时间、密码、备注。
(2)企业部门信息。
包括的数据项有部门号、部门名称、部门负责人。
(3)教员基本情况。
包括教员编号、教员姓名、性别、所属部门、出生日期、联系地址、联系电话、入职时间、备注。
(4)课程信息。
包括的数据项有课程号、课程名称、学时。
(5)成绩。
包括的数据项有课程号、员工号、成绩。
(6)授课信息。
包括的数据项有课程号、教员号、备注。
(7)申请课程信息。
包括的数据项有申请编号、课程号、员工号、申请时间、标记。
3.3数据库概念结构设计
数据库概念结构设计是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。
用E-R图是描述数据实体关系的一种直观描述工具,所以本系统采用了E-R图的方法进行数据库概念结构设计。
图3-1为员工实体E-R图
图3-1员工实体E-R图
图3-2为教员实体E-R图
图3-2教员实体E-R图
图3-3为部门E-R图
图3-3部门E-R图
图3-4为课程实体E-R图
图3-4课程E-R图
一个部门可以拥有多个员工,一个员工只能属于一个部门,一个员工可以选择多门课程,一门课程也可以被多个员工选择,一个教员可以讲授多门课程,一门课程也可以被多个教员讲授,图3-5为各实体间的关系E-R图
图3-5实体关系E-R图
3.4数据库逻辑结构设计
概念结构是独立于实际数据模型的信息结构,必须将其转化为逻辑结构后才能进行数据库应用的设计。
也就是要将概念上的结构转化为数据库系统所支持的实际数据模型。
员工培训管理系统数据库中涉及到了7个表。
员工基本情况表的主键为员工编号,设置为int类型的,而且是被标识的,种子为1000,增量为1,如表3-1所示。
表3-1员工基本情况表
列名
数据类型
说明
Eid
int
员工编号
Ename
varchar(20)
员工姓名
Egender
char
(2)
性别
Edept
所属部门
Ebirthday
datetime
出生日期
Estarttime
入职时间
Etel
varchar(12)
联系电话
Epass
密码
Eremark
varchar(50)
备注
教员基本情况表的主键为教员编号,设置为int类型的,而且是被标识的,种子为1000,增量为1,如表3-2所示。
表3-2教员基本情况表
Tid
Tname
Tgender
Tbirthday
Tstarttime
Ttel
Tpass
Tremark
课程申请表的主键为申请编号,设置为int类型的,而且是被标识的,种子为1000,增量为1,课程编号和员工编号都是外码,申请时间是插入记录时的系统时间,如表3-3所示。
表3-3课程申请表
Aid
申请编号
Cid
课程编号
Applytime
申请时间
Mark
标记
课程信息表的主键为课程编号,如表3-4所示。
表3-4课程信息表
Cname
课程名称
Cdata
学时
部门表的主键为部门编号,如表3-5所示。
表3-5部门表
Did
部门编号
Dname
部门名称
Dmanager
负责人
成绩表的主键为员工编号和课程编号,如表3-6所示。
表3-6成绩表
Score
float
成绩
授课表的主键为课程编号和教员编号,如表3-7所示。
表3-7授课表
在此基础上输入数据完成表的创建。
第四章系统详细设计与实现
4.1公共类设计与实现
User类,用来传送关于员工信息的类:
publicclassuser
{
privateint_id;
//编号
privatestring_name;
//姓名
privatestring_pass;
//密码
publicstringgender;
//性别
publicintdept;
//系部
publicDateTimebirthday;
//生日
publicstringaddress;
//地址
publicDateTimestime;
//入职时间
publicstringtel;
//联系电话
publicstringremark;
//备注
publicintid
get{return_id;
}
set{_id=value;
publicstringname
get{return_name;
set{_name=value;
publicstringpass
get{return_pass;
set{_pass=value;
publicuser()
publicuser(Stringname,stringpass)
this._name=name;
this._pass=pass;
}
Course类,用来传送关于课程的信息数据:
publicclasscourse
//名称
publicintdata;
//学时
publiccourse()
4.2数据访问层类设计与实现
操作数据库类DB:
publicclassDB
privatestaticstring_connStr=@"
DataSource=.;
InitialCatalog=STMS;
IntegratedSecurity=True"
;
privatestaticSqlConnectionsqlcon=null;
privatestaticvoidSqlConnection()
if(sqlcon==null)
sqlcon=newSqlConnection(_connStr);
sqlcon.Open();
elseif(sqlcon.State==ConnectionState.Closed||sqlcon.State==ConnectionState.Broken)
sqlcon.Close();
//执行Insert/update/delete,不带参数
publicstaticintExecuteNoQuery(stringstrsql)
inti=-1;
try
SqlConnection();
SqlCommandsqlcmd=newSqlCommand(strsql,sqlcon);
i=sqlcmd.ExecuteNonQuery();
returni;
catch
return-1;
//执行SQL语句,返回特定列的值,不带参数
publicstaticintExecute(stringstrsql)
i=int.Parse(sqlcmd.ExecuteScalar().ToString());
publicstaticSqlDataReaderExecutereader(stringstrsql)
SqlDataReadersdr=sqlcmd.ExecuteReader();
returnsdr;
returnnull;
//执行select,不带参数
publicstaticDataTableGetTable(stringstrsql)
SqlDataAdapterda=newSqlDataAdapter(strsql,sqlcon);
DataSetds=newDataSet();
da.Fill(ds,"
temp"
);
returnds.Tables["
];
操作员工的userserver类:
publicclassuserserver
{
//增加员工
publicstaticintAddUser(useru)
stringstr="
insertintoEmployer(Ename,Egender,Edept,Ebirthday,Eaddress,Estarttime,Etel,Epass,Eremark)values('
"
+u.name+"
'
'
+u.gender+"
+u.dept+"
+u.birthday+"
+u.address+"
+u.stime+"
+u.tel+"
+u.pass+"
+u.remark+"
)"
inti=DB.ExecuteNoQuery(str);
;
return0;
//更新记录
publicstaticintUpdateUser(useru)
UPDATEEmployerSETEname='
Egender='
Edept="
Ebirthday='
Eaddress='
Estarttime='
Etel='
Epass='
Eremark='
whereEid='
+u.id+"
//按编号查询记录
publicstaticDataTableSelectUser(useru)
selectEidas编号,Enameas姓名,Egenderas性别,Edeptas部门,Ebirthdayas出生年月,Eaddressas地址,Estarttimeas入职时间,Etelas电话,Epassas密码,Eremarkas备注fromEmployerwhereEid='
+u.id+"
DataTables=DB.Ge