用java创建一个数组列表,并存储绑定到员工名称的值



我有一个程序,可以根据基本工资和佣金销售额计算员工的年薪。我想让程序更进一步,创建一个arrayList,询问员工姓名,然后创建一个数组,存储程序中的值,并为输入的每个员工姓名打印出这些值。

我想我需要创建一个for或else循环来收集数据。问题是,我不确定在哪里执行该操作以及如何创建数组。我有两个班:

我的佣金变量和计算的1类:

package Commissions;
public class Calculations {
    double totalSales;
    private double comRate = 0.025;
    private double annualSal = 80000;
    private double salesTarget = 120000;
    private double acceleration = 0.015;
    private double compensation;
    public Calculations (double TotalSales) {
        this.totalSales = totalSales;
    }
    public double getCommissionCalc () {
        if (totalSales >= salesTarget) {
            compensation = (annualSal + (totalSales * (comRate + acceleration)));
                return compensation;
        } else if (totalSales >= salesTarget * .8) {
            compensation = (annualSal + (totalSales * comRate));
                return compensation;
        } else {
            compensation = annualSal;
                return compensation;
        }
    }
}

1类用于我的主和用户输入

package Commissions;
import java.text.NumberFormat;
import java.util.*;
public class paycheck {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner input = new Scanner (System.in);
        NumberFormat nf = NumberFormat.getCurrencyInstance();
        System.out.println("Enter the employee name: ");
        long empName = input.nextLong();
        mediaArray[empName];
        System.out.println("Enter your total sales for the year:  ");
        double totalSales = input.nextDouble();
        System.out.println("r");
        Calculations c = new Calculations (totalSales);
        System.out.println("Your Total compensation with your annual sales is:  " + nf.format(c.getCommissionCalc()));
        System.out.println("r");
        System.out.println("If you were to increase your sales you could earn even more money!");
        System.out.println("r");
        double i = totalSales + 5000;
        double finish = totalSales * 1.5;
        while (i <= finish) {
            c.totalSales = i;
            System.out.println("If you were to increase your sales commission to " + nf.format(i) + " you could earn: " + nf.format(c.getCommissionCalc()));
            i = i + 5000;
        }
    }
}

根据我对您的问题的理解,以下是代码,当您说输入名称但需要很长时间输入时,必须更正一些事情:

import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Paycheck {
    public static void main(String[] args) {
        List<Employee> empList = new ArrayList<Employee>();
        while (true) {
            Scanner input = new Scanner(System.in);
            NumberFormat nf = NumberFormat.getCurrencyInstance();
            System.out.println("Enter the employee name (enter exit to exit): ");
            String empName = input.nextLine();
            // mediaArray[empName];
            if(empName.equals("exit")) {
                break;
            }
            System.out.println("Enter your total sales for the year:  ");
            double totalSales = input.nextDouble();
            Calculations c = new Calculations(totalSales);
            System.out
                    .println("Your Total compensation with your annual sales is:  "
                            + nf.format(c.getCommissionCalc()));
            System.out.println("r");
            System.out
                    .println("If you were to increase your sales you could earn even more money!");
            System.out.println("r");
            double i = totalSales + 5000;
            double finish = totalSales * 1.5;
            while (i <= finish) {
                c.totalSales = i;
                System.out
                        .println("If you were to increase your sales commission to "
                                + nf.format(i)
                                + " you could earn: "
                                + nf.format(c.getCommissionCalc()));
                i = i + 5000;
            }
            System.out.println("r");
            //store employee data into arraylist
            empList.add(new Employee(empName, i));
        }

        for(Employee emp : empList) {
            System.out.println("Employee Name: " + emp.getName() + " Total Sales: " + emp.getSales());
        }
    }
}
class Employee {
    private String name;
    private Double sales;
    public Employee(String empName, double totalSales) {
        this.name = empName;
        this.sales = totalSales;
    }
    public Double getSales() {
        return sales;
    }
    public void setSales(Double sales) {
        this.sales = sales;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

最新更新