如何用Java将薪资数据传递给每个销售人员
我很难理解如何获取数组中的信息以进行打印比较。我需要比较销售人员[0]和销售人员[1]的年度薪酬总额,但无法计算如何传递每个销售人员的薪酬。请帮我找出我做错了什么如何用Java将薪资数据传递给每个销售人员,java,arrays,multidimensional-array,Java,Arrays,Multidimensional Array,我很难理解如何获取数组中的信息以进行打印比较。我需要比较销售人员[0]和销售人员[1]的年度薪酬总额,但无法计算如何传递每个销售人员的薪酬。请帮我找出我做错了什么 import java.util.Scanner;//import tools for scanner useage import java.util.InputMismatchException;//import tools for try-catch import java.text.DecimalFormat;//format
import java.util.Scanner;//import tools for scanner useage
import java.util.InputMismatchException;//import tools for try-catch
import java.text.DecimalFormat;//format percentages
public class AnnualCompensationCalculator
{
//main method begins
public static void main(String[] args)
{
//create object to assign greeting
AnnCompGreet myGreeting = new AnnCompGreet();
// call greeting
myGreeting.displayMessage();
//object to call table
AnnCompTable myTable = new AnnCompTable();
//object to call formatting for percentages
DecimalFormat percent = new DecimalFormat("#0%");
//variable for boolean answer to display table
boolean bool = true;
/**
* next few lines determine whether or not
* to display the compensation table
*/
do
{
try
{
//ask user if they want to display compensation table
System.out.print("Would you like to see compensation table?"
+ " Enter: True/False ");
//create scanner to obtain bool
Scanner answer = new Scanner(System.in);
boolean boolAnswer = answer.nextBoolean();
//this will display the table
if (boolAnswer == true)
{
myTable.displayTable();
} //this will display message when table is not displayed
else if (boolAnswer == false)
{
System.out.println("Then let us continue!");
}
} catch (InputMismatchException e) {
System.out.println("Invalid input, the table"
+ " will not be displayed.");
}
} while (!bool);
final double salary = 100000.00;//fixed variable
double numberSales;//hold place of sales variable
double annualSalary;//hold place of total annual salary
int people;//used for array to gather salesperson info
//create Commission object
Commission number = new Commission();
//create scanner for sales info
Scanner keyboard = new Scanner(System.in);
//used to determine how many salespeople will be entered for array
System.out.print("How many Sales people are you entering? ");
people = keyboard.nextInt();
//array for sales people information
String[]SalespersonName = new String[people];
//loops array
for(int i = 0; i < people; i++)
{
//requests salesperson's name
System.out.print("Enter name of salesperson "
+ "number " + (i+1) + ": ");
SalespersonName[i] = keyboard.next();
do
{
//next two lines used to obtain annual sales
System.out.print("Enter " + SalespersonName[i]
+ "'s annual sales: "
+ "$");
numberSales = keyboard.nextDouble();
//set annual sales and commission rate
number.set(numberSales, 0.0);
//conditional statements to determin annual sales
if (numberSales <= 96000)
{
//displays base commission rate
System.out.println("Base Commission rate is: 5%.");
//displays current commission rate
System.out.println(SalespersonName[i] + "'s "
+ "commission rate is: "
+ percent.format(number.getRate()));
//displays message for not reaching target sales
System.out.println("Sorry you have not reached your "
+ "target of $96,000.");
//equation to calculate total annual compensation
annualSalary = salary + number.getSalesCommission();
//displays salary with no commissions
System.out.printf(SalespersonName[i]
+ "'s annual compensation "
+ "is: $%,.2f \n", annualSalary);
}
else
{
//displays base commission rate
System.out.println("Base commission rate is: 5%.");
//displays current commission rate for salesperson
System.out.println(SalespersonName[i]
+ "'s commission rate is "
+ percent.format(number.getRate()));
//displays commissions earned
System.out.printf(SalespersonName[i]
+ "'s total commission is: "
+ "$%,.2f \n", number.getSalesCommission());
//equation to calculate total annual compensation
annualSalary = salary + number.getSalesCommission();
//displays total annual compensation
System.out.print(SalespersonName[i]
+ "'s annual compensation is ");
System.out.printf("$%,.2f \n", annualSalary);
}
}while (i == people);
}
for(int i = 0; i < people; i++)
{
System.out.println(SalespersonName[i]);
}
}
}
import java.util.Scanner//导入扫描仪使用的工具
导入java.util.InputMismatchException//为try-catch导入工具
导入java.text.DecimalFormat//格式百分比
公共类年度补偿计算器
{
//主方法开始
公共静态void main(字符串[]args)
{
//创建要分配问候语的对象
AnnCompGreet myGreeting=新的AnnCompGreet();
//打电话问候
myGreeting.displayMessage();
//对象调用表
AnnCompTable myTable=新的AnnCompTable();
//对象调用百分比的格式设置
DecimalFormat percent=新的DecimalFormat(“0%”);
//用于显示表格的布尔答案的变量
布尔布尔布尔=真;
/**
*接下来的几行决定是否
*显示补偿表的步骤
*/
做
{
尝试
{
//询问用户是否要显示补偿表
System.out.print(“您想查看补偿表吗?”
+“输入:真/假”);
//创建扫描仪以获取bool
扫描仪应答=新扫描仪(System.in);
布尔boolAnswer=answer.nextBoolean();
//这将显示表格
if(boolAnswer==true)
{
displayTable();
}//当不显示表时,将显示消息
else if(boolAnswer==false)
{
System.out.println(“那么让我们继续吧!”);
}
}捕获(输入不匹配异常e){
System.out.println(“无效输入,表格”
+“将不会显示。”);
}
}而(!bool);
最终双薪=100000.00;//固定变量
double numberSales;//保留销售变量的位置
双倍年薪;//担任总年薪的职务
int people;//用于数组以收集销售人员信息
//创建佣金对象
佣金编号=新佣金();
//为销售信息创建扫描仪
扫描仪键盘=新扫描仪(System.in);
//用于确定将为数组输入多少销售人员
System.out.print(“您要输入多少销售人员?”);
people=keyboard.nextInt();
//销售人员信息数组
String[]salersonname=新字符串[人];
//循环数组
for(int i=0;i 如果(numberSales您可以使salessorson
成为带有局部变量补偿的对象
这样,您就可以比较销售人员[0]。薪酬>销售人员[1]。薪酬
编辑:您还将包括名称
,并可能在此处进行佣金计算您的do while循环将是不必要的,因为while条件永远不会满足;它将始终输入一次。可能是sql组通过使用聚合函数将工作得更好。就像您一样,我也不理解代码好吗do-while可以删除,谢谢你的建议,我会这样做的,但是不管有没有do-while,我仍然不知道如何传递年薪。我尝试了嵌套(多维数组)这也不起作用,可能是因为我不了解如何设置多维数组,我真的不知道。zod,不幸的是,代码必须是Java。过去几天我一直在研究如何创建多维数组,但还不知道如何适当地传递所有信息。Fi首先,更改佣金变量的名称,这非常混乱//创建佣金对象Commission Commission=new Commission();…其次,您正在重用同一个对象,并且总是将佣金率设置为0,对吗?您在这里说:System.out.println(“基本佣金率为:5%”);但您从不更改佣金对象以反映该比率。您的意思是创建一个salesPerson类文件并将变量调用到数组中吗?使用变量name
和compensation
创建一个salesPerson类文件,然后将数组创建为Salespers数组。这样,当您检索其中一个Salespers时,您可以n轻松检索他们的姓名和信息如果我只是将销售人员和薪酬的当前信息复制并粘贴到新文件中,是否有效?我曾考虑过这样做,但不确定效果如何。我会在晚饭后尝试,看看是否有效。谢谢。