【问题标题】:How to write an interactive program ( Parameters and objects)如何编写交互式程序(参数和对象)
【发布时间】:2015-03-22 07:59:44
【问题描述】:

在我的 CS 课上,我们遇到了以下问题:

编写一个 Java 程序,其中包含一个名为 pay 的方法,该方法接受两个参数:一个表示员工小时工资的实数和一个表示员工当天工作小时数的整数。该方法应返回当天支付给员工的金额。

例如,调用pay(5.50, 6) 应该返回33.0。 对于高于8 的任何时间,员工应获得1.5 倍正常小时工资的“加班”工资。例如,调用pay(4.00, 11) 应该返回50.0(计算为(4.00 * 8) + (6.00 *3))。

在该程序的main 方法中包含对pay 方法的四个调用。两次调用,每一次使用上面给出的示例数据和两次调用,每一次使用您确定的数据。

到目前为止,这就是我所得到的一切,我觉得什么都不是:

import java.util.*;

public class Payjava {

    //obtain values
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);
        System.out.println(" Wage   : ");
        double wage = console.nextDouble();
        System.out.print(" Hours    :");
        int hours = console.nextInt();

        // compute results
        double overtime = 1.5;
        double overtime = hours > 8 * (wage * 1.5);
        wage = hours * wage;
    }
}

【问题讨论】:

    标签: java object parameters interactive


    【解决方案1】:

    我建议先将问题分解成更小的部分。 该问题要求一种计算员工工资的方法,因此这似乎是一个合理的起点。该问题为您提供了方法的名称以及它应该采用的参数:

    ...一种称为 pay 的方法,它接受两个参数:员工小时工资的实数和员工当天工作小时数的整数。该方法应返回当天支付给员工的金额。

    所以你的方法应该是这样的:

    public double pay(double hourlyWage, int numberOfHours) {
    //TODO: complete
    }
    

    然后开始在方法中添加逻辑——从不加班的简单情况开始,然后再回去添加加班计算。

    最后,请注意,问题是在 main 方法中包含对 pay 方法的四个调用 - 因此您实际上不需要提示输入。

    【讨论】:

      【解决方案2】:

      用代码回答是这样的,

      public class PayJava {
      
          public static void main(String[] argv) {
              PayJava test = new PayJava();
          double pay = test.pay(5.2,5);
          System.out.println("Pay 1= " + pay);
          pay = test.pay(4.00, 11);
          System.out.println("Pay 2= " + pay);
          pay = test.pay(5.50, 6);
          System.out.println("Pay 3= " + pay);
          pay = test.pay(7.50, 14);
          System.out.println("Pay 4= " + pay);
          }
      
          private double pay(double wage , int hours) {
               double overtime= 1.5;
               int otHrs = 0;
               int regHrs = 0;
               if(hours > 8 ) {
                   regHrs = 8;
                   otHrs = hours - regHrs;
                   overtime = (wage*1.5)*otHrs;
      
               } else {
                   regHrs = hours;
                   overtime = 0;
               }
               wage = (wage*regHrs)+overtime;
              return wage;
          }
      }
      

      【讨论】:

      • 这是基本示例。您可以像在代码中所做的那样,在上面的 main 方法中添加代码以从流中读取输入。
      猜你喜欢
      • 2018-04-16
      • 1970-01-01
      • 1970-01-01
      • 2013-01-01
      • 1970-01-01
      • 2012-02-27
      • 2023-03-21
      • 2011-12-07
      相关资源
      最近更新 更多