繁体   English   中英

简单的Java App可计算不确定数量的输入数字的平均值

[英]Simple Java App to calculate the average of an indefinite amount of entered numbers

我是Java的新手,并且有工作要做。 简要说明如下:

Swing接口。 该应用程序必须允许用户输入一些数据并单击一个按钮。 该应用程序必须具有事件处理程序,以对单击按钮事件做出反应。 应用程序必须对输入的数据执行某些操作。 应用程序必须将修改后的数据返回给用户。

我本来打算创建一个将数字转换为不同单位(例如,公斤到磅)的应用程序,但是发现它非常困难,因此决定选择一款能够找到多个输入平均值的应用程序。

这是我用于查找预定义数组平均值的代码:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

    class FindAverageNumber extends JFrame {
        public static void main(String[] args){
            double numbers[] = new double[]{1,2,3,4,5,6,7,8,9,20};
            double average = 0;
            double cumulative = 0;
            for (int i=0; i<numbers.length; i++){
                double selected = numbers[i];
                cumulative = (cumulative + selected);
            }
            average = (cumulative / numbers.length);
            System.out.println("The average of the array is: "+average);
        }
    }

该代码似乎可以正常运行,但是,对于Java来说,这是新手,我不知道如何从用户那里获取这些数字,同时还包含一个摆动接口(我迷路了)。 我假设接受数组是执行此操作的最佳方法,并且向用户显示一个文本字段。 我不知道如何将输入分成数组中自己的索引。

我将不胜感激。 我意识到我有很多基本问题。

如果您有文本字段,则需要解析输入。 您可以使用String.split()方法:

例如,如果您收到的input"1,2,3,4,5" ,则将其命名为

input.split(",");

与其尝试接受一个数组,不如选择一个UI,该UI包含一个用于输入单个数字的JTextField和一个用于提交输入的JButton 然后,您可以根据已处理的数字更新平均值/总计/ ...(无论要计算什么)。 如果用户想添加一个额外的数字,则只需填写一个额外的值,然后再次按下按钮。 这样一来,用户不得不输入数组,对用户更加友好,并且混淆的可能性也越来越小(数字之间用空格,分号,逗号隔开,...)。

要显示计算值,可以使用JLabel (或多个)。

为了让您开始构建UI,您可以看一下出色的Swing教程 要搜索的关键字或我已经提到的类,并将JFrameJPanel作为容器将所有这些组件添加到

您可以将用户输入作为字符串,以诸如,(逗号)或:(冒号)之类的字符分隔。 输入后,您可以分割数字并进行计算。

注意:您是学生,我不想提供确切的程序来执行此操作。 自行探索,如果再次遇到困难,可以提出问题。

看看任何Swing教程。 具体来说,请看JFrameJTextFieldJButton 您还应该阅读什么是MVC。 在这种情况下,您的模型由输入的数字(或其中的某些功能)组成。 因此,您可以选择避免使用逗号分隔的字符串,而只显示“添加”按钮。 如果您确实允许一次只输入一个数字,请查看JFormattedTextFieldDecimalFormat配对

另外,从数学角度来看,如果要跟踪数量不确定的数字,则应考虑使用BigDecimal 请注意,它具有采用字符串的构造函数。

转到Google“ Java Swing教程”。 关于如何显示用户界面控件,将有多个选项可供选择。

http://www.javabeginner.com/java-swing/java-swing-tutorial

甚至还有用于在其中显示JFrame上的JTextField的代码。 您应该能够弄清楚如何向该混合添加JButton。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM