1.1. A survey program ¶
- λ³λ‘ 볼건 μκ³ ... μ무λ νμ§ μμ μν©μ μλ‘ λ€μ΄λμ κ² κ°λ€. μ λ§νΌ νλ‘κ·Έλ¨ λ°°μ΄ μ¬λμ΄λΌλ©΄ λΉμ°ν λ°°μ΄λ‘ μ²λ¦¬ν κ²μ λͺ λ°±κ°μ λ³μλ‘ μ²λ¦¬νλ μν©μ 보μ¬μ£Όκ³ μλ€. κ·Έλ¬λ©΄μ νλ λ§ : λ§μ λ³μλ₯Ό μ°κ³ μμΌλ©΄ κ΄λ ¨λλ κ²μΌλ‘ λ¬Άμ΄μ λ°°μ΄λ‘ μ²λ¦¬νλΌ. μ΄κ² μ£Όμ λ€.
1.2. Form-Letter Programming ¶
- Column1μ μ΄μν μνΈμ λλΆμ΄, μ§κΈκΉμ§ λ³Έ λ΄μ©μ€μμ κ½€ μ μ ν λ΄μ©μ΄λ€. μ μ΄λ κ² νλμ§λ μ λͺ¨λ₯΄κ² μ§λ§... μμ νμ₯μ±μ μν κ² κ°λ€.
- μμ : μ΄λ μ¬μ΄νΈμ λ‘κ·ΈμΈνλ©΄ DBμμ μ¬μ©μ λ°μ΄ν°λ₯Ό κΈμ΄μμ 보μ¬μ€λ€. μ΄κ²μ μ±
μ μλ μμ κ³ , μ΄κ²μ κ°λ¨ν C++, κ·Έλ¦¬κ³ νμΌ μ
λ ₯μΌλ‘ λ³νμ ν΄λ³΄λ©΄,
- μΆλ ₯ μμ : λ³νλ κ²μ Kang-In-Su, Computer, Seoul, Su-saekμ΄λ€.
- μΆλ ₯ μμ : λ³νλ κ²μ Kang-In-Su, Computer, Seoul, Su-saekμ΄λ€.
~cpp Hello, Kang-In-Su. We'll send a Computer to you. Address : Seoul, Su-saek
~cpp // μΌλ°μ μΌλ‘ λλΆλΆ μ΄λ κ² ν κ²μ΄λ€. #include <iostream> #include <fstream> #include <string> using namespace std; int main() { string name, good, dong, city; ifstream fin("data.dat"); getline(fin, name); getline(fin, good); getline(fin, city); getline(fin, dong); cout << "Hello, " << name << ".\nWe'll send a " << good << " to you. \nAddress : " << city << ", " << dong << endl; return 0; } // Programming Pearlsμμ μ μνλ λ°©λ²μ #include <iostream> #include <string> #include <fstream> using namespace std; int main() { string data[4]; string scheme = "Hello, $0. \nWe'll send a $1 to you. \nAddress : $2, $3\n"; ifstream fin("data.dat"); for(int i = 0 ; i < 4 ; ++i) getline(fin, data[i]); int index = -1; while(1) { ++index; if(scheme[index] != '$') cout << scheme[index]; else { ++index; if(scheme[index] == '$') cout << '$'; else if(scheme[index] >= '0' && scheme[index] <= '3') cout << data[scheme[index] - 48]; else { cout << "scheme error." << endl; break; } } if(scheme[index] == '\0') break; } return 0; }
1.3. 3.3 An Array of Examples ¶
- μ°λ¦¬μ 리ν©ν λ§μ΄λ€. μμ²λ μ€λ³΅μ΄ μλ μμ λ₯Ό 보μ. μ΄κ±΄ C++λ‘ νκΈ°κ° μ’ κ·Έλ¬λ, μ±
μ μ£Όμ΄μ§ λλ‘ VBλ₯Ό μλ‘ λ€μ΄λ³΄μ. λ©λ΄μ μμ΄ν
μ΄ 10κ°κ° μλ€. νλλ₯Ό ν΄λ¦ν λλ§λ€ κ·Έ μμ΄ν
μ 체ν¬λ₯Ό νκ³ μΆλ€. μ€λ³΅ μ§±!μΈ μμ λ‘ λ€μκ³Ό κ°μ μμ κ° μμμ μλ€.
~cpp sub menuitem0_click() menuitem0.checked = 1 menuitem1.checked = 0 menuitem2.checked = 0 menuitem3.checked = 0 menuitem4.checked = 0 menuitem5.checked = 0 menuitem6.checked = 0 menuitem7.checked = 0 menuitem8.checked = 0 menuitem9.checked = 0 sub menuitem1_click() menuitem0.checked = 0 menuitem1.checked = 1 menuitem2.checked = 0 menuitem3.checked = 0 menuitem4.checked = 0 menuitem5.checked = 0 menuitem6.checked = 0 menuitem7.checked = 0 menuitem8.checked = 0 menuitem9.checked = 0 sub menuitem2_click() ... ...
- λ± λ³΄λ©΄ μκ² μ§λ§, κ΅μ₯ν μ°μΈνλ€. μ λ°κ² 10λ² λ°λ³΅λλ κ²μ΄λ€. μ°μλ°κΈ° μλ μ½λκ° λ¬΄λ € 110 μ€μ΄λ λλ€. νμ§λ§ 리ν©ν λ§μ 곡λΆνλ€λ©΄ μ½κ² λΉΌλΌμκ° μμ κ²μ΄λ€. κ·Έ λ°©λ²μΌλ‘ VBμμλ κ°κ°μ λ©λ΄ μμ΄ν
μ λ°°μ΄λ‘ λ§λ€μκ° μλ€. λ°°μ΄λ‘ λ§λ λ€μ λ©μλ μΆμΆμ μ΄μ©νλ©΄, (μμ λ C++λ‘ λ€μ λ°κΎΌλ€.--; λΉλ² λ¬Έλ²μ μ λͺ°λΌμ.)
~cpp const int NUM_ITEMS = 10; void menuitem_click(int choice) { for(int i = 0 ; i < NUM_ITEMS ; ++i) menuitem[i].checked = false; menuitem[choice] = true; } void menuitem0_click() { menuitem_click(0); } void menuitem0_click() { menuitem_click(1); } ... ...
- μ΄λ° μμΌλ‘ κ°λ©΄ λλ€λ κ²μ΄λ€. κ°λ¨ν κ²μ΄λ κ·Έλ₯ λμ΄κ°μ.
1.4. Structuring Data ¶
- μ ꡬ쑰νλ λ°μ΄ν°μ μλ―Έλ κ³μ λ³μ²λμ΄ μλ€.
- μ μ§μ΄μ§ λ³μ μ΄λ¦ -> ν¨μμ λ°μ΄ν°μ λΆλ¦¬ -> OOP
1.5. Powerful Tools for Specialized Data ¶
- νλ‘κ·Έλλ°μ μ½κ² νκΈ° μν΄, νΈλ¦¬ν λꡬ(HTML, Name-Value Pairs, μ€νλ λμνΈ, λ°μ΄ν° λ² μ΄μ€, λ±λ±)λ₯Ό κ°μΆμλ κ²μ΄λ€. λ³λ‘ λ³Ό κ±° μλ€.
1.6. Principles ¶
- νλ‘κ·Έλ¨μ μ§€λ μκ°λ μ ν΄λ³΄κ³ λ€λΉλ μ§μ νμ§ λ§μ. μκ² μ§€μλ μλ νλ‘κ·Έλ¨μ ν¬κ² μ§λ²λ¦¬λ μΌμ΄ μκΈΈμ§λ λͺ¨λ₯Έλ€.
- μλ£κ΅¬μ‘°μ μ€μμ±μ κ°μ‘°νκ³ μλ€.
μλ£κ΅¬μ‘°λ μννΈμ¨μ΄λ₯Ό λ§λ λ€ : ν° νλ‘κ·Έλ¨μ μμ νλ‘κ·Έλ¨μΌλ‘ μ€μ¬μ€λ€.
μλ£κ΅¬μ‘°λ₯Ό μμ§λ©΄, μκ°, 곡κ°μ κ°μμ μ΄μ κ°λ₯ν¨μ μ λμ μ μ§λ³΄μμ μΈ‘λ©΄μμ μ΄λμ λ³Ό μ μλ€.
- μ΄λ¬λ©΄μ μ°λ¦¬μ "The Mythical Man Month"μ ꡬμ μ΄ λμ¨λ€.
ννμ νλ‘κ·Έλλ°μ λ³Έμ§μ΄λ€.
- μ 체μ μΈ μμ½μ νλ©΄
- λ°λ³΅λλ μ½λλ λ°°μ΄λ‘ λ°λ λ€μ 루νλ₯Ό λ리μ
- 볡μ‘ν ꡬ쑰λ μΊ‘μνλ₯Ό νμ -> ν΄λμ€
- κ°λ₯νλ€λ©΄ μ§λ³΄λ ν΄μ μ¬μ©νμ.
- μ΄ μ»¬λΌμ μ£Όμ : λ°μ΄ν°λ 볡μ‘ν μ½λλ₯Ό μ μ ν μλ£ κ΅¬μ‘°λ‘ λ°κΏμΌλ‘μ¨, νλ‘κ·Έλ¨μ ꡬμ±νλ€.
- λ°λ³΅λλ μ½λλ λ°°μ΄λ‘ λ°λ λ€μ 루νλ₯Ό λ리μ