【问题标题】:JAVA using assigned values from an array in a calculationJAVA在计算中使用数组中的赋值
【发布时间】:2015-06-01 23:35:48
【问题描述】:

这是一个非常基本的问题,但我刚刚开始使用 JAVA,并且在数组方面遇到了一些问题。

我要做的是用来自用户的 6 条信息填充一个数组:

  • 要输入的员工人数,
  • 一个字母数字员工编号,
  • 名字,
  • 姓氏,
  • 他们工作的小时数,
  • 与薪资等级对应的数字输入。

到目前为止,我已经将这些输入放入 JAVA 中的数组中,但是我想做的是使用相应的数字输入在 Pay Scale 数组中选择一个常数,然后使用该常数来计算每个员工的工资。

例如,员工 1 在 0 级工作了 10 个小时,所以这将是 10*4.50 员工以 1 级工作 10 小时,即 10*4.62

import java.util.Arrays; //imports Array utility
import java.util.Scanner; //imports Scanner utility

public class test1 {

    static Scanner keyb = new Scanner(System.in);   //Adds a keyboard input 

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        System.out.println("Enter the number of Employees: ");
        int employees = scanner.nextInt();
        String[] Employee = new String[employees];
        String[] FirstName = new String[employees];
        String[] LastName = new String[employees];
        double[] HoursWorked = new double[employees];
        double[] PayScale = {4.50,4.62,4.90,5.45,6.20};


        for (int i = 0; i < Employee.length; i++) {
            System.out.print("Enter Employee Number: ");
            Employee[i] = scanner.next();
            System.out.print("Enter Employee's First name: ");
            FirstName[i] = scanner.next();
            System.out.print("Enter Employee's Last name: ");
            LastName[i] = scanner.next();
            System.out.print("Enter Employee's Hours worked: ");
            HoursWorked[i] = scanner.nextDouble();
            System.out.print("Enter Employee's Payscale (Number 0 to 4): ");
            PayScale[i] = scanner.nextDouble();
        }


        for (int i = 0; i < HoursWorked.length; i++) {
                System.out.println("Employee " + Employee[i] + " " + FirstName[i] + " " + LastName[i] + " has "
                        + HoursWorked[i] * PayScale[0]);

            }
        }
    }
}

我是否已经接近解决方案?

我的问题在 JAVA 中可行吗?

也许我只是以错误的方式看待这个问题,但对于这方面的任何帮助将不胜感激。

编辑

好的,我在代码中添加了 extras 数组 扫描仪扫描仪=新扫描仪(System.in); System.out.println("请输入员工人数:"); int 员工 =scanner.nextInt(); 字符串[] 雇员 = 新字符串 [雇员]; 字符串 [] 名字 = 新字符串 [员工]; 字符串[]姓氏=新字符串[员工]; double[] HoursWorked = new double[employees]; int[]PayScale2 = {0,1,2,3,4}; double[] PayScale = {4.50,4.62,4.90,5.45,6.20};

我只是不确定在哪里使用

索引原始 PayScale 数组

PayScale[PayScale2[i]]

它会进入 for 语句代码块吗? (我试过把它放在那里但是我得到一个错误,它不是一个声明:/

【问题讨论】:

  • 1.它拼写为 Java,而不是 JAVA。 2. 了解对象和类。您不应该有 N 个字符串或双精度数组。您应该有一个 Employee 对象数组。员工将有一个数字、一个名字、一个姓氏等。
  • Java 这样做的方法是创建Employee 类并将所有计算封装在其中。

标签: java arrays selection


【解决方案1】:

改变

+ HoursWorked[i] * PayScale[0]);

+ HoursWorked[i] * PayScale[i]);

除此之外,在我看来,你正在做你说你应该做的事情..

您已经从这里获得了payscalesdouble[] PayScale = {4.50,4.62,4.90,5.45,6.20};,因此以下内容没有多大意义:

System.out.print("Enter Employee's Payscale (Number 0 to 4): ");
            PayScale[i] = scanner.nextDouble();

首先,如果你想keep this number (Number 0 to 4) separately,你应该使用another Arraynot你保留Payscales的那个,然后你可以index到保留@的first array 987654333@.. 或者你可以directly 使用第一个数组if you know 每个员工的工资等级.. 最后它与你想做什么以及你想怎么做有关,但是逻辑工具就在那里。 If you call the 2nd array PayScale2 例如:

 System.out.print("Enter Employee's Payscale (Number 0 to 4): ");
            PayScale2[i] = scanner.nextDouble();

那么你可以index to the first array 例如:

PayScale[PayScale2[i]] 

在这种情况下,如果用户输入 0PayScale2[i] 将是 0 然后 PayScale[PayScale2[i]] 将是 PayScale[0]4.5 或任何您在第一个数组中设置的值

【讨论】:

  • 对不起,我打的有点早。我的意思是说我在代码中添加了 extras 数组 Scannerscanner = new Scanner(System.in); System.out.println("请输入员工人数:"); int 员工 =scanner.nextInt();字符串[] 雇员 = 新字符串 [雇员];字符串 [] 名字 = 新字符串 [员工];字符串[]姓氏=新字符串[员工]; double[] HoursWorked = new double[employees]; int[]PayScale2 = {0,1,2,3,4};双[] PayScale = {4.50,4.62,4.90,5.45,6.20};但我不确定将 PayScale[PayScale2[i]] 放在哪里
  • 很高兴它有效。请按照此处所述接受我的回答:meta.stackexchange.com/questions/5234/…
猜你喜欢
  • 2013-08-21
  • 2014-06-17
  • 1970-01-01
  • 2017-01-26
  • 2015-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-17
相关资源
最近更新 更多