*************人事工资管理系统09地理信息系统一.开发背景企业在发展中不断地壮大,员工也随之增加。对于人事管理部门来说,迫切地需要一个操作方便、功能简单实用,可以满足企业对员工的档案及工资信息进行管理系统。在企业选择人事工资管理系统时,主要存在以下几个方面的要求:(1)对企业员工的档案进行管理(2)系统的功能要符合本企业的基本情况(3)系统的功能操作要简单、实用、操作方便,不要出现复杂的操作。(4)可以方便地对工资信息进行打印。二.需求分析通过实际调查,要求本系统具有以下功能:良好的人机界面。方便的添加和修改数据功能。方便的数据查询功能。方便的数据打印功能。在相应的窗体中,可方便地删除数据。三.系统设计1.系统目标(1)界面友好、操作方便(2)可以对员工档案进行管理,包括增、删、改、查。(3)实现奖罚管理。(4)可以使用操作员管理修改口令和更改操作员。、(5)系统运行稳定、安全可靠。2.系统预览3.业务流程图人事工资管理系统的业务流程如图:4.数据库概念设计应用程序开发过程中,对数据库的操作时必不可少的,数据库设计师根据程序的需求及其实现功能所制定的,数据库设计得是否合理将直接影响程序的开发进程。(1)数据库设计在系统开发中占有非常重要的比重,它是通过管理系统的整体需求而制定的,数据库设计的好坏直接影响到系统的后期开发。下面对本系统中具有代表性的数据库设计做详细说明。在本系统中,为了提高系统的安全性,每一个用户都要使用正确的用户名和密码才能进入主窗体,而且还需要根据指定的用户名提供相应的权限,为了能够验证正确的用户名和密码得到相应的权限,应在数据库中创建登录表。登录用户信息表的实体E-R图:员工档案信息表的实体E-R图:员工工资信息表的实体E-R图:(2)数据库逻辑结构设计根据上面设计好的E-R图,可以在数据库中创建相应的数据表db_User(登录表)字段名数据类型长度主键用户编号Int4是UserNamevarchar20否UserPwdvarchar15否权限varchar10否db_employee(员工档案信息表)字段名数据类型长度主键员工编号Int4是Char10否性别Char10否年龄Int4否民族Varchar10否职务Char10否db_pay(员工工资信息表)字段名数据类型长度主键员工编号Int4是工资月份Varchar50是基本工资decimal9否职务津贴decimal9否奖励金额decimal9否罚款金额decimal9否应发工资decimal9否实发工资decimal9否四.公共类设计项目开发过程中,通常会以类的形式来组织、封装一些常用的方法和事件,这样做不仅可以提高代码的重用率,也大大方便了用户对代码的管理。在本系统中,主要建立了两个公共类,分别为DBConnection类和DBOperate类。DBConnection类主要用于连接数据库;在DBOperate类中则定义了一些操作数据库的公用方法,分别用于实现各种功能,下面详细介绍这两个类。1.DBConnection公共类DBConnection类是数据库连接类,此类主要用于连接SQLServer数据库,在连接数据库时,只需调用此类中的MYConnection即可,其实现代码如下:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Data.SqlClient;namespacePMSClass{classDBConnetion{publicstaticSqlConnectionMYConnection(){returnnewSqlConnection("server=.;database=db_PMS;user=sa;pwd=123");}}}2.DBOperate公共类DBOperate类中建立了多个方法用于执行不同的SQL语句usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;usingSystem.Data;namespaceWindowsFormsApplication1{classDBOperate{SqlConnectionconn=PMSClass.DBConnetion.MYConnection();publicintOperateData(stringstrSql){conn.Open();SqlCommandcmd=newSqlCommand(strSql,conn);inti=(int)cmd.ExecuteNonQuery();conn.Close();returni;}publicDataSetgettable(stringsql){DataSetds=newDataSet();SqlDataAdaptersda=newSqlDataAdapter(sql,conn);sda.Fill(ds);ds.Dispose();returnds;}publicvoidBindDataGridView(DataGridViewdgv,stringsql){DataSetds=newDa...