我有一个程序,可以根据基本工资和佣金销售额计算员工的年薪。我想让程序更进一步,创建一个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;
}
}