ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Π˜Π³Ρ€Π° XONIX

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Высокая ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с ΡΠ·Ρ‹ΠΊΠΎΠΌ C, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ вСсь ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ C-ΠΊΠΎΠ΄ (ΠΊΠΎΠ΄ Π½Π° C ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»ΠΊΠ°ΠΌΠΈ скомпилирован компилятором C++; Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, написанныС Π½Π° C, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Ρ‹ ΠΈΠ· C++ нСпосрСдствСнно Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Ρ‚Ρ€Π°Ρ‚, Π² Ρ‚ΠΎΠΌ числС ΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π°, позволяя Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌ, написанным Π½Π° C, Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, написанный Π½Π°… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π˜Π³Ρ€Π° XONIX (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠœΠ˜ΠΠ˜Π‘Π’Π•Π Π‘Π’Π’Πž ΠžΠ‘Π ΠΠ—ΠžΠ’ΠΠΠ˜Π― И ΠΠΠ£ΠšΠ˜, ΠœΠžΠ›ΠžΠ”Π•Π–Π˜ И Π‘ПОРВА УКРАИНЫ ΠœΠ˜ΠΠ˜Π‘Π’Π•Π Π‘Π’Π’Πž ΠžΠ‘Π ΠΠ—ΠžΠ’ΠΠΠ˜Π― И ΠΠΠ£ΠšΠ˜, ΠœΠžΠ›ΠžΠ”Π•Π–Π˜ И Π‘ПОРВА АРК ΠšΠ£Π Π‘ΠžΠ’ΠΠ― Π ΠΠ‘ΠžΠ’Π ΠΏΠΎ ΡƒΡ‡Π΅Π±Π½ΠΎΠΉ дисциплинС

«ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅»

Π½Π° Ρ‚Π΅ΠΌΡƒ

«Π˜Π³Ρ€Π° XONIX»

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π“Π»Π°Π²Π° 1. Анализ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° прилоТСния-ΠΈΠ³Ρ€Ρ‹ XONIX

1.1 Анализ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ прилоТСния ΠΈ ΠΏΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

1.2 Анализ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ систСмы с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ UML

1.2.1 UML — Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€Π΅Ρ†Π΅Π΄Π΅Π½Ρ‚ΠΎΠ²

1.2.2 UML — Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классов

1.2.3 UML — Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° состояния классов

1.2.4 UML — Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π’Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΏΠΎ I Π³Π»Π°Π²Π΅ Π“Π»Π°Π²Π° II. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° прилоТСния-ΠΈΠ³Ρ€Ρ‹ XONIX

2.1 Π’Ρ‹Π±ΠΎΡ€ языка программирования

2.2 Π’Ρ‹Π±ΠΎΡ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ срСды для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

2.3 ОписаниС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… классов

2.4 Анализ рСсурсов ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

2.5 Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ прилоТСния XONIX

Π’Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΏΠΎ II Π³Π»Π°Π²Π΅ Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Бписок использованной Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ основой управлСния процСссом Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ являСтся ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° сообщСний ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒΡΡ совмСстно с ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΡΠΌΠΈ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ ΡΡ‚ΠΎΠΌ состоит Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ООП ΠΎΡ‚ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠ³ΠΎ программирования, Π³Π΄Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ структуры Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ (Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ) Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ориСнтированная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° состоит ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² — ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠ΄Π°, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ интСрфСйсы.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°-ΠΈΠ³Ρ€Π° XONIX способствуСт Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ логичСского ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΡ ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΠΈ Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ. Π’ ΠΈΠ³Ρ€Π΅ Π΅ΡΡ‚ΡŒ условия Π²Ρ‹ΠΈΠ³Ρ€Ρ‹ΡˆΠ° ΠΈ ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹ΡˆΠ°, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Π° Ρ€Π΅ΠΊΠΎΡ€Π΄ΠΎΠ², Ρ‡Ρ‚ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² ΡΡ‚Ρ€Π΅ΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚ΡŒ ΠΈ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΊΠΎΡ€Π΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ рСкордсмСном.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΌΠΈΠ½ΠΈ ΠΈΠ³Ρ€ являСтся Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΈΠΌ процСссом, ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‰ΠΈΠΌ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Π²Ρ‹ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Для создания ΠΌΠΈΠ½ΠΈ ΠΈΠ³Ρ€Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ всСвозмоТныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΠ³Ρ€Ρ‹ ΠΈ Π΅Π΅ Π»ΠΎΠ³ΠΈΠΊΡƒ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ процСсс взаимодСйствия ΠΈΠ³Ρ€Ρ‹ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, условия Π²Ρ‹ΠΈΠ³Ρ€Ρ‹ΡˆΠ°, фиксации Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΈ Ρ‚. ΠΏ.

Π­Ρ‚ΠΎ обСспСчиваСт Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ.

ЦСлью Π΄Π°Π½Π½ΠΎΠΉ курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ являСтся написаниС ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ прилоТСния-ΠΈΠ³Ρ€Ρ‹, ΡΠΌΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ процСсс Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠ½ΠΈ-ΠΈΠ³Ρ€Ρ‹ XONIX.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Π΄Π°Π½Π½ΠΎΠΉ курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ являСтся процСсс ΠΈΠ³Ρ€Ρ‹ XONIX.

ΠŸΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠΌ являСтся логичСская ΠΈΠ³Ρ€Π° XONIX

Для достиТСния поставлСнной Ρ†Π΅Π»ΠΈ Π±Ρ‹Π»ΠΈ поставлСны ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ:

1. Π˜Π·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΈΠ³Ρ€Ρ‹;

2. Π˜Π·ΡƒΡ‡ΠΈΡ‚ΡŒ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Microsoft Visual Studio 2008;

3. ΠŸΡ€ΠΈΠΎΠ±Ρ€Π΅ΡΡ‚ΠΈ тСорСтичСскиС свСдСния ΠΈ ΠΏΡ€Π°ΠΊΡ‚ичСскиС Π½Π°Π²Ρ‹ΠΊΠΈ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ;

4. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ UMLΠ΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ для прСдставлСния ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… слоТных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… систСм прилоТСния;

— Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅;

— Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ ΠΏΡ€Π΅Ρ†Π΅Π΄Π΅Π½Ρ‚ΠΎΠ² для ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ систСмы;

— Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ состояния классов;

— Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ классов Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅;

5. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΈ ΠΏΠΎΠ½ΡΡ‚Π½Ρ‹ΠΉ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ интСрфСйс ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹;

6. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠΏΡ€Π°Π²ΠΎΡ‡Π½ΡƒΡŽ систСм, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ свСдСния ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈ Π΅Π³ΠΎ использовании;

Данная Ρ€Π°Π±ΠΎΡ‚Π° ΠΈΠΌΠ΅Π΅Ρ‚ свою структуру ΠΈ ΡΠΎΡΡ‚ΠΎΠΈΡ‚ ΠΈΠ· Π²Π²Π΅Π΄Π΅Π½ΠΈΡ, Π΄Π²ΡƒΡ… Π³Π»Π°Π² ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

ΠŸΠ΅Ρ€Π²Π°Ρ Π³Π»Π°Π²Π° содСрТит Π² ΡΠ΅Π±Π΅ тСорСтичСскиС свСдСния, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прилоТСния, ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚авляСт Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ языка UML, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ классы ΠΈ ΠΏΠΎΡΡΠ½ΡΡŽΡ‚ ΠΈΡ… Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΠ΅.

Вторая Π³Π»Π°Π²Π° содСрТит описаниС Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прилоТСния. Π’ Π½Π΅ΠΉ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ся созданныС ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ классы. Π’Π°ΠΊ ΠΆΠ΅ рассматриваСтся созданиС интСрфСйса ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π΅Π³ΠΎ структурныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

Π“Π»Π°Π²Π° 1. Анализ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° прилоТСния-ΠΈΠ³Ρ€Ρ‹ XONIX

1.1 Анализ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ прилоТСния ΠΈ ΠΏΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

ΠŸΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½Π°Ρ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСна ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ ΠΈΠ³Ρ€Ρ‹ XONIX, с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… создавалось ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈ Ρ‚рСбованиям ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ½ΠΎ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚.

«Π˜Π³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ прСдставляСт собой сСтку ΠΈΠ· ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ячССк.

Π―Ρ‡Π΅ΠΉΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Π²ΡƒΡ… Ρ‚ΠΈΠΏΠΎΠ²: условно «ΡΡƒΡˆΠ°» ΠΈ «ΠΌΠΎΡ€Π΅». По ΠΏΠΎΠ»ΡŽ двиТутся управляСмый ΠΈΠ³Ρ€ΠΎΠΊΠΎΠΌ курсор ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ. ΠšΡƒΡ€ΡΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ, Ρ‚ΠΎΡ‡ΠΊΠΈ — ΠΏΠΎ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ. Π’ΠΎΡ‡ΠΊΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚ «ΡΡƒΡ…ΠΎΠΏΡƒΡ‚Π½Ρ‹ΠΌΠΈ» ΠΈ «ΠΌΠΎΡ€ΡΠΊΠΈΠΌ», Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ двиТутся ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ «ΡΡƒΡˆΠ΅», ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ «ΠΌΠΎΡ€ΡŽ», отскакивая ΠΎΡ‚ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‰Π΅ΠΉ ΠΈΡ… Π³Ρ€Π°Π½ΠΈΡ†Ρ‹.

ΠšΡƒΡ€ΡΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ свободно ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ ΠΏΠΎ «ΡΡƒΡˆΠ΅», Π³Π΄Π΅ ΠΎΠ½ ΡƒΡΠ·Π²ΠΈΠΌ для «ΡΡƒΡ…ΠΎΠΏΡƒΡ‚Π½Ρ‹Ρ…» Ρ‚ΠΎΡ‡Π΅ΠΊ. Выходя Π² «ΠΌΠΎΡ€Π΅», ΠΎΠ½ ΠΎΡΡ‚авляСт Π·Π° ΡΠΎΠ±ΠΎΠΉ слСд, уязвимый для «ΠΌΠΎΡ€ΡΠΊΠΈΡ…» Ρ‚ΠΎΡ‡Π΅ΠΊ. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ курсор снова оказываСтся Π½Π° «ΡΡƒΡˆΠ΅», слСд Π΅Π³ΠΎ прСвращаСтся Π² Π½ΠΎΠ²ΡƒΡŽ «ΡΡƒΡˆΡƒ». Если ΠΏΡ€ΠΈ этом Π² «ΠΌΠΎΡ€Π΅» появилась замкнутая ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰Π°Ρ Ρ‚ΠΎΡ‡Π΅ΠΊ, Ρ‚ΠΎ Π²ΡΡ эта ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ прСвращаСтся Π² «ΡΡƒΡˆΡƒ».

Π˜Π³Ρ€ΠΎΠΊ, управляя курсором, пытаСтся ΠΎΡ‚ΡΠ΅Ρ‡ΡŒ куски «ΠΌΠΎΡ€Ρ», прСвращая ΠΈΡ… Π² «ΡΡƒΡˆΡƒ», Π° Ρ‚ΠΎΡ‡ΠΊΠΈ Π΅ΠΌΡƒ Π² ΡΡ‚ΠΎΠΌ ΠΌΠ΅ΡˆΠ°ΡŽΡ‚".

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области Π±Ρ‹Π»ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

— Π˜Π³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ с ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠ΅ΠΉ 4:3;

— ΠΠ°Π±ΠΎΡ€ «Π²Ρ€Π°ΠΆΠ΅ΡΠΊΠΈΡ…» Ρ‡Π΅Ρ€Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ;

— ΠΠ°Π±ΠΎΡ€ «Π²Ρ€Π°ΠΆΠ΅ΡΠΊΠΈΡ…» Π±Π΅Π»Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ;

— Π’ΠΎΡ‡ΠΊΠ°-курсор ΠΈΠ³Ρ€ΠΎΠΊΠ°;

— ΠžΠ±Π»Π°ΡΡ‚ΡŒ поля «ΡΡƒΡˆΠ°»

— ΠžΠ±Π»Π°ΡΡ‚ΡŒ поля «ΠΌΠΎΡ€Π΅»

Для удобства Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ интСрфСйса прилоТСния Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ взаимодСйствиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ манипулятивныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π°Π±ΠΎΡ€Π° клавиш-стрСлок.

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ³Ρ€Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅, располоТСниС курсора ΠΈΠ³Ρ€ΠΎΠΊΠ° ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ количСства враТСских Ρ‡Π΅Ρ€Π½Ρ‹Ρ… ΠΈ Π±Π΅Π»Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ.

Π˜Π³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ прСдставляСт собой ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΡƒΡŽ сСтку Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 100×75 условных ΠΊΠ»Π΅Ρ‚ΠΎΡ‡Π΅ΠΊ, каТдая ΠΊΠ»Π΅Ρ‚ΠΎΡ‡ΠΊΠ° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ 6×6 пиксСлСй, с Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ΠΌ ΡƒΠΆΠ΅ частично Π·Π°ΠΊΡ€Π°ΡˆΠ΅Π½Π½ΠΎΠ³ΠΎ участка, ΡΠ²Π»ΡΡŽΡ‰Π΅Π³ΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΎΠΉ Π³Ρ€Π°Π½ΠΈΡ†Π΅ΠΉ области.

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ пСрСдвиТСния Ρ‚ΠΎΡ‡Π΅ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π±Π΅Π· использования Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… рСсурсов, Π° ΠΏΡƒΡ‚Π΅ΠΌ Π·Π°ΠΊΡ€Π°ΡˆΠΈΠ²Π°Π½ΠΈΡ ΠΊΠ»Π΅Ρ‚ΠΎΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ.

Визуализация слСда курсора Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° ΠΏΡƒΡ‚Π΅ΠΌ Ρ‡Π΅Ρ€Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π·Π°ΠΊΡ€Π°ΡˆΠΈΠ²Π°Π½ΠΈΡ слСдовой полосы ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ.

1.2 Анализ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ систСмы с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ UML

1.2.1 UML — Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€Π΅Ρ†Π΅Π΄Π΅Π½Ρ‚ΠΎΠ²

ΠŸΡ€Π΅Ρ†Π΅Π΄Π΅Π½Ρ‚ — это ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, выполняСмых систСмой, которая ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π·Π½Π°Ρ‡ΠΈΠΌΠΎΠΌΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π°ΠΊΡ‚Π΅Ρ€Π°.

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€Π΅Ρ†Π΅Π΄Π΅Π½Ρ‚ΠΎΠ² — это графичСскоС прСдставлСниС всСх ΠΈΠ»ΠΈ части Π°ΠΊΡ‚Π΅Ρ€ΠΎΠ², ΠΏΡ€Π΅Ρ†Π΅Π΄Π΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΈΡ… Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΠ΅ Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€Π΅Ρ†Π΅Π΄Π΅Π½Ρ‚ΠΎΠ² модСлируСтся Π΄ΠΈΠ°Π»ΠΎΠ³ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΈ ΡΠΈΡΡ‚Π΅ΠΌΠΎΠΉ. ΠŸΡ€Π΅Ρ†Π΅Π΄Π΅Π½Ρ‚Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ возмоТности, обСспСчиваСмыС систСмой для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€Π΅Ρ†Π΅Π΄Π΅Π½Ρ‚ΠΎΠ² (ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 1)

1.2.2 UML — Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классов

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ классов ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Ρ„ΠΎΡ€ΠΌ статичСского описания систСмы с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π΅Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ирования, отобраТая Π΅Π΅ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ, показывая Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. На Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ°Ρ… ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊ ΠΆΠ΅ интСрфСйсы, классы ΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ.

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классов (ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 2)

1.2.3 UML — Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ состояния классов

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° состояний это Π³Ρ€Π°Ρ„ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°, Π²Ρ‹Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΉ динамичСскоС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ сущностСй, Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ спСцификации ΠΈΡ… Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ Π½Π° Π²ΠΎΡΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… событий. Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° состояния классов описываСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ состояний ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΠΈ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΡŽΡ‚ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ элСмСнта ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π΅Π³ΠΎ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°.

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ состояний Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… классов (ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 3)

1.2.4 UML — Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ — это Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ°, примСняСмая Π² UML для модСлирования динамичСских аспСктов повСдСния систСмы.

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ дСйствия, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. Они ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой схСмы ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² управлСния Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅ ΠΎΡ‚ Π΄Π΅ΠΉΡΡ‚вия ΠΊ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ дСйствия ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΈ.

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 4)

Π’Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΏΠΎ I Π³Π»Π°Π²Π΅

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π³Π»Π°Π²Π΅ курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ‹Π»Π° ΠΈΠ·ΡƒΡ‡Π΅Π½Π° прСдмСтная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π΅ΠΌΠ΅, поставлСны Ρ†Π΅Π»ΠΈ ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π² Ρ…ΠΎΠ΄Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π‘Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ ΠΈ ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½Ρ‹ UML-Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹.

Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ интСрфСйс

Π“Π»Π°Π²Π° II. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° прилоТСния-ΠΈΠ³Ρ€Ρ‹ XONIX

2.1 Π’Ρ‹Π±ΠΎΡ€ языка программирования

Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прилоТСния ΠΈΠ³Ρ€Ρ‹ XONIX Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ язык программирования Π‘++. Он Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ подсистСму ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования Π² ΠΈΡΡ…ΠΎΠ΄Π½ΠΎ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΉ язык.

C++ — ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ статичСски Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹ программирования, сочСтаСт свойства ΠΊΠ°ΠΊ высокоуровнСвых, Ρ‚Π°ΠΊ ΠΈ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… языков. Π’ Π‘++ наибольшСС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π΅Π»Π΅Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈ ΠΎΠ±ΠΎΠ±Ρ‰Ρ‘Π½Π½ΠΎΠ³ΠΎ программирования.

Являясь ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΌΡ‹Ρ… популярных языков программирования, C++ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. ΠžΠ±Π»Π°ΡΡ‚ΡŒ Π΅Π³ΠΎ примСнСния Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ созданиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² устройств, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для встраиваСмых систСм, Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… сСрвСров, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Π²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²ΠΈΠ΄Π΅ΠΎΠΈΠ³Ρ€Ρ‹).

C++ — Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ язык, содСрТащий срСдства создания эффСктивных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ практичСски любого назначСния, ΠΎΡ‚ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² Π΄ΠΎ ΡΠ»ΠΎΠΆΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… комплСксов самого Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ назначСния.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ стили ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ программирования, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ООП, ΠΎΠ±ΠΎΠ±Ρ‰Ρ‘Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΌΠ΅Ρ‚Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, макросы).

ΠŸΡ€Π΅Π΄ΡΠΊΠ°Π·ΡƒΠ΅ΠΌΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ являСтся Π²Π°ΠΆΠ½Ρ‹ΠΌ достоинством для построСния систСм Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π’Π΅ΡΡŒ ΠΊΠΎΠ΄, нСявно Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ компилятором для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ языковых возмоТностСй, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½ Π² ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π΅. Π’Π°ΠΊΠΆΠ΅ строго ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ мСста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… этот ΠΊΠΎΠ΄ выполняСтся. Π­Ρ‚ΠΎ Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΌΠ΅Ρ€ΡΡ‚ΡŒ ΠΈΠ»ΠΈ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ врСмя Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π²Π½Π΅ΡˆΠ½Π΅Π΅ событиС.

АвтоматичСский Π²Ρ‹Π·ΠΎΠ² дСструкторов ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΈ ΠΈΡ… ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΏΡ€ΠΈΡ‡Ρ‘ΠΌ Π² ΠΏΠΎΡ€ΡΠ΄ΠΊΠ΅, ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Ρƒ конструкторов. Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Ρ‘ΠΆΠ½Ρ‹ΠΌ освобоТдСниС рСсурсов, Π° Ρ‚Π°ΠΊΠΆΠ΅ позволяСт Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹ состояний ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ связанныС с ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ рСсурсов.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΊΡ€Π°Ρ‚ΠΊΠΎ ΠΈ Ρ‘ΠΌΠΊΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ выраТСния Π½Π°Π΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π² Π΅ΡΡ‚СствСнной алгСбраичСской Ρ„ΠΎΡ€ΠΌΠ΅.

Π―Π·Ρ‹ΠΊ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ понятия физичСской ΠΈ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΠΎΠΉ константности. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π°Π΄Ρ‘ΠΆΠ½Π΅Π΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ позволяСт компилятору, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄ΠΈΠ°Π³Π½ΠΎΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹Π΅ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ измСнСния значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ОбъявлСниС константности Π΄Π°Ρ‘Ρ‚ программисту, Ρ‡ΠΈΡ‚Π°ΡŽΡ‰Π΅ΠΌΡƒ тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ прСдставлСниС ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ использовании классов ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ подсказкой для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠŸΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ-Ρ‡Π»Π΅Π½ΠΎΠ² ΠΏΠΎ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΡƒ константности позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΈΠ·Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ†Π΅Π»ΠΈ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. ОбъявлСниС mutable позволяСт ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΊΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ использовании кэшСй ΠΈ Π»Π΅Π½ΠΈΠ²Ρ‹Ρ… вычислСний.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ±ΠΎΠ±Ρ‰Ρ‘Π½Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ для Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ Π½Π° ΡΡ‚Π°ΠΏΠ΅ компиляции.

БущСствуСт Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠΌΠΈΡ‚Π°Ρ†ΠΈΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ языка для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ся компиляторами Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ.

ΠŸΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания встроСнных ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… языков программирования.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ΅ наслСдованиС ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ классы-примСси ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ‚ΠΎΡ€Π½ΡƒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·Π°Ρ†ΠΈΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ языка Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ трСбования Π½Π° Π­Π’Πœ для запуска скомпилированных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Для опрСдСлСния Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… свойств систСмы выполнСния Π² ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ возмоТности (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, std: numeric_limits). Доступны компиляторы для большого количСства ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ C++ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для самых Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ ΠΈ ΡΠΈΡΡ‚Π΅ΠΌ.

Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ. Π―Π·Ρ‹ΠΊ спроСктирован Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Ρ‚ΡŒ программисту ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ всСми аспСктами структуры ΠΈ ΠΏΠΎΡ€ΡΠ΄ΠΊΠ° исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Ни ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ·Ρ‹ΠΊΠΎΠ²Ρ‹Ρ… возмоТностСй, приводящая ΠΊ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹ΠΌ расходам, Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ для использования — ΠΏΡ€ΠΈ нСобходимости язык позволяСт ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Высокая ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с ΡΠ·Ρ‹ΠΊΠΎΠΌ C, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ вСсь ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ C-ΠΊΠΎΠ΄ (ΠΊΠΎΠ΄ Π½Π° C ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»ΠΊΠ°ΠΌΠΈ скомпилирован компилятором C++; Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, написанныС Π½Π° C, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Ρ‹ ΠΈΠ· C++ нСпосрСдствСнно Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Ρ‚Ρ€Π°Ρ‚, Π² Ρ‚ΠΎΠΌ числС ΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π°, позволяя Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌ, написанным Π½Π° C, Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, написанный Π½Π° Π‘++).

2.2 Π’Ρ‹Π±ΠΎΡ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ срСды для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прилоТСния-ΠΈΠ³Ρ€Ρ‹ XONIX Π±Ρ‹Π»Π° использована срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Microsoft Visual Studio 2008

Microsoft Visual Studio — это Π½Π°Π±ΠΎΡ€ инструмСнтов ΠΈ ΡΡ€Π΅Π΄ΡΡ‚Π², ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ любого уровня ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ слоТных Π·Π°Π΄Π°Ρ‡ ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ новаторских Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния часто приходится Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ряд ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΡƒΠ΄Π°Ρ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Роль Visual Studio Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ высокоэффСктивных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

БрСдства Visual Studio ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π±ΠΎΠ»ΡŒΡˆΠ΅ΠΉ ΠΎΡ‚Π΄Π°Ρ‡Π΅ΠΉ ΠΈ Π·Π°Ρ‚Ρ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ мСньшС усилий Π½Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ Π·Π°Π΄Π°Ρ‡ΠΈ.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΊΠΎΠ΄Π°, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ IntelliSense, мастСров ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языков кодирования Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ срСдС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (IDE), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹ управлСния ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (ALM) Π² Microsoft® Visual Studio® Team System.

Π’ Π½ΠΎΠ²Ρ‹Ρ… вСрсиях Visual Studio постоянно ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅ срСдства, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ основных ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π° Π½Π΅ Π½Π° Ρ€ΡƒΡ‚ΠΈΠ½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠ΅ Visual Studio, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Π² ΡΠ²ΠΎΠ΅ распоряТСниС ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ инструмСнты, сСрвСры ΠΈ ΡΠ»ΡƒΠΆΠ±Ρ‹. ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹ Visual Studio ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ вмСстС — Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ, Π½ΠΎ ΠΈ Ρ ΠΏΡ€ΠΎΡ‡ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ ΠœΠ°ΠΉΠΊΡ€ΠΎΡΠΎΡ„Ρ‚, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ сСрвСрныС ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹ ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Microsoft Office.

Π’ Visual Studio содСрТатся инструмСнты для всСх этапов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния (Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, тСстированиС, Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅, интСграция ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ) ΠΈ Π΄Π»Ρ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² любого уровня ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, ΠΎΡ‚ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² Π΄ΠΎ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… спСциалистов.

Visual Studio ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² устройств — ПК, сСрвСров, сСтСвых ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств.

MicrosoftVisualStudio 2008 — срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ для проСктирования, создания ΠΈ Ρ‚Сстирования Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ поколСния Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ MicrosoftWindows, Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π²Π΅Π±-слуТб. Π—Π° ΡΡ‡Π΅Ρ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ WindowsVista, систСмы MicrosoftOffice 2007, ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств ΠΈ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° VisualStudio 2008

ΠŸΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌ компаниям быстро ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ Π²Π½Π΅Π΄Ρ€ΡΡ‚ΡŒ комплСксныС, основанныС Π½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ сСти, ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚оспособныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ с ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²Ρ‹ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ интСрфСйсами.

2.3 ОписаниС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… классов

Π’ Ρ…ΠΎΠ΄Π΅ выполнСния курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ‹Π» создан Π½Π°Π±ΠΎΡ€ классов для управлСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ.

Класс CDialogName осущСствляСт Π²Π²ΠΎΠ΄ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ³Ρ€ΠΎΠΊΠ° послС окончания сСанса ΠΈΠ³Ρ€Ρ‹ (рис 2.42).

class CDialogName: public CDialog

{

DECLARE_DYNAMIC (CDialogName)

public:

CDialogName (CWnd* pParent = NULL);

virtual ~CDialogName ();

enum { IDD = IDD_NAME };

protected:

virtual void DoDataExchange (CDataExchange* pDX);

DECLARE_MESSAGE_MAP ()

public:

CString name;

};

Класс CDialogResults осущСствляСт Π²Π²ΠΎΠ΄ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ³Ρ€ΠΎΠΊΠ° послС окончания сСанса ΠΈΠ³Ρ€Ρ‹ (рис 2.42).

class CDialogResults: public CDialog

{

DECLARE_DYNAMIC (CDialogResults)

public:

CDialogResults (CWnd* pParent = NULL); // standard constructor

virtual ~CDialogResults ();

enum { IDD = IDD_RESULTS };

protected:

virtual void DoDataExchange (CDataExchange* pDX); DECLARE_MESSAGE_MAP ()

public:

CResultsWnd results;

public:

virtual BOOL OnInitDialog ();

};

Класс CMainFrame осущСствляСт Π²Ρ‹Π²ΠΎΠ΄ основного ΠΎΠΊΠ½Π° прилоТСния (рис 2.42).

class CMainFrame: public CFrameWnd

{

protected:

CMainFrame ();

DECLARE_DYNCREATE (CMainFrame)

public:

virtual BOOL PreCreateWindow (CREATESTRUCT& cs);

public:

virtual ~CMainFrame ();

#ifdef _DEBUG

virtual void AssertValid () const;

virtual void Dump (CDumpContext& dc) const;

#endif

DECLARE_MESSAGE_MAP ()

public:

afx_msg void OnGameResults ();

public:

afx_msg void OnGamePause ();

public:

afx_msg void OnUpdateGamePause (CCmdUI *pCmdUI);

public:

afx_msg void OnGameLoad ();

public:

afx_msg void OnGameSave ();

};

Класс CPainter являСтся ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π·Π°Π»ΠΈΠ²ΠΎΡ‡Π½Ρ‹ΠΌ классом ΠΈ Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ всСвозмоТной Π·Π°Π»ΠΈΠ²ΠΊΠΈ областСй.

class CPainter

{

protected:

int k_point1;

int max_point1;

CPoint* m_point1;

int k_point2;

int max_point2;

CPoint* m_point2;

int* k1,*k2, *max1, *max2;

CPoint** m1, **m2;

bool part;

int k_direction;

CPoint m_direction[8];

public:

CPainter (bool directions4_8);

public:

virtual ~CPainter (void);

void Clear ();

int Fill (int x, int y);

protected:

int ContinueFill ();

virtual void ProcessingCell (int x, int y){}

virtual void* GetCell (int x, int y)=0;

virtual void FillCell (int x, int y)=0;

virtual bool IfWas (void* ptr)=0;

virtual bool IfHalt (void* ptr){return false;}

virtual bool IfFill (void* ptr)=0;

virtual int CorrectResult (int result){return result;}

};

Класс CPainterMap являСтся Π·Π°Π»ΠΈΠ²ΠΎΡ‡Π½Ρ‹ΠΌ классом с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния областно-адрСсной ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ.

class CPainterMap: public CPainter

{

protected:

CXonixDoc* pDoc;

int cell;

int color_fill;

bool is_white;

public:

CPainterMap (CXonixDoc* pDoc, int color_fill);

public:

virtual ~CPainterMap (void);

virtual void* GetCell (int x, int y);

virtual void FillCell (int x, int y);

virtual bool IfWas (void* ptr);

virtual bool IfHalt (void* ptr);

virtual bool IfFill (void* ptr);

int CorrectResult (int result);

};

Класс CResults являСтся классом для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Ρ€Π΅ΠΊΠΎΡ€Π΄ΠΎΠ². Он ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅, Π°Π½Π°Π»ΠΈΠ·, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ достиТСниС ΠΈΠ³Ρ€ΠΎΠΊΠ°.

class CResults

{

protected:

int k_result;

RESULT m_result[MAX_RESULT];

public:

CResults (void);

public:

virtual ~CResults (void);

static CResults& GetInstance ();

void Add (RESULT* r);

bool IsAddResult (int score);

int GetCount (){return k_result;}

RESULT* GetResult (int index){return &(m_result[index]);}

protected:

CString GetFile ();

void Serialize (CArchive& ar);

};

Класс CResultsWnd являСтся классом для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ€Π΅ΠΊΠΎΡ€Π΄ΠΎΠ².

class CResultsWnd: public CStatic

{

protected:

CResults* results;

CFont font;

private:

DECLARE_DYNAMIC (CResultsWnd)

public:

CResultsWnd ();

virtual ~CResultsWnd ();

void SetResults (CResults* results){this->results=results;}

protected:

DECLARE_MESSAGE_MAP ()

public:

afx_msg BOOL OnEraseBkgnd (CDC* pDC);

public:

afx_msg void OnPaint ();

};

Класс CXonixApp являСтся классом для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ€Π΅ΠΊΠΎΡ€Π΄ΠΎΠ².

class CXonixApp: public CWinApp

{

public:

CXonixApp ();

public:

virtual BOOL InitInstance ();

afx_msg void OnAppAbout ();

DECLARE_MESSAGE_MAP ()

};

extern CXonixApp theApp;

Класс CXonixDoc являСтся основным классом ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ элСмСнты управлСния Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ, счСтом, уровнями ΠΈΠ³Ρ€Ρ‹. Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΈΡ… Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΠ΅.

class CXonixDoc: public CDocument

{

protected:

CBitmap bmp_map;

CDC map;

CPset my;

bool cut;

int k_white;

CPset* m_white;

int k_black;

CPset* m_black;

int max_black;

int period_black;

int timer_black;

CPoint m_direction[D_RIGHT_BOTTOM+1];

int m_directing_change[D_RIGHT_BOTTOM+1][4];

int mode;

int score;

int level;

int life;

int cell;

protected:

CXonixDoc ();

DECLARE_DYNCREATE (CXonixDoc)

public:

CDC* GetMap (){return ↦}

public:

void InitMap ();

void RestartMap ();

int Service ();

bool Go (CPset* pset, bool is_black);

int Get (int x, int y);

void Draw (int x, int y, int color);

int GetPercentVictory ();

void NextLevel ();

int GetMode (){return mode;}

void SetMode (int mode){this->mode=mode;}

CPset* GetMy (){return &my;}

int GetScore (){return score;}

int GetCell (){return cell;}

void AddCell (int add){cell+=add;}

int GetLevel (){return level;}

int GetLife (){return life;}

void AddLife (int add){life+=add;}

public:

virtual BOOL OnNewDocument ();

virtual void Serialize (CArchive& ar);

public:

virtual ~CXonixDoc ();

#ifdef _DEBUG

virtual void AssertValid () const;

virtual void Dump (CDumpContext& dc) const;

#endif

protected:

protected:

DECLARE_MESSAGE_MAP ()

};

Класс CXonixPainter являСтся классом ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π·Π°Π»ΠΈΠ²ΠΊΠΈ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π½ΠΎΠΉ ΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½Ρ‡Π΅ΡΠΊΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния.

class CXonixPainter :

public CPainter

{

protected:

CXonixDoc* pDoc;

int cell;

int fill_other;

int fill_other_result[4];

public:

CXonixPainter (CXonixDoc* pDoc);

public:

virtual ~CXonixPainter (void);

virtual void ProcessingCell (int x, int y);

virtual void* GetCell (int x, int y);

virtual void FillCell (int x, int y);

virtual bool IfWas (void* ptr);

virtual bool IfFill (void* ptr);

int CorrectResult (int result);

};

Класс CXonixView являСтся классом ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΆΠΈΠ·Π½ΠΈ, уровня, счСта, уровня ΠΏΠΎΠ±Π΅Π΄Ρ‹.

class CXonixView: public CView

{

protected:

UINT_PTR timer;

CFont font;

CFont font_title;

int info_height;

int simbol_width;

protected:

CXonixView ();

DECLARE_DYNCREATE (CXonixView)

public:

CXonixDoc* GetDocument () const;

CString GetLevelText ();

CString GetLifeText ();

CString GetScoreText ();

CString GetPercentText ();

int GetInfoHeight (){return info_height;}

public:

virtual void OnDraw (CDC* pDC); // overridden to draw this view

virtual BOOL PreCreateWindow (CREATESTRUCT& cs);

public:

virtual ~CXonixView ();

#ifdef _DEBUG

virtual void AssertValid () const;

virtual void Dump (CDumpContext& dc) const;

#endif

protected:

DECLARE_MESSAGE_MAP ()

public:

afx_msg int OnCreate (LPCREATESTRUCT lpCreateStruct);

public:

afx_msg BOOL OnEraseBkgnd (CDC* pDC);

public:

afx_msg void OnDestroy ();

public:

afx_msg void OnTimer (UINT_PTR nIDEvent);

public:

afx_msg void OnKeyDown (UINT nChar, UINT nRepCnt, UINT nFlags);

};

#ifndef _DEBUG // debug version in XonixView. cpp

inline CXonixDoc* CXonixView: GetDocument () const

{ return reinterpret_cast (m_pDocument); }

#endif

2.4 Анализ рСсурсов ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ XONIX ΠΈΠΌΠ΅Π΅Ρ‚ свою Ρ€Π΅ΡΡƒΡ€ΡΠ½ΡƒΡŽ систСму, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСна Π² Π²ΠΈΠ΄Π΅ Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½ΠΎΠΉ структуры ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄ (рис 2.4.1)

Рис 2.4.1. РСсурсная систСма ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

ΠŸΠΎΠ΄ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° аксСлСратора содСрТит Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π½Π°Π±ΠΎΡ€Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΡ‹Ρ… Π² Ρ€Π°Π±ΠΎΡ‚Π΅ прилоТСния сочСтаний клавиш, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ (рис 2.4.2)

Рис 2.4.2. ΠŸΠΎΠ΄ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° аксСлСратора

ΠŸΠΎΠ΄ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π΄ΠΈΠ°Π»ΠΎΠ³Π° содСрТит всС Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π°, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ систСмС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π’ Ρ…ΠΎΠ΄Π΅ выполнСния курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ‹Π»ΠΎ создано Π΄Π²Π° Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠ½Π°: для создания ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи ΠΈΠ³Ρ€ΠΎΠΊΠ° для занСсСния Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² (рис 2.3.3) ΠΈ ΡΠ°ΠΌΠ° Ρ‚Π°Π±Π»ΠΈΡ†Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² (2.3.4), хранящая ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΈΠ³Ρ€ΠΎΠΊΠ°Ρ… Π² ΠΏΠΎΡ€ΡΠ΄ΠΊΠ΅ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ², формируя Ρ‚Π΅ΠΌ самым Ρ€Π΅ΠΊΠΎΡ€Π΄Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ.

Рис. 2.4.3. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Π½Π°Ρ Ρ„ΠΎΡ€ΠΌΠ° ΠΎΠΊΠ½Π° Π²Π²ΠΎΠ΄Π° ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи

Рис. 2.4.4. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Π½Π°Ρ Ρ„ΠΎΡ€ΠΌΠ° ΠΎΠΊΠ½Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²

ΠŸΠΎΠ΄ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΈΠΊΠΎΠ½ΠΎΠΊ содСрТит Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° *.bmp, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈΠΊΠΎΠ½ΠΊΠ°ΠΌΠΈ ΠΊ ΡΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΌ прилоТСниям (рис 2.3.5)

Рис 2.4.5. Иконка прилоТСния XONIX

ΠŸΠΎΠ΄ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° мСню содСрТит Ρ„ΠΎΡ€ΠΌΡƒ управлСния мСню, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ осущСствляСтся вСсь процСсс взаимодСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π˜ΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ΄ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ для Π½Π°Ρ‡Π°Π»Π° Π½ΠΎΠ²ΠΎΠΉ ΠΈΠ³Ρ€Ρ‹, сохранСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ сСанса, Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ Π²ΠΎΡΡΡ‚ановлСния сохранСнной ΠΈΠ³Ρ€Ρ‹, Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΏΠ°ΡƒΠ·Ρ‹ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (рис 2.4.6)

Рис 2.4.6. МСню прилоТСния XONIX

ΠŸΠΎΠ΄ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° сводочной Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ содСрТит ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ всСвозмоТных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Π½Π½Ρ‹Ρ… ΠΊ Π½ΠΈΠΌ ID, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹Ρ… Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ (рис 2.3.7)

Рис 2.4.7. Π’Π°Π±Π»ΠΈΡ†Π° сводки ΠΊΠΎΠΌΠ°Π½Π΄

ΠŸΠΎΠ΄ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ вСрсии содСрТит ΠΊΡ€Π°Ρ‚ΠΊΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ (рис 2.4.8)

Рис 2.4.8. Π‘Π²ΠΎΠ΄ΠΊΠ° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ содСрТит свою ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰ΡƒΡŽ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ создаваСмого прилоТСния.

2.5 Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ прилоТСния XONIX

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π±Ρ‹Π»ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅-ΠΈΠ³Ρ€Π° XONIX. ΠŸΡ€ΠΈ запускС прилоТСния открываСтся ΠΎΠΊΠ½ΠΎ с ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ (рис 2.4.1)

Рис 2.5.1. Π˜Π³Ρ€ΠΎΠ²Π°Ρ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ

Π˜Π³Ρ€Π° содСрТит мСню, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠΈΠ³Ρ€Ρƒ, ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ сСанс ΠΈΠ³Ρ€Ρ‹, ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ³Ρ€Ρƒ Π½Π° ΠΏΠ°ΡƒΠ·Ρƒ, Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Ρ€Π΅ΠΊΠΎΡ€Π΄ΠΎΠ² (рис 2.5.2).

Рис 2.5.2. МСню ΠΈΠ³Ρ€Ρ‹

Π’Π°ΠΊ ΠΆΠ΅ осущСствлСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Π²ΠΎΠ΄Π° ΠΈΠΌΠ΅Π½ΠΈ Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Ρ€Π΅ΠΊΠΎΡ€Π΄ΠΎΠ² послС ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹ΡˆΠ° (рис 2.5.3)

Рис 2.5.3. Π’Π²ΠΎΠ΄ ΠΈΠΌΠ΅Π½ΠΈ Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Ρ€Π΅ΠΊΠΎΡ€Π΄ΠΎΠ².

ВслСдствиС этих манипуляций Ρ‚Π°Π±Π»ΠΈΡ†Π° Ρ€Π΅ΠΊΠΎΡ€Π΄ΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄ (рис 2.44)

Рис 2.5.4. Π’Π°Π±Π»ΠΈΡ†Π° Ρ€Π΅ΠΊΠΎΡ€Π΄ΠΎΠ².

Π’Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΏΠΎ II Π³Π»Π°Π²Π΅

Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π³Π»Π°Π²Π΅ Π±Ρ‹Π»ΠΎ описано созданиС классов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для выполнСния поставлСнных Ρ†Π΅Π»Π΅ΠΉ ΠΈ Π·Π°Π΄Π°Ρ‡. Π£Π³Π»ΡƒΠ±Π»Π΅Π½Ρ‹ знания ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ срСдС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Microsoft Visual Studio, создан ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ интСрфСйс, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ игровая ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΈ ΠΌΠ΅Π½ΡŽ, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ способности ΠΈΠ³Ρ€Ρ‹.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ Ρ…ΠΎΠ΄Π΅ выполнСния курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ‹Π»Π° написана ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ «Π˜Π³Ρ€Π° «XONIX», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹:

Β· Визуализация ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ процСсса.

Β· ВзаимодСйствиС с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ;

Β· Π›ΠΎΠ³ΠΈΠΊΠ° ΠΈΠ³Ρ€Ρ‹;

Π˜Π³Ρ€Π° ΠΈΠΌΠ΅Π΅Ρ‚ условиС ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹ΡˆΠ°, ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ввСсти имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Ρ€Π΅ΠΊΠΎΡ€Π΄ΠΎΠ² ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ Π·Π°Π½ΠΎΠ²ΠΎ. ΠŸΡ€ΠΎΡ†Π΅ΡΡ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹ΡˆΠ° отсутствуСт, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΠ³Ρ€Ρƒ фактичСски бСсконСчной.

Π’ ΠΈΠ³Ρ€Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ курсор с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ клавиш-стрСлок, Ρ‚Π΅ΠΌ самым вычСрчивая области для заполнСния. АнимированноС Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ курсора ΠΈ Ρ‚ΠΎΡ‡Π΅ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΏΡƒΡ‚Π΅ΠΌ послСднСго Π·Π°ΠΊΡ€Π°ΡˆΠΈΠ²Π°Π½ΠΈΡ ΠΈ ΡΡ‚ирания ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… областСй поля.

Π‘Π°ΠΌΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Ρ€ΡƒΠΆΠ΅Π»ΡŽΠ±Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΉΡΡ простым для понимания Π½Π΅ΠΎΠΏΡ‹Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π’ Ρ…ΠΎΠ΄Π΅ выполнСния курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ‹Π»ΠΈ Ρ€Π΅ΡˆΠ΅Π½Ρ‹ поставлСнныС Π·Π°Π΄Π°Ρ‡ΠΈ:

Β· Π‘Ρ‹Π»Π° ΠΈΠ·ΡƒΡ‡Π΅Π½Π° прСдмСтная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΈΠ³Ρ€Ρ‹;

Β· Π—Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Ρ‹ тСорСтичСскиС полоТСния ΠΈ ΠΎΡΠ²ΠΎΠ΅Π½Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ практичСскиС Π½Π°Π²Ρ‹ΠΊΠΈ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ языком программирования Π‘++ ΠΈ ΡΡ€Π΅Π΄ΠΎΠΉ Microsoft Visual Studio 2008;

Β· Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ UMLΠ΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ для прСдставлСния ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… слоТных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… систСм:

Β§ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классов Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅;

§ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€Π΅Ρ†Π΅Π΄Π΅Π½Ρ‚ΠΎΠ² для ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ систСмы;

§ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ состояния классов;

§ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅;

Β· Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹;

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ классы:

Β· class CDialogName

Β· class CDialogResults

Β· class CMainFrame

Β· class CPainter

Β· class CPainterMap

Β· class CResults

Β· class CResultsWnd

Β· class CXonixApp

Β· class CXonixDoc

Β· class CXonixPainter

Β· class CXonixView

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ курсового ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±Ρ‹Π»ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½Ρ‹ тСорСтичСскиС полоТСния, ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ основы ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования. ΠŸΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½Ρ‹ Π½Π°Π²Ρ‹ΠΊΠΈ использования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования Π² ΡΡ€Π΅Π΄Π΅ MicrosoftVisualStudio 2008.

1. Иванова Π“. Π‘, ΠΠΈΡ‡ΡƒΡˆΠΊΠΈΠ½Π° Π’. Н., ΠŸΡƒΠ³Π°Ρ‡Π΅Π² Π•. К. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. 2001 Π³.

2. Π€Π°ΡƒΠ»Π΅Ρ€ М. UML. ΠžΡΠ½ΠΎΠ²Ρ‹: ΠΏΠ΅Ρ€. Ρ Π°Π½Π³Π». / М. Π€Π°ΡƒΠ»Π΅Ρ€, К. Π‘ΠΊΠΎΡ‚Ρ‚ — БПб: Π‘ΠΈΠΌΠ²ΠΎΠ»-Плюс, 2002. — 192 с.

3. Бкляров Π’. А. Π―Π·Ρ‹ΠΊ Π‘++ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΎΠ΅ пособиС Π“ΠΎΠ΄ издания: 1997.

4. ΠŸΠ°ΡƒΡΡ€Ρ Π›. MicrosoftVisualStudio 2008 «/ Π›. ΠŸΠ°ΡƒΡΡ€Ρ, М. Π‘Π½Π΅Π»Π» — БПб.: Π‘Π₯Π’ — ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³, 2009. — 1191 с.

5. Π₯ΠΎΠΌΠΎΠ½Π΅Π½ΠΊΠΎ А. Π”. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° C++. Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС для Π’Π£Π—ΠΎΠ², 2010. 512 c.

6. ЛСснСвский А. Π‘. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… — М.: Π‘ΠΈΠ½ΠΎΠΌ, 2005.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 1. Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€Π΅Ρ†Π΅Π΄Π΅Π½Ρ‚ΠΎΠ²

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 2 Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классов

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 3 Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ состояний Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… классов

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° состояний класса CResults

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° состояний класса CPainter

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° состояний класса CXonixView

UML Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ