c °2005, sangjin@kut.ac.kr
„ ę –‰ Ë Ï� ̛ P ò Laboratory 1. Logbook ADT
1
� ×X Ò Ä Ï • \  " f 6 x  &
_ Ăą Ă&#x2019; Ă&#x2020; Â&#x153;X Š <s ' { (abstract data type)\ 9 Œ½ ¨Â&#x2030; ÂłK & Â&#x2018; r : . â&#x20AC;˘ java.util J v t \  e Â? Â&#x201D; H GregorianCalendar 9 tA Ăž Ă&#x203A; Âź\ ÂŚ 6 xK  Â&#x2018; r : . â&#x20AC;˘ B jÂ&#x2122; èĂ&#x2014; Âź\ ÂŚ overloading Â? H~ Ă&#x201C;Z ½ ` O ÂŚÂ&#x2020; Ă&#x2020;_ < vĂ´ Ăž Ă&#x2021; .
2
4 ~ Âż â&#x20AC;˘ 4ĂŠ Z Â&#x2013;0 Ă&#x; AÂ&#x2013; Ă?Ă&#x2022; ÂŞÂĄ ¤ ¡(monthly logbook)s ĂŞ Ă? ø 4_ Z y Â&#x2022;Âą Â&#x152; Â&#x2DC; Ăş _ ° â&#x20AC;Ť`×&#x203A;â&#x20AC;Ź Ăş ÂŚÂ&#x192; Â&#x203A; ar ' ~ ´Ă&#x192; Âşe Â? Â&#x201D; H ÂŤ Ă&#x2018;½ ¨Â&#x203A; ¸s . V) y Â&#x2022;Âą Â&#x152; Â&#x2DC; Ăş Â&#x2019; &x ĂŻ Â&#x2013;_ Ă&#x; Ă&#x192; Âş â&#x20AC;&#x201C; \ â&#x20AC;˘ Â&#x201E; + A& Ăž h Â&#x201C; Â&#x2013; Ă?Ă&#x2022; ÂŞÂĄ ¤ ¡_ ¸ Â&#x2014;_ vÂ&#x201C; Ăž r Ă&#x2030; 6 §þ ÂŁ °  ú . 2002¸ 2 4 Z 3 (3) 10 (2) 17 (2) 24 (0)
3
4 (5) 11 (3) 18 (2) 25 (1)
5 (2) 12 (5) 19 (3) 26 (4)
6 (4) 13 (0) 20 (1) 27 (1)
7 (0) 14 (5) 21 (2) 28 (0)
1 (3) 8 (3) 15 (2) 22 (3)
2 (0) 9 (0) 16 (1) 23 (0)
Logbook ADT â&#x20AC;˘ ½ ¨$
â&#x20AC;Ť×&#x203A;â&#x20AC;Ź à šÂ&#x2122; è 4ĂŠ Z Â&#x2013;0 Ă&#x; AÂ&#x2013; Ă?Ă&#x2022; ª¡ ¤` ÂĄ ÂŚ0 AĂ´ Ă&#x2021;&
Ă&#x192; Ăą º° â&#x20AC;Ť[×&#x203A;â&#x20AC;Ź Ăş t_ Ăž | 9 ½ Ă&#x2039;Ăľ + Â&#x2013; Ă?Ă&#x2022; ª¡ ¤þ ÂĄ Â&#x203A; aÂş ' Â? a² ) Â&#x2DC;§ Ăş 4 â&#x20AC;&#x201C; â&#x20AC;˘ Ă? Â&#x2013;ÂŞ Ă&#x2022;¡ ¤: int[] entry = new int[31]; ÂĄ â&#x20AC;˘ Â&#x2013; Ă?ÂŞ Ă&#x2022;¡ ¤_ ÂĄ 4& Z
Â&#x2DC; Ăą Ă?: int logMonth â&#x20AC;˘ Â&#x2013; Ă?ÂŞ Ă&#x2022;ÂĄ ¡_ ¤ ¸ &
Â&#x2DC; Ăą Ă?: int year â&#x20AC;&#x201C; y Â&#x2022;& Â&#x152;
Ă&#x192; Ăą º° â&#x20AC;ŤÂ&#x201C;×&#x203A;â&#x20AC;Ź Ăş rĂ&#x2026; Ă&#x2030; Ă&#x2019;# Q Â&#x201D; 4_ Z : ¤& ÂŁ
Âą Ăą Â&#x2DC;\ Ăş  K { Â&#x153; Š Â? HÂ&#x2020; Ă&#x201C;s ½ . â&#x20AC;&#x201C; Â&#x2013; Ă?Ă&#x2022; ª¡ ¤\ ÂĄ  e Â? Â&#x201D; HÂ&#x2020; Ă&#x201C;_ ½ Ă&#x192; ÂşÂ? HĂ&#x2026; Ă&#x2019;# Q Â&#x201D; 4\ Z  Ă&#x2DC; Ă&#x201D; . â&#x20AC;˘ Â&#x192; Ă Â&#x2013; Ă&#x; â&#x20AC;&#x201C; Ă&#x2019; t$ q
Ă : public Logbook(int month, int year) b Â&#x201A; 9 Ă?Z : 1 â&#x2030;¤monthâ&#x2030;¤ 12 Ă&#x152; â&#x20AC;˘ â&#x20AC;˘ Ă&#x2013; ÂłÂ&#x201A; Ă?Z : monthĂź Ă&#x152; < year ° â&#x20AC;Ť\×&#x203A;â&#x20AC;Ź Ăş  Â&#x2018; Â&#x2013; Ă?Ă&#x2022; ª¡ ¤` ÂĄ ÂŚĂ&#x2019; t$ q
Ă´ Ă Ă&#x2021; . Â&#x2018; Â&#x2013; Ă?Ă&#x2022; ª¡ ¤s ÂĄ ĂŞ Ă?Â&#x2013; ø Ă?Ă&#x2022; ª¡ ¤_ ÂĄ Â&#x2014; ¸Â&#x17D; HÂ&#x2020; Ă&#x201C;_ ½ ° â&#x20AC;Ť×&#x203A;â&#x20AC;Ź Ăş ÂŚ 0Ă&#x153; ` ÂźÂ&#x2013; Ă?Â&#x153; Ăl o Â? H ` â&#x20AC;Ť×&#x203A;â&#x20AC;Ź Ϋ Â&#x2DC;Ă´ Ăş Ă&#x2021; . Ă&#x201E; ´ ò t ¡ §Â&#x201C; Ăş r month ° Ă&#x2030; â&#x20AC;Ť\×&#x203A;â&#x20AC;Ź Ăş  @ /K " fÂ? HÂ&#x2030; ÂłF & 4(Â&#x161; Z ¸Z tÂą Ăž Â&#x2DC; Ăş )\  { K Â&#x153; Š Â? HĂ? Â&#x2013;Ă&#x2022; ª¡ ¤` ÂĄ ÂŚĂ&#x2019; t$ q
Ă´ Ă Ă&#x2021; . Ă&#x201C;Ă&#x2020; ½ Ă&#x2019; : public void putEntry(int day, int value) â&#x20AC;&#x201C; Â&#x2020; b Â&#x201A; 9 Ă?Z : 1 â&#x2030;¤dayâ&#x2030;¤daysInMonth Ă&#x152; â&#x20AC;˘ â&#x20AC;˘ Ă&#x2013; ÂłÂ&#x201A; Ă?Z : Ă&#x2019; Ă&#x152; Ă&#x2026;# QÂ&#x201D; Âą Â&#x2DC;\ Ăş  K { Â&#x153; Š Â? HÂ&#x2020; Ă&#x201C;\ ½  value ° â&#x20AC;Ť×&#x203A;â&#x20AC;Ź Ăş` ÂŚ$  Â&#x153;Ă´ Š Ă&#x2021; . Ă&#x201C;\ ½ | P Ă?: public int getEntry(int day) Ă&#x192; â&#x20AC;&#x201C; Â&#x2020; â&#x20AC;˘ b Â&#x201A; 9 Ă?Z : 1 â&#x2030;¤dayâ&#x2030;¤daysInMonth Ă&#x152;
1