资源描述
10届 第2年 1学期
Java语言程序设计小组课程设计
报告书
小组名称: 致知小组
小组题目: 小型工资管理系统
专 业: 信息管理与信息系统
班 级: 6班
姓 名: 组长: 钱海燕
(成员:) 史丞玉
胡晓康
付爽
刘文婷
指引教师: 任 敏 贤
完毕日期: 1月4日
小型工资管理系统
1、问题描述
设计一种小型工资管理系统,为公司员工提供一套完整信息,以便于公司对员工管理。
2、开发环境搭建
Java开发环境搭建涉及三个某些:
(1)JDK下载、安装及配备
下载:在Oracle官网下载jdk-7u2版本。
安装:解压下载JDK后,进入安装状态,下载好JDK是一种可执行安装程序,执行安装即可。安装完毕在安装目录下会有jdk1.7.0和jre1.7.0两个文献夹。
设立环境变量:
打开“我电脑 -> 属性 -> 高档 -> 环境变量 -> 系统变量”,设立如下三个变量:
JAVA_HOME=<JDK安装目录> 如:D:/Java/jdk1.7.0;
CLASSPATH=.<JDKlib目录>如:D:/Java/jdk1.70/lib;
Path=<原Path>;<bin安装目录>如:D:/Java/jdk1.7.0/bin;
请注意:CLASSPATH变量值是“.”(不涉及引号).
打开“windows”“命令提示符”窗口,在提示符下输入javac,如果浮现编译器选项,阐明编译器正常。输入java,如果浮现解释器选项,阐明解释器正常。这样就可以使用JDK编译和运营JAVA程序了。
(2)eclipse下载、安装
下载:在相应官网上下载即可。
安装:直接解压,在eclipse目录里面找到eclipse.exe
(3)SQL Server 4 in 1下载、安装及配备
下载:在微软官网上下载即可。
安装:解压后选取个人版进行安装,选取windows顾客混合验证模式。再安装补丁包,最后添加ODBC数据源。
3、系统功能
(1)进行系统需求分析:
随着科学技术发展和整个社会进步,计算机技术也得到了很大提高,特别是微型计算机大范畴普及,是计算机应用逐渐有科学计算、实时控制等方面向非数值解决各个领域渗入并发挥着越来越重要作用。特别是以微型计算机为解决核心,以数据库管理系统为开发环境管理系统在办公室自动化以及商业信息管理等方面应用,日益受到人们关注。
对一种公司而言,人力资源是公司最宝贵资源,也势必公司“生命线”。而工资管理是公司管理一种重要环节,其管理方式和工具对公司决策者和管理者来说至关重要。但始终以来大多公司内部人事和工资管理基本上都是老式手工操作,这种人管理方式效率低,保密性差,并且很难满足及时记录、随时查询需要,为信息管理者带来诸多不便。
运用计算机进行信息控制和数据解决,不但从整体上大大提高了工作效率和安全性,并且具备存储量大,寿命长,成本低等长处,这些更是手工管理所无法比拟。用计算机支持完毕人事管理寻常事务,可以使人事管理自动化和科学化,提高了信息解决得速度和精确性;工资管理更是一项琐碎、复杂而又十分细致工作,如果实行手工操作,会挥霍工作人员诸多时间和精力,且失误在所难免,而使用计算机进行工资计算和发放,不但可以保证工资核算精确无误,并且能对有关信息进行记录,使工资与考勤、奖惩等事项合理挂钩,是公司内部管理体制更加科学有效。总之,为了较好实现数据录入、插入、查询、记录、更新等功能,已达到使公司人事工资信息管理科学化、系统化、规范化和自动化目,建立人事工资管理需求。
系统设计目的
1.设计出一套简朴、以便小型工资管理系统,以便公司对员工管理。
2.在设计该人事管理系统过程中,深化对JAVA学习,以便掌握JAVA中各种知识。
系统可行性分析
技术上可行性分析要考虑将来要采用硬件和软件技术能否满足顾客提出规定。此外,还要考虑开发人员水平,通过学习,在编程方面有一定基本。
经济可行性分析分为两个方面,一方面是支出费用,另一方面是获得收益。这是一种小型工资管理系统,从投入人力、财力与物力来讲是非常小,只要有电脑就可以了。从节约人力方面,可以让管理人员从繁冗复杂工作中解脱出来,做更多工作,可以给工资管理提高一种层次。
(2)系统总体设计
建立系统功能模型(各个模块调用关系)
小型
工资管理系统
按工号查询
职工查询
工资管理
添加工资
系统登录
添加职工
系统退出
删除职工
修改职工
系统设立
工资查询
修改工资
职工管理
按姓名查询
协助
图1 小型工资管理系统构造图
建立系统概念模型(E-R图:总体和局部)
小型工资管理系统
工资信息
职工信息
图2 总系统E-R图
员工
联系电话
年龄
姓名
家庭住址
性别
工号
部门
籍贯
图3 职工信息E-R图
建立系统数据模型(以文献形式解决)
管理员
登录系统
添加信息
职工个人信息单
职工工资信息单
查询信息
互动信息单
匹配信息
输入需删除信息
信息匹配并删除
输入修改信息
修改后工资信息单
修改后工资信息单
删除后职工信息单
登录密码
管理员
1
管理员
2
管理员
4.1.1
计算机
3.1.1
管理员
5.1
计算机
J6
J7
删除信息
管理员
4.1
4.1
5.1
3
管理员
输入查询条件
3.1
计算机
匹配信息单
J5
J4
J8
合并信息单
计算机
7
添加工资信息
添加职工个人信息
修改信息
协助
J1
J2
管理员
5
4
6
管理员
删除后职工信息单
删除后职工信息单
匹配信息单
修改后工资信息单
J3
修改后职工信息单
修改后职工信息单
合并后信息单
删除后信息单
图4 小型工资管理系统数据模型图
(3)系统详细设计
该小型工资管理系统共分为13个小模块,分别为:系统登录程序、主函数、界面框架、数据库链接、职工信息添加、职工信息修改、职工信息删除、工资信息添加、工资信息修改、工资信息查询、按工号查询职工、按姓名查找职工以及协助。
关于各个模块功能阐明,使用阐明:
主函数:程序入口,运营程序应当在主函数上进行。
界面框架:该项目整体框架,包括各种界面、按钮。与如下各个模块相连接,单机按钮,可以进入到不同子模块。以便于使用者进行操作。
数据库链接:保存已经输入职工信息与工资信息,需要时可以从数据库直接调用并进行运用。
系统登录程序:输入顾客名与密码,登陆人事管理系统。
职工信息添加:进入该程序后,需要输入职工信息,涉及职工姓名、工号、性别、年龄、家庭住址与联系电话。选取保存键可以保存该职工信息。
职工信息修改:进入该程序后,输入要修改职工工号,选取查找键进行查找,涉及职工姓名、性别、年龄、家庭住址与联系电话。选取修改键可以保存修改后职工信息。
职工信息删除:进入该程序后,输入要删除职工工号,找出要删除职工,选取删除键完全删除该职工所有信息。
工资信息添加:进入该程序后,输入职工工号,然后输入其工资,添加工资。
工资信息修改:进入该程序后,输入职工工号,选取查找键进行查找,修改相应工资信息,选取修改键可以保存修改后工资信息。
工资信息查询:进入该程序后,输入要查询职工工号,选取工资查询,即可显示出该职工工资。
按工号查询职工:进入该程序后,输入要查询职工工号,然后选取查找,即可显示该职工信息。
按姓名查找职工:进入该程序后,输入要查找职工姓名,然后选取查找,即可显示该职工信息。
协助:该程序重要为使用者在使用该系统时遇到问题进行解答。
主函数
界面设计
数据库连接
系统登录
职工添加
工资修改
工资查询
按工号查询
职工删除
职工修改
系统退出
工资添加
职工系统
工资系统
查询系统
按姓名查询
小型工资管理系统
整体框架
登陆退出系统
协助系统
图5 小型工资管理系统详细设计
给出程序要达到详细规定。明确规定:
该小型工资管理系统属于一种小型系统,受编程者水平及人数限制,因而只能设计一种比较简朴系统。但是,咱们将尽自己最大努力,不断完善该系统,使之成为一种简洁大方、完整而极具应用性小系统。详细规定如下:
(1)界面美丽大方,简洁易懂,操作性强;
(2)每个模块分工明确,内容简要扼要,提示性强。
(3)代码精确无误,不含任何语法及逻辑错误,注释标注明确,使人一目了然。
(4)系统具备很高实用性,可真正投入实际使用。
(5)程序将由小组每位成员分工合伙完毕,在自己努力与互相协助下,深化对JAVA学习。
4、任务模块分派表:
成员
负责功能模块阐明
钱海燕
界面设计与数据库连接
付爽
系统主函数、登录、退出与协助
胡晓康
职工信息添加、修改、删除
史丞玉
工资信息添加、修改、查询
刘文婷
员工信息查询(按工号查询与按姓名查询)
5、测试数据
登陆系统:输入顾客名admin,密码1234,成功进入主界面;若顾客名或密码错误,则跳出对话框,显示登录失败,无法进入主界面。
数据库登陆:输入顾客名sa,密码1234,成功进入数据库;若顾客名或密码错误,则抛出异常。
职工信息添加:输入职工信息,涉及职工姓名、工号、性别、年龄、家庭住址与联系电话。选取保存键可以保存该职工信息。
职工信息修改:输入要修改职工工号,选取查找键进行查找,涉及职工姓名、性别、年龄、家庭住址与联系电话。选取修改键可以保存修改后职工信息。如果成功,则跳出对话框,显示修改成功;若无法找到该职工工号,跳出对话框,显示修改失败。
职工信息删除:输入要删除职工工号,找出要删除职工,选取删除键完全删除该职工所有信息。如果成功,则跳出对话框,显示删除成功;若无法找到该职工工号,跳出对话框,显示删除失败。
工资信息添加:输入职工工号,然后输入其工资,添加工资。如果成功,则跳出对话框,显示添加成功;若无法找到该职工工号,跳出对话框,显示添加失败。
工资信息修改:输入职工工号,选取查找键进行查找,修改相应工资信息,选取修改键可以保存修改后工资信息。如果成功,则跳出对话框,显示修改成功;若无法找到该职工工号,跳出对话框,显示修改失败。
工资信息查询:输入要查询职工工号,选取工资查询,即可显示出该职工工资。如果成功,则跳出对话框,显示查询成功;若无法找到该职工工号,跳出对话框,显示查询失败。
按工号查询职工:输入要查询职工工号,然后选取查找,即可显示该职工信息;若无法找到该职工工号,跳出对话框,显示查询失败。
按姓名查找职工:输入要查找职工姓名,然后选取查找,即可显示该职工信息。若无法找到该职工姓名,跳出对话框,显示查询失败。
6、程序模块调用关系图
登录
小型工资管理系统
系统
职工管理
工资管理
职工查询
协助
退出
添加职工
修改职工
删除职工
添加工资
修改职工
工资查询
按工号查询
按姓名查询
互动
登陆系统成功!
密码或顾客名错误!
图6程序模块调用关系图
7、源程序
登陆系统源代码
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class LogOn {
public static void main(String[] args){
final JFrame jfrmlogin=new JFrame("系统登录");//框标题是 系统登录
jfrmlogin.setSize(400,280);//设立框大小
Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
jfrmlogin.setLocation((int) (screenSize.width-400)/2,(int)(screenSize.height-300)/2);//设立框浮现位置
//构建面板 p1、p2、p3
//p1->顾客名+文本框
JPanel p1=new JPanel();
p1.add(new JLabel("顾客名:"));
final JTextField jtxtuser=new JTextField(14);
//p2->密码+文本框
JPanel p2=new JPanel();
p2.add(new JLabel("密码:"));
final JPasswordField jspwd=new JPasswordField(14);
//p3->登陆+退出 两按钮
JPanel p3=new JPanel();
JButton jbtok=new JButton("登录");
JButton jbtexit=new JButton("退出");
//将组件加入到面板中
p1.add(jtxtuser);
p2.add(jspwd);
p3.add(jbtok);
p3.add(jbtexit);
//,登陆键监听器设立
jbtok.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String a,b;
a=jtxtuser.getText();
//密码框置为不可见字符
b=jspwd.getText();
if((a.equals("admin")==true)&&(b.equals("1234")==true))
{
//如果成功则调用系统程序 隐藏当前登陆框
JOptionPane.showMessageDialog(null,"你已成功登陆系统!","系统提示",JOptionPane.INFORMATION_MESSAGE);
MainFrame mf=new MainFrame();
mf.setVisible(true);
jfrmlogin.dispose();
}
else{
JOptionPane.showMessageDialog(null,"顾客名或密码不一致,请重新输入!","系统提示",JOptionPane.ERROR_MESSAGE);
//不对的则将顾客框和密码框都置空
jtxtuser.setText("");
jspwd.setText("");
}
}
});
jbtexit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null,"您已成功退出系统!","系统提示",JOptionPane.CANCEL_OPTION);
System.exit(0);
}
});
//采用网格布局
jfrmlogin.getContentPane().setLayout(new GridLayout(3,1));
jfrmlogin.getContentPane().add(p1);
jfrmlogin.getContentPane().add(p2);
jfrmlogin.getContentPane().add(p3);
jfrmlogin.setVisible(true);
}
}
主函数源代码
//系统主程序类Main
//导入包
import java.awt.*;
import javax.swing.*;
//创立主系统类
class Main
{
public static void main (String[] args)
{
//创立主界面,调用MainFrame()构造函数和办法
MainFrame frame=new MainFrame();
//获取屏幕尺寸
Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
//获取主界面窗体尺寸
Dimension frameSize =frame.getSize();
//令主界面窗体居中
if(frameSize.height>screenSize.height)
frameSize.height=screenSize.height;
if(frameSize.width>screenSize.width)
frameSize.width=screenSize.width;
frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);
//令主界面显示
frame.setVisible(true);
}
}
主界面源代码
//系统主框架类
//导入系统包
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.Rectangle2D;
import javax.swing.*;
//创立主框架类MainFrame
public class MainFrame extends JFrame implements ActionListener
{
//创立内容面板
JPanel contentPane;
//创立菜单栏组件对象
JMenuBar jMenuBar1=new JMenuBar();//菜单条
JMenu jMenu0=new JMenu("系统");//菜单
JMenuItem jMenuItem0=new JMenuItem("退出");//子菜单
JMenu jMenu1=new JMenu("职工管理");
JMenuItem jMenuItem1=new JMenuItem("添加职工");
JMenuItem jMenuItem2=new JMenuItem("修改职工");
JMenuItem jMenuItem3=new JMenuItem("删除职工");
JMenu jMenu2=new JMenu("工资管理");
JMenuItem jMenuItem4=new JMenuItem("添加工资");
JMenuItem jMenuItem5=new JMenuItem("修改工资");
JMenuItem jMenuItem8=new JMenuItem("工资查询");
JMenu jMenu3=new JMenu("职工查询");
JMenuItem jMenuItem6=new JMenuItem("按工号查询");
JMenuItem jMenuItem7=new JMenuItem("按姓名查询");
JMenu jMenu4=new JMenu("协助");
JMenuItem jMenuItem9=new JMenuItem("互动");
//创立标签,用于显示信息
JLabel jLabel1=new JLabel(" 小型工资管理系统");
JLabel jLabel2=new JLabel(" -Java课程设计");
//创立构造办法
public MainFrame()
{
try{
//关闭框架窗口时默认事件办法
setDefaultCloseOperation(EXIT_ON_CLOSE);
//调用初始化办法
jbInit();
}
catch(Exception exception){
exception.printStackTrace();
}
}
//界面初始化办法
private void jbInit() throws Exception
{
//创立内容面板
contentPane =(JPanel) getContentPane();
//设立内容面板布局为空
contentPane.setLayout(null);
//主框架大小
Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
setLocation((int) (screenSize.width-400)/2,(int)(screenSize.height-300)/2);
setSize(new Dimension(400,360));
//主框架标题
setTitle("小型工资管理系统");
//添加事件监听器
jMenuItem0.addActionListener(this);
jMenuItem1.addActionListener(this);
jMenuItem2.addActionListener(this);
jMenuItem3.addActionListener(this);
jMenuItem4.addActionListener(this);
jMenuItem5.addActionListener(this);
jMenuItem6.addActionListener(this);
jMenuItem7.addActionListener(this);
jMenuItem8.addActionListener(this);
jMenuItem9.addActionListener(this);
//添加菜单条到主框架
setJMenuBar(jMenuBar1);
//添加菜单到菜单条
jMenuBar1.add(jMenu0);
jMenuBar1.add(jMenu1);
jMenuBar1.add(jMenu2);
jMenuBar1.add(jMenu3);
jMenuBar1.add(jMenu4);
//添加菜单项到菜单
jMenu0.add(jMenuItem0);
jMenu1.add(jMenuItem1);
jMenu1.add(jMenuItem2);
jMenu1.add(jMenuItem3);
jMenu2.add(jMenuItem4);
jMenu2.add(jMenuItem5);
jMenu2.add(jMenuItem8);
jMenu3.add(jMenuItem6);
jMenu3.add(jMenuItem7);
jMenu4.add(jMenuItem9);
//添加标签到主框架内容面板
contentPane.add(jLabel1);
contentPane.add(jLabel2);
//设立标签组件大小和字体
jLabel1.setFont(new java.awt.Font("黑体",Font.BOLD,20));
jLabel1.setBounds(new Rectangle(65,70,275,55));
jLabel2.setFont(new java.awt.Font("黑体",Font.BOLD,16));
jLabel2.setBounds(new Rectangle(90,150,200,35));
}
//菜单项事件相应解决办法
public void actionPerformed(ActionEvent actionEvent)
{
//点击“系统”菜单下“退出”菜单项
if(actionEvent.getSource()==jMenuItem0)
{
JOptionPane.showMessageDialog(null,"您已成功退出系统!","系统提示",JOptionPane.CANCEL_OPTION);
System.exit(0);
}
//点击“职工管理”菜单下“添加职工”菜单项
if(actionEvent.getSource()==jMenuItem1)
{
//创立“添加职工”面板对象
AddEmployee AddEmp=new AddEmployee();
//移除主框架上原有内容
this.remove(this.getContentPane());
//加载“添加职工”面板对象到主框架
this.setContentPane(AddEmp);
//令界面可见
this.setVisible(true);
}
//点击“职工管理”菜单下“修改职工”菜单项
if(actionEvent.getSource()==jMenuItem2)
{
//创立“修改职工”面板对象
ModifyEmployee ModifyEmp=new ModifyEmployee();
this.remove(this.getContentPane());
//加载“修改职工”面板对象到主框架
this.setContentPane(ModifyEmp);
this.setVisible(true);
}
//点击“职工管理”菜单下“删除职工”菜单项
if(actionEvent.getSource()==jMenuItem3)
{
//创立“删除职工”面板对象
DeleteEmployee DeleteEmp=new DeleteEmployee();
this.remove(this.getContentPane());
//加载“删除职工”面板对象到主框架
this.setContentPane(DeleteEmp);
this.setVisible(true);
}
//点击“工资管理”菜单下“添加工资”菜单项
if(actionEvent.getSource()==jMenuItem4)
{
//创立工资添加面板对象
AddSalary AddSal=new AddSalary();
this.remove(this.getContentPane());
//加载工资添加面板对象到主框架
this.setContentPane(AddSal);
this.setVisible(true);
}
//点击“工资管理”菜单下“修改工资”菜单项
if(actionEvent.getSource()==jMenuItem5)
{
//创立工资修改面板对象
ModifySalary ModifySal=new ModifySalary();
this.remove(this.getContentPane());
//加载工资修改面板对象到主框架
this.setContentPane(ModifySal);
this.setVisible(true);
}
//点击“工资管理”菜单下“工资查询”菜单项
if(actionEvent.getSource()==jMenuItem8)
{
//创立工资修改面板对象
SalaryInquire SalaryInq=new SalaryInquire();
this.remove(this.getContentPane());
//加载工资修改面板对象到主框架
this.setContentPane(SalaryInq);
this.setVisible(true);
}
//点击“职工查询”菜单下“按工号查询”菜单项
if(actionEvent.getSource()==jMenuItem6)
{
//创立“按工号查询”面板对象
InquireOnGH OnGH=new InquireOnGH();
//移除主框架上原有内容
this.remove(this.getContentPane());
this.setContentPane(OnGH);
this.setVisible(true);
}
//点击“职工查询”菜单下“按姓名查询”菜单项
if(actionEvent.getSource()==jMenuItem7)
{
//创立“按姓名查询”面板对象
InquireOnName OnName=new InquireOnName();
//移除主框架上原有内容
this.remove(this.getContentPane());
this.setContentPane(OnName);
this.setVisible(true);
}
//点击“协助”菜单下“互动”菜单项
if(actionEvent.getSource()==jMenuItem9)
{
//创立“协助”面板对象
EmployeeHelp EmployeeH=new EmployeeHelp();
//移除主框架上原有内容
this.remove(this.getContentPane());
this.setContentPane(EmployeeH);
this.setVisible(true);
}
}
}
数据库源代码
//类DBConnect用于数据库连接
//导入sql包
import java.sql.*;
//创立数据库连接类DBConnect
public class DBConnect
{
//静态办法提高数据库连接效率
public static Connection getConn() throws Exception
{
//加载JDBC驱动
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
//以系统默认顾客身份,连接数据库StudentManager
return DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseNames=List","sa","1234");
//加载JDBC驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//以系统默认顾客身份,连接数据库StudentManager
return DriverManager.getConnection("jdbc:odbc:List","sa","1234");
}
}
职工信息输入系统源代码
//添加职工面板类AddEmployee
//导入系统类包
import java.awt.*;
import java.sql.*;
import javax.swing.*;
import java.awt.event.*;
//创立“添加职工“面板类
public class AddEmployee extends JPanel implements ActionListener
{
//声明连接数据库对象
Connection con;
//声明SQL语句对象
Statement st;
//创立组件对象:标签、文本行、单选
JLabel jLabel1=new JLabel("职工工号");
JLabel jLabel2=new JLabel("职工姓名");
JLabel jLabel3=new JLabel("职工性别");
JLabel jLabel4=new JLabel("职工年龄");
JLabel jLabel5=new JLabel("家庭住址");
JLabel jLabel6=new JLabel("联系电话");
JTextField jTextField1=new JTextField();
JTextField jTextField2=new JTextField();
JTextField jTextField3=new JTextField();
JTextField jTextField4=new JTextField();
JTextField jTextField5=new JTextField();
JRadioButton jRadioButton1=new JRadioButton("男");
JRadioButton jRadioButton2=new JRadioButton("女");
ButtonGroup buttonGroup1=new ButtonGroup();
JButton jBut
展开阅读全文