文档介绍:工资管理系统-1- 《数据库系统》课程设计课题工资管理系统班级信息安全二班学号 1305030227 姓名李兰君指导老师张黎时间: - 工资管理系统-2- 简介:工资管理系统用于每个月员工工资的实发工资的计算,计算的项目包括基本工资、奖金、福利、津贴等。本系统中计算工资的基本依据是考勤管理系统的统计结果、同时, 需要用到人事管理系统中员工信息和部门信息, 但是由于此次课程设计条件有限, 就自己造了几个表。一、系统需求分析 系统功能分析本系统主要有以下几项功能: ⑴员工基本工资的设定(2) 奖励及惩罚的设置(3) 根据实发工资计算公式及本月出勤统计结果计算更新并查询各个年月的工资表(4) 输出工资报表 系统功能模块设计根据系统功能要求,可以将系统分解成几个模块来分别设计应用程序界面。如下图所示工资管理系统用户查询个人基本信息工资查询考勤查询奖罚设置基本工资设定月度工资显示/ 更新用户/ 管理员登录查看考勤表信息查询工资设置二、数据库设计 数据库需求分析工资管理系统-3- ●员工工资设置:员工号、姓名、小时工资(元小时) 、加班工资●其他工资:记录编号、年月、员工号、类型代码、名称、金额●月度工资统计:记录编号、年月、员工号、基本工资、奖金、其他应发总额、扣发总额、实发金额●类型代码表:代码,说明,金额●人员信息:员工号、密码、权限、姓名、部门、当前状态●部门设置:部门编号、名称、部门经理、经理姓名●月度考勤统计:记录号、员工号、年月、累计工作时间、累计加班时间、累计请假时间、累计出差时间、迟到次数、早退次数、旷工次数 数据库概念结构设计( E-R 图) 11 111 1 1N 1N 1N 1 N1N1 部门工资设置其他工资表类型代码表统计部门编号部门名称部门经理员工号姓名部门用户权限密码员工号记录编号累计工作时间员工号小时工资加班工资代码说明金额记录编号员工号年月基本工资实发金额奖金记录编号类型金额考勤年月员工号发放员工信息隶属对应考勤表统计计算对应对应 1 月度工资统计工资管理系统-4- 数据库逻辑结构设计数据库实现: 根据前面的需求分析以及 E-R 图,利用 SQL2005 实现数据库,创建表格,记录类型,根据各个表之间的联系设置主键和外键。本系统总共涉及 7个数据表,其中三个表用于保存员工信息,部门设置和考勤统计, ;另外需要建立 3 个数据表用于保存工资设置、福利津贴、扣发记录和工资统计结果。另外福利津贴扣发记录中,需要用到一个记录了类别代码表,用于标识记录数据福利津贴和扣发项,这 7个需要建立的数据表结构如下工资管理系统-5- 三、各个功能模块的实现 1 、用户界面设计以及各个功能模块实现及其部分实现代码(1) 登录界面: 用户输入密码并从数据库读取密码,判断用户权限及输入密码是否正确,若为普通用户则进入用户查询界面, 若为管理员则进入主界面。插入新的对话时要给新对话建立类向导,并在要使用它对话中,加上类名的头文件,再创建对象,使用 DoModal() 函数, 调用。// 连接数据库后,利用 SQL 语句进行用户输入账号和密码的匹配,以及权限识别 ("select * from 员工信息 where 员工号= '%s' and 密码= '%s ' and 用户权限=' 管理员'",this->m_edit2,this->m_edit1); m_pRecordset= m_pConnection->Execute((_bstr_t)sql,&RecordsAffected,adCmdText); //执行 SQL 查询// 如果找到 if(!m_pRecordset->adoEOF) { admin sc; (); // 进入管理员界面 id=m_edit2;} else // 否则进入用户查询界面{ ("select * from 员工信息 where 员工号= '%s' and 密码= '%s ' and 用户权限=' 用户'",this->m_edit2,this->m_edit1); m_pRecordset = m_pConnection->Execute((_bstr_t)sql,&RecordsAffected,adCmdText); if(!m_pRecordset->adoEOF) { extern CString id; id=m_edit2; ordinary s; (); // 进入普通用户界面} else MessageBox(" 用户名或密码有误");} 工资管理系统-6- (2 )用户界面: 用户仅能看到自己的扣发明细,考勤情况(3 )管理