已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
_数据库课程设计报告课题名称: 工资管理系统 指导教师: 魏善沛 专业班级: 14级软件工程一班 小组成员: 学号 姓名 (组长) 20144612 冯婷婷 20144619 李建华(组长) 20144630 杨美梅 20144632 张艺瀚 20144633 赵飞 完成日期:2016 年 6 月 8 日精品资料目录1. 设计目的12. 开发环境13. 系统设计13.1需求分析13.1.1数据需求13.1.2事物需求23.2系统流程图24. 数据库设计44.1数据流图44.2数据字典54.2.1数据结构描述54.2.2数据流的描述54.2.3主要数据存储的定义64.3概念模型设计(E-R图)74.4逻辑结构设计114.4.1关系模式114.4.2基本表125. 应用程序设计135.1主窗体模块135.2员工信息模块145.3部门信息模块15结 论16参 考 文 献16附录A(源代码)16SQL亮点语句:16源代码:17评分表:371. 设计目的数据库原理概述及应用课程设计是软件工程专业集中实践性环节之一,是学习完数据库原理概述及应用课程后进行的一次全面的综合练习。其目的在于加深对数据库基础理论和基本知识的理解,掌握使用数据库进行软件设计的基本方法,提高运用数据库解决实际问题的能力,最终实现对于给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。同时,此次设计对于同学将来的毕业设计和具体工作实践将有重要的意义。针对于本次设计的课题工资管理系统,通过E-R图,逻辑结构、物理结构、概念结构三方面分析该系统的实体、属性、以及之间的联系,从各个方面全面了解分析课题,同时,也更掌握了基础知识,深入了解各部分含义。2. 开发环境 SQL Server 2005 ,JDK1.8,Eclipse EE版本。3. 系统设计3.1需求分析3.1.1数据需求工资管理系统系是为了更好地实现工资各种信息的管理以及各种信息的安全性管理。本系统主要对查看员工的各种工资信息需求所设计的,可以很好的管理数据。 本系统的主要功能由以下几个部分组成: 系统功能的基本要求: 员工每个工种基本工资的设定。 加班津贴管理,根据加班时间和类型给予不同的加班津贴。 按照不同工种的基本工资情况、员工的考勤情况产生员工的每月的月工资。 员工年终奖金的生成,员工的年终奖金计算公式(员工本年度的工资总和津贴的总和)/12。 企业工资报表。能够查询单个员工的工资情况、每个部门的工资情况、按月的工资统计,并能够打印。 各类单项和多条件组合查询。 导出查询和统计的结果,形成Excel表。数据库要求:在数据库中至少应该包含下列数据表: 员工考勤情况表。 员工工种情况表,反映员工的工种、等级,基本工资等信息。 员工津贴信息表,反映员工的加班时间,加班类别、加班天数、津贴情况等。 员工基本信息表。 员工月工资表。3.1.2事物需求(1)在员工信息管理部分,要求: A可以查询员工信息 B可以对员工信息进行添加删除的操作 (2) 在部门信息管理部分,要求: A.可以查询部门信息B.可以对部门信息进行添加删除的操作 3.2系统流程图 图3.2 系统流程图 4. 数据库设计4.1数据流图图4.1数据流图4.2数据字典4.2.1数据结构描述名称:员工含义说明:员工信息组成结构:员工编号+员工姓名+性别+所属部门+职称名称:工资含义说明:工资信息组成结构:员工编号+基本工资+岗位工资+津贴工资+扣除薪酬+实发工资名称:部门含义说明:部门信息组成结构:部门编号+部门名称+部门人数4.2.2数据流的描述数据流名称:员工信息添加 简述:新员工信息录入数据流来源:公司管理者数据流去向:员工信息数据流组成:员工编号+员工姓名+性别+所属部门+职称数据流名称:员工信息修改 简述:员工信息错误或员工调动数据流来源:公司管理者数据流去向:员工信息数据流组成:员工编号+员工姓名+性别+所属部门+职称数据流名称:员工信息删除 简述:员工离职数据流来源:公司管理者数据流去向:员工信息数据流组成:员工编号+员工姓名+性别+所属部门+职称数据流名称:工资添加 简述:公司对工资进行添加数据流来源:公司管理者数据流去向:工资信息数据流组成:员工编号+基本工资+岗位工资+津贴工资+扣除薪酬+实发工资数据流名称:工资修改 简述:公司对工资进行修改数据流来源:公司管理者数据流去向:工资信息数据流组成:员工编号+基本工资+岗位工资+津贴工资+扣除薪酬+实发工资4.2.3主要数据存储的定义存储名称:员工记录输入:员工基本信息输出:员工所有信息数据结构:员工编号+员工姓名+性别+所属部门+职称存储名称:部门记录输入:部门基本信息输出:部门所有信息数据结构:部门编号+部门名称+部门人数存储名称:工资记录输入:员工工资信息输出:员工所有工资信息数据结构:员工编号+基本工资+岗位工资+津贴工资+扣除薪酬+实发工资存储名称:考勤记录输入:员工考勤信息输出:员工所有考勤信息数据结构:员工编号+迟到次数+缺席次数存储名称:津贴记录输入:员工津贴信息输出:员工所有津贴信息数据结构:员工编号+加班时间+加班天数+加班类型+津贴资金4.3概念模型设计(E-R图) 图4.3.1员工信息E-R图 图4.3.2部门信息E-R图 图4.3.3基本工资E-R图 图4.3.4考勤情况E-R图 图4.3.5津贴情况E-R图 图4.3.6工种情况E-R图图4.3.7月工资信息E-R图 图4.3.8工作管理系统总E-R图4.4逻辑结构设计4.4.1关系模式员工信息(员工编号,员工姓名,性别,所属部门,职称)部门信息(部门编号,部门名称,部门人数)基本工资(工资级别,基本工资,岗位工资)考勤信息(员工编号,迟到次数,缺席次数)津贴信息(员工编号,加班时间,加班天数,加班类型,津贴资金)工种情况(工资级别,岗位工资)工资信息(员工编号,基本工资,岗位工资,津贴工资,扣除薪酬,实发工资)4.4.2基本表 表1员工基本信息表(dbo.employee)员工编号e_idvarchar(8)主键,不允许重复员工姓名e_namevarchar(8)性别e_sexvarchar(2)所属部门b_idvarchar(4)外键职称j_namevarchar(12) 表2部门信息表(dbo.brank)部门编号b_idvarchar(8)主键,不允许重复部门名称b_namevarchar(20)部门人数b_numberint 表3基本工资表(dbo.basesalary)工资级别bs_levvarchar(2)主键,不允许重复基本工资bs_salnumeric(8, 2) 表4考勤信息表(dbo.check)员工编号e_idvarchar(8)主键,不允许重复迟到次数latetimesnumeric(3, 0)缺席次数offtimesnumeric(3, 0) 表5津贴信息表(dbo.bonusinformation)员工编号e_idvarchar(8)主键,不允许重复加班时间etr_timenumeric(8, 1)加班天数etr_daynumeric(2, 1)加班类型etr_typevarchar(8)津贴资金bonus_salnumeric(8, 2) 表6工种情况表(alary)工资级别js_levvarchar(2)主键,不允许重复岗位工资js_salnumeric(8, 2) 表7工资信息表(dbo.salaryinfomation)员工编号e_idvarchar(8)主键,不允许重复;外键基本工资bs_salnumeric(8, 2)岗位工资js_salnumeric(8, 2)津贴工资bonus_salnumeric(8, 2)扣除薪酬check_salnumeric(8, 2)实发工资get_salnumeric(8, 2)5. 应用程序设计5.1主窗体模块 进入登陆页面,如下图: 图5.1.1 登录 登陆后进入系统主界面,如下图: 图5.1.2 系统主界面5.2员工信息模块(1) 查询,分别点击“编辑”“删除”按钮可修改、删除员工信息,如下图: 图5.2.1 查询修改员工信息 图5.2.2 修改员工信息5.3部门信息模块(1)查询.删除所有部门信息,如下图: 图5.3.1 查询删除部门信息结 论经过两周的不断实践与探索,人力资源-工资管理统的设计与实现己经完成,基本上达到了预期的设计要求和目的。 一个完整的人力资源-工资管理统就创建完毕了。在本系统的设计与实现的过程中主要讲述了工资管理系统的系统设计部分,包括功能模块设计、数据库结构设计等。系统设计为整个程序构建了骨架,各个功能模块实现各个细节部分。 系统的详细设计根据系统分析阶段的结论将系统具体化,并完成了各个模块的添加、修改、删除与查询的功能,直到最后形成一个完整的可行性的管理系统。 在整个设计阶段的工作和本实验报告的写作过程的经历将会使我们小组终生受益,并对我们今后的工作和发展产生深远的影响。由于设计时间比较仓促,所以该系统还有许多不尽如意的地方,比如用户界面不够美观,出错处理不够等多方面问题。这些都有待于进一步的改善。 参 考 文 献 1 数据库原理概述及应用,作者是魏善沛,张艳。2 JSP实用教程清华大学出版社。3 访问的链接: /ljheee/article/details/50984498 /ljheee/article/details/50988796附录A(源代码)SQL亮点语句:1) -双重 左外连接,员工表数据全查出select employee.e_id,employee.e_name,employee.e_sex,branch.b_name,employee.j_name,bs_lev,bonus_salfrom (employee left join branch on employee.b_id=branch.b_id) left join bonusinformation on employee.e_id=bonusinformation.e_id 2) 创建触发器create trigger department_person -创建触发器on employee -监听员工表的增删,自动更新部门表的人数for insert,delete -监听employee表的增删 操作asupdate branch set b_number=b_number+1where b_id=(select b_id from inserted)update branch set b_number=b_number-1where b_id=(select b_id from deleted)Go3) 设置津贴默认值alter table bonusinformation -津贴默认0add constraint default_bonus default 0 for bonus_sal4) 创建触发器 ALTER trigger add_checkSal -创建触发器 on checkTime for insert,update -监听 asupdate checkTime set check_sal=latetimes*40+offtimes*60 -计算考勤 where e_id=(select e_id from inserted) Go源代码:Index.jsp index page !-* margin: 0;padding: 0;header padding: 1em 0;text-align: center;background-color: #4a4;color: #fff;font-size: 300%;header span font-size: 50%;margin-left: 1em;color: #eee;footer position: absolute;bottom: 0;padding: 2em 0;text-align: center;background-color: #4a4;color: #fff;width: 100%;clear: both;.content width: 75%;overflow: auto;float: right;min-height: 600px;.nav float: left;background-color: #eee;width: 25%;position: fixed;height: 100%;overflow: auto;ul list-style-type: none;margin-top: 1em;li a display: block;color: #000;padding: 8px 0 8px 16px;text-decoration: none;li a:hover background-color: #4a4;color: white;table width: 100%;border-collapse: collapse;margin: 2m auto;th, td text-align: left;padding: 8px;tr:nth-child(even) background-color: #f2f200; 点击退出人力资源-工资管理员工基本信息列表添加员工员工工资信息部门信息其他编号姓名性别部门职位基本工资等级津贴2014321Bob男市场部经理F36202014327Jack男市场部职员D1500%List list = DbUtil.getALL();for(Employee e : list)pageContext.setAttribute(e,e); %$e.ename$e.esex$e.dname$e.job$e.sal_level$e.bonusSalCopyright (c) 2016 DB1 All Rights Reserved. Edit.jsp !-* margin: 0;padding: 0;header padding: 1em 0;text-align: center;background-color: #4a4;color: #fff;font-size: 300%;header span font-size: 50%;margin-left: 1em;color: #eee;footer position: absolute;bottom: 0;padding: 2em 0;text-align: center;background-color: #4a4;color: #fff;width: 100%;clear: both;.content width: 75%;overflow: auto;float: right;min-height: 300px;.nav float: left;background-color: #eee;width: 25%;position: fixed;height: 100%;overflow: auto;ul list-style-type: none;margin-top: 1em;li a display: block;color: #000;padding: 8px 0 8px 16px;text-decoration: none;li a:hover background-color: #4a4;color: white;form margin: 2em 4em;form div margin-bottom: 1em;label display: inline-block;width: 6em;text-align: right;margin-right: 2em;input, select font-size: 150%;inputtype=submit padding: 0 4em;margin-left: 6em;form span font-size: 80%;color: red;margin-left: 1em; 人力资源-工资管理编辑员工信息员工基本信息员工工资信息部门信息其他编号只读姓名只读性别只读部门编号职位基础工资等级Copyright (c) 2016 DB1 All Rights Reserved. DbUtil.javapackage com.ljheee.db;import java.sql.*;import java.util.ArrayList;import java.util.List;import com.ljheee.bean.Branch;import com.ljheee.bean.Employee;/* * DB * author ljhee * */public class DbUtil static Connection con = null;static PreparedStatement stmt = null;static ResultSet rs = null; static String driver = com.microsoft.sqlserver.jdbc.SQLServerDriver; static String dbURL = jdbc:sqlserver:/localhost:1433;integratedSecurity=true; DatabaseName=salarymanagement; statictry Class.forName(driver); con = DriverManager.getConnection(dbURL); catch (SQLException e) e.printStackTrace(); catch (ClassNotFoundException e) e.printStackTrace(); public static Employee getByID(String id)if(id.equals() return null; Employee e = null;String sql = select * from employee where e_id=?;try stmt = con.prepareStatement(sql);stmt.setString(1, id);rs = stmt.executeQuery();while(rs.next()String e_id = rs.getString(1);String e_name = rs.getString(2);String e_sex = rs.getString(3);String b_name = rs.getString(4);String j_name = rs.getString(5);String bs_lev = rs.getString(6);/float bonus_sal = Float.parseFloat(rs.getString(7);e = new Employee(e_id, e_name, e_sex, b_name, j_name, bs_lev); catch (SQLException e1) e1.printStackTrace();return e;public static void saveEmployee(Employee e)if(e=null) return;String sql = insert into employee values(?,?,?,?,?,?);try stmt = con.prepareStatement(sql);stmt.setString(1, e.getEid();stmt.setString(2, e.getEname();stmt.setString(3, e.getEsex();stmt.setString(4, e.getBid();stmt.setString(5, e.getJob();stmt.setString(6, e.getSal_level();boolean b =stmt.execute();System.out.println(b); catch (SQLException e1) e1.printStackTrace();public static void updateEmployee(Employee e)if(e=null) return;Employee ee = getByID(e.getEid();String sql =update employee set b_id=?,j_name=?,bs_lev=? where e_id=?;try stmt = con.prepareStatement(sql);stmt.setString(1, e.getBid();stmt.setString(2, e.getJob();stmt.setString(3, e.getSal_level();stmt.setString(4, e.getEid();stmt.execute(); catch (SQLException e1) e1.printStackTrace();public static List getALL() throws ClassNotFoundExceptionList list = new ArrayList();Employee e = null;try String sql=select employee.e_id,employee.e_name,employee.e_sex,branch.b_name,employee.j_name,bs_lev,bonus_sal from (employee left join branch on employee.b_id=branch.b_id) left join bonusinformation on employee.e_id=bonusinformation.e_id;stmt = con.prepareStatement(sql);rs = stmt.executeQuery();while(rs.next()String e_id = rs.getString(1);String e_name = rs.getString(2);String e_sex = rs.getString(3);String b_name = rs.getString(4);String j_name = rs.getString(5);String bs_lev = rs.getString(6);String str = rs.getString(7);float bonus_sal = 0;if(str!=null)bonus_sal = Float.parseFloat(str);e = new Employee(e_id, e_name, e_sex, b_name, j_name, bs_lev, bonus_sal);System.out.println(e);list.add(e);e = null; catch (SQLException e1) e1.printStackTrace();return list;public static void closeAll()try if(rs!=null) rs.close();if(stmt!=null) stmt.close();if(con!=null) con.close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();public static void deleteEmployee(String eid) String sql = delete from employee where e_id=?;try stmt = con.prepareStatement(sql);stmt.setString(1, eid);stmt.execute(); catch (SQLException e) e.printStackTrace();public static List getALLBranch() throws ClassNotFoundExceptionList list = new ArrayList();Branch b = null;try String sql=select * from branch;stmt = con.prepareStatement(sql);rs = stmt.executeQuery();while(rs.next()String did = rs.getString(1);String dname = rs.getString(2);String str = rs.getString(3);int num = 0;if(str!=null)num = Integer.parseInt(str);b = new Branch(did, dname, num);list.add(b);b = null; catch (SQLException e1) e1.printStackTrace();return list;/sal.jsppublic static List getEs() throws ClassNotFoundExceptionList list = new ArrayList();Employee e = null;try String sql=select employee.e_id,e_name,bs_sal,late
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 散客旅游合同范本在线查看
- 企业车辆交易协议书模板
- 2024体育赛事场地租赁合同
- 2024版土石方运输合同
- 农村个人购房合同范例
- 合伙协议书范例
- 如何签订借款合同避免风险
- 个人汽车买卖合同样本模板
- 2023年高考地理专题复习新题典题精练-洋流(原卷版)
- 致大海选择性必修中册 第四单元课件
- 服务质量、保证措施
- (必练)广东省军队文职(经济学)近年考试真题试题库(含答案)
- 含羞草天气课件
- 2024年安全生产知识竞赛考试题库及答案(共五套)
- 22《鸟的天堂》课件
- 农业灌溉装置市场环境与对策分析
- 新疆乌鲁木齐市第十一中学2024-2025学年八年级上学期期中道德与法治试卷
- 2024年江西省高考地理真题(原卷版)
- 部编版小学五年级上册道法课程纲要(知识清单)
- 经济法学-计分作业一(第1-4章权重25%)-国开-参考资料
- 山东省临沂市(2024年-2025年小学四年级语文)人教版期中考试(上学期)试卷及答案
评论
0/150
提交评论