【java毕业设计】基于javaEE+原生servlet+tomcat的教师工资管理系统设计与实现(毕业论文+程序源码)——教师工资管理系统

基于javaEE+原生servlet+tomcat的教师工资管理系统设计与实现(毕业论文+程序源码)

大家好,今天给大家介绍基于javaEE+原生servlet+tomcat的教师工资管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦

文章目录:

1、项目简介

  1. 过教师工资管理系统这个平台,它将计算机操作及管理理念融于教师工资管理的实际运用中,可以实现教师工资管理的信息化、网络化、系统化、规范化,使工作人员从繁杂的数据查询和统计中解脱出来,减少工作量。系统的主要功能包括:教师信息添加管理、教师信息统计、教师信息导出excel、教师工资管理、工资统计等。
  2. 本系统前台主要使用JSP作为开发语言,后台使用MySql作为数据库管理系统,开发环境是MyEclipse,服务器采用tomcat,开发出的一个B/S结构的教师工资管理系统。

2、资源详情

项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:25514个字46页
包含内容:整套源码+完整毕业论文+答辩PPT


3、关键词:

教师;JSP;B/S结构

4、毕设简介:

提示:以下为毕业设计的简略介绍,项目源码及完整毕业论文下载地址见文末。

绪论
1.1课题背景
省略

有部分学校教师工资现为手工管理,效率低、易出错、手续繁琐,而且耗费大量的人力,物力,财力。基于以上等一些实际存在的情况,通过与管理人员的沟通反馈结果来看,这种传统的方式会逐渐被淘汰,应当有一个教师工资管理系统,能够实现教师工资智能化网络化功能。通过此系统,管理员可以对教师的各项情况实行电脑化管理,这样可以提高工作效率,也使得教师工资管理所需的各项信息能方便快速进行录入,查询,删除和更新,对相应关键数据也能够方便的统计结果并且以报表或者图形的方式展现出来。

1.2目的和意义
省略

为满足需求,决定采用编程语言JSP开发了基于B/S架构的教师工资管理系统,该管理系统是涉及信息科学、数据计算和计算机技术的人机交互系统。通过这个系统,可以对教师信息和工资信息进行智能化管理,有效地记录并查询教师工资的各项情况,为管理者提供了诸多方便。

1.3开发工具及技术
1.3.1开发工具
此次设计主要采用MyEclipse加Tomcat后台服务器进行,设计过程中页面主要使用JSP技术完成,下面对MyEclipse、Tomcat和MySql数据库等等进行简要介绍。

(1) MyEclipse
MyEclipse,是一个十分优秀的用于开发Java, J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开元产品的支持十分不错。MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSP, CSS, Javascript, SQL, Hibernate。

(2) Tomcat
Tomcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。可以这样认为,当在一台机器上配置好Apahce服务器,可利用它响应对HTML页面的访问请求。实际上Tomcat 部分是Apache服务器的扩展,但它是独立运行的,所以当运行tomcat时,它实际上作为一个与Apache独立的进程单独运行的。

Tomcat很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。

(3) MySql
MySql使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性;支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统;为多种编程语言提供了API;支持多线程,充分利用CPU资源;提供TCP/IP、ODBC和JDBC等多种数据库连接途径;可以处理拥有上千万条记录的大型数据库。对于一般的个人使用者和中小型企业来说,MySql提供的功能已经绰绰有余,而且由于MySql是开放源码软件,因此可以大大降低总体拥有成本。

MySql是一个开放源码的小型关联式数据库管理系统,开发者为瑞典公司。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

(4) JDBC
JDBC是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java 语言编写的类和接口组成。JDBC 为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯Java API 编写数据库应用程序,同时,JDBC 也是个商标名。

省略

(5) Java
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun micro systems公司于1995年5月推出的Java程序设计语言和Java平台(即Javase, Javaee, Javame)的总称。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

省略

1.3.2 JSP
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。

Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与Servlet一样,是在服务器端执行的,通常返回给客户端就是一个HTML文本,因此客户端只要有浏览器能浏览。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。

省略

1.3.3 JavaScript
JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。JavaScript的一个重要功能就是面向对象的功能,通过基于对象的程序设计,可以用更直观、模块化和可重复使用的方式进行程序开发。在HTML基础上,使用Javascript可以开发交互式Web网页。

省略

1.3.4 B/S
B/S 模式是一种以Web技术为基础的新型的MIS系统平台模式。把传统C/S模式中的服务器部分分解为一个数据服务器与一个或多个应用服务器(Web服务器),从而构成一个三层结构的客户服务器体系。

第一层客户机是用户与整个系统的接口。客户的应用程序精简到一个通用的浏览器软件,如Netscape Navigator,微软公司的IE等。浏览器将HTML代码转化成图文并茂的网页。网页还具备一定的交互功能,允许用户在网页提供的申请表上输入信息提交给后台,并提出处理请求。这个后台就是第二层的Web服务器。

第二层Web服务器将启动相应的进程来响应这一请求,并动态生成一串HTML 代码,其中嵌入处理的结果,返回给客户机的浏览器。如果客户机提交的请求包括数据的存取,Web服务器还需与数据库服务器协同完成这一处理工作。

第三层数据库服务器的任务类似于C/S模式,负责协调不同的Web服务器发出的SQ请求,管理数据库。

省略

鉴于B/S相对于C/S的先进性,B/S逐渐成为一种流行的MIS系统平台。各软件公司纷纷推出自己的Internet方案,基于Web的财务系统、基于Web的ERP。一些企业已经领先一步开始使用它,并且收到了一定的成效。B/S模式的新颖与流行,和在某些方面相对于C/S的巨大改进,使B/S成了MIS系统平台的首选。本系统也采用B/S结构开发。

1.4软硬件需求
硬件需求:
CPU:Pentium以上计算机;
内存:512M以上;
软件需求:
操作系统版本:Windows XP /vista/Win7;
开发工具:MyEclipse 6.0.1;
后台服务器:Apache Tomcat 6.0;
开发语言:Java;
浏览器:IE6.0。

2 需求分析
2.1需求调研
在项目的开始是需求调研,并且走访了一些学校,经过一系列的调查与谈话中发现,现行的教师工资管理工作还是存在着很多不足之处,手工记录的方式不易保存,容易丢失,同样也不利于数据的查询和统计分析。根据教师的实际情况及调查结果,发现实现教师工资管理的网络化、信息化是十分有必要的,因此设计了本套教师工资管理系统。

2.2可行性分析
省略

2.2.1技术的可行性
本系统开发工具是MyEclipse和MySql数据库,开发语言是Java,主要使用了J2EE的技术,java是一种面向对象编程语言,简单易学而且灵活方便。大三时就学习了java课程,大四期间也了解过J2EE的知识,教师工资管理系统总体上开发难度不高,数据库的设计和操作是本系统设计的核心。在大学期间学习过软件工程,软件测试,UML统一建模语言等课程,每个学期也会完成对应的课程设计,具备一定的系统分析、设计和测试能力,因此,完成系统实现在技术上完全具有可行性。

2.2.2经济的可行性
省略

2.2.3操作可行性
省略

2.2.4法律的可行性
省略

2.3系统开发步骤
省略

2.4系统用户用例
管理员是系统的核心用户,涉及到七大功能模块,管理员对系统的所有模块有着操作的权限,能够及时动态的掌握教职工的各项情况,如图2-1所示。
在这里插入图片描述

图2-1管理员用例图

2.5功能模块需求分析
本系统最大的特点是使用操作简单、友好的提示信息。本系统将实现以下基本功能:
(1)系统具有简洁大方的页面,使用简便,友好的错误操作提示;
(2)管理员用户具有教师信息管理、数据备份导出excel、教师信息统计、工资管理、工资统计功能;
(3)具有较强的安全性,避免用户的恶意操作。
系统的功能结构图,如图2-2所示。

在这里插入图片描述

图2-2管理员用户功能模块图

2.6设计的基本思想
省略

2.7性能需求
2.7.1系统的安全性
教师工资管理系统在管理权限上要严格进行控制,具体要求如下:
想登陆师资管理系统进行操作,必须有某些操作权限,没有权限的用户不能通过任何方式登录系统查看系统的任何信息和数据,以确保系统的严密性和安全性。

2.7.2数据的完整性
(1)各种记录信息的完整性,信息记录内容不能为空;
(2)各种数据间相互联系的正确性;
(3)相同数据在不同记录中的一致性。

2.8界面需求
省略

3 系统分析与设计
3.1数据库的分析与设计
省略

数据库的设计一般经过规划,需求分析、概念设计、逻辑设计、物理设计5个步骤。

3.1.1数据库的概念结构设计
概念设计是指在数据分析的基础上自底向上的建立整个系统的数据库概念结构,从用户的角度进行视图设计,然后将视图集成,最后对集成的结构分析优化得到最后结果。

概念设计的目标是产生反映企业组织信息要求的数据库概念结构,即概念模式。概念模式是独立于数据库逻辑结构,独立于支持数据库的DBMS,不依赖于计算机系统的。

根据以上对数据库的需求分析,并结合系统概念模型的特点及建立方法,建立实体图。

(1)教师信息实体图,如图3-1所示。
在这里插入图片描述

图3-1教师信息实体图

(2)工资信息实体图,如图3-2所示。
在这里插入图片描述

图3-2工资信息实体图

(3)管理员信息实体图,如图3-3所示。
在这里插入图片描述

图3-3管理员信息实体图

教师信息表:(教师号,姓名,性别,年龄,出生日期,工作时间,专业,照片,备注);
工资信息:(教师ID,工资月份,工资数,奖金);
管理员表:(用户ID,登录账号,登录密码)。

3.1.2数据库的逻辑结构设计
我们知道,数据库概念模型独立于任何特定的数据库管理系统,因此,需要根据具体使用的数据库管理系统的特点进行转换。师资管理系统建立了以下逻辑数据结构,下面是各数据表的详细说明。

没有数据表,关键字、主键、索引等也就无从谈起。在数据库画板中可以显示数据库中的所有数据表(即使不是用PowerBuilder创建的表),创建数据表,修改表的定义等数据表是数据库中一个非常重要的对象,是其他对象的基础。

数据表(或称表)是数据库最重要的组成部分之一。数据库只是一个框架,数据表才是其实质内容。
在这里插入图片描述

3.1.3数据库的连接原理
采用JDBC连接数据库的方式,只需在工程中导入对应数据库的jar包,就可以方便的对数据库进行连接,用Class.forName()方法来加载驱动程序,在用DriverManager的getConnection()方法就可以创建一个数据库连接。程序采用的是DAO模式来操作数据库,DAO(Data Access Object,数据访问对象),是Java编程中的一种经典模式,已被广泛应用,也是J2EE架构中持久层框架的基础知识,基于分层次式的软件架构来实现对数据库的访问操作。

DAO模式的思想就是从抽象数据源获取与操纵数据的方法。抽象数据的含义就是编写应用程序的程序员不必关心数据库的物理位置,已及是何种数据库,只需使用封装数据库中表示记录的数据对象即可,其思想如图3-7所示。

在这里插入图片描述

图3-7 DAO模式类图

图中BussinessObject是业务对象,是使用DAO模式的客户端;DataTransferObject数据传输对象,在应用程序不同层次之间传输对象,在一个分布式应用程序中,通常可以提高整理的性能;DataObjectAcces数据输入/输出对象封装了对数据源的一些基本操作;DataSource指的是数据源。可以从图中看出,DAO模式分离了业务逻辑和数据罗即将,是的编写的软件具有良好的层次式体系结构。本系统为了方便数据库的操作,主要使用DBContent的对象来接一个数据库(建立一个类DBContent),代码如下:

   public DBContent()
   {
 String CLASSFORNAME="com.MySql.jdbc.Driver";//连接数据库的驱动
	 String url="jdbc:MySql://localhost:3306/jzggl";
	 String user="root";//连接数据库的用户名
	 String password="root";//连接数据库的密码
	 Try
     {
	  Class.forName(CLASSFORNAME);
	  con= DriverManager.getConnection(url,user,password);//加载数据库的驱动
	stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
	   }
	 catch(Exception ex)
     {
		ex.printStackTrace();
	  }
	 }

在程序需要连接数据库的地方,只需要生成一个DBConnet的对象,就可以对数据库进行连接并操作。

3.2中文乱码问题处理
在程序中经常会遇到中文乱码的情况,如果手动的在servlet和jsp页面进行设置,相当麻烦。因此,在程序的开始就写了一个过滤器SetCharacterEncodingFilter。在web.xml中配置:

   <filter>
    <filter-name>SetCharacterEncodingFilter</filter-name>
    <filter-class>myweb.util.filter.SetCharacterEncodingFilter</filter-class>
    <init-param>
    <param-name>encoding</param-name>
    <param-value>gb2312</param-value>
    </init-param>
    </filter>
    <filter-mapping>
    <filter-name>SetCharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>//*表示工程下所有的页面都会有此过滤器的处理
    </filter-mapping>

对应SetCharacterEncodingFilter.java文件中的重要代码,在初始化init()方法中定义:

   public void init(FilterConfig filterConfig) throws ServletException {
  this.filterConfig = filterConfig;
  this.encoding = filterConfig.getInitParameter("encoding");
    String value = filterConfig.getInitParameter("ignore");
        }
    在工具包util包中同样定义了DataFormate类来处理字符转换:
    public static String toUni(String gbStr){
      String uniStr = ""; /*把字符串转换成uincode编码*/
      if(gbStr == null)
      {
        gbStr = "";
      }
      try{
         byte[] tempByte = gbStr.getBytes("GB2312");
         uniStr = new String(tempByte,"ISO8859_1");
         }
      catch(Exception ex)
      {
      }
      return uniStr;
      }

4 系统功能实现
省略

4.1系统登陆页
(1)描述:为了保证系统的安全性,要先使用本系统必须先登陆到系统中。

(2)程序运行效果图,如图4-1所示。
这是系统的主登陆界面,管理员通过这个界面进入到要操作的内部界面,管理该系统的相关功能。
在这里插入图片描述

图4-1系统登陆页面设计

(3)在登陆页面输入用户名和密码以,选择登陆身份后,点击提交按钮,跳转到登陆的service中,在该service中会对用户名,密码,验证码进行判断,并根据相应的用户角色进入对应的页面,loginservice关键代码:

   public String login(String userName,String userPw,int userType)
    {
      try
	     {
	       Thread.sleep(700);
	      } 
      catch (InterruptedException e)
         {
          // TODO Auto-generated catch block
	      e.printStackTrace();
         }
         String result="no";
	      if(userType==0)//系统管理员登陆
		    {
		      String sql="from TAdmin where userName=? and userPw=?";
		      Object[] con={userName,userPw};
		      List adminList=adminDAO.getHibernateTemplate().find(sql,con);
		       if(adminList.size()==0)
			    {
			      result="no";
			     }
			    else
			    {
			      WebContext ctx = WebContextFactory.get(); 
			      HttpSession session=ctx.getSession(); 
			      TAdmin admin=(TAdmin)adminList.get(0);
			      session.setAttribute("userType", 0);
	             session.setAttribute("admin", admin);
	             result="yes";
			     }
		      }
		    if(userType==1)
		     {
			
		      }
		    if(userType==2)
		     {
			
		      }		
    return result;
    }

4.2系统主页面
(1) 描述:管理员主页面:左方页面展示了管理员可操作的七大功能,进入相关的管理页面可以链接到子菜单,并且高亮显示,每个管理模块下面都有相应的子菜单。主要有修改个人密码功能,教师信息添加功能,教师信息管理功能,教师信息统计功能,教师信息导出功能,工资添加和工资信息统计功能。

(2) 程序运行效果图,如图4-2所示。

在这里插入图片描述

图4-2管理员主页面

在每个jsp页面将会对相关用户进行拦截操作,这样可以提高安全性,防止用户不经过登陆页面而进入任何子菜单页面:

   if(session.getAttribute("user")==null)
    {
     out.print("<script>alert('请先登录!');window.open('../index.jsp','_self')</script>");	 
    }

4.3教师信息管理
4.3.1信息录入
(1)描述:管理员输入教职工相关正确信息后点击录入按钮,如果是没有输入完整的信息,都会给出相应的错误提示,不能录入成功。输入数据都通过form表单中定义的方法οnsubmit="return checkForm()"来检查,checkForm()函数中是各种的校验输入数据的方式。主要是管理员根据实际的需要去添加老师的一些基本信息。

(2)程序效果图,如图4-3所示。

在这里插入图片描述

图4-3教师信息录入

(3)流程图,如图4-4所示。

在这里插入图片描述

图4-4教职工录入流程图

4.3.2信息编辑
(1)描述:管理员点击左侧的菜单“教师管理”,页面跳转到做教师界面,调用后台的servlet类查询所有教师的信息。教师信息的编辑是实验的很关键的一部分,因为老师的信息是工资的主体。设置老师工资的这个标准当然是不固定的,主要是可以有一个基本的概述,然后再根据实际情况进行完善,达到所需要的目的。管理人员可以根据学校老师的加入而输入数据路系统中,然后,可以修改老师的基本信息,或者彻底删除某位老师的相关信息。

(2)程序效果图,如图4-5所示。

在这里插入图片描述

图4-5教师管理界面

教师管理关键代码:

 public void jihuayuanAdd(HttpServletRequest req,HttpServletResponse res)
    public void jiaoshiDel(HttpServletRequest req,HttpServletResponse res)
    {
	  int id = Integer.parseInt(req.getParameter("id"));
		String del = "yes";
		String sql = "update t_jiaoshi set del=? where id=?";
		Object[] params={del,id};
		DB mydb=new DB();
		mydb.doPstm(sql, params);
		mydb.closed();
		
		req.setAttribute("message", "教师信息删除成功!");
		req.setAttribute("path", "jiaoshi?type=jiaoshiMana");
		
        String targetURL = "/common/success.jsp";
		dispatch(targetURL, req, res);		
	 }

4.3.3信息统计
(1)描述:管理员根据现实需要可以查询教师的信息并进行相应的编辑和管理,因为是模糊查询,所以,设置了两个关键字,一个是姓名,学校同名的老师不可避免,然后再用专业进行限制,可以方便快捷的查询到所求老师的信息。

(2)程序效果图,如图4-6所示。

在这里插入图片描述

图4-6教师信息查询界面

4.3.4信息删除
(1)描述:先是点击教师信息管理,页面跳转到教师管理界面,浏览所有的教师,点击要删除的教师,弹出确定对话框,即可删除该教师信息。

(2)程序效果图,如图4-7所示。

在这里插入图片描述

图4-7教师删除界面

4.4工资信息管理
4.4.1工资录入
(1)描述:在此页面主要是输入工资数、奖金等信息,然后选择教师,所有信息都不能够为空,是否为空也是通过form表单中的οnsubmit="return checkForm()来检查。工资信息管理是系统的核心,有了前面老师基本信息的搜集添加后,就是对某一月份的工资进行编辑,每位老师有自己的基本工资和奖金的数目,管理员根据相应的实际情况进行添加,方便管理。

(2)程序效果图,如图4-8所示。

在这里插入图片描述

图4-8工资信息录入

4.4.2工资信息查询
(1)描述:管理员点击左侧的菜单“工资管理”,页面跳转到工资管理界面,调用后台的gongziServlet类查询出所有的工资信息,并把这些信息封转到数据集合List中,绑定到request对象,然后页面跳转到相应的jsp,显示出来。这是管理员根据所属月份进行查询,随机的输入某年某月就会得到所有老师的基本工资和奖金数目。方便管理者的进一步工作。

(2)程序效果图,如图4-9所示。
在这里插入图片描述

图4-9工资信息管理页面

工资管理关键代码:

   public void gongziAdd(HttpServletRequest req,HttpServletResponse res)
      {
		int jsid = Integer.parseInt(req.getParameter("jsid"));
		String riqi = req.getParameter("riqi");
		String gongzi = req.getParameter("gongzi");
		String jiangjin = req.getParameter("jiangjin");
		
		String sql = "insert into t_gongzi (jsid,riqi,gongzi,jiangjin) values (?,?,?,?)";
		Object[] params={jsid,riqi,gongzi,jiangjin};
		DB mydb=new DB();
		mydb.doPstm(sql, params);
		mydb.closed();
		
		req.setAttribute("message", "教师工资添加成功");
		req.setAttribute("path", "gongzi?type=gongziMana");
		
        String targetURL = "/common/success.jsp";
		dispatch(targetURL, req, res);
	}

其中还有教师工资导出这一块儿,作为本设计的一个亮点:
将数据库中老师的信息结合后可以导出到excel中,方便进一步的统计打印,完整而且简洁,如图4-10所示。

在这里插入图片描述

图4-10教师工资导出

下面是WPS表格,如图4-11所示。

在这里插入图片描述

图4-11教师信息表格

相应的代码为:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="com.jspsmart.upload.*" %>
<%@ page import="org.apache.poi.hssf.usermodel.*" %>
<%@ page import="java.io.*" %>
<jsp:directive.page import="db.DB"/>
<jsp:directive.page import="java.sql.ResultSet"/>
<jsp:directive.page import="model.TJiaoshi"/>
<%
String path = request.getContextPath();
%>
       List jiaoshiList=new ArrayList();
       String sql="select * from t_jiaoshi where del='no'";
       Object[] params={};
	    DB mydb=new DB();
	    try
	     {
		  mydb.doPstm(sql, params);
		  ResultSet rs=mydb.getRs();
		  while(rs.next())
		  {
			TJiaoshi jiaoshi=new TJiaoshi();
			jiaoshi.setId(rs.getInt("id"));
			jiaoshi.setGonghao(rs.getString("gonghao"));
			jiaoshi.setXingming(rs.getString("xingming"));
			jiaoshi.setXingbie(rs.getString("xingbie"));
			jiaoshi.setNianling(rs.getString("nianling"));
			jiaoshi.setShengri(rs.getString("shengri"));
			jiaoshi.setGongzuo(rs.getString("gongzuo"));
			jiaoshi.setZhuanye(rs.getString("zhuanye"));
			jiaoshi.setZhaopian(rs.getString("zhaopian"));
			jiaoshi.setBeizhu(rs.getString("beizhu"));
			jiaoshiList.add(jiaoshi);
		   }
			rs.close();
		 }
			catch(Exception e)
			{
			  e.printStackTrace();
			}
			mydb.closed();
		   SmartUpload su = new SmartUpload(); // 新建一个SmartUpload对象 
          su.initialize(pageContext); // 初始化 
          su.setContentDisposition(null); 
          // 设定contentDisposition为null以禁止浏览器自动打开文件, 
          //保证点击链接后是下载文件。若不设定,则下载的文件扩展名为 
          //doc时,浏览器将自动用word打开它。扩展名为pdf时,将用acrobat打开
         //su.downloadFile("/uploadPath/file/liu.doc"); // 下载英文文件
          su.downloadFile(fujianPath, null, new String(java.net.URLDecoder.decode("教 师信息.xls","UTF-8").getBytes(), "ISO8859-1")); // 下载中文文件
          //downloadFile(String sourceFilePathName, String contentType, String destFileName)
          out.clear();
          out=pageContext.pushBody(); 
 %> 
</body>
</html>

4.5修改个人密码
(1)描述:输入用户名和用户的原有密码,输入新密码以后点击修改按钮即可修改密码成功。

(2)程序效果图,如图4-12所示。
在这里插入图片描述

图4-12修改密码

4.6安全退出系统
(1)描述:点此按钮回到系统的主页面。
(2)关键代码:主要是通过javascript语句来实现。
item_word[8][4]=“退出系统”;
item_link[8][4]=“javascript:window.open(‘…/index.jsp’,‘_self’)”;

5 系统测试
5.1系统测试目的与意义
省略

5.2测试方法
测试方法有很多,如模块测试、联合测试、验收测试、系统测试。
(1)模块测试
在这个测试步骤中所发现的往往是编码和详细设计的错误;
(2)联合测试
在整个系统作为一个整体进行调试。高层由上而下,低层由下而上,到中层进行会合;
(3)系统测试
在这个测试步骤中发现的往往是软件设计中的错误,也可能发现需求说明中的错误;
(4)验收测试
在这个测试步骤中发现的往往是系统需求说明书中的错误。

省略

5.3测试的主要内容
为了保证测试的质量,将测试过程分成几个阶段,即:代码审查、单元测试、集成测试、确认测试和系统测试。
(1)单元测试
单元测试集中在检查软件设计的最小单位—模块上,通过测试发现实现该模块的实际功能与定义该模块的功能说明不符合的情况,以及编码的错误。
(2)集成测试
集成测试是将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的问题。如一个模块与另一个模块可能有由于疏忽的问题而造成有害影响;把子功能组合起来可能不产生预期的主功能;个别看起来是可以接受的误差可能积累到不能接受的程度;全程数据结构可能有错误等。
(3)确认测试
确认测试的目的是向未来的用户表明系统能够像预定要求那样工作。经集成测试
后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是确认测试的任务,即软件的功能和性能如同用户所合理期待的那样。
(4)系统测试
软件开发完成以后,最终还要与系统中其他部分配套运行,进行系统测试。包括恢复测试、安全测试、强度测试和性能测试等。

单独对系统的测试主要从以下几方面入手:
功能测试:测试是否满足开发要求,是否提供设计所描述的功能,是否用户的需求都得到满足。功能测试是系统测试最常用和必须的测试,通常还会以正式的软件说明书为测试标准。
强度测试及性能测试:测试系统能力最高实际限度,即软件在一些超负荷情况下功能实现的情况。
安全测试:验证安装在系统内的保护机构确实能够对系统进行保护,使之不受各种非常的干扰。针对本系统主要是对权限系统的测试和对无效数据、错数据、和非法数据干扰的能力的测试。

5.4测试过程
在测试之初,由于将数据库中的数据是随便输入,没有实用性,为了使系统更加完善,在系统测试的过程中,本系统将一开始编程随便输入的数据全部清理后,输入了一些有效的测试数据,这样可以更真实的反映系统的功能实现情况。
这样不断发现问题,经过反复的测试、调试,把问题一个个的解决,最终系统可以正常运行。
测试流程:
(1)打开系统首页,输入错误的登录信息登录;
(2)输入正确的登录信息并登录;
(3)测试结果。
如表5.1所示。
表5.1测试表
在这里插入图片描述

5.5其他错误
在程序设计实现的过程中不可避免的会产生各种难以预料的错误,如书写错误、传值类型不一致、参数传递问题等等。这些都需要通过细心的检测与不断的调试才能够排除。比如在servlet路径配置时因粗心错误导致运行导致所报错误,如图5-2所示。
在这里插入图片描述

图 5-2由于servlet路径配置错误,运行时的提示

结 论
省略

参考文献
[1] 白秋产,高爱华,沈显来.基于VFP的做工师傅教职工管理信息系统[J].计算机与数字工程,2006,
34(01):143-145
[2] 舒攀,陈金刚.数字化校园建设中师资管理系统的实现与设计[J].武汉工程大学学报,2008,30
(04):108-111
[3] 艾灵仙. 高校系级网站构建平台的设计与实现[J]. 科技信息-2008年16期
[4] 张国玉,牟宗国.加强和完善教职工管理工作探讨[J].四川教育学院学报,2007,23(SI):19-20
[5] 严勇杰.浅谈如何加强高职院校教职工管理工作[J].科技信息,2008,(29):592-593
[6] 许义金,郑初华.教职工管理中心管理信息系统开发[J].南昌航空工业学院学报,2006,20(4)
94-97
[7] Joshua Bloch.Effective Java[M].Piscataway,N.J:IEEE Press,2009
[8] Abdellatif T.and F.Boyer. A node allocation system for deploying JavaEE Systems on
Grids.Hammemet,Tunisia.2009
[9] J.M.Hellerstein,M.Stonebraker.Architecture of a Database System[J].Foundations and Trends in
Databases,2007,1(2):141-259
[10] 寿秀香.基于C/S结构的教职工管理信息系统的设计与实现[J].黑龙江科技信息,2008,(31)55
[11] 张立科.java信息系统管理开发[M].北京:人民邮电出版社.
[12] 邓子云.JSP网络编程从基础到实践[M].北京:电子工业出版社.
[13] 朱涛江.MySql权威指南[M].中国电力出版社.2003.
[14] 郝玉龙.JavaEE编程技术[M].北京:北京交通大学出版社.
[15] 李清森,刘宇,侯玉凤 .浅谈高校铝窗综合管理.工作研究.2002.
[16](美)Bruce Eckel著,陈昊鹏译,Java编程思想(第三版)[M].北京:机械工业出版社,2007.6
[17] 李建中,王珊.《数据库系统原理(第2版)》电子工业出版社.2004.9
[18] 张长富,黄中敏.JavaScript动态网页编程实例手册[M].北京:海洋出版社,2005:196-239
[19] 艾灵仙. 高校系级网站构建平台的设计与实现.[J]. 科技信息-2008年16期

致 谢
省略

外文原文
省略

中文翻译
省略


5、源码下载:

本项目源码及论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。

序号毕业设计全套资源(点击下载)
本项目源码基于javaEE+原生servlet+tomcat的教师工资管理系统设计与实现(源码+文档)_JAVA_教师工资管理系统.zip
  • 3
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
一、设计目的和要求 通过两周的课程设计,加深对数据库技术相关理论的理解,增强动手能力,掌握使用 现行较为流行的数据库理论和数据库开发工具进行数据库管理操作(如建库、建立完整 性约束,对数据库中数据进行查询,更改等操作)的方法;具体应用方面,设计一个工 资管理系统实现对员工工资管理及查询功能。最终结果为设计和完成具有较完善功 能和一定规模的数据库应用系统(后台),为此后的软件工程课程设计毕业设计作准 备。 二、设计内容 2.1概述 项目背景: 当今的科技迅速发展,管理系统已经完全通过计算机实现,因此需要根据外界的不断 变化来完善管理系统设计适应其发展的数据库管理系统,提高其性能,完善其功能。 编写目的: 用SQL Server 2000建立一个工资管理系统数据库,在该数据库中建立员工基本信息表、员工工种信息 表、员工考勤情况表、员工津贴信息表、员工月工资表、年终奖金表、工资等级表、奖 金等级表。按照要求设置好属性和各表的主键,并实现一下功能: 1. 员工每个工种基本工资的设定 2. 加班津贴管理,根据加班时间和类型给予不同的加班津贴; 3. 按照不同工种的基本工资情况、员工的考勤情况产生员工的每月的月工资; 4. 员工年终奖金的生成,员工的年终奖金计算公式=(员工本年度的工资总和+津贴的 总和)/12; (5) 企业工资报表。能够查询单个员工的工资情况、每个部门的工资情况、按月的工资统计 ,并能够打印 2.2需求分析 1.问题陈述: 随着现代化技术的发展,员工管理已经完全通过计算机来实现了,为了高效率的完成 员工工资管理,满足对员工工资的查询及其他相关操作的实现,决定开发设计工资管 理系统,并通过使用工资管理系统,使工资管理工作系统化、规范化、自动化,从而达 到提高管理效率的目的。使办公人员可以轻松快捷地完成工资管理的任务。 系统后台采用SQL Server 2000建立数据库及其相关表和关系,运用SQL语句实现查询,计算等共能;后台采用Vis ual Basic所为界面输出,可提供添加删除等更新操作。 系统功能模块: 2.功能分析: 员工管理系统需要对员工的工资、奖金进行管理,还应包括员工的一些基本信息和考 勤情况、加班津贴。因此系统要满足员工工资、奖金的计算工能,通过设定的每月基本 工资和奖金,结合考勤情况的所扣工资和加班情况的所的津贴,计算出员工每个月实际 的工资,最后更具每个月的工资和奖金计算出每个员工所得的年终奖金以及查询部门或 单个员工信息的功能。 3.数据流图: 输入数据 输出数据 图2.1 数据流图 2.3概念结构设计: 1.概述:进行概念结构设计,它是整个数据库设计的关键,通过对用户需求进行综 合、归纳与抽象,形成一个独立于具体DBMS和概念模型。 形成E- R图后,根据该图转换成逻辑结构的关系模式,体现数据库中各实体之间的关系,及实体 与属性之间的关系。 2.实体间的整体E-R图: m n n 1 1 m 1 1 1 图2.2 工资管理系统E-R图 3.各表及其属性之间的E-R图: 图2..3员工基本信息表与属性之间的E-R图 图2.4 员工工种信息表与属性之间的E-R图 图2.5 员工考勤情况表与属性之间的E-R图 图2.6 员工津贴信息表与属性之间的E-R图 图2.7 员工月工资表与属性之间的E-R图 图2.8 年终奖金表与属性之间的E-R图 图2.9 奖金等级表与属性之间的E-R图 图2.10 员工公众信息表与属性之间的E-R图 2.4逻辑结构设计:关系模式(带下划线的为主键) 1.把实体转换为关系模式 员工(员工编号,员工姓名,员工性别,员工年龄,员工学历) 工种(员工编号,员工姓名,业绩编号,员工工种,等级编号,基本工资,月奖金) 考勤(员工编号,员工姓名,迟到次数,缺勤次数,应扣工资,基本工资,实发工资 ) 津贴(员工编号,员工姓名,加班时间,加班天数,所得津贴) 月工资(员工编号,员工姓名,应扣工资,所得津贴,月奖金,基本工资,实发金额 ) 年终奖金(员工编号,员工姓名,月奖金,基本工资,年奖金,年基本工资,年终奖 金) 等级(等级编号,员工等级,基本工资) 业绩(业绩编号,工作业绩,月奖金) 2.把关系转换为关系模式(带下划线的为主键) 分类(员工编号,业绩编号,等级编号) 获得(员工编号,所得津贴,实发金额,年终奖金) 考察(员工编号,迟到次数,缺勤次数) 分配(业绩编号,等级编号) 2.5物理结构设计: 概述:物理设计为逻辑数据模型选取一个最适合应用环境的物理结构(存储结构和存取 方法) 环境:sql server 2000,Visual Basic 6.0 2.6实施阶段 1.数据库中各表的结构如下: 表2-1 员工表 "字段名称"字段类型 "字段大小 "索引 "允许空值 "
"得分: " " " " " 课程设计报告 "企业工资管理系统 " " "XXX " "班级 "XXXXX " "学号 "XXXXXX " "课程名称 "数据库原理及应用 " "指导教师 " " 201X年X月X日 目 录 一.工资管理系统需求分析………………………………… 1.1功能需求………………………………………………… 1.1.1功能划分……………………………………… 1.1.2功能描述…………………………………………… 1.2性能需求………………………………………………… 1.3数据流图……………………………………………… 二.总体设计………………………………………………… 2.1数据库概念设计………………………………………… 2.2功能模块………………………………………………… 三.系统详细设计…………………………………………… 3.1数据库逻辑设计………………………………………… 3.2各模块功能……………………………………………… 3.2.1职工信息管理系统………………………………… 3.2.2职工工资管理系统………………………………… 3.2.3职工津贴管理系统………………………………… 四.系统实现………………………………………………… 4.1界面截图………………………………………………… 4.1.1主界面及工资基本信息界面…………………… 4.1.2登录界面………………………………………… 4.1.3系统主界面……………………………………… 4.1.4信息录入,修改,删除,查询界面………… 4.2设计代码………………………………………………… 五.实验总结………………………………………………… 1. 需求分析 1. 功能需求 1.1.1功能划分 (1)、员工信息表;及时反映员工的基本信息 (2)、员工津贴表,反映员工津贴 (3)、员工基本工资表 1.1.2 功能描述 (1)、基本工资的设定 (2)、津贴的设定 (3)、计算出月工资 (4)、录入员工工资信息 (5)、添加员工工资信息 (6)、更改员工工资信息 1.2性能需求 此工资管理系统工资数据精度的计算能在默认情况之下精确到小数点后3位小数, 即是精确到分的计算。但在用户使用过程中,能自行根据实际情况进行小数计算精度的 设定,最大能允许保留小数点后5位的精度。在时间特性上,当用户发出命令请求时的服 务器的响应时间、对数据更新处理、工资数据的查询检索等上,同样要求系统响应时间 不会超过0.5秒时间。系统支持多种操作系统的运行环境,多不同操作系统,不同文件格 式的磁盘上的数据均能实现信息的互通,及共享。当服务器移植到其他的系统平台,如 :Linux平台下时,同样能和其他的系统进行数据存取同步,不会出现系统之间互不兼容 的情况,系统支持多系统之间的互连互通,系统有巨大的强健性。本课程设计是用Java 语言编写,mysql数据库。 1.3数据流图 根据工资管理要求及用户需求调查分析,得到以下数据流图 图1.1第一层数据流图 图1.2职工信息的载入 图1.4考勤的信息载入 2.总体设计 2.1数据库概念设计 有了数据流图,用E-R图来说明工资信息管理系统的数据库概念模式,如图 1 n m 图2.1实体之间关系E-R图 2.2功能模块 3.系统详细设计 3.1数据库逻辑设计 将以上E-R转换成如下关系模式 员工(职工号,,密码) 工资(职工号,,基本工资,) 津贴(职工号,,奖金) 其中,标有下划线的字段表示为该数据表的主码,即主关键字。在上面的实体以及实 体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。 工资信息管理系统数据库中各个表格的设计结果如下面的几个表格所示。每个表格表 示在数据库中的一个表。 表一:员工信息表: "列名 "数据类型 "可否取空 "备注说明 " "no " Char ( 8 ) "NOT NULL "职工号(主键) " "name "Char(10) "NOT NULL "职工 " "mi "Smallint "NOT NULL "登录密码 " 表二:基本工资表: "列名 "数据类型 "可否取空 "备注说明 " "no "Char ( 8 ) "NOT NULL "职工号(主键) " "name "Char(10) "NOT NULL "职工 " "Jb "money "NOT NULL "基本工资 " 表四:津贴信息表 "列名 "数据类型 "可否为空 "备注说明 " "no "Char ( 8 ) "NOT NULL "职工号(主键) " "name "Char(10) "NOT NULL "职工 " "Jt "money "NOT NULL "津贴 " 3.2各模块功能 3.2.1职工信息管理系统 功能为:财务部门相关

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毕业设计方案专家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值