薪酬管理java课程设计职工工资管理系统 精品.docx

上传人:b****7 文档编号:8609853 上传时间:2023-02-01 格式:DOCX 页数:63 大小:310.68KB
下载 相关 举报
薪酬管理java课程设计职工工资管理系统 精品.docx_第1页
第1页 / 共63页
薪酬管理java课程设计职工工资管理系统 精品.docx_第2页
第2页 / 共63页
薪酬管理java课程设计职工工资管理系统 精品.docx_第3页
第3页 / 共63页
薪酬管理java课程设计职工工资管理系统 精品.docx_第4页
第4页 / 共63页
薪酬管理java课程设计职工工资管理系统 精品.docx_第5页
第5页 / 共63页
点击查看更多>>
下载资源
资源描述

薪酬管理java课程设计职工工资管理系统 精品.docx

《薪酬管理java课程设计职工工资管理系统 精品.docx》由会员分享,可在线阅读,更多相关《薪酬管理java课程设计职工工资管理系统 精品.docx(63页珍藏版)》请在冰豆网上搜索。

薪酬管理java课程设计职工工资管理系统 精品.docx

薪酬管理java课程设计职工工资管理系统精品

苏州科技学院电子信息实验中心

面向对象技术课程设计 报告

--职工工资管理系统

专业年级

计算机科学与技术20XX

班 级

计算机1422

学 号

1430107225

姓 名

宋正伟

成 绩

指导教师

张宗杰

 

20XX年4月 

 

一.引言

1.1项目的名称

职工工资信息管理系统

1.2项目背景和目标

职工工资信息管理系统主要能够对职工个人信息进行管理,对职工用户提供个人信息查询,工资查询等,对管理用户提供增加,修改,删除员工信息等操作。

我们的目标就是为该系统提供后台连接数据库程序设计以及前台用户界面设计。

1.3项目的可行性研究

设计此系统需要Java面向对象编程基础,数据库应用知识以及功能分析。

根据目前所开设的课程,学生已经具备了这样的知识,有能力综合Java编程知识和数据库应用知识做出一个这样的职工工资信息管理系统。

二.需求分析

2.1系统概述

此系统提供给公司职工和管理者使用,职工登陆后可以对自己的信息进行查询,管理者登陆后可以对职工的信息进行修改,增加,删除等操作。

2.2系统运行环境

Java程序运行在eclipse软件上编译并且运行,数据库用MYSQL数据库

三.系统设计

3.1开发与设计的总体思想

职工方面:

职工可以通过自己的职工号和密码登陆后,进入职工主界面,在这个主界面里,职工可以进行信息查询操作。

管理员方面:

管理员通过自己的密码登陆后可以选择:

查询功能,修改功能。

在查询功能里,可以选择查询职工个人信息或者工资情况。

在修改功能里,可以选择对职工的信息进行增加,删除和修改操作。

3.2系统模块结构图

 

 

3.3数据库结构设计

为了支持此职工档案管理系统,创建数据库employeemanage,在这个数据库里包含三个表:

worker表,manager表,employee表,它们的截图如下:

在worker表中,有八个属性列,分别为:

id(职工号),wname(姓名),age(年龄),sex(性别),number(电话),salary(工资),dept(部门)。

其基本数据类型分别为:

char,char,int,char,char,int,char.

在manager表中,有两个属性列,分别为:

mname(管理员姓名),password(密码)其基本数据类型分别为:

char,char。

当管理员登录系统时从此表获取数据,其截图如下:

 

在employee表中,有两个属性列,分别为:

wname(职工姓名),password(密码)其基本数据类型分别为:

char,char。

当教职工登录系统时从此表获取数据,其截图如下:

 

3.4模块设计

在整个系统主界面,可以选择登录方式,是职工登录还是管理员登录。

如果选择职工,则进入职工登录界面,在这个界面上要求输入职工姓名和密码。

输入后单击“确认登录”按钮,若密码正确,则转换到职工工资信息查询页面,当输入职工姓名后即可显示该名职工的个人信息,若密码不正确,这提示密码错误。

如果选择是管理员登录,则进入管理员登陆界面,在这个界面上输入管理员姓名和密码,输入后单击“职工信息管理”按钮,则进入管理员主界面。

在管理员主界面可以选择进行文件操作,查询操作还是修改操作。

若要查询职工信息,点击查询菜单项则进入职工信息检索界面,在此界面的检索方式中选择要检索的数据属性,在检索内容框中输入检索的具体信息,例如,检索“姓名”字段时,要键入某个职工的姓名。

输入后,单击“检索”按钮,则开始对数据库中数据进行查询。

如果数据库检索到所需信息,则生成列表显示检索结构,如果没有所需信息,则页面列表中显示为空。

若要查询职工工资信息,则点击职工工资信息查询菜单项,进入工资查询界面。

在此界面的文本框中输入要查询工资信息的职工姓名,然后单击检索按钮。

若数据库中有该职工的工资信息,则生成列表显示工资信息,若没有此记录,则列表显示内容为空。

如果管理员要对数据库中进行修改操作,则在管理员主界面上选择修改菜单项,在此项中,选择要修改的具体内容,总共有四项修改操作:

添加新人信息,删除辞职者信息(这两个是对数据库中worker表的操作)。

在添加信息操作中,按照标签提示一次输入要添加的记录值,输入完毕后,单击“添加”按钮,若输入成功,则提示成功,若输入失败,则提示失败。

在删除信息操作中,输入要删除信息的职工姓名,单击“删除”按钮,若删除成功,则提示成功,若删除失败则提示失败。

以上就是该职工工资管理系统涉及的操作步骤。

 

3.5系统流程描述

 

No

 

 

Yes

 

 

四、系统实现DBconnection类

本系统保存在employeemanage包里

其中包含四个包:

connection包,dao包,model包,ui包

1.connection包中的类:

(1)DBconnection类:

此类设置程序与数据库的连接,通过设置驱动类型和数据源来确定要连接的数据库。

若连接成功,提示:

connectionsuccess,若连接失败,提示:

connectionfailure

DBconnection类源代码:

packageconnection;

importjava.sql.Connection;

importjava.sql.DriverManager;

importjava.sql.SQLException;

publicclassDBconnection

{

publicstaticvoidmain(String[]args)

{

newDBconnection();

}

publicstaticConnectioncon=null;

publicstaticConnectiongetConnection()

{

try{

StringdbDriver=".mysql.jdbc.Driver";

Class.forName(dbDriver);

System.out.println("DriverSuceess");

}

catch(ClassNotFoundExceptione){

System.out.println("Drivernotfound");

e.printStackTrace();

}

try{

con=DriverManager.getConnection("jdbc:

mysql:

//localhost:

3306/employeemanage","root","0703112418");

System.out.println("ConnectionSuceess");

}

catch(SQLExceptione){

System.out.println("Connetionfailure");

e.printStackTrace();

}

returncon;

}

publicstaticvoidcloseConnection()

{

if(con!

=null)

try{

con.close();

System.out.println("databaseclosesuccess");

}

catch(SQLExceptione){

System.out.println("closefailure");

e.printStackTrace();

}

}

}

2.Dao包中的类:

(1)WorkerDao类:

此类中有四个方法,managerLogin,addWorker,deleteWorker,queryworker,作用分别是控制管理员登陆系统,增加职工基本信息,删除职工基本信息,查询职工基本信息。

(2)managerLogin()方法中,有两个参数,分别传给select语句中的mname(管理员姓名)和password(登录密码),利用select语句在employee表中检索管理员登录信息。

若存在此信息,返回true,否则返回false。

(3)addWorker)方法中,有七个参数,分别传给insert语句中的id(职工号),wname(职工姓名),age(年龄),sex(性别),number(电话),salary(工资)和dept(部门),利用insert语句向worker职工信息表中插入记录。

若插入成功,返回true,否则返回false。

(4)deleteWorker()方法中,有一个参数,传给delete语句中的wname(职工姓名),利用delete语句,把worker表中相关职工信息删除。

若删除成功,返回true,否则返回false。

(5)queryWorker()方法中,有两个参数,分别传给select语句中的field(查找方式)和key(查找内容),利用select语句,从worker表中检索职工信息。

若存在此信息,则返回一个ArrayList类的对象lis(表格),否则,异常处理。

WorkerDao类源代码:

packagedao;

importjava.sql.Connection;

importjava.sql.PreparedStatement;

importjava.sql.ResultSet;

importjava.sql.SQLException;

importjava.sql.Statement;

importjava.util.ArrayList;

importmodel.Student;

importconnection.DBConnection;

publicclassWorkerDao

{

publicbooleanmanagerLogin(Stringmname,Stringpassword){

DBconnectiondb=newDBconnection();

Connectioncon=db.getConnection();

booleanisfound=false;

PreparedStatementpst;

try{

pst=con.prepareStatement("select*frommanagerwheremname=?

andpassword=?

");

pst.setString(1,mname);

pst.setString(2,password);

ResultSetrs=pst.executeQuery();

if(rs.next())

isfound=true;

}catch(SQLExceptione){

e.printStackTrace();

}

System.out.println(isfound);

returnisfound;

}

publicbooleanaddWorker(Stringid,Stringwname,Stringsex,intage,Stringnumber,intsalary,Stringdept)

{

Connectioncon=DBconnection.getConnection();

PreparedStatementpst;

try{

pst=con.prepareStatement("insertintoworkervalues(?

?

?

?

?

?

?

?

)");

pst.setString(1,id);

pst.setString(2,wname);

pst.setString(3,sex);

pst.setInt(4,age);

pst.setString(5,number);

pst.setInt(6,salary);

pst.setString(7,dept);

intcount=pst.executeUpdate();//返回修改的记录数

if(count==1)

returntrue;

else

returnfalse;

}

catch(SQLExceptione)

{

e.printStackTrace();

}

returnfalse;

}

publicArrayListqueryWorker(Stringfield,Stringkey)

{

ArrayListlis=newArrayList();

Connectioncon=DBconnection.getConnection();

Statementstm;

try{

stm=con.createStatement();

Stringsql="select*fromworkerwhere"+field+"like'%"

+key+"%'";

System.out.println(sql);

ResultSetrs=stm.executeQuery(sql);

while(rs.next()){

Workwork=newWork(rs.getString

(1),rs.getString

(2),rs.getString(3),rs.getInt(4),rs.getString(5),rs.getString(6),rs.getInt(7);

lis.add(work);

}

}

catch(SQLExceptione)

{

e.printStackTrace();

}

returnlis;

}

publicbooleandeleteWorker(Stringkey){

Connectioncon=DBconnection.getConnection();

Statementstm;

try{

stm=con.createStatement();

Stringsql="deletefromworkerwherewnamelike'%"

+key+"%'";

System.out.println(sql);

intcount=stm.executeUpdate(sql);

if(count==1)

returntrue;

else

returnfalse;

}catch(SQLExceptione){

e.printStackTrace();

}

returnfalse;

}

}

 

(2)EmployeeDao类:

此类中有一个方法:

queryEmployee(),作用是控制职工登陆,queryEmployee()方法中,有两个参数,分别传给select语句中的wname(职工姓名)和password(登陆密码),利用select语句在employee表中检索职工登陆信息。

若存在此信息,返回true,否则返回false。

EmployeeDao类源代码:

packagedao;

importjava.sql.Connection;

importjava.sql.PreparedStatement;

importjava.sql.ResultSet;

importjava.sql.SQLException;

importjava.sql.Statement;

importconnection.DBConnection

publicclassEmployeeDao{

publicbooleanqueryEmployee(Stringwname,Stringpassword){

DBconnectiondb=newDBconnection();

Connectioncon=db.getConnection();

booleanisfound=false;

PreparedStatementpst;

try{

pst=con.prepareStatement("select*fromemployeewherewname=?

andpassword=?

");

pst.setString(1,wname);

pst.setString(2,password);

ResultSetrs=pst.executeQuery();

if(rs.next())

isfound=true;

}

catch(SQLExceptione)

{

e.printStackTrace();

}

System.out.println(isfound);

returnisfound;

}

publicstaticvoidmain(String[]args){

}

}

(3)Salary类:

在该类中有四个方法querySalary,addSalary,deleteSalary

作用分别是为职工用户提供查询工资信息的功能,为管理者用户提供

询职工工资信息,添加工资信息,删除工资信息功能。

querySalary()方法中,有一个参数,传给select语句中的wname(职工姓名),利用select语句,查询工资信息表中的内容。

若查询成功,则返回一个ArrayList类的对象lis(表格),否则,异常处理。

addSalary()方法中,有七个参数,分别传给insert语句中的id(职工号),wname(职工姓名),dept(部门)。

利用insert语句,将这些记录写入salary表中。

若插入成功返回true,否则返回false。

deleteSalary()方法中,有一个参数,传给delete语句中的wname(职工姓名),利用delete语句,把salary表中相关职工的工资信息删除。

若删除成功,返回true,否则返回false。

Salary类源代码:

packagedao;

importjava.sql.Connection;

importjava.sql.PreparedStatement;

importjava.sql.ResultSet;

importjava.sql.SQLException;

importjava.sql.Statement;

importjava.util.ArrayList;

importui.WorkerLoginUI;

importmodel.Salary;

importmodel.Worker;

importconnection.DBConnection;

publicclassSalaryDao{

publicArrayListquerySalary(Stringkey){

ArrayListlis=newArrayList();

Connectioncon=DBconnection.getConnection();

Statementstm;

try{

stm=con.createStatement();

Stringsql="select*fromsalarywherewnamelike'%"+key

+"%'";

System.out.println(sql);

ResultSetrs=stm.executeQuery(sql);

while(rs.next()){

Salarysalary=newSalary(rs.getString

(1),rs.getString

(2),rs

.getString(3),rs.getString(4),

rs.getInt(5),rs.getString(6),rs.getString(7));

lis.add(salary);

}

}catch(SQLExceptione){

e.printStackTrace();

}

returnlis;

}

publicArrayListquerySalary(Stringkey){

ArrayListlis=newArrayList();

Connectioncon=DBconnection.getConnection();

Statementstm;

try{

stm=con.createStatement();

Stringsql="select*fromsalarywherewnamelike'%"+ManagerDD.st1

+"%'";

System.out.println(sql);

ResultSetrs=stm.executeQuery(sql);

while(rs.next()){

Salarysalary=newSalary(rs.getString

(1),rs.getString

(2),rs

.getString(3),rs.getString(4),rs.getInt(5),rs.getString(6),rs.getString(7));

lis.add(salary);

}

}catch(SQLExceptione){

e.printStackTrace();

}

returnlis;

}

publicbooleanaddSalary(Stringid,Stringwname,Stringdept){

Connectioncon=DBconnection.getConnection();

PreparedStatementpst;

try{

pst=con.prepareStatement("insertintosalaryvalues(?

?

?

?

?

?

?

)");

pst.setString(1,id);

pst.setString(2,wname);

pst.setInt(3,age);

pst.setString(4,sex);

pst.setInt(5,number);

pst.setInt(6,salary);

pst.setString(7,dept);

intcount=pst.executeU

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1