人事工资管理系统设计
************* 人事工资管理系统 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(登录表) 字段名 用户编号 UserName UserPwd 权限 数据类型 Int varchar varchar varchar 长度 4 20 15 10 主键 是 否 否 否 db_employee(员工档案信息表) 字段名 员工编号 性别 年龄 民族 职务 db_pay(员工工资信息表) 字段名 员工编号 工资月份 基本工资 职务津贴 奖励金额 罚款金额 应发工资 实发工资 数据类型 Int Varchar decimal decimal decimal decimal decimal decimal 长度 4 50 9 9 9 9 9 9 主键 是 是 否 否 否 否 否 否 数据类型 Int Char Char Int Varchar Char 长度 4 10 10 4 10 10 主键 是 否 否 否 否 否 四.四.公共类设计 项目开发过程中,通常会以类的形式来组织、封装一些常用的方法和事件,这样做不仅可以提高代 码的重用率,也大大方便了用户对代码的管理。在本系统中,主要建立了两个公共类,分别为 DBConnection 类和 DBOperate 类。DBConnection 类主要用于连接数据库;在 DBOperate 类中则定 义了一些操作数据库的公用方法,分别用于实现各种功能,下面详细介绍这两个类。 1.DBConnection 公共类 DBConnection 类是数据库连接类,此类主要用于连接 SQL Server 数据库,在连接数据库时,只需 调用此类中的 MYConnection 即可,其实现代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient; namespace PMSClass { class DBConnetion { public static SqlConnection MYConnection() { return new SqlConnection(“server=.;database=db_PMS;user=sa;pwd=123“); } } } 2.DBOperate 公共类 DBOperate 类中建立了多个方法用于执行不同的SQL 语句 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.s; using System.Data.SqlClient; using System.Data; namespace WindowssApplication1 { class DBOperate { SqlConnection conn = PMSClass.DBConnetion.MYConnection(); public int OperateData(string strSql) { conn.Open(); SqlCommand = new SqlCommand(strSql, conn); int i = (int).cuteNonQuery(); conn.Close(); return i; } public DataSet gettable(string sql) { DataSet ds = new DataSet(); SqlDataAdapter sda = new SqlDataAdapter(sql, conn); sda.Fill(ds); ds.Dispose(); return ds; } public void BindDataGridView(DataGridView dgv, string sql) { DataSet ds = new DataSet(); SqlDataAdapter sda = new SqlDataAdapter(sql, conn); sda.Fill(ds); dgv.DataSource = ds.Tables[0]; ds.Dispose(); } } } 下面对该类中的方法进行讲解 (1)OperateData()方法用于对数据库执行SQL 语句 public int OperateData(string strSql) { conn.Open(); SqlCommand = new SqlCommand(strSql, conn); int i = (int).cuteNonQuery(); conn.Close(); return i; } (2)gettable()方法用于根据指定的 SQL 查询语句返回相应的 dataset 对象 public DataSet gettable(string sql) { DataSet ds = new DataSet(); SqlDataAdapter sda = new