数据库课程设计工资管理系统.docx
《数据库课程设计工资管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计工资管理系统.docx(34页珍藏版)》请在冰豆网上搜索。
![数据库课程设计工资管理系统.docx](https://file1.bdocx.com/fileroot1/2022-10/15/c4b6f241-62e6-4d06-89b4-058181329001/c4b6f241-62e6-4d06-89b4-0581813290011.gif)
数据库课程设计工资管理系统
《数据库原理》
课程设计报告
专业:
信息安全
班级:
学号:
2010212142
姓名:
康慧博夏真珍 梁丽元
题目名称:
工资管理系统
完成日期:
2012年6月2日
重庆邮电大学计算机科学与技术学院实验中心
1系统设计
1.1目标设计
在工资管理中,需要从公司管理方式以及实际情况中提取相关信息,以反映工资管理情况。
传统的手工操作方式,易发生数据丢失,统计错误,劳动强度高,且速度慢。
使用计算机可以高速,快捷地完成以上工作。
避免重复劳动,规范工资管理行为,从而提高了管理效率和水平。
让人们的效率大大提高.
不难想象,正是资讯的迅速发展使得人们从过去繁复的手工劳作中得以解脱,从而使这种服务在现在才可能迅速普及。
同时,编写一套完整的工资管理系统的任务就显得尤为重要。
开发设计思想
本系统开发设计思想:
●对公司软硬件调查,从实际环境出发,以便充分利用公司现在资源,提高系统开发水平和应用效果。
●了解公司的需要及相关方面的规定,根据需要做出符合要求的软件,并达到操作过程中的直观、方便、实用、安全等要求。
●将系统按模块分工到人,提高效率,且模块化设计便于系统功能的各种组合和修改及日后的维护
●系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、等操作。
1.3 开发和运行环境选择
开发工具:
SQL2000, java语言。
运行环境:
Windows XP,Windows2000或VISTA操作系统。
1.4 系统功能分析
本系统主要用于员工基本信息的管理,对员工以及其他信息的添加、修改、删除、查询等基本操作。
对于数据库的保护有数据备份和数据恢复的功能。
针对这些要求,设计本月工资信息管理系统。
该系统主要包括职工信息、职工考勤信息、职工津贴信息。
1)职工信息管理系统
功能为:
财务部门相关人员录入、修改、删除、查询员工个人信息;员工本人能通过用户名和密码查询自己的信息以及修改自己的密码;
2)职工工资管理系统
功能为:
根据工资生成公式,按照员工的考勤情况及各种表现按月生成相应的工资;财务部门相关人员能录入、修改、删除、查询每个月每个员工的工资信息以及工资汇总;员工本人能查询自己的工资信息以及工资汇总;
3)职工津贴管理系统
功能为:
财务部门相关人员录入、修改、删除、查询职工津贴信息;职工本人能查询自己的津贴;
4)职工考勤管理系统
功能为:
后勤管理人员录入、修改、删除、查询职工考勤信息;职工本人能查询自己的考勤情况。
采用模块化设计思想,可以大大提高设计的效率,并且可以最大限度地减少不必要的错误。
其系统结构框图如图所示:
图1.1 系统功能模块图
2.数据库设计
2.1 数据库需求分析
根据工资管理要求及用户需求调查分析,得到以下数据流图
图2.1第一层数据流图
图2.2职工信息的载入
图2.3工资的信息载入
图2.4考勤的信息载入
图2.5津贴的信息载入
图2.6信息查询及管理的流程图
2.2 数据库概念设计
有了数据流图,用E-R图来说明工资信息管理系统的数据库概念模式,如图2-2所示
1 n
m
ﻩn
1 n
ﻩm
ﻩn
ﻩ1n
图2.7实体之间关系E-R图
2.3数据库逻辑设计
将以上E-R转换成如下关系模式
员工(职工号,姓名,工龄,部门岗位,电话号码,密码)
工资(职工号,个人所得税,基本工资,医疗保险,缺勤扣除)
考勤(职工号,缺勤天数,缺勤类别,时间)
津贴(职工号,年终奖金,加班奖金,其他奖金)
其中,标有下划线的字段表示为该数据表的主码,即主关键字。
在上面的实体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。
工资信息管理系统数据库中各个表格的设计结果如下面的几个表格所示。
每个表格表示在数据库中的一个表。
表一:
员工信息表:
列名
数据类型
可否取空
备注说明
no
Char(8)
NOTNULL
职工号(主键)
name
Char(10)
NOTNULL
职工姓名
gw
Char(20)
NOTNULL
部门岗位
gl
Smallint
NOTNULL
工龄
hm
Char(11)
NULL
电话号码
mi
Smallint
NOTNULL
登录密码
表二:
工资表:
列名
数据类型
可否取空
备注说明
no
Char(8 )
NOTNULL
职工号(主键)
Jb
money
NOT NULL
基本工资
yl
money
NULL
医疗保险
Sw
money
NULL
个人所得税
kc
money
NULL
缺勤扣除
Jt
money
NULL
津贴
yz
money
NOT NULL
月总工资
表三:
员工考勤信息表
列名
数据类型
可否取空
备注说明
no
Char(8)
NOTNULL
职工号(主键)
ts
Int(4)
NULL
缺勤天数
lb
Char(30)
NULL
缺勤类别
Sj
Char(10)
NULL
缺勤时间
表四:
津贴信息表
列名
数据类型
可否为空
备注说明
no
Char( 8)
NOT NULL
职工号(主键)
Jiaban
money
NULL
月加班奖金
nz
money
NULL
年终奖金
qt
money
NULL
其他奖金
3.功能模块详细设计
3.1主界面及工资基本信息界面的设计
图2.8欢迎画面
图2.9登录界面
图3.0系统主界面
图3.1 考勤信息录入,修改,删除,查询界面
3.2功能描述
1主界面
通过菜单将各个模块连接起来
2.工资基本信息模块
工资基本信息的添加、修改和删除等基本操作
3.3主要源代码
import java.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.awt.*;
import java.sql.*;
importjava.lang.*;
importjava.util.*;
importjavax.swing.table.*;
importjava.math.*;
classzzlcimplements ActionListener{
ﻩJFrame frame=new JFrame("欢迎进入ZZLC工资管理系统");
ﻩJLabellabel=newJLabel("制作人:
康慧博夏真珍梁丽元",JLabel.CENTER);
ﻩJButton button1=newJButton("进入系统");
ﻩJButtonbutton2=newJButton("退出系统");
ImageIcon im=newImageIcon("1.jpg");
ﻩJLabel a1=newJLabel(im);
ﻩvoidCreate(){
ﻩJPanelpcontentPane=(JPanel)frame.getContentPane();
ﻩJPanelpcontentPane1=new JPanel();
ﻩﻩpcontentPane.add(label);
pcontentPane.setLayout(newFlowLayout());
ﻩpcontentPane.add(button1);
pcontentPane.add(button2);
ﻩpcontentPane.add(new Label(""));
ﻩﻩpcontentPane.add(a1);
pcontentPane.setBackground(Color.pink);
ﻩﻩpcontentPane.setVisible(true);
ﻩﻩbutton1.addActionListener(this);
button2.addActionListener(this);
ﻩ
ﻩﻩframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ﻩframe.pack();
ﻩframe.setBounds(200,100,550,600);
ﻩframe.setVisible(true);
}
publicstaticvoidmain(String[] args){
zzlc dome=newzzlc();
ﻩdome.Create();
ﻩ}
public voidactionPerformed(ActionEvente){
ﻩif(button1.equals(e.getSource())){
ﻩﻩDL dl=newDL();
dl.create();
ﻩﻩ}
if(button2.equals(e.getSource())){//退出
System.exit(0);
ﻩ}
}
}
class DL implementsActionListener{
ﻩJFrameframe=newJFrame("职工/管理员登陆");
ﻩJLabel label1=newJLabel("用户名");
JLabel label2=newJLabel("密码");
ﻩJButton logonButton1=new JButton("管理员登录");
ﻩJButtonlogonButton2=newJButton("职工登录");
JButtoncancelButton=newJButton("退出");
JTextField t1=new JTextField(0);
JTextFieldt2=newJTextField(0);
ImageIcon im=new ImageIcon("2.jpg");
JLabel a2=new JLabel(im);
ﻩJTextField username=newJTextField(9);
JPasswordField password=newJPasswordField(9);
ﻩvoidcreate(){
JPanelp=(JPanel)frame.getContentPane();
ﻩJPanel p1=new JPanel();
p.setLayout(newFlowLayout());
ﻩp.add(label1);
ﻩp.setSize(5,5);
ﻩp.setLocation(4,8);
p.add(username);
ﻩp.setSize(100,200);
p.setLocation(800,800);
ﻩp.add(label2);
ﻩp.setSize(50,20);
ﻩp.setLocation(40,80);
p.add(password);
ﻩp.setSize(100,20);
p.setLocation(80,120);