Java 程式設計(一)  第 五章 重複性流程  上一頁   

 

5-7 專題 研討

 內容:

  • 5-7-1 範例研討:印製月曆

  • 5-7-2 自我挑戰:零存整付試算工具

  • 5-7-3 自我挑戰:籌備退休金試算工具

  • 5-7-4 自我挑戰:預存評估退休生活

5-7-1 範例研討:列印月曆

(A) 系統功能:Ex5_11.java

請製作一只列印月曆的工具,使用者輸入當月 1 日星期幾(譬如 2,為星期二)與當月的天數( 31 ),則系統會列印該月的月曆,如下:

請輸入該月 1 日星期幾( 1 ~ 7)=>2

請輸入該月的天數(28~31)=>31

        Mon Tue  Wed Tue  Fri    Sat   San

                        1      2      3      4      5

        6      7      8      9      10    11    12

        13    14    15    16    17    18    19

        20    21    22    23    24    25    26

        27    28    29    30    31           

(B) 製作技巧

請自行研討。

C)程式範例:

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

//Ex5_11.java

 

import java.util.Scanner;

public class Ex5_11 {

    public static void main(String args[]) {

    Scanner keyin = new Scanner(System.in);

        int first, number, now=0, day;

        System.out.printf("請輸入該月 1 日星期幾( 1 ~ 7)=>");

        first = keyin.nextInt();

        System.out.printf("請輸入該月的天數(28~31)=>");

        number = keyin.nextInt();

        System.out.printf("\tMon\tTue\tWed\tTue\tFri\tSat\tSan\n");

        for(int i=0; i<first; i++){

        System.out.printf("\t");

        now = now + 1;

        }

        day = 1;

        while(day<=number){

        System.out.printf("\t%d", day);

        now = now + 1;

        if (now%7 == 0){

                 System.out.printf("\n");

                 now = 0;

        }

        day = day + 1;

        }

        while(now < 7){

        System.out.printf("\t");

        now = now + 1;

        }

     }

}

5-7-2 自我挑戰:零存整付試算工具

(A) 程式功能:PM5_10.java

銀行預鼓勵民眾儲存現金,提供零存整付的儲蓄業務,顧客可選擇 691224 個月,每月存入小額存款,每月計算利息,將利息加入本金,成為下個月的本金(即是複利計算),到期後全部返還。銀行需要建構一套工具,讓客戶查詢到期後可領回多少錢。客戶只要輸入每個存入金額( 10000)、選擇期數( 12 個月),以及當時年利率( 1.2%),則系統會顯示到期後可領回金額,如下:

*** 歡迎光臨零存整付試算系統 ***

預定每月儲存金額( 10000)=>10000

存款期限(6,9,12,24)=>12

目前儲蓄年利率( 0.15) =>0.2

到期可領回 130126

增加 10126 元利息

(B) 製作技巧與提示

一般利息皆採用年利率,每月利率為年利率/12,每月本金成長為(原本金 + 當月利息),程式提示如下:

01

02

03

04

05

06

07

….

      for (int i=0; i<month; i++){

             balance = balance + (int)((balance*rate)/12);

             balance = balance + credit;

    }

….

5-7-3 自我挑戰:籌備退休金試算工具

(A) 系統功能:PM5_11.java

許多人為了籌備退休金而困擾,請您製作一套每月準備退休計算方式。假設 60 歲退休;到達平均年齡 80 歲(20 年退休生活),退休後生活品質分為每月 2345 萬元。開始儲蓄退休金年紀分為 30354045 歲;暫不計算存款利息與通貨膨脹,以表格顯示方法,每個月應該儲備多少錢才可達成。試算系統操作介面如下:

***    退休金試算表(請提早準備)   ***

*** 假設 60 歲退休、活到 80 歲退休生活 ***

*退休後每月生活費、幾歲開始儲存、每月應存金額 *

            2   3        4     5

30        1.33  2.00        2.67    3.33     

35        1.60  2.40        3.20    4.00     

40        2.00  3.00        4.00    5.00     

5-7-4 自我挑戰:預存評估退休生活

(A)系統功能:PM5_12.java

我們可以倒過來評估退休後可過何種生活。系統要求輸入目前年紀與預備每月儲蓄多少錢,預計多少年紀退休,預估可活到 80 歲,退休後每月可以開銷多少,來評估爾後的生活,如下:

(1) 5000 元以下:等待救濟。

(2) 5000 ~ 10000 元:免強可以湖口。

(3) 10,000 ~ 20,000:安逸舒適。

(4) 20,000 ~ 40,000:富貴生活。

(5) 40,000 以上:遨遊世界。

我們預計採用退休專案,它允許每月以零存整付的方式儲蓄,到退休年紀可領多少錢,期望系統操作介面如下:

作介面如下:

情況一:等待救濟生活

***    評估退休後生活品質系統   ***

請輸入幾歲開始儲存退休金(30) =>30

請問幾歲準備退休( 60) =>55

請輸入預估年利率( 0.14) =>0.15

請輸入預估每月儲蓄( 10000) =>2000

到退休之前可儲存 615506

平均每個月有 2052 元生活費

退休生活品質:等待救濟。

情況二:富貴生活

***    評估退休後生活品質系統   ***

請輸入幾歲開始儲存退休金(30) =>30

請問幾歲準備退休( 60) =>65

請輸入預估年利率( 0.14) =>0.2

請輸入預估每月儲蓄( 10000) =>10000

到退休之前可儲存 4371567

平均每個月有 24286 元生活費

退休生活品質:富貴生活。

(B)製作技巧與提示

一般利息皆採用年利率,每月利率為年利率/12,每月本金成長為(原本金 + 當月利息),從開始到結束可儲存金額之程式提示如下:

01

02

03

04

05

06

07

08

….

    month = (year_p - year_n)*12;

    balance = credit;

    for(int i=0; i<=month; i++){

             balance = balance + (balance*rate/12);

             balance = balance + credit;

    }

….

翻轉工作室:粘添壽

 

Java 程式設計(一) 含程式邏輯

 

 

翻轉電子書系列: