




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
沈阳航空航天大学课 程 设 计 报 告课程设计名称:软件综合课程设计课程设计题目:工资管理软件院(系):计算机学院专 业:计算机科学与技术班 级:84010103学 号:姓 名:指导教师: 完成日期:2011年9月9日沈阳航空航天大学课程设计报告 目 录第1章 概要设计11.1 题目的内容与要求11.2 需求分析简述11.3 数据库概念模型设计11.3.1 E-R图11.3.2职工实体图11.3.3职工工资实体图11.4 总体方案设计1第2章 详细设计12.1数据库逻辑模型设计12.1.1 职工表(Emp)12.1.2 职工工资表(Sal)12.2系统功能详细设计12.2.1职工录入流程12.2.2查询职工流程12.2.3工资统计流程12.2.4打印工资流程12.2.5更新维护流程1第3章 调试分析13.1 问题调试13.2 结果分析1第4章 使用说明14.1 主界面14.2 录入职工14.3 查询职工14.4 工资统计14.5 打印工资14.6 更新维护1参考文献1附 录(部分程序清单)1-28-沈阳航空航天大学课程设计报告 第1章 概要设计第1章 概要设计1.1 题目的内容与要求为一般企业事业单位财务科开发一个简单的工资管理软件,使财务工作人员能够轻松管理工资台账业务,实现其业务的计算机信息管理。(1)职工基本信息的录入:包括职工号、职工姓名、参加工作时间、职称、职务、工资级别、基本工资、职务工资、岗位津贴等;(2)信息查询:按职工姓名、职工号、职务等进行灵活多样的查询;(3)信息更新维护:单个更新、批量修改、删除、增加新记录等;(4)统计报表:生成工资条,年月工资按单位统计,生成报表并打印;(5)工资信息条包括:参加工作时间、职工号、职工姓名、基本工资、岗位津贴、奖金、补贴、扣病事假、扣税金、实发工资等;(6)如果没有打印机,则以屏幕输出代替打印功能;(7)人机交互界面采用可视化界面;(8)按要求写出课程设计报告。1.2 需求分析简述根据本次课程设计任务书的要求,本次课设的主要任务是对数据库中的表进行增删改查操作。 (1)由于是对公司职员的信息进行操作,所以需要在数据库中建立一个Emp表,用来存储职工的各类信息,如职工号、姓名、工作时间等。 (2)由于工资总类比较多,为了方便管理,在数据库中建立Sal表,用来存储员工的工资,如基本工资、职务工资和岗位津贴等。(3)由于需要用高级语言对数据库进行操作,所以需要将Java和Oracle连接在一起,连接后用Java中对数据库操作的语句对数据进行相应的操作。1.3 数据库概念模型设计1.3.1 E-R图工资管理软件共有两个实体,分别是职工实体和职工工资实体,他们之间的关系是管理。E-R图如图1.1所示。图1.1 E-R图1.3.2职工实体图工资管理软件在数据库中有一个表Emp,所对应的是职工实体,职工的属性有职工编号、职工姓名、职工的入职日期、职工职务和职工职位,职工实体图如图1.2所示。图1.2职工实体图1.3.3职工工资实体图在数据库中创建表Sal,所对应的是职工工资实体,职工工资的属性有工资级别、基本工资、职务工资、岗位津贴、奖金、补贴、扣病事假和职工编号,职工工资实体图如图1.3所示。图1.3职工工资实体图1.4 总体方案设计本次课设要实现的功能是对职工工资的各种操作,共有五大模块分别是职工信息的录入、职工信息的查询、职工工资的统计、打印工资和职工信息的更新维护。系统总体模块图如图1.4所示。图1.4 系统总体模块图沈阳航空航天大学课程设计报告 第2章 详细设计第2章 详细设计2.1数据库逻辑模型设计2.1.1 职工表(Emp) 职工表用来存放职工的基本信息,其中包括职工编号、职工姓名、职工入职日期、职工职务、职工职位。职工表如表2.1所示。表2.1 职工表列名数据类型长度是否允许空说明SNOVARCHER220No职工编号SNAMEVARCHER220No职工姓名STIMEDATENo入职日期TITLEVARCHER220No职称POSTVARCHER220No职务2.1.2 职工工资表(Sal) 职工工资表用来存放职工的工资信息,包括职工级别、基本工资、职务工资、岗位津贴、奖金、补贴、扣病事假和职工编号。职工工资表如表2.2所示。表2.2 职工工资表列名数据类型长度是否允许空说明SNOVARCHER220No职工编号GRADENUMBER10YES工资级别BASESALFLOATYES基本工资POSTALFLOATYES职务工资ALLOWANCEFLOATYES岗位津贴AWARDFLOATYES奖金SUBSIDYFLOATYES补贴THINGFLOATYES扣病事假2.2系统功能详细设计本工资管理软件共分为五大模块,分别是职工信息的录入,职工信息的查询,职工工资的统计,打印工资和职工信息的更新维护。2.2.1职工录入流程 职工录入时,首先需要输入职工的信息,输入完成后,点击确定,职工信息录入完成,职工录入流程图如图2.1所示。图2.1职工录入流程图2.2.2查询职工流程 查询职工时,首先需要选择查询方式,查询方式共有三种:按姓名查询、按职工编号查询和按职务查询,如选择的是按工号查询,则需要输入职工号,如果数据库中存在该职工的信息,会将信息输出,如果不存在,输出错误信息。查询职工流程图如图2.2所示。图2.2查询职工流程图2.2.3工资统计流程 工资统计时,首先需要输入职工号,如果数据库中存在该职工信息,会统计出该职工的基本信息以及应发工资。如果不存在,输出错误信息。工资统计流程图如图2.3所示。图2.3工资统计流程图2.2.4打印工资流程 如果选择了打印工资,会弹出窗口显示所有员工的信息,以及扣除的税金和实发的工资。打印工资流程图如图2.4所示。图2.4打印工资流程图2.2.5更新维护流程 更新维护时,首先需要选择操作方式,删除员工或单个更新或批量更新。如果选择删除员工,需要输入职工号,如果数据库中存在该职工,则将该职工删除,否则输出错误信息。如果选择的是单个更新,在输入职工号后输入新的数据,并点击确定,如果更新失败,弹出错误信息。如果选择的是批量更新,输入新数据后点击确定,如果更新失败,弹出错误信息。更新维护流程图如图2.5所示。图2.5更新维护流程图沈阳航空航天大学课程设计报告 第3章 调试分析第3章 调试分析3.1 问题调试(1)在执行过程中,首次执行会出现正确的结果,但是如果想要继续执行,就会出现异常,解决方法是每次在进行操作后,都重新连接数据库,否则数据库与程序之间的连接会自动停止,无法正确运行。(2)在查询职工时,如果输入的职工在数据库中存在,那么会正常的运行,但是如果输入的职工在数据库中并不存在,就会出现异常,解决方法是将查询结果进行判断,如果存在则输出,否则输出错误信息。(3)在建立职工工资表时,创建了税金属性和总工资属性,但是由于职工的工资会进行变化,从而导致税金和总工资也会跟着变化,不能正确运行,解决方法是删除税金和总工资属性,将两者作为变量,用查询的结果计算出二者的值,将此问题解决。(4)在连接数据库时,忘记将classes12.jar导入jar包,无法连接数据库,程序不能正常运行,解决方法是将classes12.jar导入,使程序正常运行。由于Oracle数据库服务设置成了手动启动,所以在执行程序之前必须将数据库服务启动,来维持程序正常运行。3.2 结果分析本次课程设计实现了任务书所要求的全部功能,人机交互采用了可视化界面,操作简单。查询方式设置了按姓名、职务和职工编号三种方式,灵活方便。在程序的测试阶段,验证了极端的数据,程序都能给出相应的处理,并且能显示出理想的结果,弹出相应的对话框,提醒用户应该如何进行下一步操作。沈阳航空航天大学课程设计报告 第4章 使用说明第4章 使用说明4.1 主界面程序运行后会弹出主界面,主界面如图4.1所示。图4.1主界面4.2 录入职工点击了职工录入按钮,会弹出如图4.2所示的录入职工界面。图4.2职工录入界面在相应的对话框中输入职工的信息,并点击确定,如果输入的信息正确,就会提示职工录入成功,否则提示职工录入失败,职工录入正确的提示信息如图4.3所示。图4.3职工录入成功界面4.3 查询职工点击了职工查询按钮,会弹出如图4.4所示的职工查询界面。图4.4职工查询界面如果选择了按职工号查询,会弹出如图4.5所示的界面。 图4.5按工号查询界面输入职工号后,如果数据库中存在该职工的信息,就会弹出如图4.6所示的职工信息界面。图4.6查询结果界面4.4 工资统计点击了打印工资按钮后,会弹出等待输入职工编号的界面,如果输入的职工在数据库中不存在,会弹出统工资统计失败的界面,如图4.7所示。图4.7工资统计失败界面统计报表界面如图4.8所示。图4.8统计报表界面4.5 打印工资点击了打印工资按钮后,会显示如图4.9所示的打印工资界面。图4.9打印工资界面4.6 更新维护在点击了更新维护按钮后,会显示如图4.10所示的界面。图4.10更新维护界面如果选择职工删除,需要输入职工号,如果输入了正确的职工号,点击确定后,会显示职工删除成功的信息。如图4.11所示。图4.11删除成功界面如果选择了单个更新,首先要输入职工编号,如图4.12所示。图4.12单个更新界面点击确定后会显示如图4. 13的界面。图4.13单个更新界面如果选择了批量更新会显示如图4. 14所示的界面。图4.14批量更新界面输入了新数据后,点击补贴,会显示补贴更新成功的界面。如图4.15所示。图4.15补贴更新成功界面沈阳航空航天大学课程设计报告 参考文献参考文献1 王珊,萨师煊. 数据库系统概论M.北京:北京高等教育出版社,20052(美)克罗恩科. 数据库原理(第三版)M.北京:清华大学出版社,20033(美)John Lewis WillIam Lofttus .Java 程序设计基础M.北京:清华大学出版社,20044耿祥义. Java 面向对象程序设计M.北京:清华大学出版社,20105王鹏.Java Swing 图形界面开发与案例详解M .北京:清华大学出版社,2006沈阳航空航天大学课程设计报告 附 录附 录(部分程序清单)package DAO;import Java.sql.Array;import Java.sql.Connection;import Java.sql.DriverManager;import Java.sql.PreparedStatement;import Java.sql.ResultSet;import Java.sql.SQLException;import Java.sql.Statement;import GUI.SearchByNoGui;import GUI.InMessageDialog;import VO.Sall;import VO.UserVo;public class FunctionDao extends BaseDAO / 插入模块public int insert(Sall sal) int rows = 0;try connection.setAutoCommit(false);String sql = insert into sall values(?,?,?,?,?,?,?,?,?,?,?,?);ps = connection.prepareStatement(sql);ps.setString(1, sal.getNo();ps.setString(2, sal.getName();ps.setDate(3, sal.getdate();ps.setString(4, sal.getTitle();ps.setString(5, sal.getPost();ps.setInt(6, sal.getGrade();ps.setFloat(7, sal.getSal();ps.setFloat(8, sal.getPostsal();ps.setFloat(9, sal.getAllowance();ps.setFloat(10, sal.getAward();ps.setFloat(11, sal.getSubsidy();ps.setFloat(12, sal.getThing();rows = ps.executeUpdate();if (rows 0) mit(); catch (SQLException e) e.printStackTrace();try connection.rollback(); catch (SQLException e1) e1.printStackTrace(); finally this.closeAll();return rows;/ 按姓名查询public Sall searchByName(String s) Sall sal = null;try connection.setAutoCommit(false);String sql = select * from sall where sname = ?;ps = connection.prepareStatement(sql);ps.setString(1, s);ResultSet rs = ps.executeQuery();if (rs.next() sal = new Sall(rs.getString(1), rs.getString(2), rs.getDate(3),rs.getString(4), rs.getString(5), rs.getInt(6), rs.getFloat(7), rs.getFloat(8), rs.getFloat(9); catch (SQLException e) e.printStackTrace();try connection.rollback(); catch (SQLException e1) e1.printStackTrace(); finally this.closeAll();return sal;/ 按职工号查询public Sall searchByNo(String number) Sall sal = null;try connection.setAutoCommit(false);String sql = select * from sall where sno = ?;ps = connection.prepareStatement(sql);ps.setString(1, number);ResultSet rs = ps.executeQuery();if (rs.next() sal = new Sall(rs.getString(1), rs.getString(2), rs.getDate(3),rs.getString(4), rs.getString(5), rs.getInt(6), rs.getFloat(7), rs.getFloat(8), rs.getFloat(9); catch (SQLException e) e.printStackTrace();try connection.rollback(); catch (SQLException e1) e1.printStackTrace(); finally this.closeAll();return sal;/删除职工public int delete(String no) int rows = 0;try connection.setAutoCommit(false);String sql = delete from sall where sno=?;ps = connection.prepareStatement(sql);ps.setString(1, no);rows = ps.executeUpdate();if (rows 0) mit(); catch (SQLException e) e.printStackTrace();try connection.rollback(); catch (SQLException e1) e1.printStackTrace(); finally this.closeAll();return rows;/ 打印工资public String salPrint() String s = ;try connection.setAutoCommit(false);String sql = select * from sall ;ps = connection.prepareStatement(sql);ResultSet rs = ps.executeQuery();s += 工号 姓名 职工入职时间 职务 职位 级别 基本工资 职务工资 岗位津贴 奖金 补贴 扣病事假 扣税金 实发工资 + n;while (rs.next() float sal = rs.getFloat(7);float postsal = rs.getFloat(8);float allowance = rs.getFloat(9);float award = rs.getFloat(10);float subsidy = rs.getFloat(11);float thing = rs.getFloat(12);float tax = (float) (sal + postsal + allowance + award+ subsidy - thing) * 0.02);float zong = (float) (sal + postsal + allowance + award+ subsidy - thing) * 0.98);s += rs.getString(1) + t;s += rs.getString(2) + t;s += rs.getString(3) + t;s += rs.getString(4) + t;s += rs.getString(5) + t;s += rs.getString(6) + t;s += sal + t;s += postsal + t;s += allowance + t;s += award + t;s += subsidy + t;s += thing + t;s += tax + t;s += zong + t;s += n; catch (SQLException e) e.printStackTrace();try connection.rollback(); catch (SQLException e1) e1.printStackTrace(); finally this.closeAll();return s;/查询管理员public UserVo searchUser(String id) UserVo uv = null;try String sql = select *from users where userid = ? ;ps = connection.prepareStatement(sql);ps.setString(1, id);ResultSet rs = ps.executeQuery();if (rs.next()uv = new UserVo(rs.getString(1), rs.getString(2); catch (SQLException e) e.printStackTrace();try connection.rollback(); catch (SQLException e1) e1.printStackTrace(); finally this.closeAll();return uv;/ 按职务查询public Sall searchByPost(String s) Sall sal = null;try connection.setAutoCommit(false);String sql = select * from sall where post = ?;ps = connection.prepareStatement(sql);ps.setString(1, s);ResultSet rs = ps.executeQuery();if (rs.next() sal = new Sall(rs.getString(1), rs.getString(2), rs.getDate(3),rs.getString(4), rs.getString(5), rs.getInt(6), rs.getFloat(7), rs.getFloat(8), rs.getFloat(9); catch (SQLException e) e.printStackTrace();try connection.rollback(); catch (SQLException e1) e1.printStackTrace(); finally this.closeAll();return sal;/单个更新public int ReNewOnly(String a, String b, String c) int rows = 0;try connection.setAutoCommit(false);String sql = update sall set +a+ = ? where sno = ?; ps = connection.prepareStatement(sql);ps.setString(1, b);ps.setString(2, c);mit(); rows = ps.executeUpdate();if (rows 0) connectio
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度开荒土地农业科技推广承包协议
- 2025版进口新能源太阳能技术引进合同
- 二零二五年度机票退改签服务合同
- 2025版新能源产业公司连带责任保证合同
- 二零二五年技术居间服务合同范本
- 二零二五年度新能源材料技术转让协议
- 2025版办公室装修与家具定制一体化合同
- 二零二五年度文化娱乐产业技术合作开发协议
- 2025版智能电网建设项目居间合作合同
- 2025版全面离婚赔偿协议书财产分割与子女监护权争夺协议
- 土地规划服务行业竞争格局大数据分析
- 浙江新东港药业有限公司技改项目环评报告
- 复杂性尿路感染课件护理查房
- 城市灾害风险评估与管理
- (完整版)QQ三国副职及日常物品成本计算表v1.0
- 融媒体新闻报道实务 课件 第三章 融合新闻报道的选题判断
- 安徽评标专家考试试题库
- 圆形截面偏心受压构件承载能力及裂缝验算(普通钢筋砼)
- 竞争法学(第三版)
- 骨盆前倾的康复训练方案
- 电器电子产品有害物质限制使用管理办法
评论
0/150
提交评论