数据库课程设计—企业工资管理系统(java版+完整代码)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库课程设计—企业工资管理系统(java版+完整代码)
得分:课程设计报告
公司薪资管理系统
姓名XXX
班级XXXXX
学号XXXXXX
课程名称数据库原理及应用指导教师
201X 年 X月 X日
目录
.
.
.
,,,
.
1、需求剖析
1.1 功能需求
功能区分
(1)、员工信息表;实时反应员工的基本信息
(2)、员工津贴表,反应员工津贴
(3)、员工基本薪资表
功能描绘
(1)、基本薪资的设定
(2)、津贴的设定
(3)、计算出月薪资
(4)、录入员工薪资信息
(5)、增添员工薪资信息
(6)、改正员工薪资信息
性能需求
此薪资管理系统对薪资数据精度的计算能在默认状况之下精准到小数点后
3位小数,即是精准到分的计算。
但在用户使用过程中,能自行依据实质状况进
行小数计算精度的设定,最大能同意保存小数点后 5 位的精度。
在时间特征上,当
用户发出命令恳求时的服务器的响应时间、对数据更新办理、薪资数据的查问检
索等上,相同要求系统响应时间不会超出秒时间。
系统支持多种操作系统的运转环境,多不一样操作系统,不一样文件格式的磁盘上的数据均能实现信息的互通,及
共享。
当服务器移植到其余的系统平台,如: Linux 平台下时,相同能和其余的系
统进行数据存取同步,不会出现系统之间互不兼容的状况,系统支持多系统
之间的互连互通,系统有巨大的强壮性。
本课程设计是用Java语言编写, mysql 数据库。
数据流图
依据薪资管理要求及用户需求检查剖析,获得以下数据流图
图第一层数据流图
增添操作输入员工基本信息
用户改正员工信息
改正操作
删除员工记录
删除操作
员工号
查问操作
图员工信息的载入
增添操作
用户
改正操作
删除操作
查问操作
图考勤的信息载入2.整体设计
数据库概念设计
薪资表津贴表
有了数据流图,用E-R图来说明薪资信息管理系统的数据库观点模式,如图
基本薪资
员工号
1n
领取
员工号
姓名
员工
领取
密码
图实体之间关系E-R图
姓名
薪资
m
影
响
津贴
津贴
姓名
员工号
功能模块
薪资管理系统
系工职员
统资工工
模管登管
块理陆理
模模模
块块块
3.系统详尽设计
数据库逻辑设计
将以上 E-R变换成以下关系模式
员工(员工号,姓名,密码)
薪资(员工号,姓名,基本薪资,)
津贴(员工号,姓名,奖金)
此中,标有下划线的字段表示为该数据表的主码,即主重点字。
在上边的实
体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。
薪资信息管理系统数据库中各个表格的设计结果以下边的几个表格所示。
每个表格表示在数据库中的一个表。
表一:员工信息表:
列名数据种类能否取空备注说明
no Char ( 8 ) NOT NULL 员工号(主键)
name Char( 10)NOT NULL 员工姓名
mi Smallint NOT NULL 登录密码
表二 :基本薪资表:
列名数据种类能否取空备注说明
no Char ( 8 ) NOT NULL 员工号(主键)
name Char( 10)NOT NULL 员工姓名
Jb money NOT NULL 基本薪资
表四:津贴信息表
列名数据种类能否为空备注说明
no Char ( 8 ) NOT NULL 员工号(主键)
name Char( 10)NOT NULL 员工姓名
Jt money NOT NULL 津贴
各模块功能
员工信息管理系统
功能为:财务部门有关人员录入、改正、删除、查问员工个人信息
员工薪资管理系统
功能为:依据薪资生成公式,依据员工的考勤状况及各样表现按月生成相应的薪资;财务部门有关人员能录入、改正、删除、查问每个月每个员工的薪资信息以及薪资汇总;员工自己能查问自己的薪资信息以及薪资汇总;
员工登岸查问系统
功能为:员工自己能经过用户名和密码查问自己的信息以及改正自己的密码;
4.系统实现
界面截图
主界面
登录界面
管理员管理薪资界面
信息录入 ,改正 ,删除 ,查问界面
员工信息查问界面员工密码改正界面
设计代码
package wage_management;
import .*;
import .*;
class DB extends JFrame implements ActionListener {
JFrame frame = new JFrame("欢迎进入公司工资管理系统");
JLabel label = new JLabel("", ;
JButton button1 = new JButton("进入系统");
JButton button2 = new JButton("退出系统");
ImageIcon im = new ImageIcon("");
JLabel a1 = new JLabel(im);
void Create() {
JPanel pcontentPane = (JPanel) ();
(a1);
(label);
(new FlowLayout());
(button1);
(button2);
(true);
(this);
(this);
;
();
(200, 100, 550, 180);
(true);
}
public static void main(String[] args) {
DB dome = new DB();
();
}
public void actionPerformed(ActionEvent e) {
if ())) {
DL dl = new DL();
();
();
}
if ())) {quals("admin") == true
&& ().equals("admin") == true))
{
(this, "登录成功!");
GZGLZJM gz = new GZGLZJM();
();
();
}
else {
(null, "输入用户名或密码错误!");
}
}
if ()==logonButton2)
{
try {
Connection con;
Statement ps;
ResultSet rs;
String sql = null;
("");
("").newInstance();
con = (
"jdbc: management","root","jxb");
sql="select* from workerinfo where name='"+t1+"' and mi='"+t2+"'";
ps = (PreparedStatement) (sql);
rs = (sql);
if())
{
if("name").equals(t1) && ("mi").equals(t2))
{
YGDLJM yg = new YGDLJM();
();
();
(this, "登录成功!");
();
}
}
else {
(this, "输入用户名或密码错误!");
}
}catch (Exception e1) {
//TODO Auto-generated catch
block ();
}
}
if ())) //退出
{
(0);
}
}
}
package wage_management;
import GZGLZJM extends JFrame implements ActionListener {
JFrame f = new JFrame("工资管理系统");
JButton b1 = new JButton("工资管理");
JButton b2 = new JButton("员工信息管理
");
JButton b3 = new JButton("返回");
ImageIcon im = new ImageIcon("");
JLabel a1 = new JLabel(im);
void create() {
JPanel p = (JPanel) ();
(new FlowLayout());
(a1);
(b1);
(b2);
(b3);
;
(true);
(this);
(this);
(this);
(200, 100, 500, 200);
(true);
}
public void actionPerformed(ActionEvent e) {
if ())) {//返回
DL d = new DL();
();
();
}
if ())) {//员工信息管理
YGGL yg = new YGGL();
();
();
}
if ())) {//工资管理
GZGL gz = new GZGL();
();
();
}
}
}
package wage_management;
import class GZGL extends JFrame implements ActionListener {
JFrame f = new JFrame("工资管理");
JButton b1 = new JButton("录入");
JButton b2 = new JButton("修改");
JButton b3 = new JButton("删除");
JButton b4 = new JButton("查询所有");
JButton b5 = new JButton("返回");
JTextF ield tf1 = new JTextF ield(4);
JTextF ield tf2 = new JTextF ield(4);
JTextF ield tf3 = new JTextF ield(4);
JTextF ield tf4 = new JTextF ield(4);
JTextF ield tf5 = new JTextF ield(6);
JTextF ield tf6 = new JTextF ield(7);
String[] cloum= { " 职工号 ", " 姓名 ", " 津贴 ", " 月基本工资 "," 月薪"};
Object[][] row = new Object[50][5];
JTable table = new JTable(row, cloum);
JScrollPane scrollpane = new JScrollPane(table);
JSplitPane splitpane = new JSplitPane;
void create() {
JPanel p = (JPanel) ();
(new FlowLayout());
(scrollpane);
(splitpane);
JPanel p1 = new JPanel();
(b1);
(b2);
(b3);
(b4);
(b5);
JPanel p2 = new JPanel();
;
(scrollpane);
JPanel p3 = new JPanel();
(new FlowLayout());
(new JLabel(""));
(new JLabel("员工号"));
(tf1);
(new JLabel("姓名"));
(tf2);
(new JLabel("津贴"));
(tf3);
(new JLabel("月基本工资"));
(tf4);
(new JLabel("月薪"));
(tf5);
(new JLabel(" 在此处输入员工号点击查询删除 ")); (tf6);
(p1, ;
(p2, ;
(50);
;
(this);
(this);
(this);
(this);
(this);
(200, 100, 500, 600);
(true);//能够调整界面大小
(true);
}
public void actionPerformed(ActionEvent e) {
if ())) { //录入
Connection con;
Statement sql;
try {
("");
} catch (ClassNotFoundException e1) {
"" + e1);
}
try {
con = ("jdbc: management","root","jxb");
sql = ();
String insertStr = "INSERT INTO welfare
(no,name,jt)VALUES('"+()+"','"+()+"','"+()+"');";
(insertStr);
String insertStr1 = "INSERT INTO wageinfo
(no,name,jb)VALUES('"+()+"','"+()+"','"+()+"');";
(insertStr1);
();
(this, "入录成功!");
} catch (SQLException e1) {
(this, "入录失败!");
}
}
if ())) {//修改
Connection con;
Statement sql;
try {
("");
} catch (ClassNotFoundException e1) {
"" + e1);
}
try {
con = ("jdbc: management","root","jxb");
sql = ();
String updateStr= "UPDATE welfare SET jt='"+()+"',name='"+()+"'where no='"+()+"';";
(updateStr);
String updateStr1= "UPDATE wageinfo SET jb='"+()+"',name='"+()+"'where no='"+()+"';";
(updateStr1);
(this, "改正成功!");
();
} catch (SQLException e1) {
(this, "信息不存在!");
}
}
if ())) {//删除
Connection con;
Statement sql;
ResultSet rs;
try {
("");
} catch (ClassNotFoundException e1) {
"" + e1);
}
try {
con = ("jdbc: management","root","jxb");
sql = ,
;
("DELETE FROM wageinfo where no='"+()+"';");
("DELETE FROM welfare where no='"+()+"';");
(this, "删除成功!");
();
} catch (SQLException e1) {
(this, "删除失败!");
}
}
if ())) {//查询所有
Connection con;
Statement sql;
ResultSet rs;
//Vector vector = new Vector();
try {
("");
} catch (ClassNotFoundException e1) {
(this, "连结数据库失败!");
}
try {
con = ("jdbc: management","root","jxb");
sql = ,
;
if ())) {
for (int i = 0; i < 50; i++)
for (int j = 0; j < 4; j++)
("", i, j);
rs = ("select distinct * from wageinfo , welfare where =");
int k = -1;
while ()) {
++k;
String no = (1);
String name = (2);
String jb = (3);
String jt = (6);
int sum=(3)+(6);
(no, k, 0);
(name, k, 1);
(jb, k, 3);
(jt, k, 2);
(sum,k,4);
}
}
} catch (SQLException e1) {
(this, "查问失败!");
}
}
if ())) {//返回
GZGLZJM gl=new GZGLZJM();
();
();
}
}
}
package wage_management;
import class YGDLJM extends DL implements ActionListener {
JFrame f = new JFrame("
JButton b1 = new JButton(" JButton b2 = new JButton(" JButton b3 = new JButton(" 薪资管理");
查问个人薪资");
改正密码");
返回");
String[] cloum= { " 职工号 ", " 姓名 ", " 津贴 ", " 月基本工资 "," 月薪"};
Object[][] row = new Object[50][5];
JTable table = new JTable(row, cloum);
JScrollPane scrollpane = new JScrollPane(table);
JSplitPane splitpane = new JSplitPane;
void create() {
JPanel p = (JPanel) ();
(new FlowLayout());
(scrollpane);
(splitpane);
JPanel p1 = new JPanel();
(b1);
(b2);
(b3);
JPanel p2 = new JPanel();
;
(scrollpane);
JPanel p3 = new JPanel();
(new FlowLayout());
(p1, ;
(p2, ;
(50);
;
(this);
(this);
(this);
(200, 100, 500, 550);
(true);//能够调整界面大小
(true);
}
public void actionPerformed(ActionEvent e) {
if ())) {//查询个人薪资
Connection con;
Statement sql;
ResultSet rs;
try {
("");
} catch (ClassNotFoundException e1) {
""+ e1);
}
try {
con = ("jdbc: management","root","jxb");
sql = ,
;
if ())) {
for (int i = 0; i < 50; i++)
for (int j = 0; j < 4; j++)
("", i, j);
wageinfo
//
,welfare,workerinfo
rs
where
= ("select distinct*
= and = and='"+t1+"'
from
and
='"+t2+"'");
int k = -1;
while ()) {
++k;
String no = (1);
String name = (2);
String jb = (3);
String jt = (6);
int sum=(3)+(6);
(no, k, 0);
(name, k, 1);
(jb, k, 3);
(jt, k, 2);
(sum,k,4);
}
}
} catch (SQLException e1)
{ (this, " 查问失败!
");
}
}
if ()))
{//改正密码
XGMM xgmm=new XGMM();
();
}
if ())) {//返回
DL dl=new DL();
();
();
}
}
}
package wage_management;
import class YGGL extends JFrame implements ActionListener {
JFrame f = new JFrame(" JButton b1 = new JButton(" JButton b2 = new JButton(" JButton b3 = new JButton(" JButton b4 = new JButton(" JButton b5 = new JButton(" JTextF ield tf1 = new JTextF JTextF ield tf2 = new JTextF 员工信息管理");
增添新员工信息");
改正员工信息");
删除员工信息");
查问所有员工信息");
返回");
ield(4);
ield(4);
JTextF ield tf3 = new JTextF ield(4); JTextF ield tf4 = new JTextF ield(4); JTextF ield tf5 = new JTextF ield(6); JTextF ield tf6 = new JTextF ield(7);
","
String[] cloum= { " 职工号 ", " 姓名 ", " 津贴 ", " 月基本工资 "," 月薪登岸密码"};
Object[][] row = new Object[50][6];
void create() {
JPanel p = (JPanel) ();
(new FlowLayout());
(scrollpane);
(splitpane);
JPanel p1 = new JPanel();
(b1);
(b2);
(b3);
(b4);
(b5);
JPanel p2 = new JPanel();
;
(scrollpane);
(new FlowLayout());
(new JLabel(""));
(new JLabel("员工号"));
(tf1);
(new JLabel("姓名"));
(tf2);
(new JLabel("津贴"));
(tf3);
(new JLabel("月基本工资"));
(tf4);
(new JLabel("登岸密码"));
(tf5);
(new JLabel("在此处输入职工号点击查询删除
"));
(tf6);
(p1, ;
(p2, ;
(50);
;
(this);
(this);
(this);
(this);
(this);
(200, 100, 600, 600);
(true);//能够调整界面大小
(true);
}
public void actionPerformed(ActionEvent e) {
if ())) { //添加新员工信息
Connection con;
Statement sql;
try {
("");
} catch (ClassNotFoundException e1)
{ (this, " 连结数据库失败! ");
}
try {
con = ("jdbc: management","root","jxb");
sql = ();
INTO welfare String insertStr="INSERT
(no,name,jt)VALUES('"+()+"','"+()+"','"+()+"');";
(insertStr);
String insertStr1= "INSERT INTO wageinfo (no,name,jb)VALUES('"+()+"','"+()+"','"+()+"');";
(insertStr1);
String insertStr2= "INSERT INTO workerinfo (no,name,mi)VALUES('"+()+"','"+()+"','"+()+"');";
(insertStr2);
(this, "增添成功!");
();
} catch (SQLException e1) {
(this, "增添失败!");
}
}
if ())) {//修改员工信息
Connection con;
Statement sql;
try {
("");
} catch (ClassNotFoundException e1) {
(this, "连结数据库失败!");
}
try {
con = ("jdbc: management","root","jxb");
sql = ();
con = ("jdbc: management","root","jxb");
sql = ();
String updateStr="UPDATE jt='"+()+"',name='"+()+"'where no='"+()+"';";
(updateStr);
String updateStr1="UPDATE
welfare
wageinfo
SET
SET
jb='"+()+"',name='"+()+"'where no='"+()+"';";
(updateStr1);
(updateStr1);
String updateStr2 = "UPDATE workerinfo SET name='"+()+"',mi='"+()+"'where no='"+()+"';";
(updateStr2);
(this, "改正成功!");
();
} catch (SQLException e1) {
(this, "改正失败!");
}
}
if ())) {//删除员工信息
Connection con;
Statement sql;
try {
("");
} catch (ClassNotFoundException e1) {
(this, "连结数据库失败!");
}
try {
con = ("jdbc: management","root","jxb");
sql = ,
;
("DELETE FROM wageinfo ("DELETE FROM welfare ("DELETE FROM workerinfo
where
where
where
no='"+()+"';");
no='"+()+"';");
no='"+()+"' ;");
(this, "删除成功!");
();
} catch (SQLException e1) { (this, "删除失败!"); }
}
if ())) {//查询所有员工信息
Connection con;
Statement sql;
ResultSet rs;
try {
("");
} catch (ClassNotFoundException e1) {
(this, "连结数据库失败!");
}
try {
con = ("jdbc: management","root","jxb");
sql = ,
;
if ())) {
for (int i = 0; i < 50; i++)
for (int j = 0; j < 4; j++)
("", i, j);
rs=("select wageinfo ,welfare,workerinfo where
int k = -1;
while ()) {
distinct
= and = ;");
* from
++k;
String no = (1);
String name = (2);
String jb = (3);
String jt = (6);
int sum=(3)+(6);
String mi = (9);
(no, k, 0);
(name, k, 1);
(jb, k, 3);
(jt, k, 2);
(sum,k,4);
(mi,k,5);
}
}
} catch (SQLException e1) {
(this, "查问失败!");
}
}
if ())) {//返回
GZGLZJM gl=new GZGLZJM();
();
();
}
}
}
package wage_management;
import XGMM extends DL implements ActionListener
{
JFrame frame = new JFrame("密码修改");
JLabel label1 = new JLabel("原密码");
JLabel label2 = new JLabel("新密码");
JButton Button1 = new JButton("确立");
JButton cancelButton = new JButton("返回");
JPasswordF ield password = new JPasswordF ield(9);
JPasswordF ield newpassword = new JPasswordF ield(9);
void create()
{
JPanel p = (JPanel) ();
(new FlowLayout());
(label1);
(5, 5);
(4, 8);
(password);
(100, 200);
(600, 600);
(label2);
(50, 20);
(40, 80);
(newpassword);
(100, 20);
(80, 120);
(Button1);
(cancelButton);
;
(true);
(this);
(this);
;
();
(200, 100, 500, 220);
(true);
}
public void actionPerformed(ActionEvent e)
{
if ()==Button1)
{
Connection con;
Statement sql;
try {
("");
} catch (ClassNotFoundException e1)
{ (this, " 连结数据库失败! ");
}
try {
con = ("jdbc: management","root","jxb");
sql = ();
String updateStr= "UPDATE workerinfo SET mi='"+()+"'where name='"+t1+"';";
(updateStr);
(this, "改正成功!");
();
} catch (SQLException e1) {
(this, "请输入
原密码和新密码!");
//}
}
if ()==cancelButton) //返回
{
YGDLJM dl=new YGDLJM();
();
();
}
}
}
5.课设总结
此次课设难度有点大,经过几日的努力终于达成了,开始对怎样连结数据库不太认识,经过小组合作,和网上查阅资料,最后解决了问题,在写员工登岸界面时,要从数据库读取和考证密码,开始碰到了些问题,以后慢慢都达成了,总的来说收获很大,认识了怎样将所学数据库运用到编程里,对数据库数据的查问,改正,增添都有了更一步的认识。