2013-01-06 81 views
3

這是我的Java課程中的一項任務,我們必須使用方法來解決問題。我完成了大部分工作,但我遇到了麻煩。打印圖形以使用星號顯示Java中的數據。如果陳述?

作業:

圖形有助於顯示數據。創建一個類似於下面顯示的表格。生成的數字將被創建爲10,000美元至40,000美元之間的隨機數字。數字和圖表顯示了10月份批發商的銷售額。請注意,它們一週七天都不開放。 (星期日是關閉的那一天,星期日在所討論的年份中的10月1日,8日,15日,22日和29日出現,生成的圖表中每顆星代表的是1000美元的銷售額

您的圖將會看起來不像這樣,因爲隨機數字會在每個程序中產生不同的結果,如圖所示按列顯示日期(右對齊),週一總銷售額超過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)); 
      } 
     } 
    } 
} 

我該如何去輸出其他日子?它僅輸出星期日(空白),星期一,星期二和星期六。我怎樣才能讓其輸出其他日子,而不必把每一天的數字?

回答

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++; 
      } 
     } 
    } 
} 
+0

謝謝。完美的作品! :D –

+0

@Garret Outlaw很高興能幫到你 –