职工工资管理系统.docx
- 文档编号:24385161
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:38
- 大小:312.82KB
职工工资管理系统.docx
《职工工资管理系统.docx》由会员分享,可在线阅读,更多相关《职工工资管理系统.docx(38页珍藏版)》请在冰豆网上搜索。
职工工资管理系统
数据库课程实训报告
题目:
职工工资管理系统
专业
学生姓名
班级
学号
指导教师
完成日期
职工工资管理系统
1课题内容和要求
1.1课题描述
职工工资管理系统可定位于企业会计系统的一个子系统,该系统主要完成的工作为:
录入各职工自身及工资情况、对已经存在的数据的修改、删除、可查询、统计系统中的数据等。
为此因此职工工资管理系统的功能:
读取文件信息、数据输入、显示、查找、增加、删除、修改、计算、列表等。
1.2课题要求
1)可以按照科室(经理室、财务科、技术科和销售科)增加、修改、删除职工的基本资料。
2)职工信息应包含职称,分为高级、中级、初级,同一职称职工基本工资相同。
3)职工工资由基本工资、奖金、扣除金额组成,其中奖金、扣除金额可每月输入不同数据。
4)可以计算职工每月工资。
5)可以按照科室、职称、月份统计职工工资。
6)可以按照科室、职工号、职工名称查询职工工资。
2需求分析
2.1功能需求分析
1)职工管理:
职工管理可以包含两大模块档案管理和奖惩管理,其中档案管理可以管理职工的基本信息,管理员可以增加职工的信息,删除职工的信息,修改职工的信息和最基本的查看职工的信息,通过这一功能可以让管理者掌控职工的全部信息和人事变动信息。
奖惩管理中管理员可以管理职工的奖惩信息,添加职工的奖惩信息,查看,修改和删除职工的奖惩信息。
2)工资管理:
管理员可以查看职工的工资情况,设置工资结构,通过学历,职称,教龄等一系列的信息来发放工资,规定到达哪一个级别需要发放多少的基本工资。
管理员到每个月末的时候根据职工的基本工资和得到的福利津贴来结算职工的可得工资,并以此为依据来给职工发放。
3)系统管理:
系统管理管理包括部门管理和数据备份,通过部门管理让管理者通过计划,组织,激励,控制和领导等环节来协调人力,物力和财力资源,以期达成组织目标。
数据备份是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程。
随着技术的不断发展,数据的海量增加,不少的企业开始采用网络备份。
一般通过专业的数据存储管理软件结合相应的硬件和存储设备来实现。
数据是一个系统运行的血液,是一个公司能否正常运行的关键,因此数据备份至关重要,因一些不可抗力因数而使数据丢失将造成非常严重的后果,为了保障生产、销售、开发的正常运行,企业用户应当采取先进、有效的措施,对数据进行备份、防范于未然。
2.2数据需求分析
数据流图(图2.2.1-2.2.3):
图2.2.1工资管理流图
图2.2.2员工管理数据流图
图2.2.3员工信息查询数据流图
数据字典(图2.2.4-2.2.9):
图2.2.4档案信息数据项卡图2.2.5部门信息数据项卡
图2.2.6职务信息数据项卡图2.2.7变动信息数据项卡
图2.2.8登录信息数据项卡图2.2.9工资信息数据项卡
3系统设计
3.1功能模块设计
1)用户管理模块添加、编辑、删除登录用户。
2)基本信息设置模块包括员工基本信息管理企业工资的管理津贴的管理。
3)查询模块可组合各种条件查找各个部门的员工的基本信息和工资信息。
4)打印报表模块工资报表的打印预览、打印。
图3.1系统功能模块图
3.2数据库概念设计
图3.2总体E-R图
3.3数据库逻辑设计
1)部门关系模式(部门编号,部门名,经理编号,经理姓名)
2)员工关系模式(员工编号,姓名,年龄,性别,学历,电话,部门编号)
3)工资关系模式(发放地点,发放时间,福利,员工编号)
4)管理员关系模式(用户编号,密码,用户名,员工编号)
5)任职关系模式(部门编号,员工编号,年份)
3.4数据库物理设计
列名
数据类型
允许空
默认值
是否主键
用户名
Varchar(50)
Notnull
主键
密码
Int
Notnull
权限
Varchar(50)
Notnull
表3.4.1用户登录表(User)
列名
数据类型
允许空
默认值
是否主键
部门编号
Int
Notnull
主键
部门名称
Varchar(50)
Nonull
表3.4.2部门表(department)
列名
数据类型
允许空
默认值
是否主键
员工编号
Int
Notnull
主键
员工姓名
Varchar(50)
Notnull
员工性别
Varchar(50)
Notnull
‘男’
部门编号
Int
Nonull
出生日期
Varchar(50)
员工民族
Varchar(50)
婚姻状况
Varchar(50)
职务名称
Varchar(50)
Nonull
联系电话
Int
Notnull
基本工资
Varchar(50)
Notnull
表3.4.3员工表(employee)
列名
数据类型
允许空
默认值
是否主键
员工编号
int
Notnull
是
部门编号
Int
Notnull
基本工资
Varchar(50)
Notnull
职务津贴
Varchar(50)
Notnull
奖励金额
Varchar(50)
Notnull
罚款金额
Varchar(50)
Notnull
全勤奖金
Varchar(50)
Notnull
加班工资
Varchar(50)
Notnull
个人所得税
Varchar(50)
Notnull
表3.4.4工资表(pay)
列名
数据类型
允许空
默认值
是否主键
考勤编号
Int
Notnull
是
员工编号
Int
Notnull
奖罚类型
Varchar(50)
Notnull
奖罚内容
text
Notnull
奖励金额
Varchar(50)
Notnull
罚款金额
Varchar(50)
Notnull
奖罚日期
Varchar(50)
Notnull
撤销日期
Varchar(50)
Notnull
表3.4.5考勤表(prize)
3.5数据库表间联系
图3.5数据关系图
4系统实现
4.1登录模块实现
系统用户登录模块主要用于完成对登录系统的用户的验证,只有合法的用户和正确的数据库配置才可以进入系统,否则给与相应的错误提示
登录窗体:
验证用户名和密码是否正确,通过用户名和密码判断出改用户是否是本系统的合法用户,并且通过用户名和密码判断用户的权限是超级管理员还是一般用户,根据不同的用户权限授予相应的管理和使用本系统的权限。
控件:
lblField控件数组,2个JLabel控件,2个JButton控件,2个TextBox控件,1个GroupBox控件,1个PictureBox控件。
属性:
用户名,密码,管理员,普通用户。
事件:
用户进行登陆。
数据库连接:
importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;publicclassDBConnectionpublicstaticConnectiongetConnection(){Connectionconn=null;Stringdriver="sun.jdbc.odbc.JdbcOdbcDriver";Stringurl="jdbc:
odbc:
schoolData";Stringusername="sa";Stringpassword="123456";try{Class.forName(driver);
conn=DriverManager.getConnection(url,username,password);}catch(ClassNotFoundExceptione){e.printStackTrace();}catch(SQLExceptione){e.printStackTrace();}returnconn;}}工具:
SQLServerManagementStudio,eclipse。
图4.1登陆模块图
4.2添加信息/工资模块实现
添加信息/工资模块主要用于完成对信息和工资的添加。
添加信息/工资模块包含2个控件数组,lblField是一个Label控件数组,用于显示字段名称,txtValue用于输入这些字段的值;另外还有一个“添加”按钮和“取消”按钮,分别实现添加员工和退出窗体的功能
添加信息模块属性:
工号,基本工资,扣除金额,奖金工资,补助;
添加工资模块属性:
工号,姓名,性别,年龄,生日,所在科室。
事件:
用户对系统进行对(信息/工资)添加操作。
数据库连接:
importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;publicclassDBConnection{publicstaticConnectiongetConnection(){Connectionconn=null;Stringdriver="sun.jdbc.odbc.JdbcOdbcDriver";Stringurl="jdbc:
odbc:
schoolData";Stringusername="sa";Stringpassword="123456";try{Class.forName(driver);
conn=DriverManager.getConnection(url,username,password);}catch(ClassNotFoundExceptione){e.printStackTrace();}catch(SQLExceptione){e.printStackTrace();}returnconn;}}工具:
SQLServerManagementStudio,eclipse。
图4.2.1添加职工工资模块图
图4.2.2添加职工信息模块图
4.3查询职工信息模块实现
控件:
DataGrid控件,lblField控件,2个JLabel控件,2个JButton控件,1个TextBbox控件,JMenu控件,1个GroupBox控件,1个PictureBox控件。
属性:
工号,姓名,性别,年龄,生日,科室。
事件:
用户通过系统查询信息。
数据库连接:
importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;publicclassDBConnection{publicstaticConnectiongetConnection(){Connectionconn=null;Stringdriver="sun.jdbc.odbc.JdbcOdbcDriver";Stringurl="jdbc:
odbc:
schoolData";Stringusername="sa";Stringpassword="123456";try{Class.forName(driver);
conn=DriverManager.getConnection(url,username,password);}catch(ClassNotFoundExceptione){e.printStackTrace();}catch(SQLExceptione){e.printStackTrace();}returnconn;}}工具:
SQLServerManagementStudio,eclipse。
图4.3查询职工信息图
5代码调试与功能测试
5.1测试方案
登陆系统添加职工信息输入工号1,姓名张,性别选男,年龄32,生日911122,所在科室财务科;
查询职工信息,输入工号20,查询;
修改职工信息,修改工号20,修改工号对应的值年龄,输入新值34;
删除职工信息,输入要删除的工号20,选择只删除职工信息
添加职工工资,输入工号20,基本工资100,扣除金额工资100,奖金工资500,补助100.
查询职工工资,输入工号20;
修改职工信息,输入要修改工号20,值选择扣除,输入新的值10;
删除职工工资,输入要删除的工号20,选择只删除职工工资。
5.2测试结果
5.2.1添加职工信息
图5.2.1添加职工信息
5.2.2查询职工信息
图5.2.2查询职工信息图
5.2.3修改职工信息
图5.2.3修改职工信息图
5.2.4删除职工信息
图5.2.4删除职工信息图
5.2.5添加职工工资
图5.2.5添加职工工资图
5.2.6查询职工工资
图5.2.6查询职工工资图
5.2.7修改职工信息
图5.2.7修改职工信息图
5.2.8删除职工工资
图5.2.8删除职工工资图
6收获与体会
通过这几周的课程设计实践,让我感觉收获颇多。
刚开始的时候觉得无处下手,连该做什么都没有头绪,是老师和同学们给了我很大的帮助,老师提示我们先进行需求分析,了解用户的需求,根据用户的需求和《数据库原理课程设计报告模版》来设计程序。
在不断的课程设计过程中,使我受到了一次用专业知识、专业技能分析和解决问题的全面系统的锻炼。
使我在综合知识的选用方面,在应用软件开发的基本思想、方法方面,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。
在开发这个工资管理系统过程中我深刻地体会到了自学能力的重要性。
毕竟在学校学习到的知识是有限的,而在开发系统的过程中仅凭原有的一点点知识是远远不够的,只有翻阅大量的资料才能学到更多的知识,才能实现其预期的功能。
在开发过程中,遇到困难是在所难免的,期间通过指导教师的测评和给出的建议并和同学进行交流,从中明白了很多。
开发一个系统,恒心和毅力也是不可缺少的,如果一遇到难题就心慌,想要放弃,那这样就不可能完成系统。
同样,在开发过程当中,细心也是非常重要的,由于很多事项都要很注意才行,如果没有做到这一点,就会出错。
在这次的课程设计中,让我深深地体现到进行软件开发不是一件简单的事情,它需要设计者具有全面的专业知识、缜密的思维、严谨的工作态度以及较高的分析问题、解决问题的能力,而我在很多方面还有欠缺。
最后,我要衷心感谢老师和我的同学在我的设计过程中给予我的极大帮助,使我能够及时、顺利地完成此次的设计。
参考文献
[1]钱雪忠,王燕玲,林挺.数据库原理及技术[M].北京:
清华大学出版社,2011.
[2]钱雪忠,罗海驰,陈国俊.数据库原理及技术课程设计[M].北京:
清华大学出版社,2014.
[3]陈志泊,李冬梅,王春玲.数据库原理及应用教程.北京:
人民邮电出版社,2002.
[4]施伯乐,丁宝康.数据库技术.北京:
科学出版社,2002.
[5]王能斌.数据库系统教程.北京:
电子工业出版社,2002.
[6]吴晨、胡书敏、蔡威.VisualC#2005数据库通用模块开发与系统移植.北京:
清华大学出版社.
附 录
附录1源程序部分清单
附录1.1登陆代码
packagestudent;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.sql.*;
publicclassdengluimplementsActionListener{
staticStringdbdriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
staticStringdburl="jdbc:
microsoft:
sqlserver:
//localhost:
1433;DatabaseName=students";
staticStringuser="sa";
staticStringpass="123456";
Stringtype="管理员";
JFramef;
JLabelj1,j2,j3;
JTextFieldtf1;
JPasswordFieldtf2;
JButtonb1,b2;
JRadioButtonrb1,rb2;
denglu(){
f=newJFrame("登陆");
f.setLayout(null);
tf1=newJTextField(20);
tf2=newJPasswordField(20);
tf2.setEchoChar('*');
b1=newJButton("确定");
b2=newJButton("退出");
j1=newJLabel("请输入用户名");
j2=newJLabel("请输入密码");
j3=newJLabel("");
rb1=newJRadioButton("管理员");
rb2=newJRadioButton("普通用户");
ButtonGroupg1=newButtonGroup();
g1.add(rb1);
g1.add(rb2);
rb2.addActionListener(this);
rb1.addActionListener(this);
b1.addActionListener(this);
b2.addActionListener(this);
f.add(j1);
f.add(tf1);
f.add(j2);
f.add(tf2);
f.add(b1);
f.add(b2);
f.add(j3);
f.add(rb1);
f.add(rb2);
j1.setBounds(45,40,80,20);
j2.setBounds(45,90,80,20);
j3.setBounds(50,200,200,20);
b1.setBounds(60,180,70,30);
b2.setBounds(180,180,70,30);
tf1.setBounds(130,40,120,20);
tf2.setBounds(130,90,120,20);
rb1.setBounds(70,130,80,20);
rb2.setBounds(180,130,80,20);
f.setSize(350,270);
f.setVisible(true);
f.addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(finalWindowEvente){
System.exit(0);
}
});
}
publicvoidactionPerformed(ActionEvente){
if(e.getSource().equals(rb2)){
type="普通用户";
}
if(e.getSource().equals(rb1)){
type="管理员";
}
if(e.getSource().equals(b1)){
Strings1=String.valueOf(tf2.getPassword());
if(tf1.getText().equals("")||s1.equals(""))
{
//newJOptionPane().showMessageDialog(null,"用户名或密码不能为空!
");
j3.setText("用户名或密码不能为空!
");
}
else{
try{
Class.forName(dbdriver);
Connectioncon=DriverManager.getConnection(dburl,user,pass);
Statementstm=con.createStatement();
ResultSetres=stm.executeQuery(sql);
while(res.next()){
if(tf1.getText().trim().equals(res.getString("sid")))
{/if(tf2.getText().equals(res.getString("spw")))
{
javax.swing.JOptionPane.showMessageDialog(null,"登陆成功");
newStudent1();
}
else{
//javax.swing.JOptionPane.showMessageDialog(null,"密码不正确");
j3.setText("密码输入有误!
");
tf1.setText("");
tf2.setText("");
}
}
else{
j3.setText("用户名不存在!
");
}
}
ResultSetres=stm.executeQuery("select*fromsuserwheresid='"+tf1.getText()+"'");//读取数据库
if(!
res.next())
{
JOptionPane.showMessageDialog(null,"不存在此用户!
");
}
elseif(!
(res.getString("spw").trim().equals(s1))){
JOptionPane.showMessageDialog(null,"密码错误!
");
}
elseif(!
res.getString("type").trim().equals("普通用户")){
if(type.equals("普通用户")){
javax.swing.JOptionPane.showMessageDialog(null,"这是是管理员帐户请使用管理员权限!
!
");
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 职工工资 管理 系统