我需要能够从输入法的方法获得number和numberCount的值。
我正在做的任务是......
设计并实现一个Java程序,该程序将收集浮点数并确定输入数据的总和和平均值。程序应使用单独的方法输入数据,计算总和,计算平均值,并显示结果。应使用标记值表示用户已完成输入其号码。输出应显示一条消息,其中包括输入的数字的数量,数字的总和以及数字的平均值。如果数字的总和大于100,则应显示一条警告消息,指示“值已超过总和100”。
一个。使用JOptionPane.showInputDialog()方法为您的用户输入数据
湾使用JOptionPane.showMessageDialog()方法显示消息。
这就是我到目前为止......
// Import javax JOptionPane
import javax.swing.JOptionPane;
// Create Class
public class Test {
// Main Method
public static void main(String[] args) {
// Initialize values
int numberCounter = 0;
int count;
double sum = 0;
double number = 0;
double average;
double numberString=0;
number = readDouble(numberString, number, sum, numberCounter);
numberCounter = read1Double(numberString, number, sum, numberCounter);
// Initiate loop if user entered at least one value display average, count, sum
if ( numberCounter != 0 ) {
// Promote numberCounter to double and calculate average of all numbers entered
average = avg(sum, numberCounter);
// Calculate count
count = numberCounter;
// Display average, count and sum.
JOptionPane.showMessageDialog(null, "Sum of numbers input : " + sum + "\nCount of
numbers : " + count + "\nAverage of numbers : " + average);
}
// Initiate loop if sum exceeds 100 display message
if ( sum >= 100 ) {
JOptionPane.showMessageDialog(null, "The sum of inputed numbers exceeds 100!");
}
}
// Average Method
private static double avg(double s, double c) {
return (s/c);
}
// Sum Method
private static double sum(double s, double c) {
return (s+c);
}
// Input Method
private static double readDouble(double i, double number, double sum, int numberCounter) {
// Acquire first number from user
String numberString;
numberString = JOptionPane.showInputDialog(
"Enter integer number :" );
number = Double.parseDouble( numberString );
// Initiate loop until stopped by user by using sentinel value of -1
while ( number != -1 ) {
sum = sum(sum, number);
numberCounter = numberCounter + 1;
// Acquire the remaining numbers from user until stopped
numberString = JOptionPane.showInputDialog(
"Enter integer number or -1 if no more numbers to insert :" );
number = Double.parseDouble( numberString );
}
return number;
}
}
}
非常感谢您的回复,但是我可以举一个如何在我的脚本中使用它的示例吗?我很困惑,很少睡觉,最后一天的一切都是这个任务我很油腻。哈哈爪哇肯定能让你失望。
是的,它不起作用,但我需要主方法中输入法的值,所以输出数据是正确的。
我的类还没有做数组,所以我的教师期待的东西比数组少。
答案 0 :(得分:1)
虽然,@ Puller的答案是最传统的做法。这种情况一次又一次地出现我建议查看FunctionalJava的P类。 P1-P8分别包含1-8个物体。有一套简单的方法 P.p 可为您创建适当的P1-P8版本。
答案 1 :(得分:0)
您可以声明包含必须返回的值的ad-hoc类,并使该方法返回对ad-hoc对象的引用。
[inside your class]
public class MyReturnValues {
public int a;
public int b;
}
[...]
MyReturnValues myMethod() { ... }
答案 2 :(得分:0)
输入法不需要计算总和和平均值(并且它不是它的工作),而是简单地获取并返回输入。让方法返回输入的内容(例如数组),然后将该数组传递给sum和average方法。
答案 3 :(得分:0)
尝试将您尝试完成的不同任务分开:
double[] inputs = readInput();
double sum = sum(inputs); double avg = avg(inputs);
这不是一个完美的OO解决方案,但它应该涵盖您在问题中列出的所有要求。
答案 4 :(得分:0)
您可以使用以下内容:
public class TwoTuple<A, B> {
public final A firstl;
public final B second;
public Two Tuple(A a, B b) { first = a; second = b; }
public String toString() {
return "(" + first ", " + second ")";
}
}
然后使用上面的类作为返回值:
public class Test {
static TwoTuple<Double, Double> yourMethodName(YourInputs){
.......
return new TwoTuple<Double, Double>(YourSumResult, YourAverageResult);
}
public static void main(String[] args) {
TwoTuple<Double, Double> result = yourMethodName(YourInputs);
System.out.println(result);
}
}