一、題目簡介
為完成專案功能,主要需要使用if語句,通過詢問朋友5個問題,提示使用者回答該天是否在集合一中,是否在集合二中,是否在集合三中,是否在集合四中,是否在集合五中,如果這個數字在某個集合中,程式就將該集合的第一個數字加到day中去,從而確定他的生日是一個月的哪一天。每個問題都是在詢問他的生日是否是5個數字集合的一個
這個遊戲是很容易程式設計的,那麼如何建立這個遊戲呢?實際上,這個遊戲背後的數學知識是非常簡單的。這些數字不是隨意組成一組的。它們放在五個集合中的方式是經過深思熟慮的。這五個集合的第一個數分別是1、2、4、8和1,它們分別對應二進位制數的1、10、100、1000和10000。從1到31的十進位制數最多用五個二進位制數就可以表示。假設它是b5b4b3b2b1=b50000+b4000+b300+b20+b1。如果某天的二進位制數在bk位為整數1,那麼該數就該出現在setk中。例如數字19的二進位制數是10011,所以他就該出現在集合1、集合2、和集合5中。他就是二進位制數1+10+10000=10011或者是十進位制數1+2+16=19。數字31的二進位制是11111,所以它就會出現在集合1.2.3.4.5中。他就是二進位制數1+10+100+1000+10000=11111,或者說是十進位制數1+2+4+8+16=31。
該實驗中主要是運用五個if語句來詢問使用者,使用者的生日數字是否出現在已經定義好的,具有特殊意義的集合一、集合二、集合三、集合四、集合五中。定義一個整型 day變數,並定義其初始值為0。如果使用者的生日出現在哪個集合,便將該集合中第一個數加到day變數上,將所有符合條件的集合中第一個數加起來便為day的數值,換句話說就是使用者的生日。
二、原始碼的github連結
https://github.com/xumin1994/Personal-projects/blob/master/GuessBirthday.md
三、所設計的模組測試用例、測試結果截圖
~~
四、問題及解決方案、心得體會
實驗中涉及最簡單的單向if語句(單向if語句是指當且僅當條件為true時,執行一個動作)的使用;單向語句中if之後是一個布林表示式,只有布林表示式的值為true時才會執行塊兒內語句。將自己所學的知識運用到實際操作當中,而不再是紙上談兵。通過這次設計,我深刻感受到了Java中強大功能並學會了自己查詢使用類的方法,為以後的面嚮物件語言的自學奠定了基礎。