【问题标题】:How do I make one method that does calculations take variables from 4+ methods to do the calculations with?如何制作一种计算方法,该方法从 4 种以上的方法中获取变量来进行计算?
【发布时间】:2019-03-25 12:27:58
【问题描述】:
  import java.util.Scanner;

public class ThreeFiveRevised
{

  public static final double OVERTIME_PAY_RATE = 1.5;
  public static final double REGULAR_PAY_RATE = 1.0;

  public static void main(String[] args)
  {

    grabHourlyWages();
    calculateMondayPay();
    calculateTuesdayPay();
    calculateWedneimport java.util.Scanner;

public class ThreeFiveRevised
{

  public static final double OVERTIME_PAY_RATE = 1.5;
  public static final double REGULAR_PAY_RATE = 1.0;

  public static void main(String[] args)
  {

    grabHourlyWages();
    calculateMondayPay();
    calculateTuesdayPay();
    calculateWednesdayPay();
    calculateThursdayPay();
    calculateFridayPay();
    calculateTotalPay();

  }

  public static double grabHourlyWages()
  {

    Scanner reader = new Scanner(System.in);
    System.out.println("Hourly wage");
    double hourlyWage = reader.nextDouble();
    double overtimeWage = hourlyWage * 1.5;

    calculateMondayPay();
    calculateTuesdayPay();
    calculateWednesdayPay();
    calculateThursdayPay();
    calculateFridayPay();

    return hourlyWage;

  }

  public static double calculateMondayPay()
  {

    double hourlyWage = grabHourlyWages();
    double overtimeWage = grabHourlyWages();

    Scanner reader = new Scanner(System.in);
    System.out.println("Regular hours on Monday");
    double regularMonHours = reader.nextDouble();
    System.out.println("Overtime hours on Monday");
    double overtimeMonHours = reader.nextDouble();

    double mondayPay =
      (hourlyWage * regularMonHours) + (overtimeWage * overtimeMonHours);

    return mondayPay;

  }

  public static double calculateTuesdayPay()
  {

    double hourlyWage = grabHourlyWages();
    double overtimeWage = grabHourlyWages();

    Scanner reader = new Scanner(System.in);
    System.out.println("Regular hours on Tuesday");
    double regularTuesHours = reader.nextDouble();
    System.out.println("Overtime hours on Tuesday");
    double overtimeTuesHours = reader.nextDouble();

    double tuesdayPay =
      (hourlyWage * regularTuesHours) + (overtimeWage * overtimeTuesHours);

    return tuesdayPay;

  }

  public static double calculateWednesdayPay()
  {

    double hourlyWage = grabHourlyWages();
    double overtimeWage = grabHourlyWages();

    Scanner reader = new Scanner(System.in);
    System.out.println("Regular hours on Wednesday");
    double regularWedHours = reader.nextDouble();
    System.out.println("Overtime hours on Wednesday");
    double overtimeWedHours = reader.nextDouble();

    double wednesdayPay =
      (hourlyWage * regularWedHours) + (overtimeWage * overtimeWedHours);

    return wednesdayPay;

  }

  public static double calculateThursdayPay()
  {

    double hourlyWage = grabHourlyWages();
    double overtimeWage = grabHourlyWages();

    Scanner reader = new Scanner(System.in);
    System.out.println("Regular hours on Thursday");
    double regularThursHours = reader.nextDouble();
    System.out.println("Overtime hours on Thursday");
    double overtimeThursHours = reader.nextDouble();

    double thursdayPay =
      (hourlyWage * regularThursHours) + (overtimeWage * overtimeThursHours);

    return thursdayPay;

  }

  public static double calculateFridayPay()
  {

    double hourlyWage = grabHourlyWages();
    double overtimeWage = grabHourlyWages();

    Scanner reader = new Scanner(System.in);
    System.out.println("Regular hours on Friday");
    double regularFriHours = reader.nextDouble();
    System.out.println("Overtime hours on Friday");
    double overtimeFriHours = reader.nextDouble();

    double fridayPay =
      (hourlyWage * regularFriHours) + (overtimeWage * overtimeFriHours);
    return fridayPay;

  }

  public static double calculateTotalPay()
  {

    double mondayPay = calculateMondayPay();
    double tuesdayPay = calculateTuesdayPay();
    double wednesdayPay = calculateWednesdayPay();
    double thursdayPay = calculateThursdayPay();
    double fridayPay = calculateFridayPay();

    double TotalPay =
      mondayPay + tuesdayPay + wednesdayPay + thursdayPay + fridayPay;

    return TotalPay;

  }

}
sdayPay();
    calculateThursdayPay();
    calculateFridayPay();
    calculateTotalPay();

  }

  public static double grabHourlyWages()
  {

    Scanner reader = new Scanner(System.in);
    System.out.println("Hourly wage");
    double hourlyWage = reader.nextDouble();
    double overtimeWage = hourlyWage * 1.5;

    calculateMondayPay();
    calculateTuesdayPay();
    calculateWednesdayPay();
    calculateThursdayPay();
    calculateFridayPay();

    return hourlyWage;

  }

  public static double calculateMondayPay()
  {

    double hourlyWage = grabHourlyWages();
    double overtimeWage = grabHourlyWages();

    Scanner reader = new Scanner(System.in);
    System.out.println("Regular hours on Monday");
    double regularMonHours = reader.nextDouble();
    System.out.println("Overtime hours on Monday");
    double overtimeMonHours = reader.nextDouble();

    double mondayPay =
      (hourlyWage * regularMonHours) + (overtimeWage * overtimeMonHours);

    return mondayPay;

  }

  public static double calculateTuesdayPay()
  {

    double hourlyWage = grabHourlyWages();
    double overtimeWage = grabHourlyWages();

    Scanner reader = new Scanner(System.in);
    System.out.println("Regular hours on Tuesday");
    double regularTuesHours = reader.nextDouble();
    System.out.println("Overtime hours on Tuesday");
    double overtimeTuesHours = reader.nextDouble();

    double tuesdayPay =
      (hourlyWage * regularTuesHours) + (overtimeWage * overtimeTuesHours);

    return tuesdayPay;

  }

  public static double calculateWednesdayPay()
  {

    double hourlyWage = grabHourlyWages();
    double overtimeWage = grabHourlyWages();

    Scanner reader = new Scanner(System.in);
    System.out.println("Regular hours on Wednesday");
    double regularWedHours = reader.nextDouble();
    System.out.println("Overtime hours on Wednesday");
    double overtimeWedHours = reader.nextDouble();

    double wednesdayPay =
      (hourlyWage * regularWedHours) + (overtimeWage * overtimeWedHours);

    return wednesdayPay;

  }

  public static double calculateThursdayPay()
  {

    double hourlyWage = grabHourlyWages();
    double overtimeWage = grabHourlyWages();

    Scanner reader = new Scanner(System.in);
    System.out.println("Regular hours on Thursday");
    double regularThursHours = reader.nextDouble();
    System.out.println("Overtime hours on Thursday");
    double overtimeThursHours = reader.nextDouble();

    double thursdayPay =
      (hourlyWage * regularThursHours) + (overtimeWage * overtimeThursHours);

    return thursdayPay;

  }

  public static double calculateFridayPay()
  {

    double hourlyWage = grabHourlyWages();
    double overtimeWage = grabHourlyWages();

    Scanner reader = new Scanner(System.in);
    System.out.println("Regular hours on Friday");
    double regularFriHours = reader.nextDouble();
    System.out.println("Overtime hours on Friday");
    double overtimeFriHours = reader.nextDouble();

    double fridayPay =
      (hourlyWage * regularFriHours) + (overtimeWage * overtimeFriHours);
    return fridayPay;

  }

  public static double calculateTotalPay()
  {

    double mondayPay = calculateMondayPay();
    double tuesdayPay = calculateTuesdayPay();
    double wednesdayPay = calculateWednesdayPay();
    double thursdayPay = calculateThursdayPay();
    double fridayPay = calculateFridayPay();

    double TotalPay =
      mondayPay + tuesdayPay + wednesdayPay + thursdayPay + fridayPay;

    return TotalPay;

  }

}

我的课程任务是计算用户的小时工资、周一至周五每一天的正常工作时间和加班时间。然后计算总工资。他们只是介绍了方法,所以你可以在main方法中这样做,但我的老师特别告诉我们,我们需要在各自的方法中进行每天的计算,并且只使用main方法作为调用其他方法的地方,而不是用它来实际做任何计算。

我已经停下来了,因为我不知道从现在开始该怎么做。我为工作周的每一天创建了五种方法,并为计算创建了我的方法。问题是,我该如何设置方法?我做了

calculateTotalPay(mondayPay, tuesdayPay, wednesdayPay, thursdayPay, fridayPay)

但是我不能从五个方法中的每一个发送信息,因为当我说 mondayPay 方法时我不能只发送一个参数,因为 calculateTOtalPay 方法需要 5 个参数,我不能发送参数分开,因为我不知道怎么做。帮助..?

Java 新手非常抱歉,如果我的问题很愚蠢,唯一没有提出建议答案的原因可能是因为我不知道如何表达这个问题。

【问题讨论】:

  • 超出答案:请花时间正确缩进所有代码。而且,如果你得到有用的答案,别忘了在某个时候接受一个。
  • 你为什么写DestroyBaghdad?其实,你为什么写五个? calculateMondayPay - calculateFridayPay。通常一周有 7 天...
  • 美国工作周通常有 5 天。这是其中的一项说明。

标签: java methods main


【解决方案1】:

简单:你所有的方法都是无效的。

将它们更改为返回它们的计算结果!那么调用这些方法的方法就有了一种很好的干净的方式来获取所说的返回结果。

所以:将返回类型更改为适当的类型(可能是双精度),并为每个方法添加一个返回语句。

double someResult = callMyMethod();

然后是下一步。

【讨论】:

  • 好的,所以我将它从 void 更改为 double。我们尚未被介绍返回语句,但自从您发表评论后我一直在网上查找,但我仍然不确定如何将变量返回到计算和 main 方法。
  • 我做了一个小更新,希望对您有所帮助。但请不要指望我们会为您编写更多的作业代码。
  • 我已经更新了我的代码。现在有一个新问题。当我执行代码时,它所做的只是一遍又一遍地询问我的小时工资。我哪里做错了?我已经校对了好几次了。
  • 这里的大多数帖子都是人们询问他们的程序为什么不工作以及哪里出了问题。你强迫我提出一个新问题所做的只是堵塞了新的帖子索引。转到 r/javahelp 我走了。
  • 抱歉,我认为这是一种误解。当您环顾四周时,您会发现所有受欢迎的问题都包含一个问题。这是一个问答社区。一问一答。未来的读者来这里寻求特定问题的帮助。当我们开始将您为一项特定任务所做的所有工作都放在一个问题+答案中时,我们会降低其他人对这件事的兴趣。这里的基本假设是,我们通过提问和回答创建的内容对其他人有帮助。如前所述:这不是家教服务。尽管如此,我很感激接受!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多