工资数据库设计(共25页).doc

上传人:飞****2 文档编号:11400894 上传时间:2022-04-18 格式:DOC 页数:25 大小:919KB
返回 下载 相关 举报
工资数据库设计(共25页).doc_第1页
第1页 / 共25页
工资数据库设计(共25页).doc_第2页
第2页 / 共25页
点击查看更多>>
资源描述

《工资数据库设计(共25页).doc》由会员分享,可在线阅读,更多相关《工资数据库设计(共25页).doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上学 号: 课 程 设 计题 目工资数据库设计学 院计算机科学与技术学院专 业班 级姓 名指导教师唐祖锴年月日 课程设计任务书学生姓名: 专业班级: 指导教师: 唐祖锴 工作单位: 计算机学院 题目:工资数据库设计初始条件:某公司决定建立“工资管理系统”,以取代单一的人工管理。根据人员基本情况表中的学历、职称及受聘日期长短,决定工资表中的基本工资和岗位津贴的具体数值。根据各部门上报的扣款表的内容决定工资表中扣款项的金额。按月汇总工资表。要求完成的主要任务:1. 根据上述的初始条件,进行调查分析并设计适当的属性。设计一个工资数据库,DBMS可选Ms SQL Server、

2、Access、VFP等。2. 完成课程设计说明书,其格式遵守学校今年的新规定。主要内容包括:需求分析,概念设计,逻辑设计,物理实现等。3. 基于改数据库,最好实现一个或多个应用程序(自己确定功能),程序设计语言(工具)任选。这一项是选作,不作硬性要求。时间安排:本学期第18周:1. 消化资料、系统调查1天2. 系统分析1天3. 总体设计,实施计划2天4. 撰写报告1天指导教师签名:年月日系主任(或责任教师)签名:年月日1、系统目标采用公司现有的软硬件及科学的管理系统开发方案,建立工资管理系统,实现企业工资管理的计算机自动化。系统应符合公司人事、工资管理制度,并达到操作直观、方便、实用、安全等要

3、求。2、 系统功能系统从总体上可以分为员工信息系统,工资操作系统,数据库用户系统。(1) 员工信息系统本系统包括对员工各种基本信息(姓名、职工号、住址、联系电话、婚姻状况、出生年月、岗位、部门号、性别)的录入、修改、查询等操作。(2) 工资操作系统本系统包括对各种类型的基本工资的计算、生成工资表以及对员工工资的查询等操作。(3) 数据库用户系统 本系统包括对数据库用户添加、删除及修改密码等操作。2.1、 功能图由上述功能描述可得系统功能图如下: 图2-1 系统总功能图二、 概念分析3.1、系统E-R图由系统的分析部分可得系统的E-R图如下: 图3 -1 系统E-R图系统的E-R图表明:本工资管

4、理系统由数据库用户、工资表、员工信息、工资类别、部门信息、考勤表等五部分组成。3.2、数据流图E-R 图建立了系统的数据模型,但我们还需要了解信息流与数据从输入移动到输出的过程中所经受的变换,所以在此给出本系统的数据流图: 图3-2 数据流图四、逻辑设计以下是工资管理系统的关系模型:员工(职工号、部门号、姓名、性别、出生年月、岗位、婚姻状况、联系电话、住址)部门信息(部门号、岗位、部门人数)工资类别 (岗位、基础工资、缺勤费、加班费)工资表(职工号、工资、工资日期)数据库用户(用户名、密码、权限)考勤表(职工号、加班时间、缺勤天数、考勤日期) 五、物理设计在SQL数据库中需要建立6个数据表:员

5、工基本信息表、部门信息表、工资类别表、工资表、考勤表和数据库用户表。部门表列名数据类型长度允许空部门名Char10否岗位Char10对部门人数int4对考勤表列名数据类型长度允许空职工号Char10否加班时间Int4对缺勤天数Int4对考勤日期datetime8对工资类别表列名数据类型长度允许空岗位char10否基础工资Money8对加班费Money8对缺勤费money8对工资表列名数据类型长度允许空职工号char10否工资money8对工资日期datetime8对员工基本信息列名数据类型长度允许空职工号Char10否姓名Char10对性别Char10对部门名Char10对岗位Char10对出

6、生年月Char10对婚姻状况Char10对联系电话Char10对住址char10对数据库用户列名数据类型长度允许空用户名Char10否密码Char10对权限char10对六、算法实现1、添加职工if (e.getActionCommand().equals(确定) sql = select * from 员工基本信息 where 职工号= + numtext.getText() + ;try rs = con.getrs(con.con, sql);if (rs.next() jop.showMessageDialog(null, 职工号已存在,请输入另外的职工号, 错误, -1);elses

7、ql = insert into 员工基本信息(职工号,姓名,性别,部门名,岗位,出生年月,婚姻状况,联系电话,住址) values(+numtext.getText()+,+nametext.getText()+,+xbtext.getText()+,+bmchoice.getSelectedItem()+,+gwchoice.getSelectedItem()+,+csnytext.getText()+,+hyzktext.getText()+,+lxdhtext.getText()+,+zztext.getText()+);con.moddb(con.con, sql);/try /co

8、n.dbclose(con.con,null);/ catch (Exception ue) /ue.printStackTrace();/con.dbclose(con.con, rs);numtext.setText();nametext.setText();xbtext.setText();csnytext.setText();hyzktext.setText();lxdhtext.setText();zztext.setText();con = null;rs = null; catch (SQLException et) et.printStackTrace();2、删除职工if (

9、e.getActionCommand().equals(确定) try sql = delete from 员工基本信息 where 职工号=+numco.getSelectedItem()+;con.moddb(con.con, sql);sql = delete from 考勤表 where 职工号=+numco.getSelectedItem()+;con.moddb(con.con, sql);sql = delete from 工资表 where 职工号=+numco.getSelectedItem()+;con.moddb(con.con, sql);System.out.prin

10、tln(aaa);initnumcho();System.out.println(bbb);JOptionPane jop = new JOptionPane();jop.showMessageDialog(null, 职工删除成功!, 更新成功, -1);System.out.println(ccc);/con.dbclose(con.con, null);System.out.println(ddd);con = null;rs = null; catch (Exception et) System.out.println(aaaa);et.printStackTrace();3.职工信息

11、查询sql = select * from 员工基本信息 where 员工基本信息.职工号= + numchoice.getSelectedItem()+ ;try rs = con.getrs(con.con, sql);if (rs.next() nametext.setText(rs.getString(姓名);xbtext.setText(rs.getString(性别);bmtext.setText(rs.getString(部门名);gwtext.setText(rs.getString(岗位);csnytext.setText(rs.getString(出生年月);hyzktex

12、t.setText(rs.getString(婚姻状况);lxdhtext.setText(rs.getString(联系电话);zztext.setText(rs.getString(住址);con.dbclose(con.con, rs);con = null;rs = null;catch (SQLException e1) e1.printStackTrace();4.修改职工信息if (ae.getActionCommand().equals(确定) try sql = update 员工基本信息 set 姓名=+nametext.getText()+,性别=+xbtext.getT

13、ext()+,部门名=+bmchoice.getSelectedItem()+,岗位=+gwchoice.getSelectedItem()+,出生年月=+csnytext.getText()+,婚姻状况=+hyzktext.getText()+,联系电话=+lxdhtext.getText()+,住址=+zztext.getText()+ WHERE 职工号=+numchoice.getSelectedItem()+;con.moddb(con.con, sql);jop.showMessageDialog(null, 职工修改成功!, 更新成功, -1); catch (Exception

14、 ue) ue.printStackTrace();con.dbclose(con.con, rs);nametext.setText();xbtext.setText();csnytext.setText();hyzktext.setText();lxdhtext.setText();zztext.setText();con = null;rs = null;/nametx.setText();5.考勤录入if (e.getActionCommand().equals(确定) sql = select * from 考勤表 where 职工号=+ numchoice.getSelectedI

15、tem()+ AND 考勤日期= +kqrqtext.getText()+;try rs = con.getrs(con.con, sql);if (rs.next() jop.showMessageDialog(null, 该名职工该考勤日期已记录, 错误, -1);elsesql = insert into 考勤表(职工号,加班时间,缺勤天数,考勤日期) values(+ numchoice.getSelectedItem()+,+jbsstext.getText()+,+qqtstext.getText()+,+kqrqtext.getText()+);con.moddb(con.con

16、, sql);jbss=new Float(jbsstext.getText();qqts=new Float(qqtstext.getText(); sql=select 岗位 from 员工基本信息 WHERE 职工号=+numchoice.getSelectedItem()+; rs = con.getrs(con.con, sql); rs.next(); String aa=rs.getString(岗位); rs=null; sql=null; sql=select * from 工资类别 WHERE 岗位=+aa+; rs=con.getrs(con.con, sql); rs.

17、next(); jbgz=rs.getFloat(基础工资); jbfy=rs.getFloat(加班费); qqfy=rs.getFloat(缺勤费); gz=jbgz+jbfy*jbss-qqfy*qqts; System.out.println(gz); sql=insert into 工资表(职工号,工资,工资日期) values(+numchoice.getSelectedItem()+,+gz+, +kqrqtext.getText()+); con.moddb(con.con, sql);/try /con.dbclose(con.con,null);/ catch (Excep

18、tion ue) /ue.printStackTrace();/con.dbclose(con.con, rs);jbsstext.setText();qqtstext.setText();kqrqtext.setText();con = null;rs = null; catch (SQLException et) et.printStackTrace();6.职工工资查询if(e.getActionCommand().equals(查询) con=new condb(); sql=select 工资表.职工号,员工基本信息.姓名,工资表.工资,工资表.工资日期 from 员工基本信息,工资

19、表 WHERE 员工基本信息.职工号=工资表.职工号 AND 职工号= + numchoice.getSelectedItem()+ ORDER BY 工资表.工资日期 DESC ; rs=con.getrs(con.con, sql); try while(rs.next() try gzcx.appendText(rs.getString(职工号); gzcx.appendText(rs.getString(姓名); gzcx.appendText(rs.getString(工资); gzcx.appendText(t); gzcx.appendText(rs.getString(工资日期

20、); gzcx.appendText(n); catch (SQLException e1) / TODO Auto-generated catch block e1.printStackTrace(); catch (SQLException e1) / TODO Auto-generated catch block e1.printStackTrace(); con.dbclose(con.con,rs); con=null; rs = null; 7.部门工资查询if(e.getActionCommand().equals(平均工资) int count=0; float gzh=0;

21、con=new condb(); sql=select * from 工资表,员工基本信息 WHERE 部门名= + bmchoice.getSelectedItem()+ AND 员工基本信息.职工号=工资表.职工号 ; rs=con.getrs(con.con, sql); try while(rs.next() gzh=gzh+rs.getFloat(工资); count+; catch (SQLException e2) e2.printStackTrace(); String a=new String(该部门平均工资为); float b=gzh/count; a+=b; jop.s

22、howMessageDialog(null,a, 错误, -1); if (e.getActionCommand().equals(查询) gzcx.setText();con=new condb(); sql=select 工资表.职工号,员工基本信息.姓名,员工基本信息.部门名,工资表.工资,工资表.工资日期 from 员工基本信息,工资表 WHERE 员工基本信息.职工号=工资表.职工号 AND 员工基本信息.部门名= + bmchoice.getSelectedItem()+ ORDER BY 工资表.工资日期 DESC ; rs=con.getrs(con.con, sql); tr

23、y while(rs.next() try gzcx.appendText( ); gzcx.appendText(rs.getString(职工号); gzcx.appendText(rs.getString(姓名); gzcx.appendText(rs.getString(部门名); gzcx.appendText(rs.getString(工资); gzcx.appendText(t ); gzcx.appendText(rs.getString(工资日期); gzcx.appendText(n); catch (SQLException e1) / TODO Auto-generat

24、ed catch block e1.printStackTrace(); catch (SQLException e1) / TODO Auto-generated catch block e1.printStackTrace(); con.dbclose(con.con,rs); con=null; rs = null;8.工资表查询sql=select 工资表.职工号,员工基本信息.姓名,工资表.工资,工资表.工资日期 from 员工基本信息,工资表 WHERE 员工基本信息.职工号=工资表.职工号 ORDER BY 工资表.工资日期 DESC ; rs=con.getrs(con.con

25、, sql); try while(rs.next()try gzcx.appendText(rs.getString(职工号);gzcx.appendText(rs.getString(姓名);gzcx.appendText(rs.getString(工资);gzcx.appendText(t);gzcx.appendText(rs.getString(工资日期);gzcx.appendText(n); catch (SQLException e1) / TODO Auto-generated catch blocke1.printStackTrace(); catch (SQLExcept

26、ion e1) / TODO Auto-generated catch blocke1.printStackTrace(); con.dbclose(con.con,rs); con=null;rs = null; addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) dispose();七、系统截图1、登陆界面2、添加职工3、删除职工4、职工基本信息查询5、修改员工信息6、考勤录入7、工资表查询8、部门工资查询9、职工工资查询10、系统用户管理11、 帮助信息八 心得体会 在做这次的课程设

27、计,首先第一个感受就是做一个系统,一开始不能急着动手写程序,应该在数据层面先弄清楚,这样对之后的编程有很大的作用,好的数据结构是成功的一半,而在这次的课程设计中,更为重要的是建立好表,表的属性和之间的关系要理清,怎样才能合理快捷而减少冗余,所以在这次的课程设计中花费了一天左右的时间上网了解工资管理的一些信息,然后再构思各表,往后出去工作,当帮其他企业做软件的时候,更多的是我们未接触过的行业,快速的理解行业,也是一个程序员必备的能力。这次选用了JAVA作为编程语言,使用eclipse平台,主要是因为之前的数据库实验中只学会了用JAVA连接数据库,这更好的为这个学期的JAVA课程实践提供了机会,对

28、于JAVA,一开始不熟悉eclipse的报错平台,浪费不少的时间在熟悉eclipse上,还有的就是对包、工程、共享类等概念在实践中也更加的理解在功能实现上,更多的是对JAVA中类的调用,各功能的多次实现,已经对此相当的熟悉了,体会JAVA中的监听比VC的事件触发使用得更加容易和方便,在JAVA中,基本单位算是类吧,监听的触发事件也是调用类,这次的嵌入式SQL,在更改错误中耗了不少的时间,对数据库的连接对象和记录集的关闭顺序也需要考究,先关闭记录集再关闭连接对象,不然的话会有错误,对SQL语句的编写也是一开始错漏百出的,对着书本模仿的敲出代码,真的是实践出真知,最后还是克服了众多的问题。 本科生课程设计成绩评定表班级: 姓名: 学号: 序号评分项目满分实得分1学习态度认真、遵守纪律102设计分析合理性103设计方案正确性、可行性、创造性204设计结果正确性405设计报告的规范性106设计验收10总得分/等级评语:注:最终成绩以五级分制记。优(90-100分)、良(80-89分)、中(70-79分)、及格(60-69分)、60分以下为不及格指导教师签名:20 年月日专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁