Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Β«Π‘ΡΡΠΎΠΊΠ°Β», ΡΡΡΠΎΠΊΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΠΈ Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΠ»Π°ΡΡΠ° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ΅Π½Ρ. Π Π΄Π°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ Π±ΡΠ΄ΡΡ Π²Ρ ΠΎΠ΄ΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ°ΠΊ: ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ΅Π½Ρ ΠΈ ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ²ΡΡΡΡΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠ½ΠΊΡΠ°ΠΌΠΈ ΠΌΠ΅Π½Ρ ΠΈ ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ, ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π²ΡΠ±ΠΎΡΠ° ΠΏΡΠ½ΠΊΡΠ° ΠΌΠ΅Π½Ρ ΠΈ Ρ. Π΄. Π¦Π΅Π»ΡΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° «ΡΡΡΠΎΠΊΠ°» ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΎΡ Π½Π΅Π³ΠΎ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π΄Π»Ρ Π²Π²ΠΎΠ΄Π° Π½Π°ΡΠ°Π»ΡΠ½ΡΡ … Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Β«Π‘ΡΡΠΎΠΊΠ°Β», ΡΡΡΠΎΠΊΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΠΈ Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
Π€Π΅Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π±ΡΠ΄ΠΆΠ΅ΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΡΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΠ°Π»ΡΠΈΠΉΡΠΊΠΈΠΉ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ «ΠΠΎΠ΅Π½ΠΌΠ΅Ρ » ΠΈΠΌ. Π.Π€. Π£ΡΡΠΈΠ½ΠΎΠ²Π°
ΠΠ£Π Π‘ΠΠΠΠ― Π ΠΠΠΠ’Π
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΡΡΡΠΎΠΊΠ°, ΡΡΡΠΎΠΊΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΠΈ Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°
Π ΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΡΠ΅ΠΌΡ ΠΠ΅Π·ΡΡΠΊΠΎΠ² Π.Π.
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ ΡΠ΅ΠΌΡ ΠΠΎΡΠΊΠ°ΡΠ΅Π² Π.Π‘.
Π‘Π°Π½ΠΊΡ-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³ 2014
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅
1. ΠΠ»Π°ΡΡ ΡΡΡΠΎΠΊΠ°
1.1 ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ ΡΡΡΠΎΠΊΠ°
1.2 Π‘ΡΡΠΎΠΊΠ° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ
1.3 ΠΠ΅ΡΡΡΠΈΡΠ½Π°Ρ ΡΡΡΠΎΠΊΠ°
2. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
2.1 ΠΠ»Π°ΡΡ Desk (ΡΠ°Π±ΠΎΡΠΈΠΉ ΡΡΠΎΠ»)
2.2 ΠΠ»Π°ΡΡ Menu (ΠΌΠ΅Π½Ρ/ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ)
2.3 ΠΠ»Π°ΡΡ MenuItem (ΠΏΡΠ½ΠΊΡ ΠΌΠ΅Π½Ρ)
2.4 ΠΠ»Π°ΡΡ Listbox (ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ Π±ΠΎΠΊΡ/ΡΠΏΠΈΡΠΎΠΊ)
2.5 ΠΠ»Π°ΡΡ ListItem (ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΠΈΡΠΊΠ°)
2.6 ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π‘ΠΏΠΈΡΠΎΠΊ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π¦Π΅Π»ΡΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° «ΡΡΡΠΎΠΊΠ°» ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΎΡ Π½Π΅Π³ΠΎ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π΄Π»Ρ Π²Π²ΠΎΠ΄Π° Π½Π°ΡΠ°Π»ΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
ΠΠ»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ ΡΠ΅Π»ΠΈ Π±ΡΠ»ΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»Π΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ:
1. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΠ»Π°ΡΡΠ° ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π°. Π Π½Π΅Π³ΠΎ Π±ΡΠ΄ΡΡ Π²Ρ ΠΎΠ΄ΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ°ΠΊ: ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π°, Π²Π²ΠΎΠ΄ ΡΠΈΡΠ»ΠΎΠ²ΡΡ ΠΈ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ , Π²ΡΠ²ΠΎΠ΄ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ , ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠ΅Π½Ρ ΠΈ Ρ. Π΄. ΠΠ°Π΄Π°ΡΠ΅ΠΉ ΠΊΠ»Π°ΡΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠ²Π»ΡΡΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊ Π½Π΅ΠΌΡ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Ρ.
2. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΠ»Π°ΡΡΠ° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ΅Π½Ρ. Π Π΄Π°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ Π±ΡΠ΄ΡΡ Π²Ρ ΠΎΠ΄ΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ°ΠΊ: ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ΅Π½Ρ ΠΈ ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ²ΡΡΡΡΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠ½ΠΊΡΠ°ΠΌΠΈ ΠΌΠ΅Π½Ρ ΠΈ ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ, ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π²ΡΠ±ΠΎΡΠ° ΠΏΡΠ½ΠΊΡΠ° ΠΌΠ΅Π½Ρ ΠΈ Ρ. Π΄.
3. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΠ»Π°ΡΡΠΎΠ²: Π±Π°Π·ΠΎΠ²Π°Ρ ΡΡΡΠΎΠΊΠ°, ΡΡΡΠΎΠΊΠ° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, Π΄Π΅ΡΡΡΠΈΡΠ½Π°Ρ ΡΡΡΠΎΠΊΠ° ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΌΡ Π·Π°Π΄Π°Π½ΠΈΡ.
Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅
ΠΠΏΠΈΡΠ°ΡΡ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ ΡΡΡΠΎΠΊΠ°
ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ°:
1) ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° char — Ρ ΡΠ°Π½ΠΈΡ Π°Π΄ΡΠ΅Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΡΡΡΠΎΠΊΠΈ;
2) Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° int — Ρ ΡΠ°Π½ΠΈΡ Π΄Π»ΠΈΠ½Ρ ΡΡΡΠΎΠΊΠΈ Π² Π±Π°ΠΉΡΠ°Ρ .
ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ:
1) ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²;
2) ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π‘ΠΈ-ΡΡΡΠΎΠΊΡ (Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ Π½ΡΠ»Π΅Π²ΡΠΌ Π±Π°ΠΉΡΠΎΠΌ);
3) ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΠΈΠΌΠ²ΠΎΠ» (char);
4) ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ;
5) Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ.
6) ΠΎΡΠΈΡΡΠΊΠ° ΡΡΡΠΎΠΊΠΈ (ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΡΠΎΠΊΡ ΠΏΡΡΡΠΎΠΉ);
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΉ ΠΎΡ Π‘ΡΡΠΎΠΊΠ° ΠΊΠ»Π°ΡΡ Π‘ΡΡΠΎΠΊΠ°-ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ.
Π‘ΡΡΠΎΠΊΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΡΡΡΠΎΡΡΡΡ ΠΏΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² Π² Π‘Π, ΠΈ ΠΌΠΎΠ³ΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π²Ρ ΠΎΠ΄ΠΈΡΡ Π² ΡΠΎΡΡΠ°Π² Π‘ΠΈ-ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ². ΠΡΠ»ΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠ°Ρ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°, ΡΠΎ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΡΡΠ°Ρ Π‘Π’Π ΠΠΠ_ΠΠΠΠΠ’ΠΠ€ΠΠΠΠ’ΠΠ .
ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ:
1) ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²;
2) ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π‘ΠΈ-ΡΡΡΠΎΠΊΡ (Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ Π½ΡΠ»Π΅Π²ΡΠΌ Π±Π°ΠΉΡΠΎΠΌ);
3) ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ;
4) ΠΠ΅ΡΡΡΡΠΊΡΠΎΡ.
5) ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ Π²ΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΡΡΡΠΎΠΊΠΈ (ΠΊΡΠΎΠΌΠ΅ ΡΠΈΡΡ) Π² Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ.
ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ:
1) ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ (=);
2) ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ == -ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ;
3) ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ [];
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΉ ΠΎΡ Π‘ΡΡΠΎΠΊΠ° ΠΊΠ»Π°ΡΡ ΠΠ΅ΡΡΡΠΈΡΠ½Π°Ρ ΡΡΡΠΎΠΊΠ°.
Π‘ΡΡΠΎΠΊΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π΄Π΅ΡΡΡΠΈΡΠ½ΡΡ ΡΠΈΡΡ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Ρ — ΠΈ +, Π·Π°Π΄Π°ΡΡΠΈΠ΅ Π·Π½Π°ΠΊ ΡΠΈΡΠ»Π°. Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ — ΠΈΠ»ΠΈ + ΠΌΠΎΠ³ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΡΠΈΡΠ»Π°, ΠΏΡΠΈΡΠ΅ΠΌ ΡΠΈΠΌΠ²ΠΎΠ» + ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ, Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΈΡΠ»ΠΎ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΌ. ΠΡΠ»ΠΈ Π² ΡΠΎΡΡΠ°Π²Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΈ Π±ΡΠ΄ΡΡ Π²ΡΡΡΠ΅ΡΠ΅Π½Ρ Π»ΡΠ±ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΠΎΡΠ»ΠΈΡΠ½ΡΠ΅ ΠΎΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ , ΠΠ΅ΡΡΡΠΈΡΠ½Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π½ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π΄Π°Π½Π½ΡΡ ΡΡΡΠΎΠΊ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ.
ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ:
1) ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²;
2) ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π‘ΠΈ-ΡΡΡΠΎΠΊΡ (Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ Π½ΡΠ»Π΅Π²ΡΠΌ Π±Π°ΠΉΡΠΎΠΌ);
3) ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ;
4) Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ;
ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π΄Π°Π½Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ char;
ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ:
1) ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ (=);
2) ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ — - Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°Π·Π½ΠΎΡΡΡ ΡΡΡΠΎΠΊ;
3) ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ == - ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ;
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π²ΠΏΡΠ°Π²Π΅ Π²Π²ΠΎΠ΄ΠΈΡΡ Π»ΡΠ±ΠΎΠ΅ (Ρ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ) ΡΠΈΡΠ»ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ»Π΅Π½ΠΎΠ² ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².
ΠΠ°Π΄Π°Π½ΠΈΠ΅:
Π Π°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΏΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡ Π΅ΠΌΠ΅:
Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ Π·Π°Π΄Π°Π½Π½ΡΡ ΡΠ»Π΅Π½ΠΎΠ² ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².
ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΡΠ΅ΡΡΠΎΠ²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ:
1) Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ (4−6 ΡΡ.);
2) Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³Π° Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΠΎΡ ΠΌΠ°ΡΡΠΈΠ² ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ Ρ Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ;
3) Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π²ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² (Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ Π·Π°Π΄Π°Π½ΠΈΡ), Ρ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π½Π° Π΄ΠΈΡΠΏΠ»Π΅ΠΉ.
Π Π΅ΠΆΠΈΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³Π° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ΅Π½Ρ.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠ½ΠΊΡΡ:
1. «ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ» .
ΠΠΎΠ΄ΠΏΡΠ½ΠΊΡΡ:
1.1. «Π§ΠΈΡΠ»ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²» — Π·Π°Π΄Π°Π΅Ρ ΡΠΈΡΠ»ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ. ΠΠ°ΠΏΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°Π΄Π°Π½ΠΈΡ ΡΠΈΡΠ»Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠΈΠΌ ΠΏΡΠ½ΠΊΡΠΎΠΌ ΠΌΠ΅Π½Ρ.
1.2. «ΠΠ°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅» — Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠ³ΠΎ ΠΏΡΠ½ΠΊΡΠ° ΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ Π½ΠΎΠΌΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, Π΅Π³ΠΎ ΡΠΈΠΏ ΠΈ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΠ°Π΄Π°Π²Π°ΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΡΠ½ΠΊΡΠ°ΠΌΠΈ ΠΌΠ΅Π½Ρ Π·Π°ΠΏΡΠ΅ΡΠ°Π΅ΡΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°Π΄Π°Π½ΠΎ ΡΠΈΡΠ»ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π·Π°Π΄Π°ΡΡ Π½ΠΎΠ²ΠΎΠ΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·.
2. «Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅»
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΠ΄ΠΏΡΠ½ΠΊΡΠΎΠ² ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΡΠΈΠΏΡ ΡΡΡΠΎΠΊ ΠΈΠ· Π²Π°ΡΠΈΠ°Π½ΡΠ° Π·Π°Π΄Π°Π½ΠΈΡ ΠΈ
ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΏΡΠ½ΠΊΡΡ «ΡΡΡΠΎΠΊΠ°» ΠΈ «Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π°», Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
2.1. «Π‘ΡΡΠΎΠΊΠ°» ;
2.2. «Π‘ΡΡΠΎΠΊΠ°-ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ» ;
2.3. «ΠΠ΅ΡΡΡΠΈΡΠ½Π°Ρ ΡΡΡΠΎΠΊΠ°» ;
ΠΠΎΡΠ»Π΅ Π²ΡΠ±ΠΎΡΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΡΠ½ΠΊΡΠΎΠ² ΠΌΠ΅Π½Ρ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ Π²ΡΠ±ΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠΏΠΈΡΠΊΠ° Π²ΡΠ΅Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² (ΠΊΡΠΎΠΌΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² ΠΈ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡΠΎΠ²), ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΌ ΠΏΠΎΠ΄ΠΏΡΠ½ΠΊΡΠΎΠΌ. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΡΠΊΡΠ°Π½.
3. «ΠΡΡ ΠΎΠ΄»
ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΊΠ»Π°ΡΡΠΎΠ² ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ Π½Π° Π΄ΠΈΡΠΏΠ»Π΅ΠΉ ΠΈ ΠΎΡΡΠ°ΡΡΡΡ Π½Π° Π²ΡΠ΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠΎΡΠ»Π΅ Π²ΡΠ±ΠΎΡΠ° ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ² ΠΎΠ½ΠΈ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΈΠ²Π°ΡΡΡΡ ΡΠ²Π΅ΡΠΎΠΌ, ΠΎΡΠ»ΠΈΡΠ½ΡΠΌ ΠΎΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ².
1. ΠΠ»Π°ΡΡ Π‘ΡΡΠΎΠΊΠ°
1.1 ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ Π‘ΡΡΠΎΠΊΠ°
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ°: String. Π―Π²Π»ΡΠ΅ΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠ² Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ² Π΄Π΅ΡΡΡΠΈΡΠ½Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΈ ΡΡΡΠΎΠΊΠ° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ.
ΠΠ°Π½Π½ΡΠ΅-ΡΠ»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ°, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΊΠ°ΠΊ protected:
1) char *str — ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΌΠ°ΡΡΠΈΠ² ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²;
2) int len — ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, Ρ ΡΠ°Π½ΡΡΠ°Ρ Π΄Π»ΠΈΠ½Ρ ΡΡΡΠΎΠΊΠΈ.
ΠΠ΅ΡΠΎΠ΄Π° ΠΊΠ»Π°ΡΡΡ ΡΡΡΠΎΠΊΠ°:
1) string () — ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΡΡΠΎΠΊΡ Π½ΡΠ»Π΅Π²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ;
2) String (const char *) — ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΉ Π‘ΠΈ-ΡΡΡΠΎΠΊΡ.;
3) String (const char) — ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΎΠ΄ΠΈΠ½ ΡΠΈΠΌΠ²ΠΎΠ».;
4) String (const String &) — ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ;
5) ~String () — Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ;
6) void clear (); - ΡΡΠ½ΠΊΡΠΈΡ, ΠΎΡΠΈΡΠ°ΡΡΠ°Ρ ΡΡΡΠΎΠΊΡ;
7) char *text () — ΡΡΠ½ΠΊΡΠΈΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠ°Ρ Π‘ΠΈ-ΡΡΡΠΎΠΊΡ
8) void friend report (char *) — Π΄ΡΡΠΆΠ΅ΡΡΠ²Π΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎ ΡΠ°Π±ΠΎΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ²/Π΄Π΅ΡΡΡΡΠΊΡΠΎΡΠΎΠ² Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ, Π° ΡΠ°ΠΊ ΠΆΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎ ΡΠ°Π±ΠΎΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² Π² ΠΏΡΠ°Π²ΠΎΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ.
1.2 Π‘ΡΡΠΎΠΊΠ° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ
ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°Π½Π΄
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ°: Identifier. ΠΠ°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° String.
ΠΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° Identifier:
1) Identifier () — ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ;
2) Identifier (const char *) — ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΠΈ-ΡΡΡΠΎΠΊΡ.
3) Identifier (const Identifier &) — ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ;
4) ~Identifier () — Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ;
5) Identifier operator =(const Identifier &) — ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ ΡΠΈΠΏΠ° «ΠΎΠ±ΡΠ΅ΠΊΡ» = «ΠΎΠ±ΡΠ΅ΠΊΡ» ;
6) Identifier operator =(const char *) — ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ ΡΠΈΠΏΠ° «ΠΎΠ±ΡΠ΅ΠΊΡ» = «ΡΠΈ-ΡΡΡΠΎΠΊΠ°» ;
7) Identifier operator ==(const Identifier &) — ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ;
8) Ρhar operator [](int) — ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°.
1.3 ΠΠ΅ΡΡΡΠΈΡΠ½Π°Ρ ΡΡΡΠΎΠΊΠ°
ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ°: Tenstring. ΠΠ°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° String. ΠΠ΅ΡΠΎΠ΄Π° Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°:
1) Tenstring () — ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ;
2) Tenstring (const char *) — ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π‘ΠΈ-ΡΡΡΠΎΠΊΡ;
3) Tenstring (const Tenstring &) — ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ;
4) ~ Tenstring () — Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ;
5) Tenstring operator =(const Tenstring &) — ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ ΡΠΈΠΏΠ° «ΠΎΠ±ΡΠ΅ΠΊΡ» = «ΠΎΠ±ΡΠ΅ΠΊΡ» ;
6) Tenstring operator =(const char *) — ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ ΡΠΈΠΏΠ° «ΠΎΠ±ΡΠ΅ΠΊΡ» = «ΡΠΈ-ΡΡΡΠΎΠΊΠ°» ;
7) Tenstring operator ?(Tenstring &) — ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠ°Π·Π½ΠΎΡΡΠΈ (Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°Π·Π½ΠΎΡΡΡ ΡΡΡΠΎΠΊ);
8) int operator ==(Tenstring &) — ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ°Π²Π΅Π½ΡΡΠ²Π° ΡΡΡΠΎΠΊ;
9) void ChangeChar () — ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π² char
2. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
2.1 ΠΠ»Π°ΡΡ Desk (ΡΠ°Π±ΠΎΡΠΈΠΉ ΡΡΠΎΠ»)
ΠΠ°Π½Π½ΡΠ΅-ΡΠ»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ° desk ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΊΠ°ΠΊ private:
1) char ClassName[3][12] - ΠΌΠ°ΡΡΠΈΠ² ΡΡΡΠΎΠΊ — ΠΈΠΌΡΠ½ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΡΡ ΠΊΠ»Π°ΡΡΠΎΠ².
2) Menu mn, mn1, mn2, mn3, mn4, mn5 — ΠΌΠ΅Π½Ρ ΠΈ ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ — ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΊΠ»Π°ΡΡΠ° Menu.
3) ListBox *lbx1, *lbx2 — ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΊΠ»Π°ΡΡΠ° ListBox — ΠΏΡΠ°Π²ΡΠΉ ΠΈ Π»Π΅Π²ΡΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ Π±ΠΎΠΊΡΡ.
4) INSTANCE inst[LIMIT] - ΠΌΠ°ΡΡΠΈΠ² ΡΡΡΡΠΊΡΡΡ INSTANCE — ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠΌΠ΅Π½Π° ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΡΡΠΎΠΊ.
5) int count — ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΡΡ ΠΊΠ»Π°ΡΡΠΎΠ².
ΠΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° desk ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΊΠ°ΠΊ public:
1) Desk () — ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
2) ~Desk () — Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ
3) void PaintBg (void) — ΡΠΈΡΡΠ΅Ρ ΡΠΎΠ½ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π°.
4) void Go (void) — Π½Π°ΡΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.
5) void Command (void) — Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠ΅Π½Ρ
6) void setCount (void) — ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΡΡ ΠΊΠ»Π°ΡΡΠΎΠ².
7) void Init (void) — ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΡΡ ΠΊΠ»Π°ΡΡΠΎΠ².
8) int numInput (int, int, int, int, char *) — Π²Π²ΠΎΠ΄ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
9) void strInput (int, int, int, int, char *, char *, int) — Π²Π²ΠΎΠ΄ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
10) int str2int (char *, int &) — ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΠΈΠ· ΡΡΡΠΎΠΊΠΈ Π² ΡΠΈΡΠ»ΠΎ.
11) int dataError (int, int, int, int) — Π²ΡΠ²ΠΎΠ΄ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π΄Π°Π½Π½ΡΡ .
12) String *CreateInstance (int, char *) — ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°
13) void numResult (int, int, int, int, char *, int) — Π²ΡΠ²ΠΎΠ΄ ΡΠΈΡΠ»ΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ .
14) void Msg (int, int, int, int, char *) — Π²ΡΠ²ΠΎΠ΄ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
15) void strclear (void) — ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠ΅Π½Ρ «ΠΎΡΠΈΡΡΠΊΠ° ΡΡΡΠΎΠΊΠΈ»
16) void sidToUpper (void) — ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠ΅Π½Ρ «ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ Π² Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ»
17) void sidAssign (void) — ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠ΅Π½Ρ «ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ²»
18) void sidSub (void) — ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠ΅Π½Ρ «ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ²» .
19) void Ind (void) — ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠ΅Π½Ρ — «ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅»
20) void sbtInd (void) — ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠ΅Π½Ρ «ΡΠ°Π·Π½ΠΎΡΡΡ Π΄Π΅ΡΡΡΠΈΡΠ½ΡΡ ΡΡΡΠΎΠΊ» .
21) void sbtChangeChar (void) — ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠ΅Π½Ρ «ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π° Π² char» .
22) void sbtAssign (void) — ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠ΅Π½Ρ «ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ Π΄Π΅ΡΡΡΠΈΡΠ½ΡΡ ΡΡΡΠΎΠΊ» .
23) void sbtSub (void) — ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠ΅Π½Ρ «ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ Π΄Π΅ΡΡΡΠΈΡΠ½ΡΡ ΡΡΡΠΎΠΊ»
2.2 ΠΠ»Π°ΡΡ Menu (ΠΌΠ΅Π½Ρ/ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ)
ΠΠ°Π½Π½ΡΠ΅-ΡΠ»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ° ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΊΠ°ΠΊ private
1) Menu *supmenu — ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΌΠ΅Π½Ρ.
2) MItem mItem[10] - ΠΌΠ°ΡΡΠΈΠ² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² (ΠΏΡΠ½ΠΊΡΠΎΠ²) ΠΌΠ΅Π½Ρ.
3) int n — ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ΅Π½Ρ.
4) int selected — Π½ΠΎΠΌΠ΅Ρ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° (ΠΏΡΠ½ΠΊΡΠ°) ΠΌΠ΅Π½Ρ.
5) bool visible — Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡ/Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡ ΠΌΠ΅Π½Ρ.
ΠΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ°:
1) Menu () — ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
2) Menu (Menu *, int) — ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ.
3) ~Menu () — Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ.
4) void Add (int, int, int, int, char *) — Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ΅Π½Ρ.
5) void setSubmenu (Menu *, int) — Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ ΠΊ ΠΏΡΠ½ΠΊΡΡ ΠΌΠ΅Π½Ρ.
6) void Show (void) — ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΌΠ΅Π½Ρ.
7) void Hide (void) — ΡΠΊΡΡΡΡ ΠΌΠ΅Π½Ρ.
8) void setSelect (int) — Π²ΡΠ±ΡΠ°ΡΡ ΠΏΡΠ½ΠΊΡ ΠΌΠ΅Π½Ρ.
9) int getSelected (void) — Π²Π΅ΡΠ½ΡΡΡ Π½ΠΎΠΌΠ΅Ρ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠ½ΠΊΡΠ° ΠΌΠ΅Π½Ρ.
10) void setEnable (int) — ΡΠ΄Π΅Π»Π°ΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ ΠΏΡΠ½ΠΊΡ ΠΌΠ΅Π½Ρ.
11) int isEnable (int) — ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ ΠΏΡΠ½ΠΊΡΠ° ΠΌΠ΅Π½Ρ.
12) void setDisable (int) — ΡΠ΄Π΅Π»Π°ΡΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ ΠΏΡΠ½ΠΊΡ ΠΌΠ΅Π½Ρ.
13) void Forward (void) — ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΠΏΡΠ½ΠΊΡΡ ΠΌΠ΅Π½Ρ.
14) void Backward (void) — Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌΡ ΠΏΡΠ½ΠΊΡΡ ΠΌΠ΅Π½Ρ.
15) void Upward (void) — ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌΡ ΠΏΡΠ½ΠΊΡΡ ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ.
16) void Downward (void) — ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΠΏΡΠ½ΠΊΡΡ ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ.
17) Menu *getSubMenu (int) — ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ ΠΏΠΎ Π½ΠΎΠΌΠ΅ΡΡ ΠΏΡΠ½ΠΊΡΠ° ΠΌΠ΅Π½Ρ.
2.3 ΠΠ»Π°ΡΡ MenuItem (ΠΏΡΠ½ΠΊΡ ΠΌΠ΅Π½Ρ)
ΠΠ°Π½Π½ΡΠ΅-ΡΠ»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ° ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΊΠ°ΠΊ private
1) int status — ΡΡΠ°ΡΡΡ ΠΏΡΠ½ΠΊΡΠ° ΠΌΠ΅Π½Ρ.
2) int x, y, w, h — ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΏΡΠ½ΠΊΡΠ° ΠΌΠ΅Π½Ρ.
3) char text[16] - ΡΠ΅ΠΊΡΡ ΠΏΡΠ½ΠΊΡΠ° ΠΌΠ΅Π½Ρ.
ΠΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ°:
1) MenuItem () ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
2) MenuItem (int, int, int, int, char *) — ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ.
3) void Show (void) — ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΏΡΠ½ΠΊΡ ΠΌΠ΅Π½Ρ.
4) void Hide (void) — ΡΠΊΡΡΡΡ ΠΏΡΠ½ΠΊΡ ΠΌΠ΅Π½Ρ.
5) void setStatus (int) — Π·Π°Π΄Π°ΡΡ ΡΡΠ°ΡΡΡ ΠΏΡΠ½ΠΊΡΠ° ΠΌΠ΅Π½Ρ.
6) int getStatus (void) — ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠ°ΡΡΡ ΠΏΡΠ½ΠΊΡΠ° ΠΌΠ΅Π½Ρ.
7) ~MenuItem () — Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ.
2.4 ΠΠ»Π°ΡΡ Listbox (ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ Π±ΠΎΠΊΡ/ΡΠΏΠΈΡΠΎΠΊ)
ΠΠ°Π½Π½ΡΠ΅-ΡΠ»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ° ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΊΠ°ΠΊ private
1) int x, y, w, h — ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡ Π±ΠΎΠΊΡΠ°.
2) int n — ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ ΡΠ΅ΠΊΡΡΠ°.
3) ListItem *lItem[STR_MAX] - ΠΌΠ°ΡΡΠΈΠ² ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΠΈΡΠΊΠ° (ΡΡΡΠΎΠΊΠΈ ΡΠ΅ΠΊΡΡΠ°).
ΠΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ°:
1) ListBox (void) — ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
2) ListBox (int, int, int, int) — ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ.
3) ~ListBox (void) — Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ.
4) void Add (char *) — Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΡΠΎΠΊΡ ΡΠ΅ΠΊΡΡΠ°.
5) void AddSeveral (int) — Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ΅ΠΊΡΡΠ°.
6) void UpdateRow (int, char *) — ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΡΡΠΎΠΊΡ.
7) void Clear (void) — ΡΠ΄Π°Π»ΠΈΡΡ ΡΡΡΠΎΠΊΠΈ.
8) void Show (void) — ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π±ΠΎΠΊΡ.
9) void Erase (void) — ΠΎΡΠΈΡΡΠΈΡΡ ΡΡΡΠΎΠΊΠΈ.
2.5 ΠΠ»Π°ΡΡ ListItem (ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΠΈΡΠΊΠ°)
ΠΠ°Π½Π½ΡΠ΅-ΡΠ»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ° ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΊΠ°ΠΊ private
1) int x, y, w, h — ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΠΈΡΠΊΠ° (ΡΡΡΠΎΠΊΠΈ ΡΠ΅ΠΊΡΡΠ°)
2) ListBox *lbx — ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ.
ΠΠ°Π½Π½ΡΠ΅-ΡΠ»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ° ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΊΠ°ΠΊ public:
1) char text[STR_LEN+1] - ΡΡΡΠΎΠΊΠ° ΡΠ΅ΠΊΡΡΠ°.
ΠΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ°:
1) ListItem (void) — ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
2) ListItem (int, int, int, int, char *) — ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ.
3) ~ListItem (void) — Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ.
4) void setText (char *) — Π·Π°Π΄Π°ΡΡ ΡΠ΅ΠΊΡΡ ΡΡΠΎΡΠΎΠΊΠΈ.
5) void Show (void) — ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΡΡΡΠΎΠΊΡ.
void Erase (void) — ΠΎΡΠΈΡΡΠΈΡΡ ΡΡΡΠΎΠΊΡ.
2.6 ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
Π’Π°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ «ΠΊΠ»Π°ΡΡ ΠΎΠΊΠ½Π°» ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΡΠΊΡΠΎΡΠΎΠΉ menu ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΎΠΊΠ½Π΅. ΠΠ°Π½Π½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΊΠΎΡΠΎΡΡΠ΅ — ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ. ΠΠ΅Π½Ρ ΠΎΠΊΠ½Π° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠ»Π°ΡΡΠ° desk. ΠΠ»Π°ΡΡ desk ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΡΠ½ΠΊΡΡ:
1. ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
o Π§ΠΈΡΠ»ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
o ΠΠ°ΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
2. Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
o Π‘ΡΡΠΎΠΊΠ°
§ ΠΡΠΈΡΡΠΈΡΡ
o Π‘ΡΡΠΎΠΊΠ°-ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ
§ ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ Π² Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ
§ ΠΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ =
§ ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ ==
§ ΠΠ½Π΄Π΅ΠΊΡ
o ΠΠ΅ΡΡΡΠΈΡΠ½Π°Ρ ΡΡΡΠΎΠΊΠ°
§ ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΠΊΠ°ΠΊ char
§ ΠΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ =
§ ΠΡΡΠΈΡΠ°Π½ΠΈΠ΅ ?
§ ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ ==
3. ΠΡΡ ΠΎΠ΄.
ΠΡΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΈ ΡΠΎΠ·Π΄Π°Π½Ρ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠ»Π°ΡΡΠ° listbox.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π¦Π΅Π»Ρ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡΠ°. ΠΡΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½Ρ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΊΠ»Π°ΡΡΡ: Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ Π‘ΡΡΠΎΠΊΠ°, Π‘ΡΡΠΎΠΊΠ°-ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, ΠΠ΅ΡΡΡΠΈΡΠ½Π°Ρ ΡΡΡΠΎΠΊΠ°. Π’Π°ΠΊ ΠΆΠ΅ Π±ΡΠ»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΠΊΠ»Π°ΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°: ΠΊΠ»Π°ΡΡ Π Π°Π±ΠΎΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π° ΠΈ ΠΊΠ»Π°ΡΡ ΠΠ΅Π½Ρ. ΠΠ΅ΡΠΎΠ΄Ρ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π±ΡΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌ ΠΌΠ΅Π½Ρ ΠΈ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠΈΠΌ ΠΎΠΊΠ½Π°ΠΌ. Π’Π΅ΡΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ.
ΠΠ· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π±ΡΠ» ΠΈΡΠΊΠ»ΡΡΠ΅Π½ ΠΏΡΠ½ΠΊΡ ΠΌΠ΅Π½Ρ «Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ — ΠΠ°Π΄Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°Π½Π΄», ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ Π²Π²ΠΎΠ΄ΠΈΠ»ΠΈΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°
1. Π. Π. ΠΠ΅ΡΠ΅Π·ΠΈΠ½. ΠΠ°ΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΡΡΡ Π‘ ΠΈ Π‘++. — Π.:ΠΠ·Π΄Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎ ΠΠΈΠ°Π»ΠΎΠ³-ΠΠΠ€Π,
2005 Π³. — 248 Ρ.
2. Π . ΠΠ°ΡΠΎΡΠ΅. ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π‘++. 4-Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅. — Π‘ΠΏΠ±.: ΠΠ·Π΄Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎ ΠΠΠ’ΠΠ , 2004 Π³. — 902 Ρ.
3. Π. Π‘ΡΡΠ°ΡΡΡΡΡΠΏ. Π―Π·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π‘++. Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅. ΠΠ΅Ρ. Ρ Π°Π½Π³Π». — Π.: ΠΠ·Π΄Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎ ΠΠΈΠ½ΠΎΠΌ, 2011 Π³. — 1136 Ρ.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 1. Π€Π°ΠΉΠ» mystring.h
#ifndef MYSTRING_H
#define MYSTRING_H
#ifndef STR_MAX
#define STR_MAX 255
#endif
#include «friends.h»
class String {
protected:
char *str;
int len;
public:
String ();
String (const char *);
String (const char);
String (const String &);
~String ();
void clear ();
char *text ();
void friend report (char *);
};
class Identifier: public String {
public:
Identifier ();
Identifier (const char *);
Identifier (const Identifier &);
Identifier operator ==(const Identifier &);
Identifier operator =(const char *);
Identifier operator =(const Identifier &);
char operator [](int);
~Identifier ();
void toUpper ();
};
class Tenstring: public String {
public:
Tenstring ();
Tenstring (const char *);
Tenstring (const Tenstring &);
Tenstring operator =(const Tenstring &);
Tenstring operator =(const char *);
Tenstring operator ==(Tenstring&);
Tenstring operator -(Tenstring &);
~Tenstring ();
void ChangeChar ();
};
#endif /* MYSTRING_H */
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 2. Π€Π°ΠΉΠ» mystring.cpp
#include
#include
#include
#include «mystring.h»
using namespace std;
String:String (){
report («Default String class constructor»);
str = new char[STR_MAX+1];
str[0] = '';
len = 0;
}
String:String (const char *s){
report («String class constructor (const char *)»);
str = new char[STR_MAX+1];
int i;
for (i=0;i
str[i] = '';
len = i-1;
}
String:String (const char ch){
report («String class constructor (const char)»);
str = new char[STR_MAX+1];
str[0] = ch;
str[1] = '';
len = 1;
}
String:String (const String& ss){
report («Copy String class constructor»);
str = new char[STR_MAX+1];
int i;
for (i=0;i<=ss.len;i++) str[i] = ss. str[i];
str[i] = '';
len = ss. len;
}
String:~String (){
report («String class destructor»);
delete [] str;
}
char *String:text (){
return str;
}
void String: clear ()
{
delete str;
len = 0;
str = new char[1];
str[0] = 0;
report («String:clear ()»);
}
Identifier:Identifier (){
report («Default Identifier class constructor»);
}
Identifier:Identifier (const char *s){
report («Identifier class constructor (const char *)»);
if (!isalpha (s[0])&&s[0]≠'_') return;
int i;
for (i=1;i
if (!isalnum (s[i])&&s[i]≠'_') return;
}
strcpy (str, s);
len = i;
}
Identifier:Identifier (const Identifier& ss):String (ss){
report («Copy Identifier class constructor»);
}
Identifier:~Identifier (){
report («Identifier class destructor»);
}
Identifier Identifier: operator ==(const Identifier& ss){
report («Identifier operator ==(const Identifier &)»);
// int i;
if (strcmp (str, ss. str))
report («Identifier operator ≠ executed»);
else
report («Identifier operator == executed»);
return *this;}
Identifier Identifier: operator =(const Identifier& ss){
report («Identifier operator =(const Identifier &)»);
if (&ss == this)
return *this;
strcpy (str, ss. str);
len = ss. len;
return *this;
}
Identifier Identifier: operator =(const char *s){
report («Identifier operator =(const char *)»);
if (!isalpha (s[0])&&s[0]≠'_'){ str[0]=''; len=0; return *this; }
int i;
for (i=0;i
if (!isalnum (s[i])&&s[i]≠'_'){ str[0]=''; len=0; return *this; }
}
strncpy (str, s, i);
str[i] = '';
len = i;
return *this;
}
char Identifier: operator [](int i)
{
report («stroka_id:operator[](int i)»);
if ((i<0)||(i>=strlen (str))) {
report («index is too big (small?)»);
return 0;
}
return str[i];
}
void Identifier: toUpper (){
report («Identifier member function toUpper ()»);
for (int i=0;str[i]≠'';i++) if (islower (str[i])) str[i]=toupper (str[i]);
}
Tenstring:Tenstring (){
report («Default Tenstring class constructor»);
}
Tenstring:Tenstring (const char *s)
Tenstring:Tenstring (const Tenstring& ss):String (ss){
report («Copy Tenstring class constructor»);
}
Tenstring:~Tenstring (){
report («Tenstring class destructor»);
}
void Tenstring: ChangeChar (){
report («Tenstring member function ChangeChar ()»);
if (len>4)
{report («False»);
return;
}
long long int number;
number = atoll (str);
if (number > 128 || number < -127)
{
report («True»);
return;
}
else
{
report («False»);
return;
}
}
Tenstring Tenstring: operator =(const Tenstring& ss){
report («Tenstring operator =(const Tenstring &)»);
if (&ss == this) return *this;
strcpy (str, ss. str);
len = ss. len;
return *this;
}
Tenstring Tenstring: operator =(const char *s){
report («Tenstring operator =(const char *)»);
int i;
for (i=0;i
if (s[i]≠'0'&&s[i]≠'1'){ str[0]=''; len=0; return *this; }
}
strncpy (str, s, i);
len = i;
str[i] = '';
return *this;
}
Tenstring Tenstring: operator ==(Tenstring& ss){
if (atol (this->str)==atol (ss.str))
report («Tenstring operator == (Tenstring &)»);
else
report («Tenstring operator ≠ (Tenstring &)»);
}
Tenstring Tenstring: operator -(Tenstring& ss){
report («Tenstring operator — (Tenstring &)»);
int len = this->len>ss.len? len: ss. len, res;
char res1[len];
res = atol (this->str)-atol (ss.str);
ltoa (res, res1,10);
return Tenstring (res1);
}
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 3. Π€Π°ΠΉΠ» Friends.h
#ifndef FRIENDS_H
#define FRIENDS_H
#include «listbox.h»
void report (char *);
#endif /* FRIENDS_H */
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 4. Π€Π°ΠΉΠ» Friends.cpp
#include «friends.h»
#include
void report (char *s){
std:cout «s «std:endl;
extern ListBox *ptr;
ptr->Add (s);
}
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 5. Π€Π°ΠΉΠ» Desk.h
#ifndef DESK_H
#define DESK_H
#include «menu.h»
#include «listbox.h»
#include «mystring.h»
#define LIMIT 8
struct INSTANCE{
String *item;
int classId;
};
class Desk {
private:
char ClassName[3][12];
Menu mn, mn1, mn2, mn3, mn4, mn5;
ListBox *lbx1, *lbx2;
INSTANCE inst[LIMIT];
int count;
public:
Desk ();
~Desk ();
void PaintBg (void);
void Go (void);
void Command (void);
void setCount (void);
void Init (void);
int numInput (int, int, int, int, char *);
void strInput (int, int, int, int, char *, char *, int);
int str2int (char *, int &);
int dataError (int, int, int, int);
String *CreateInstance (int, char *);
void numResult (int, int, int, int, char *, int);
void Msg (int, int, int, int, char *);
void strclear (void);
void sidToUpper (void);
void sidAssign (void);
void sidSub (void);
void Ind (void);
void sbtInd (void);
void sbtChangeChar (void);
void sbtAssign (void);
void sbtSub (void);
};
#endif /* DESK_H */
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 6. Π€Π°ΠΉΠ» Desk.cpp
#include
#include
#include
#include
#include
#include
#include
#include
#include «desk.h»
using namespace std;
Desk:Desk (){ //ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ
PaintBg ();
mn.Add (80,30,120,30," ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ");
mn.Add (260,30,120,30," Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅");
mn.Add (440,30,120,30," ΠΡΡ ΠΎΠ΄");
mn.setDisable (1);
mn.setSelect (0);
//mn.setDisable (1);
mn1.Add (80,80,120,30," Π§ΠΈΡΠ»ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²");
mn1.Add (80,120,120,30," ΠΠ°Ρ-Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅");
mn1.setDisable (1);
mn1.Hide ();
//Menu mn2
mn2.Add (260,80,120,30," Π‘ΡΡΠΎΠΊΠ°");
mn2.Add (260,120,120,30," ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ");
mn2.Add (260,160,120,30," ΠΠ΅ΡΡΡ. ΡΡΡΠΎΠΊΠ°");
mn2.Hide ();
//Menu mn3
mn3.Add (390,80,120,25," clear ()");
mn3.Hide ();
//Menu mn4
mn4.Add (390,120,120,25," Toupp");
mn4.Add (390,145,120,25," ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ =");
mn4.Add (390,170,120,25," ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ==");
mn4.Add (390,195,120,25," ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ []");
// mn4. Add (390,220,120,25," vxod");
mn4.Hide ();
//Menu mn5
mn5.Add (390,160,120,25," ChangeChar ()");
mn5.Add (390,185,120,25," ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ =");
mn5.Add (390,210,120,25," ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ==");
mn5.Add (390,235,120,25," ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ -");
mn5.Hide ();
mn.setSubmenu (&mn1,0);
mn.setSubmenu (&mn2,1);
mn2.setSubmenu (&mn3,0);
mn2.setSubmenu (&mn4,1);
mn2.setSubmenu (&mn5,2);
lbx1 = new ListBox (20,300,292,162);
lbx2 = new ListBox (330,300,292,162);
extern void *ptr;
ptr = lbx2;
strcpy (ClassName[0]," String");
strcpy (ClassName[1]," Identifier");
strcpy (ClassName[2]," Tenstring");
for (int i=0;i
inst[i]. item = NULL;
inst[i]. classId = 0;
}
count = 0;
}
Desk:~Desk (){ //Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ
if (lbx1) delete lbx1;
if (lbx2) delete lbx2;
}
void Desk: setCount (){ //Π²Π²ΠΎΠ΄ ΡΠΈΡΠ»Π°
int k = numInput (205,80,30,30," count ?");
if (k>0&&k<=LIMIT){
count = k;
lbx1->AddSeveral (k);
mn1.setEnable (1);
mn1.setSelect (1);
mn1.setDisable (0);
} else dataError (205,80,5,30);
}
String *Desk:CreateInstance (int classId, char *val){ //Π²ΡΠ±ΠΎΡ ΠΊΠ»Π°ΡΡΠ°
switch (classId){
case 0: return new String (val);
case 1: return new Identifier (val);
case 2: return new Tenstring (val);
}
return NULL;
}
void Desk: Init (){ //Π·Π°ΠΏΠΈΡΡ
int k=0, classId=0, limit=39;
char val[limit+1];
char text[limit+1]; text[0]='';
k = numInput (205,120,30,30," num ?");
if (k<=0||k>count) if (dataError (205,120,30,30)) return;
classId = numInput (205,120,30,30," classId ?1)ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ 2) Π΄Π΅ΡΡΡΠΈΡΠ½Π°Ρ ΡΡΡΠΎΠΊΠ°");
if (classId≠0&&classId≠1&&classId≠2) if (dataError (205,120,30,30)) return;
strInput (205,120,30,30," value ?", val, 23);
k—;
lbx2->Clear ();
if (inst[k]. item){ delete inst[k]. item;
inst[k].item = NULL;
inst[k]. classId = 0;
}
inst[k]. item = CreateInstance (classId, val);
inst[k]. classId = classId;
strcpy (val, inst[k]. item->text ());
sprintf (text," %d %s %s", k+1,ClassName[classId], val);
if (inst[k]. item) lbx1->UpdateRow (++k, text);
k=0;
while (inst[k++]. item);
if (k>count && !mn.isEnable (1)) mn. setEnable (1);
}
void Desk: strclear (){ //ΠΎΡΠΈΡΡΠΊΠ° ΡΡΡΠΎΠΊΠΈ
int len, k = numInput (520,80,25,25," num ?");
char text[40]; text[0]='';
if (k<=0||k>count){ if (dataError (520,80,25,25)) return; }
else {
inst[k-1]. item->clear ();
sprintf (text," %d %s %s", k, ClassName[0], inst[k-1]. item->text ());
lbx1->UpdateRow (k, text);
}
}
void Desk: sidToUpper (){ // ΡΠ΅ΡΡ Π½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ
int k = numInput (520,120,25,25," num ?");
if (k<=0||k>count){ if (dataError (520,120,25,25)) return; }
if (inst[k-1]. classId≠1) { Msg (520,120,25,25," Wrong data"); return; }
Identifier *pId = (Identifier*)inst[k-1]. item;
pId->toUpper ();
char text[40]; text[0]='';
sprintf (text," %d %s %s", k, ClassName[1], pId->text ());
lbx1->UpdateRow (k, text);
}
void Desk: sidAssign (){//ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅
int k, k1=0;
Identifier *pOp[2];
char op[2][6] = {" op1 ?" ," op2 ?" };
for (int i=0;i<2;i++){
k = numInput (520,145,25,25,op[i]); if (!k1) k1=k;
if (k<=0||k>count){ if (dataError (520,145,25,25)) return; }
if (inst[k-1]. classId≠1) { Msg (520,145,25,25," Wrong data"); return; }
pOp[i] = (Identifier*)inst[k-1]. item;
}
*pOp[0] = *pOp[1];
char text[40]; text[0]='';
sprintf (text," %d %s %s", k1, ClassName[1], pOp[0]->text ());
lbx1->UpdateRow (k1,text);
}
void Desk: sidSub (){//ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅
int k, k1=0;
Identifier *pOp[2];
char op[2][6] = {" op1 ?" ," op2 ?" };
for (int i=0;i<2;i++){
k = numInput (520,170,25,25,op[i]); if (!k1) k1=k;
if (k<=0||k>count){ if (dataError (520,170,25,25)) return; }
if (inst[k-1]. classId≠1) { Msg (520,170,25,25," Wrong data"); return; }
pOp[i] = (Identifier*)inst[k-1]. item;
}
*pOp[0] == *pOp[1];
{
char text[40]; text[0]='';
sprintf (text," %d %s %s", k1, ClassName[1], pOp[0]->text ());
lbx1->UpdateRow (k1,text);
}}
void Desk: Ind () //ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
{
int k, k1=0;
Identifier *pOp[0];
char op[1][6] = {" op1 ?" };
for (int i=0;i<1;i++){
k = numInput (520,170,25,25,op[i]); if (!k1) k1=k;
if (k<=0||k>count){ if (dataError (520,170,25,25)) return; }
if (inst[k-1]. classId≠1) { Msg (520,170,25,25," Wrong data"); return; }
pOp[0] = (Identifier*)inst[k-1]. item;
char *id=new char[5];
strInput (520,170,25,25," Index", id, 2);
int idx;
if (!str2int (id, idx)) {
Msg (520,170,25,25," Wrong data");
delete id;
break;
}
delete id;
char text[40], out[20]; text[0]='';
idx—;
sprintf (out," Return value is %c" ,(*(Identifier*)pOp[0])[idx]);
sprintf (text," %d %s %s", k, ClassName[2], pOp[0]->text ());
lbx1->UpdateRow (k1,out);
getch ();
lbx1->UpdateRow (k1,text);
}
}
void Desk: sbtInd (){//ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅
int k, k1=0;
Tenstring *pOp[3];
char op[3][6] = {" op1 ?" ," op2 ?" ," op3 ?" };
for (int i=0;i<3;i++){
k = numInput (520,210,25,25,op[i]); if (!k1) k1=k;
if (k<=0||k>count){ if (dataError (520,210,25,25)) return; }
if (inst[k-1]. classId≠2) { Msg (520,210,25,25," Wrong data"); return; }
pOp[i] = (Tenstring*)inst[k-1]. item;
}
*pOp[0] = *pOp[1] - *pOp[2];
char text[40]; text[0]='';
sprintf (text," %d %s %s", k1, ClassName[2], pOp[0]->text ());
lbx1->UpdateRow (k1,text);
}
void Desk: sbtChangeChar (){//ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΠΊΠ°ΠΊ ΡΠ°Ρ
int k = numInput (520,160,25,25," num ?");
if (k<=0||k>count){ if (dataError (520,160,25,25)) return; }
if (inst[k-1]. classId≠2) { Msg (520,160,25,25," Wrong data"); return; }
Tenstring *pId = (Tenstring*)inst[k-1]. item;
pId->ChangeChar ();
char text[40]; text[0]='';
sprintf (text," %d %s %s", k, ClassName[2], pId->text ());
lbx1->UpdateRow (k, text);
}
void Desk: sbtAssign (){//ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅
int k, k1=0;
Tenstring *pOp[2];
char op[2][6] = {" op1 ?" ," op2 ?" };
for (int i=0;i<2;i++){
k = numInput (520,185,25,25,op[i]); if (!k1) k1=k;
if (k<=0||k>count){ if (dataError (520,185,25,25)) return; }
if (inst[k-1]. classId≠2) { Msg (520,185,25,25," Wrong data"); return; }
pOp[i] = (Tenstring*)inst[k-1]. item;
}
*pOp[0] = *pOp[1];
char text[40]; text[0]='';
sprintf (text," %d %s %s", k1, ClassName[2], pOp[0]->text ());
lbx1->UpdateRow (k1,text);
}
void Desk: sbtSub (){//ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅
int k, k1=0;
Tenstring *pOp[2];
char op[2][6] = {" op1 ?" ," op2 ?" };
for (int i=0;i<2;i++){
k = numInput (520,210,25,25,op[i]); if (!k1) k1=k;
if (k<=0||k>count){ if (dataError (520,210,25,25)) return; }
if (inst[k-1]. classId≠2) { Msg (520,210,25,25," Wrong data"); return; }
pOp[i] = (Tenstring*)inst[k-1]. item;
}
*pOp[0] == *pOp[1];
char text[40]; text[0]='';
sprintf (text," %d %s %s", k1, ClassName[2], pOp[0]->text ());
lbx1->UpdateRow (k1,text);
}
void Desk: numResult (int x, int y, int w, int h, char *s, int k){ // ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ
int len = strlen (s)+5;
char *text = new char[len];
if (k<=99) sprintf (text," %s= %d", s, k);
else sprintf (text," %s= xxx", s);
int wt = textwidth (text);
int ht = textheight (text);
w+=wt;
outtextxy (x+(w-wt)/2,y+(h-ht)/2,text);
getch ();
bar (x, y, x+w+1,y+h+1);
}
int Desk: dataError (int x, int y, int w, int h){ //ΠΎΡΠΈΠ±ΠΊΠ°
char text[]="Data Error" ;
int wt = textwidth (text);
int ht = textheight (text);
w+=wt;
int color = getcolor ();
setcolor (RED);
rectangle (x, y, x+w, y+h);
outtextxy (x+(w-wt)/2,y+(h-ht)/2,text);
setcolor (color);
char ch;
do ch=getch ();
while (ch≠13&&ch≠27);
bar (x, y, x+w+1,y+h+1);
return (ch=27)?1:0;
}
void Desk: Msg (int x, int y, int w, int h, char *s){//ΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
int wt = textwidth (s);
int ht = textheight (s);
w+=wt;
outtextxy (x+(w-wt)/2,y+(h-ht)/2,s);
getch ();
bar (x, y, x+w+1,y+h+1);
}//
int Desk: str2int (char *str, int &result)//ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ Π² ΡΠΈΡΠ»ΠΎ
{
char correct=1,minus=0;
int res=0,i=0;
if (str[0] == '-') {
minus = 1;
i = 1;
}
if (str[i] == 0) {
return 0;
}
while (correct&&(str[i]≠0)) {
if ((str[i] >= 0×30)&&(str[i] <= 0×39)) {
res = res*10 + (str[i] - 0×30);
} else {
correct = 0;
}
i++;
}
if (correct) {
result = (minus)?(-res):(res);
return 1;
} else {
return 0;
}
}
int Desk: numInput (int x, int y, int w, int h, char *prompt){//ΡΠΈΡΠ»ΠΎ
int ht, wt;
char text[2];
setbkcolor (BLUE);
wt = textwidth (prompt);
ht = textheight (prompt);
w+=wt;
outtextxy (x+(w-wt)/2,y+(h-ht)/2,prompt);
text[0] = getch (); text[1]='';
bar (x, y, x+w+1,y+h+1);
wt = textwidth (text);
ht = textheight (text);
outtextxy (x+(w-wt)/2,y+(h-ht)/2,text);
while (getch ()≠13);
bar (x, y, x+w+1,y+h+1);
if (text[0]>=48&&text[0]<=57) return text[0]-48;
return 0;
}
void Desk: strInput (int x, int y, int w, int h, char *prompt, char *text, int limit){//ΡΡΡΠΎΠΊΠ°
int ht, wt;
setbkcolor (BLUE);
wt = textwidth (prompt);
ht = textheight (prompt);
w+=wt;
outtextxy (x+(w-wt)/2,y+(h-ht)/2,prompt);
int i=0;
text[0]='';
while (((text[i++]=getch ())≠13)&&(i<=limit)){
text[i]='';
bar (x, y, x+w+1,y+h+1);
w-=wt;
wt = textwidth (text);
ht = textheight (text);
w+=wt;
outtextxy (x+(w-wt)/2,y+(h-ht)/2,text);
}
text[i-1]='';
bar (x, y, x+w+1,y+h+1);
}
void Desk: PaintBg (){ //ΠΎΠΊΠ½ΠΎ
setfillstyle (1,1);
bar (0,0,640,480);
setcolor (11);
rectangle (5,5,635,475);
}
void Desk: Go (){//ΠΊΠΎΠΌΠ°Π½Π΄Ρ
unsigned char ch;
for (;;){
ch = getch ();
switch (ch){
case 13: Command (); break;
case 72: mn. Upward (); break;
case 75: mn. Backward (); break;
case 77: mn. Forward (); break;
case 80: mn. Downward (); break;
case 27: exit (0);
}
}
}
void Desk: Command (void){ ///ΠΊΠΎΠΌΠ°Π½Π΄Ρ
lbx2->Clear ();
Menu *smn = mn. getSubMenu (mn.getSelected ());
Menu *smn1 = NULL;
if (smn) smn1 = smn->getSubMenu (smn->getSelected ());
switch (mn.getSelected ()){
case 0: if (smn){
switch (smn->getSelected ()){
case -1: smn->Show (); break;
case 0: setCount (); break;
case 1: Init (); break;
}
}
break;
case 1: if (smn){
switch (smn->getSelected ()){
case -1: smn->Show (); break;
case 0: if (smn1){
switch (smn1->getSelected ()){
case -1: smn1->Show (); break;
case 0: strclear (); break;
}
}
break;
case 1: if (smn1){
switch (smn1->getSelected ()){
case -1: smn1->Show (); break;
case 0: sidToUpper (); break;
case 1: sidAssign (); break;
case 2: sidSub (); break;
case 3: Ind ();break;
}
}
break;
case 2: if (smn1){
switch (smn1->getSelected ()){
case -1: smn1->Show (); break;
case 0: sbtChangeChar (); break;
case 1: sbtAssign (); break;
case 2: sbtSub (); break;
case 3: sbtInd ();break;
}
}
break;
case 3: break;
}
}
break;
case 2: exit (0);
}
}
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 7. Π€Π°ΠΉΠ» menu.h
#ifndef MENU_H
#define MENU_H
class MenuItem{
private:
int status;
int x, y, w, h;
char text[16];
public:
MenuItem ();
MenuItem (int, int, int, int, char *);
void Show (void);
void Hide (void);
void setStatus (int);
int getStatus (void);
~MenuItem (){}
};
class Menu;
struct MItem{
MenuItem *item;
bool enabled;
Menu *submenu;
};
class Menu{
private:
Menu *supmenu;
MItem mItem[10];
int n;
int selected;
bool visible;
public:
Menu ();
Menu (Menu *, int);
~Menu ();
void Add (int, int, int, int, char *);
void setSubmenu (Menu *, int);
void Show (void);
void Hide (void);
void setSelect (int);
int getSelected (void);
void setEnable (int);
int isEnable (int);
void setDisable (int);
void Forward (void);
void Backward (void);
void Upward (void);
void Downward (void);
void setSubMenu (int, Menu *);
Menu *getSubMenu (int);
};
#endif /* MENU_H */
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 8. Π€Π°ΠΉΠ» Menu.cpp
#include
#include
#include
#include
#include
#include «menu.h»
MenuItem:MenuItem (){
status = 0;
x = 0; y = 0; w = 120; h = 30;
strcpy (text," Item");
Show ();
}
MenuItem:MenuItem (int xx, int yy, int ww, int hh, char *s){
status = 0;
x = xx; y = yy; w = ww; h = hh;
strncpy (text, s,16);
Show ();
}
void MenuItem: setStatus (int k){
status = k;
Show ();
}
int MenuItem: getStatus (){
return status;
}
void MenuItem: Show (void){
rectangle (x, y, x+w, y+h);
int clr = getcolor ();
if (status > 0) setcolor (RED);
else if (status==0) setcolor (LIGHTGREEN);
else setcolor (LIGHTGRAY);
setbkcolor (BLUE);
int wt = textwidth (text);
int ht = textheight (text);
outtextxy (x+(w-wt)/2,y+(h-ht)/2,text);
setcolor (clr);
}
void MenuItem: Hide (void){
if (status==1) status = 0;
int clr = getcolor ();
setcolor (BLUE);
bar (x, y, x+w+1,y+h+1);
setcolor (clr);
}
Menu:Menu (){
n=0;
selected=-1;
visible = 1;
supmenu = NULL;
for (int i=0;i<10;i++){
mItem[i]. item = NULL;
mItem[i]. submenu = NULL;
mItem[i]. enabled = 1;
}
}
Menu:Menu (Menu *mn, int k){
n=0;
selected=-1;
visible = 1;
supmenu = mn;
for (int i=0;i<10;i++){
mItem[i]. item = NULL;
mItem[i]. submenu = NULL;
mItem[i]. enabled = 1;
}
mn->setSubMenu (k, this);
}
Menu:~Menu (){
while (n>=0) delete mItem[—n]. item;
}
int Menu: isEnable (int k){
return mItem[k]. item->getStatus () >= 0;
}
void Menu: Add (int x, int y, int w, int h, char *s){
mItem[n++]. item = new MenuItem (x, y, w, h, s);
return;
}
void Menu: setSubmenu (Menu *mn, int k){
if (k>=0&&k
mn->supmenu = this;
}
void Menu: Show (void){
for (int i=0;iShow ();
visible = 1;
}
void Menu: Hide (void){
Menu *smn = NULL;
if (selected >=0) smn = mItem[selected]. submenu;
if (smn) smn->Hide ();
for (int i=0;iHide ();
selected = -1;
visible = 0;
}
void Menu: setSelect (int k){
if (mItem[k]. enabled){
mItem[k].item->setStatus (1);
if (selected >=0) mItem[selected]. item->setStatus (0);
selected = k;
}
}
void Menu: setEnable (int k){
if (k≠selected) mItem[k]. item->setStatus (0);
mItem[k].enabled = 1;
Show ();
}
void Menu: setDisable (int k){
if (k≠selected) mItem[k]. item->setStatus (-1);
mItem[k].enabled = 0;
Show ();
}
void Menu: Forward (void){
Menu *smn = NULL;
int i;
for (i=selected+1;i
if (i<=n-1){
mItem[i]. item->setStatus (1);
if (selected>=0){
mItem[selected].item->setStatus (0);
smn = mItem[selected]. submenu;
}
if (smn) { /*smn->selected = -1*/; smn->Hide (); }
selected = i;
}
}
void Menu: Backward (void){
int i;
for (i=selected-1;i>=0;i—) if (mItem[i]. enabled) break;
if (i>=0){
mItem[i]. item->setStatus (1);
mItem[selected].item->setStatus (0);
Menu *smn = mItem[selected]. submenu;
if (smn) { /*smn->selected = -1*/; smn->Hide (); }
selected = i;
} else if (supmenu) {
selected = -1;
Hide ();
}
}
void Menu: Upward (void){
Menu *mn = this, *mn1 = NULL;
while (mn->selected >=0 && (mn1=mn->mItem[mn->selected]. submenu) && mn1->visible) mn = mn1;
mn->Backward ();
}
void Menu: Downward (void){
Menu *mn = this, *mn1 = NULL;
while (mn->selected >=0 && (mn1=mn->mItem[mn->selected]. submenu) && mn1->visible) mn = mn1;
mn->Forward ();
}
void Menu: setSubMenu (int i, Menu *mn){
if (i>=0&&i
}
Menu *Menu:getSubMenu (int i){
if (i>=0&&i
return NULL;
}
int Menu: getSelected (void){
return selected;
}
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 9. Π€Π°ΠΉΠ» Listbox.h
#ifndef LISTBOX_H
#define LISTBOX_H
#ifndef STR_MAX
#define STR_MAX 255
#endif
#define STR_LEN 79
#define LINE_HEIGHT 20
class ListBox;
class ListItem {
private:
int x, y, w, h;
ListBox *lbx;
public:
char text[STR_LEN+1];
ListItem (void);
ListItem (int, int, int, int, char *);
~ListItem (void);
void setText (char *);
void Show (void);
void Erase (void);
};
class ListBox {
private:
int x, y, w, h;
int n;
ListItem *lItem[STR_MAX];
public:
ListBox (void);
ListBox (int, int, int, int);
~ListBox (void);
void Add (char *);
void AddSeveral (int);
void UpdateRow (int, char *);
void Clear (void);
void Show (void);
void Erase (void);
void Count (void);
};
#endif /* LISTBOX_H */
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 10. Π€Π°ΠΉΠ» Listbox.cpp
#include
#include
#include
#include «listbox.h»
ListItem:ListItem (){
x = 0; y = 0; w = 100; h = LINE_HEIGHT;
strcpy (text," «);
lbx = NULL;
}
ListItem:ListItem (int xx, int yy, int ww, int hh, char *s){
x = xx; y = yy; w = ww; h = hh;
strncpy (text, s, STR_LEN-1);
text[STR_LEN] = '';
lbx = NULL;
Show ();
}
ListItem:~ListItem (){
Erase ();
}
void ListItem: setText (char *s){
strncpy (text, s, STR_LEN+1);
if (strlen (s)>STR_LEN) text[STR_LEN+1] = '';
}
void ListItem: Show (){
Erase ();
int clr = getcolor ();
setcolor (BLUE);
rectangle (x, y, x+w, y+h);
setcolor (clr);
setbkcolor (BLUE);
int ht = textheight (text);
outtextxy (x+5,y+(h-ht)/2,text);
}
void ListItem: Erase (){
//int clr = getcolor ();
//setcolor (BLUE);
bar (x, y, x+w-1,y+h);
//setcolor (clr);
}
ListBox:ListBox (){ //puts («ListBox ()»);
x = 0; y = 0; w = 200; h = 100;
n = 0;
for (int i=0;i
Show ();
}
ListBox:ListBox (int xx, int yy, int ww, int hh){
char s[STR_LEN];
x = xx; y = yy; w = ww; h = hh;
n = 0;
Show ();
}
ListBox:~ListBox (){ //puts («~ListBox ()»);
for (int i=0;i
}
void ListBox: Add (char *s){
if (n<8){
lItem[n] = new ListItem (x+1, y+n*LINE_HEIGHT+1, w, LINE_HEIGHT, s);
n++;
}
}
void ListBox: AddSeveral (int k){
char s[1];
if (k>=0&&k<=STR_MAX){
for (int i=0;i
sprintf (s," %d", i+1);
lItem[i] = new ListItem (x+1, y+i*LINE_HEIGHT+1, w, LINE_HEIGHT, s);
n++;
}
}
}
void ListBox: UpdateRow (int k, char *text){ //printf («%dt%sn», k, text);
lItem[—k]->setText (text);
lItem[k]->Show ();
}
void ListBox: Clear (){
for (int i=0;i
n=0;
}
void ListBox: Erase (){
for (int i=0;iErase ();
}
void ListBox: Show (){
rectangle (x, y, x+w, y+h);
}
void ListBox: Count (){
printf («n=%dn», n);
}
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 11. Π€Π°ΠΉΠ» main.cpp
#include
#include
#include «desk.h»
void *ptr = NULL;
int main (void){
int gd = DETECT, gm;
initgraph (&gd, &gm, «»);
Desk dsk;
dsk.Go ();
system («pause»);
closegraph ();
return 0;
}
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 12. ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ