我的编程空间,编程开发者的网络收藏夹
学习永远不晚

java实现工资管理简单程序

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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;


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("导入成功");
                }

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

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

java实现工资管理简单程序

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

C#如何实现简单订单管理程序

这篇文章主要介绍“C#如何实现简单订单管理程序”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C#如何实现简单订单管理程序”文章能帮助大家解决问题。订单管理的控制台程序,能够实现添加订单、删除订单、修
2023-06-30

如何使用C语言实现简单员工工资管理系统

小编给大家分享一下如何使用C语言实现简单员工工资管理系统,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体内容如下(一)公司现状分析1、公司主要有经理、技术员、销售员、销售经理4类岗位人员,他们都有基本信息:职工号、姓名、
2023-06-29

怎么用Java实现简单员工管理系统

这篇文章主要讲解了“怎么用Java实现简单员工管理系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Java实现简单员工管理系统”吧!代码如下:import java.util.*;p
2023-06-29

怎么用java实现一个简单的房屋管理程序

这篇文章主要介绍了怎么用java实现一个简单的房屋管理程序,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。public class Application
2023-06-03

Java如何实现简单扫雷程序

本篇内容介绍了“Java如何实现简单扫雷程序”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!页面设置:框架是borderlayout,在上中下
2023-06-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录