TDD Boot Camp(TDDBC) - TDDBC仙台04/課題 Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

!TDDBC仙台04課題:  人と結婚

!!課題1  人の名字/名前/氏名

* ある 人 (person) の 名字 (family name)、名前 (first name)、氏名 (full name) を取得できる

【例】
// 佐藤太郎 を生成
Person taro = new Person("佐藤", "太郎");
// 佐藤太郎 の名字は "佐藤" である
taro.getFamilyName(); // => "佐藤"
// 佐藤太郎 の名前は "太郎" である
taro.getFirstName(); // => "太郎"
// 佐藤太郎 の氏名は "佐藤太郎" である
taro.getFullName(); // => "佐藤太郎"
// 名字 または 名前 が無い人は生成できない
Person noName = new Person("", ""); // => エラー

!!課題2  人の性別と結婚

!!!課題2−1  人の性別

* ある人の 性別 (gender) が判断できる
** 男性 (male)
** 女性 (female)

【例】
// 佐藤太郎(男性) を生成
// 佐藤太郎(男性) は 男性 である
// 佐藤太郎(男性) は 女性 ではない
// 山田花子(女性) を生成
// 山田花子(女性) は 男性 ではない
// 山田花子(女性) は 女性 である


!!!課題2−2  人との結婚

* ある人が別のある人と 結婚 (marry) できるか判断できる
** 異性と結婚できる
** 同性とは結婚できない

【例】
// 佐藤太郎(男性) は 山田花子(女性) と結婚できる
// 山田花子(女性) は 佐藤太郎(男性) と結婚できる
// 佐藤太郎(男性) はどの男性とも結婚できない
// 山田花子(女性) はどの女性と結婚できない

!!課題3  人の生年月日と満年齢

!!!課題3−1  人の生年月日

* ある人の 生年月日 (date of birth) が取得出来る

【例】
// 佐藤太郎(男性,1996/10/11生まれ) を生成
// 佐藤太郎(男性,1996/10/11生まれ) の生年月日は 1996/10/11 である

!!!課題3−2  人の満年齢

* ある人のある日付における 満年齢 (age) が取得できる

【例】
// 佐藤太郎(男性,1996/10/11生まれ) を生成
// 佐藤太郎(男性,1996/10/11生まれ) の 2014/10/10 における満年齢は 17 である
// 佐藤太郎(男性,1996/10/11生まれ) の 2014/10/11 における満年齢は 18 である

!!!課題3−3  結婚の条件

* ある人が別のある人とある日付において結婚できるか判断できる
** 男性は満18歳以上で結婚できる
** 女性は満16歳以上で結婚できる

【例】
// 佐藤太郎(男性,1996/10/11生まれ) を生成
// 山田花子(女性,1994/7/30生まれ) を生成
  // 佐藤太郎(男性,1996/10/11生まれ) は 山田花子(女性,1994/7/30生まれ) と 2014/10/11 に結婚できる
// 佐藤太郎(男性,1996/10/11生まれ) は 山田花子(女性,1994/7/30生まれ) と 2014/10/10 には結婚できない

!!課題4  日付による結婚条件の変化

* ある人が別のある人とある日付において結婚できるか判断できる
** ただし、ある日付において施行されている法律によってい結婚の条件が異なる
** 1898年7月15日以前
*** 男性、女性とも年齢に関係なく結婚できる
** 1898年7月16日以降 (明治民法)
*** 男性は満17歳以上で結婚できる
*** 女性は満15歳以上で結婚できる
** 1947年12月22日以降 (現行民法)
*** 男性は満18歳以上で結婚できる
*** 女性は満16歳以上で結婚できる


!ライセンス
[[クリエイティブ・コモンズ・ライセンス|http://i.creativecommons.org/l/by-sa/2.1/jp/88x31.png]]
この演習問題は [[クリエイティブ・コモンズ 表示 - 継承 2.1 日本 ライセンスの下に提供されています。|http://creativecommons.org/licenses/by-sa/2.1/jp/]]