3

これは、問題を解決するためにメソッドを使用する必要がある私のJavaコースの課題です。私はこれのほとんどを完了しましたが、問題が発生しています。

割り当て:

グラフはデータの表示に役立ちます。以下に示すようなテーブルを作成します。生成される数値は、10,000ドルから40,000ドルの間の乱数として作成されます。数字とグラフは、10月の卸売業者からの売上を示しています。週7日営業していないことに注意してください。(日曜日は休業日であり、日曜日は当該年度の10月1日、8日、15日、22日、および29日です。グラフは、各星が1,000ドルの売り上げを表すという点で生成されます。

プログラムごとに乱数の生成方法が異なるため、グラフはこのようにはなりません。図のように日付を列に印刷します(右寄せ)。また、月曜日の売り上げは常に$ 30,000を超え、火曜日の売り上げは常に$20,000を超えます。土曜日の売り上げは常に15,000ドル未満です。

サンプル出力:

Day Daily   Sales Graph
2   37081   *************************************
3   28355   ****************************
4   39158   ***************************************
5   24904   ************************
6   28879   ****************************
7   13348   *************

9   38791   **************************************
10  32564   ********************************
11  23867   ***********************
12  18154   ******************
13  25830   ***********************
14  14092   **************

16  36861   ************************************
17  26207   ************************
18  10921   **********
19  16573   ****************
20  33423   *********************************
21  12766   ************

23  33770   *********************************
24  28823   **************************
25  38883   **************************************
26  20959   ******************
27  16262   ****************
28  13269   *************

30  33557   *********************************
31  22579   **********************

私はここにそれのほとんどを持っています:

import java.util.*;
public class Prog310t
{
    public static Integer randomNumbers (int minNumber, int maxNumber)
    {
        Random gen = new Random();
        return (gen.nextInt(maxNumber - minNumber + 1) + minNumber);
    }

    public static String starLine (int numberOfAsterisks)
    {
        String stars = "";
        for (int i = 0; i < numberOfAsterisks; i++)
            stars = stars + "*";
        return stars;
    }

    public static void main (String args [])
    {
        int randomNumber;
        System.out.println("Day\tDaily\tSales Graph");
        for (int x = 2; x <= 31; x++)
        {
            if (x == 8 || x == 15 || x == 22 || x == 29)
            {
                System.out.println();
            }
            if (x == 2 || x == 9 || x == 16 || x == 23 || x == 30)
            {
                randomNumber = randomNumbers(30000, 40000);
                System.out.println(x + "\t" + randomNumber + "\t" + starLine(randomNumber / 1000));
            }
            if (x == 3 || x == 10 || x == 17 || x == 24 || x == 31)
            {
                randomNumber = randomNumbers(20000, 40000);
                System.out.println(x + "\t" + randomNumber + "\t" + starLine(randomNumber / 1000));
            }
            if (x == 7 || x == 14 || x == 21 || x == 28)
            {
                randomNumber = randomNumbers(10000, 15000);
                System.out.println(x + "\t" + randomNumber + "\t" + starLine(randomNumber / 1000));
            }
        }
    }
}

先日出力させるにはどうすればいいですか?日曜日(空白)、月曜日、火曜日、および土曜日のみを出力します。毎日の数値を入力せずに、他の日に出力するにはどうすればよいですか?

4

1 に答える 1

2

日にはforループを使用します。これは、31日のみを許可し、forループ内に数週間ネストされます。専門日を確認し、その日に基づいて乱数を生成します。

import java.util.*;
public class Prog310t
{
    public static Integer randomNumbers (int minNumber, int maxNumber)
    {
        Random gen = new Random();
        return (gen.nextInt(maxNumber - minNumber + 1) + minNumber);
    }

    public static String starLine (int numberOfAsterisks)
    {
        String stars = "";
        for (int i = 0; i < numberOfAsterisks; i++)
            stars = stars + "*";
        return stars;
    }

    public static void main (String args [])
    {
        int days = 1;
        for(int week = 0; week < 5; week++){
            for(int day = 1; day < 8 && days < 32; day++){
                int randomNumber = 0;
                    if(day==1){
                        randomNumber = 0;
                    }else if(day == 2){
                        randomNumber = randomNumbers(30000, 40000);
                    }else if(day==3){
                        randomNumber = randomNumbers(20000, 40000);
                    }else if(day==7){
                        randomNumber = randomNumbers(10000, 15000);
                    }else{
                        randomNumber = randomNumbers(10000, 40000);
                    }
                System.out.println(days + "\t" + randomNumber + "\t" + starLine(randomNumber / 1000));
                days++;
            }
        }
    }
}
于 2013-01-06T22:10:24.363 に答える