面向对象技术课程设计A人事工资管理系统Word文档格式.docx

上传人:b****7 文档编号:22045405 上传时间:2023-02-02 格式:DOCX 页数:25 大小:109.93KB
下载 相关 举报
面向对象技术课程设计A人事工资管理系统Word文档格式.docx_第1页
第1页 / 共25页
面向对象技术课程设计A人事工资管理系统Word文档格式.docx_第2页
第2页 / 共25页
面向对象技术课程设计A人事工资管理系统Word文档格式.docx_第3页
第3页 / 共25页
面向对象技术课程设计A人事工资管理系统Word文档格式.docx_第4页
第4页 / 共25页
面向对象技术课程设计A人事工资管理系统Word文档格式.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

面向对象技术课程设计A人事工资管理系统Word文档格式.docx

《面向对象技术课程设计A人事工资管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《面向对象技术课程设计A人事工资管理系统Word文档格式.docx(25页珍藏版)》请在冰豆网上搜索。

面向对象技术课程设计A人事工资管理系统Word文档格式.docx

要解决的关键技术问题。

(4)详细设计

确定要使用的函数、API,掌握它们的使用的参数和返回值。

确定模块内部的流程和实现算法;

确定要设计的过程、构件、类、对象、函数和它们的参数。

(5)编码设计

建立设计编程的环境;

注意编程的风格的规范。

(6)实际数据运行测试

检查程序是否有错误;

检查界面是否美观;

检查操作是否方便;

检查提供的信息是否清晰;

检查性能是否稳定。

六、设计说明书内容要求

6.1概述

目的:

实现人事管理。

主要完成的任务:

实现了员工信息的查询,对员工信息的增、删、改,对员工工资的查询,和对员工信息的统计,数据的备份和恢复。

使用的开发工具:

Myeclipse8.5,MySQL。

解决的主要问题:

解决了对员工信息的管理,对工资的统计。

6.2总体设计

确定基本的技术路线:

面向对象。

确定软件的总体结构、模块关系、总体流程:

 

6.3详细设计

1.ResultSetexecuteQuery(String 

sql)throwsSQLException//执行给定的SQL语句,该语句返回单个ResultSet对象。

参数:

sql-要发送给数据库的SQL语句,通常为静态SQLSELECT语句;

返回:

包含给定查询所生成数据的ResultSet对象;

永远不能为null;

抛出:

SQLException-如果发生数据库访问错误,在已关闭的Statement上调用此方法,或者给定SQL语句生成单个ResultSet对象之外的任何其他内容。

2.

3.主要的方法体:

public 

User 

login(User 

user);

//登录方法

public 

Vector 

findUserAll();

//查找所有员工信息

void 

backUp(User 

//数据备份

recOver();

//数据恢复

showUserType();

//显示用户种类

showUserTypeMain();

int 

updateUserType(UserType 

userType);

//更新用户种类

saveUserType(UserType 

//保存用户种类

removeUserType(int 

tid);

//删除用户种类

showUserTypeAndUser();

//连接查询员工信息及其种类

showUserTypeLikeType(String 

//模糊查询用户种类

publicVectorfindStaffInfo(Stringstaffname);

//模糊查找

publicintsaveStaff(StaffInfostaffInfo);

//添加员工

publicintremoveStaff(Stringname);

//根据姓名删除员工

publicintupdateStaff(StaffInfo2staffInfo2);

//修改员工信息

publicVectorfindStaffSalary(Stringstaffname);

publicintupdateSalary(Stringdepart,doublesalary);

//调整员工薪水信息

publicintaddRewardPunish(RewardPunishrp);

//增加奖惩数据

publicintdeleteRewardPunish(RewardPunishrp);

//删除奖惩数据

publicintupdateRewardPunish(intid,Stringdate,Stringtype,Stringreason,

intscore,Stringremark);

//更新奖惩数据

publicVectorshowRewardPunish(intid);

//显示奖惩数据

publicintSelectRewardPunish(RewardPunishrp);

//选择奖惩数据

findDepart(String 

name);

//根据部门名模糊查找

showDepartNumber(String 

//根据部门名统计各部门人数

6.4编码设计

开发环境的设置和建立:

下载并安装MyEclipse8.5,MySQL6.0;

程序设计时要注意的事项:

需加载与MySQL相对应的驱动包;

关键构件/插件的特点和使用:

JTable需要放在ScrollPane中,可与数据库中的表相对应,而且可以实现下拉滚动。

主要程序的代码设计及注释:

一.登录模块是用户登录进去进行相关操作的,如员工信息的增删改查等等。

(1)View层代码

loginTitle=newjavax.swing.JLabel();

jLabel1=newjavax.swing.JLabel();

jLabel2=newjavax.swing.JLabel();

uname=newjavax.swing.JTextField();

pwd=newjavax.swing.JPasswordField();

limit=newjavax.swing.JComboBox();

jLabel3=newjavax.swing.JLabel();

loginBtn=newjavax.swing.JButton();

registerBtn=newjavax.swing.JButton();

jLabel4=newjavax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

setForeground(java.awt.Color.white);

setResizable(false);

setState

(1);

loginTitle.setFont(newjava.awt.Font("

MicrosoftYaHeiUI"

1,44));

loginTitle.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);

loginTitle.setText("

\u4eba\u4e8b\u5de5\u8d44\u7ba1\u7406\u7cfb\u7edf"

);

jLabel1.setText("

\u7528\u6237\u540d"

jLabel2.setText("

\u5bc6\u7801\uff1a"

//limit.setModel(javax.swing.DefaultComboBoxModel@187e702);

jLabel3.setText("

\u6743\u9650\uff1a"

loginBtn.setText("

\u767b\u9646"

(2)Action层

privatevoidregisterBtnActionPerformed(java.awt.event.ActionEventevt){

registerFramer=newregisterFrame();

r.setVisible(true);

}

privatevoidloginBtnMouseClicked(java.awt.event.MouseEventevt){

Stringname=this.uname.getText();

Stringpwd=this.pwd.getText();

Stringlimit=this.limit.getSelectedItem().toString();

inttype=0;

if("

管理员"

.equals(limit)){

type=1;

usertype="

;

}else{

type=2;

普通员工"

}

Useruser=newUser(name,pwd,type);

Userflag=userService.login(user);

if(flag!

=null){

wusername=name;

wtype=limit;

oko=newok();

o.setVisible(true);

setVisible(false);

failf=newfail();

f.setVisible(true);

dispose();

(3)Dao数据交互层

@Override

publicUserlogin(Useruser){

//TODOAuto-generatedmethodstub

UserresultUser=null;

Stringsql="

selectuser_no,user_name,user_pwd,user_type"

+

"

fromt_user"

whereuser_name='

"

+user.getUserName()+"

'

"

anduser_pwd='

+user.getUserPwd()+"

anduser_type="

+user.getUserType()+"

conn=JDBCUtil.getConnection();

try{

stmt=conn.createStatement();

rs=stmt.executeQuery(sql);

if(rs.next()){

resultUser=newUser();

resultUser.setUserNo(rs.getInt("

user_no"

));

resultUser.setUserName(rs.getString("

user_name"

resultUser.setUserPwd(rs.getString("

user_pwd"

resultUser.setUserType(rs.getInt("

user_type"

}

}catch(SQLExceptione){

e.printStackTrace();

finally{

JDBCUtil.closeResource(conn,psmt,stmt,rs);

returnresultUser;

二.人事管理模块设计及实现

对员工的相关资料及记录进行管理。

可在该模块对员工基本资料、奖惩记录、修改员工信息可实现对员工的调动、薪水记录进行修改。

当进入到人事管理子系统模块,再点击模糊查询。

删除员工按钮,会进入到下面的界面

其中的模糊查询代码如下

(1)view层

privatevoidinitComponents(){

jScrollPane1=newjavax.swing.JScrollPane();

jTable1=newjavax.swing.JTable();

jButton1=newjavax.swing.JButton();

jLabel1=newjavax.swing.JLabel();

jname=newjavax.swing.JTextField();

jButton2=newjavax.swing.JButton();

jButton3=newjavax.swing.JButton();

jLabel2=newjavax.swing.JLabel();

jButton4=newjavax.swing.JButton();

jLabel3=newjavax.swing.JLabel();

jLabel4=newjavax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jTable1.setModel(newjavax.swing.table.DefaultTableModel(

newObject[][]{

},newString[]{"

姓名"

"

编号"

部门编号"

职称"

性别"

基本工资"

"

电话号码"

工号"

}));

jScrollPane1.setViewportView(jTable1);

jButton1.setText("

\u786e\u5b9a"

jButton1.addActionListener(newjava.awt.event.ActionListener(){

publicvoidactionPerformed(java.awt.event.ActionEventevt){

jButton1ActionPerformed(evt);

});

jLabel1.setText("

\u8bf7\u8f93\u5165\u59d3\u540d\uff0c\u652f\u6301\u6a21\u7cca\u67e5\u627e"

jname.setText(null);

jButton2.setText("

\u9000\u51fa\u6a21\u7cca\u67e5\u627e"

jButton2.addActionListener(newjava.awt.event.ActionListener(){

jButton2ActionPerformed(evt);

jButton3.setText("

\u5237\u65b0"

jButton3.addActionListener(newjava.awt.event.ActionListener(){

jButton3ActionPerformed(evt);

jLabel2.setText("

\u5237\u65b0\u540e\u53ef\u7ee7\u7eed\u67e5\u627e"

jButton4.setText("

\u5220\u9664\u6b64\u5458\u5de5"

jButton4.addActionListener(newjava.awt.event.ActionListener(){

jButton4ActionPerformed(evt);

jLabel3.setText("

\u7a7a\u503c\u53ef\u67e5\u627e\u6240\u6709\u5458\u5de5"

jLabel4.setText("

\u9700\u8981\u8f93\u5165\u5168\u540d\u53ef\u4ee5\u5220\u9664\u5458\u5de5"

publicvoidfindStaffName(JTablejTable,Stringname){

DefaultTableModelmodel=(DefaultTableModel)jTable.getModel();

model.setRowCount(0);

Vectorv=staffInfoDao.findStaffInfo(name);

for(inti=0;

i<

v.size();

i++){

model.addRow((Vector)v.get(i));

(2)action层

privatevoidjButton1ActionPerformed(java.awt.event.ActionEventevt){

Stringname=jname.getText();

if(name!

staff.findStaffName(jTable1,name);

pleaseInputp=newpleaseInput();

p.setVisible(true);

(3)dao层

publicVectorfindStaffInfo(Stringstaffname){

Vectorlist=newVector();

select*"

+"

fromt_staff_info"

+"

wherestaff_namelike'

%"

+staffname+"

%'

while(rs.next()){

VectorlistObject=newVector();

//listObject.add(new

//User(rs.getInt("

id"

),rs.getString("

uname"

pwd"

)));

listObject.add(rs.getString("

staff_name"

listObject.add(rs.getInt("

staff_id"

dept_no"

staff_pos_name"

staff_sex"

staff_baseSal"

staff_phoneNum"

staff_workNum"

list.add(listObject);

//TODOAuto-generatedcatchblock

}finally{

returnlist;

4.4工资管理模块设计与实现

在员工基本信息管理界面里可以对单个员工进行基本工资的修改,因而在面向人数较多的企业时,这种方式存在弊端,部门整体调薪操作可以对整个业绩高的部门进行整体调薪

privatevoidinitComponents(

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

当前位置:首页 > 考试认证 > 司法考试

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

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