java实现工资管理简单程序

本文为大家分享了java实现工资管理简单程序的具体代码,供大家参考,具体内容如下

程序总体说明(ReadMe):

总体分为四部分:

管理程序(staffmanagment.java):

  • 在这里面使用了arraylist泛型来存放数据
  • 博主正在想办法把数据放进mysql,这样读取会更方便,而且数据不会消失
  • 当然(也可以把数据存入txt文件)
import java.util.ArrayList;

//员工管理
public class staffmanagement {
    ArrayList al = null;//员工信息在这里面建立
    public staffmanagement()
    {
        al = new ArrayList();
    }

    //成员方法
    //添加新员工
    public void addstaff(staff staff)
    {
        al.add(staff);
    }

    //根据工号查询员工的信息
    public void showInfo(String no)
    {
        int flag = 0;
        for(int i=0; i<al.size(); i++)
        {
            staff staff= (staff)al.get(i);
            if(staff.getNo().equals(no))
            {
                flag = 1;
                System.out.println("员工"+(i+1)+"的信息是:");
                System.out.print("姓名:"+staff.getName());
                System.out.print("  性别:"+staff.getSex());
                System.out.print("  年龄:"+staff.getAge());
                System.out.print("  工号:"+staff.getNo());
                System.out.print("  薪资:"+staff.getSalary());
                System.out.print("  工作:");
                if(staff.getWork() == 1) System.out.println("common staff");
                else if(staff.getWork() == 2) System.out.println("common manager");
                else if(staff.getWork() == 3) System.out.println("head manager");
                System.out.println(staff);

            }
        }
        if(flag == 0)
            System.out.println("该工号不存在");
    }

    //显示所有员工信息
    public void  showAllInfo()
    {
        for(int i=0; i<al.size(); i++)
        {
            staff staff= (staff)al.get(i);
            System.out.println("staff"+(i+1)+"的信息是:");

            System.out.print("姓名:"+staff.getName());
            System.out.print("  性别:"+staff.getSex());
            System.out.print("  年龄:"+staff.getAge());
            System.out.print("  工号:"+staff.getNo());
            System.out.print("  薪资:"+staff.getSalary());
            System.out.print("  工作:");
            if(staff.getWork() == 1) System.out.println("common staff");
            else if(staff.getWork() == 2) System.out.println("common manager");
            else if(staff.getWork() == 3) System.out.println("head manager");
            System.out.println(staff);
        }
    }

    //修改员工的薪水
    public void  modifySal(String no, double sal) //员工工号   最新的薪资
    {
        int flag = 0;
        for(int i=0; i<al.size(); i++)
        {
            staff staff= (staff)al.get(i);
            if(staff.getNo().equals(no))
            {
                flag = 1;
                staff.setSalary(sal);
            }
        }
        if(flag == 0)
            System.out.println("找不到所查工号");
    }

    //根据工号删除该员工的信息
    public void deleteInfo(String no)
    {
        int flag = 0;
        for(int i=0; i<al.size(); i++)
        {
            staff staff= (staff)al.get(i);
            if(staff.getNo().equals(no))
            {
                flag = 1;
                al.remove(i);
            }
        }
        if(flag == 0)
            System.out.println("找不到所查工号");
    }

    //统计当前公司的三个水平工资线
    public void calSalary() {
        if (al.isEmpty()) {
            System.out.println("the stafflist is empty,please input the staff infomation");
            System.out.println("please input the No 1 to add the staffinfo");
        } else {
            double totalSal = 0;
            double minSal = ((staff) al.get(0)).getSalary();
            double maxSal = ((staff) al.get(0)).getSalary();

            for (int i = 0; i < al.size(); i++) {
                staff staff = (staff) al.get(i);
                totalSal += staff.getSalary();
                if (minSal > staff.getSalary()) {
                    minSal = staff.getSalary();
                }
                if (maxSal < staff.getSalary()) {
                    maxSal = staff.getSalary();
                }
            }
            System.out.println(al.size() + "个人的平均薪资为:" + totalSal / al.size());
            System.out.println(al.size() + "个人的最低薪资为:" + minSal);
            System.out.println(al.size() + "个人的最高薪资为:" + maxSal);
        }
    }
}

界面模块(SalarySystem.java)

  • 对不同员工的工资最低进行了限制,毕竟法律规定了不能给太低
  • 年龄也是(至少得成年吧——你懂的)
  • 职位还可以安排更多
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;

/*
* @antuor:jeffw
* 员工界面为博主清风追梦的写法
* 清风大大的blogs:http://www.cnblogs.com/qingfengzhuimeng/p/6509965.html
* io输入输出
* 在员工的类别上加入员工的职业区分别建立不同的类
* 程序使用英语+中文方式= =顺便练习英语
*/
public class SalarySystem {

    public static void main(String[] args) throws IOException //使用bufferreader读取更加的安全,当读取不到的返回错误抛出
    {
        staffmanagement sys = new staffmanagement();

        InputStreamReader isr = new InputStreamReader(System.in);//输入流为系统,也可以从文本读取,一次读取一个字符
        BufferedReader br = new BufferedReader(isr);//读取,对输入流的封装,可以读取一行,一个字符或者是一个数字
        //这里以isr读取到的传给br
        while(true)
        {
            //简易菜单
            System.out.println("简单管理菜单" );
            System.out.println("---------------------------------------");
            System.out.println("1.添加新员工");
            System.out.println("2.根据工号显示员工的信息");
            System.out.println("3.显示所有员工信息");
            System.out.println("4.修改员工的薪水");
            System.out.println("5.根据工号删除员工的信息");
            System.out.println("6.统计员工的平均工资、最高工资和最低工资");
            System.out.println("7.查看具体工作名称");
            System.out.println("8.最低工资说明");
            System.out.println("9.清屏");
            System.out.println("0.退出");
            System.out.println("---------------------------------------");
            System.out.println("请选择序号:");

            String no = br.readLine();

            if(no.equals("1")) {
                System.out.println("添加新员工:");
                System.out.println("请输入姓名:");
                String name = br.readLine();

                System.out.println("请输入性别(男or女):");
                String sex = br.readLine();

                System.out.println("请输入工作:");
                System.out.println("目前共有三种职位:\n" +
                        "1.common_staff\n" +
                        "2.common_manager\n" +
                        "3.head_manager");
                System.out.println("please input the work id:");
                int work = Integer.parseInt(br.readLine());

                System.out.println("请输入年龄:");
                Scanner sc = new Scanner(System.in);
                int age = sc.nextInt();
                if( age < 18 ){
                    System.out.println("the age is too small,please input again");
                    sc = new Scanner(System.in);
                    age = sc.nextInt();
                }

                System.out.println("请输入工号:");
                String staffNo = br.readLine();

                System.out.println("请输入工资:");
                double salary = Double.parseDouble(br.readLine());
                if( work == 1 ) {
                    while (salary < 2000) {
                        System.out.println("the common staff's salary is too low");
                        System.out.println("请重新输入");
                        salary = Double.parseDouble(br.readLine());
                    }
                }
                else if( work == 2 ) {
                    while (salary < 5000) {
                        System.out.println("the manager's salary is too low");
                        System.out.println("请重新输入");
                        salary = Double.parseDouble(br.readLine());
                    }
                }
                else if( work == 3 ) {
                    while (salary < 8000) {
                        System.out.println("the head manager's salary is too low");
                        System.out.println("请重新输入");
                        salary = Double.parseDouble(br.readLine());
                    }
                }

                staff staff = null;
                if (work == 1) {
                    staff = new staff(name, sex, age, staffNo, salary, work);
                } else if(work == 2){
                    staff = new manager(name, sex, age, staffNo, salary, work);
                }else if(work == 3 ) {
                    staff = new manager(name, sex, age, staffNo, salary, work);
                }
                sys.addstaff(staff);

            }else if(no.equals("2")){
                System.out.println("请输入员工号:");
                String staffNo = br.readLine();
                sys.showInfo(staffNo);

            }else if(no.equals("3")){
                System.out.println("显示所有员工信息:");
                sys.showAllInfo();

            }else if(no.equals("4")){
                System.out.println("修改员工的薪水:");
                System.out.println("输入员工工号:");
                String staffNo = br.readLine();//接收输入的工号
                System.out.println("修改后的员工工资:");
                String sal = br.readLine();
                double salary = Double.parseDouble(sal);
                sys.modifySal(staffNo, salary);

            }else if(no.equals("5")){
                System.out.println("根据工号删除该员工的信息:");
                System.out.println("输入员工工号:");
                String staffNo = br.readLine();//接收输入的工号
                sys.deleteInfo(staffNo);

            }else if(no.equals("6")){
                System.out.println("统计员工的平均工资、最高工资和最低工资:");
                sys.calSalary();

            }else if(no.equals("7")) {
                System.out.println("查看具体工作名称:\n" +
                        "序号1为common staff\n" +
                        "序号2为conmmon manager\n" +
                        "序号3为head manger");

            }else if(no.equals("8")) {
                System.out.println("最低工资说明:\n" +
                        "1.common staff 最低工资为2000\n" +
                        "2.conmmon manager 最低工资为5000\n" +
                        "3.head manager 最低工资为8000\n");

            }else if(no.equals("9")){
                int i=0;
                while( i < 80) {
                    System.out.println("********");
                    i++;
                }//java因为ide的原因没有提供内置类似c++的方法,所以只能简陋的使用***来清屏了=  =
                System.out.println("如果觉得看着麻烦的话,可以在console里面鼠标右击->clear");

            }else if(no.equals("0")){
                System.exit(0);

            }else{
                System.out.println("请输入正确的序号");
            }
        }

    }
}

普通职位模块(staff.java)

所有的员工模块通过此模块进行扩展

//普通员工类
public class staff
{
    private String name;
    private String sex;
    private int age;
    private String no;
    private double salary;
    private int work;
    public staff(){}
    public staff(String name, String sex, int age, String no, double salary,int work)
    {
        this.name = name;
        this.sex = sex;
        this.age = age;
        this.no = no;
        this.salary = salary;
        this.work = work;
    }

    @Override
    public String toString() {
//        return "this is a common staff\n"
//                +"name:"+name+"\n"
//                +"sex :"+sex+"\n"
//                +"age :"+age+"\n"
//                +"no :"+no+"\n"
//                +"salary :"+salary+"\n"
//                +"work :"+work+"\n";
        return getWork()+" the common staff is working and the salary is "+getSalary()+"\n" +
                "his/her workid is 1 and he/she needs handle with the company's common situations";
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getNo() {
        return no;
    }

    public void setNo(String no) {
        this.no = no;
    }

    public double getSalary() {
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }
    public void setWork(int work){
        this.work = work;
    }
    public  int getWork(){
        return work;
    }

}

扩展职位模块

1.common manager

public class manager extends staff{
    public manager(String name, String sex, int age, String no, double salary, int work) {
        setName(name);
        setSalary(salary);
        setAge(age);
        setNo(no);
        setSex(sex);
        setWork(work);
    }
    public manager(){
        System.out.println("this is a manager");
    }
    @Override
    public String toString() {
        return "the manager is working and the salary is "+getSalary()+"\n" +
                "his workid is 3 and he needs handle with the company's emergency situations";
    }
}

2.head manager

public class headmanager extends  manager{
    public headmanager(String name, String sex, int age, String no, double salary, int work) {
        setName(name);
        setSalary(salary);
        setAge(age);
        setNo(no);
        setSex(sex);
        setWork(work);
    }
    public headmanager(){
        System.out.println("this is a headmanager");
        System.out.println("his workid is 3 " +
                    "and he needs handle with " +
                    "the company's emergency situations");
    }

    @Override
    public String toString() {
        return "the headmanager is working and the salary is "+getSalary()+getSalary()+"\n" +
                "his/her workid is 2 and he/she needs hanle whih the compant's main development";
    }
}

运行展示

2018.12.15更新:

现在还没有想到怎么用数据库连接,不过新学习了file文件操作模式,现在把这种方式加入到员工管理里面:

以下是增加内容:

else if(no.equals("10")) {
                System.out.println("正在读取中,请稍候...");
                File file = new File("1.txt");
                Scanner input = new Scanner(file);
                while(input.hasNext()){
                    String name = input.nextLine();

                    String sex = input.nextLine();

                    int work = input.nextInt();

                    int age =input.nextInt();
                    input.nextLine();
                    String staffNo = input.nextLine();

                    double salary = input.nextDouble();
                    staff staff = null;
                    if (work == 1) {
                        staff = new staff(name, sex, age, staffNo, salary, work);
                    } else if(work == 2){
                        staff = new manager(name, sex, age, staffNo, salary, work);
                    }else if(work == 3 ) {
                        staff = new manager(name, sex, age, staffNo, salary, work);
                    }else{
                        System.out.println("不存在此职业");
                    }
                    sys.addstaff(staff);
                    System.out.println("导入成功");
                }

接下来的想法是把重复的员工去除,想先通过提醒使用者导入员工后,删除原有员工文件,然后在使用者退出前提示导入员工名单进行解决可能出现的员工重复问题

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Eclipse+Java+Swing+Mysql实现工资管理系统

    目录 一.系统介绍 1.开发环境 2.技术选型 3.系统功能 4.数据库 二.系统展示 1.登录系统 2.用户-登录系统 3.用户-查看工资 4.管理员-主界面 6.管理员-修改员工信息 7.管理员-删除员工信息 8.管理员-添加部门信息 9.管理员-修改部门信息 10.管理员-删除部门信息 11.管理员-工资设定 12.管理员-工资查询 13.管理员-工资一览 三.部分代码 Login.java MainFrame.java DBConn.java AddDepartment.java Add

  • java实现工资管理简单程序

    本文为大家分享了java实现工资管理简单程序的具体代码,供大家参考,具体内容如下 程序总体说明(ReadMe): 总体分为四部分: 管理程序(staffmanagment.java): 在这里面使用了arraylist泛型来存放数据 博主正在想办法把数据放进mysql,这样读取会更方便,而且数据不会消失 当然(也可以把数据存入txt文件) import java.util.ArrayList; //员工管理 public class staffmanagement {     ArrayList

  • Java实现一个小说采集程序的简单实例

    被标题吸引进来的不要骂我. 只是一个简单的实现,随手写了来下载一部喜欢的小说的.示例中的小说只是示例,不是我的菜. 使用了jsoup.挺好用的一个工具. 有需要的话,参考下自己改吧.挺简单的,是吧. 代码如下: package com.zhyea.doggie; import java.io.File; import java.io.FileWriter; import java.io.IOException; import org.jsoup.Jsoup; import org.jsoup.n

  • Java continue break制作简单聊天室程序

    Java continue break 制作简单聊天室程序,屏蔽不文明语言,显示每句话聊天时间 package com.swift; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; public class ChatWithBreakContinue { public static void main(String[] args) { Scanner scan = new Sc

  • 基于Java SSM的健康管理小程序的实现

    目录 一.系统的简介 二.系统实现的主要功能 三.系统的界面演示 四.核心代码展示 一.系统的简介 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏览器:谷歌浏览器 二.系统实现的主要功能 (1)用户管理.主要实现了健康管理小程序的用户管理功能. (2)登录注册.小程序端可以登录注册. (

  • java如何创建一个jdbc程序详解

    JDBC简介 Java数据库连接(Java Database Connectivity,JDBC),是一种用于执行SQL语句的Java API,它由一组用Java编程语言编写的类和接口组成. JDBC为数据库开发人员提供了一个标准的API,使他们能够用纯Java API来编写数据库应用程序. 使用JDBC编写的程序能够自动地将SQL语句传送给相应的数据库管理系统. JDBC扩展了Java的功能,由于Java语言本身的特点,使得JDBC具有简单.健壮.安全.可移植.获取方便等优势. 我们在没有JD

  • java Swing组件setBounds()简单用法实例分析

    本文实例讲述了java Swing组件setBounds()简单用法.分享给大家供大家参考,具体如下: 先看API: public void setBounds(Rectangle r) 移动组件并调整其大小,使其符合新的有界矩形 r.由 r.x 和 r.y 指定组件的新位置,由 r.width 和 r.height 指定组件的新大小 参数: r - 此组件的新的有界矩形 从API来看,该方法的作用相当于setLocation()与 setSize()的总和.在实际使用时,需将容器的layout

  • java学生管理系统界面简单实现(全)

    学生管理系统简单的实现,供初学Java Swing同学学习使用. import java.awt.Dimension; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import jav

  • 在Docker中开发Java 8 Spring Boot应用程序的方法

    在本文中,我将向您展示如何使用Java 8开发和运行简单的Spring Web应用程序,而无需在本地计算机上安装Java 8. Python开发人员使用虚拟环境为不同项目创建和管理单独的环境,每个环境使用不同版本的Python来执行,存储和解析Python依赖项.Java和许多其他技术不支持虚拟环境概念.在这一点上,Docker来帮助我们. Docker是一个虚拟化平台.您可以从Docker官方网站上找到基本信息和安装指南. 一旦安装了Docker工具箱,就不需要安装我们的示例应用程序中所需的J

  • 手把手教你用Java实现一套简单的鉴权服务

    前言 时遇JavaEE作业,题目要求写个简单web登录程序,按照老师的意思是用servlet.jsp和jdbc完成.本着要么不做,要做就要做好的原则,我开始着手完成此次作业(其实也是写实训作业的用户鉴权部分),而之前写项目的时候也有相关经验,这次正好能派上用场. 一.何为鉴权服务 引用百度百科的话说 鉴权(authentication)是指验证用户是否拥有访问系统的权利. 鉴权包括两个方面: 用户鉴权,网络对用户进行鉴权,防止非法用户占用网络资源. 网络鉴权,用户对网络进行鉴权,防止用户接入了非

  • Java Swing编写一个简单的计算器软件

    目录 实现要求 实现代码: 实现要求 1.使用Java图形界面组件设计软件,界面如图所示. 2.软件能够满足基本的"加.减.乘.除"等运算要求. 3.程序代码清晰,语法规范,结构合理,逻辑正确. 4.编辑菜单中包括"复制和粘贴"两个菜单项,为菜单项编写事件代码. 实现代码: import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; impo

随机推荐