面向对象技术课程设计A人事工资管理系统Word下载.docx
- 文档编号:21158824
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:25
- 大小:109.94KB
面向对象技术课程设计A人事工资管理系统Word下载.docx
《面向对象技术课程设计A人事工资管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《面向对象技术课程设计A人事工资管理系统Word下载.docx(25页珍藏版)》请在冰豆网上搜索。
要解决的关键技术问题。
(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(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 技术 课程设计 人事 工资管理 系统