簡體   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