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

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° класса ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ²

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

ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ «ΠΠ°ΠΈΠΌΠ΅Π½ΡŒΡˆΠΈΠΉ содСрТащий» создастся ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ содСрТащий Π² ΡΠ΅Π±Π΅ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ. По Ρ‚Π°ΠΊΠΎΠΌΡƒ ΠΆΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΠ° «ΠΏΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½ΠΈΠ΅», Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½Π° создаёт ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ содСрТащий пСрСсСчСниС Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ…. Π€Π“ΠžΠ£ Π’ΠŸΠž ΠšΠ°ΠΌΡ‡Π°Ρ‚ΡΠΊΠΈΠΉ ГосударствСнный ВСхничСский УнивСрситСт Π€Π°ΠΊΡƒΠ»ΡŒΡ‚Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠšΠ°Ρ„Π΅Π΄Ρ€Π° систСм управлСния… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

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

Π€Π“ΠžΠ£ Π’ΠŸΠž ΠšΠ°ΠΌΡ‡Π°Ρ‚ΡΠΊΠΈΠΉ ГосударствСнный ВСхничСский УнивСрситСт Π€Π°ΠΊΡƒΠ»ΡŒΡ‚Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠšΠ°Ρ„Π΅Π΄Ρ€Π° систСм управлСния ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠšΡƒΡ€ΡΠΎΠ²Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° Π’Π΅ΠΌΠ°: Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° класса ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ² ΠŸΠ΅Ρ‚Ρ€ΠΎΠΏΠ°Π²Π»ΠΎΠ²ΡΠΊ-ΠšΠ°ΠΌΡ‡Π°Ρ‚ΡΠΊΠΈΠΉ

ЦСль Ρ€Π°Π±ΠΎΡ‚Ρ‹ — созданиС класса ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ² со ΡΡ‚ΠΎΡ€ΠΎΠ½Π°ΠΌΠΈ ΠΏΠ°Ρ€Π°Π»Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ осям ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚.

Π—Π°Π΄Π°Ρ‡Π΅ΠΉ курсового проСктирования являСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ систСмы ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° (Π°Π½Π°Π»ΠΈΠ· Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ) Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° (тСстированиС ΠΈ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅-докумСнтация).

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

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ трСбования ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅

ΠšΡƒΡ€ΡΠΎΠ²Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ ΠΊΡƒΡ€ΡΡƒ «ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅» выполняСтся ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ студСнтом Π² ΡΠΎΠΎΡ‚вСтствии с Π²Ρ‹Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»Π΅ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ являСтся использованиС Π² ΠΊΡƒΡ€ΡΠΎΠ²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… классов.

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ класс ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ².

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой «Windows» ΠΈ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ программирования «Delphi».

Π’ ΠΊΠ»Π°ΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ прСдусмотрСнны возмоТности:

1. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΡ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ²;

2. ИзмСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ²;

3. ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ наимСньшСго ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°, содСрТащСго Π΄Π²Π° Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Π°ΠΊΠ°;

4. ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° ΡΠ²Π»ΡΡŽΡ‰Π΅Π³ΠΎΡΡ ΠΎΠ±Ρ‰Π΅ΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ (пСрСсСчСниСм) Π΄Π²ΡƒΡ… Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ²;

ОписаниС классов ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° содСрТит Π² ΡΠ΅Π±Π΅ Π΄Π²Π° основных класса: stack ΠΈ TForm1. stack являСтся классом стСка ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ². ВсС ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ хранятся Π² Π½Ρ‘ΠΌ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ся ΠΏΠΎ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠ°ΠΌ. TForm1 — класс Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Класс stack:

Π₯Ρ€Π°Π½ΠΈΡ‚ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ².

top: pNode;

Π’Π΅Ρ€ΡˆΠΈΠ½Π° стСка.

num: integer;

Π‘Ρ‡Ρ‘Ρ‚Ρ‡ΠΈΠΊ для задания ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… псСвдонимов.

constructor Create;

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€

destructor Destroy;

ДСструктор

function newRect (x, y, w, h: integer): string;

Ѐункция создания Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°.

procedure delRect (id: string);

Ѐункция удалСния ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°

procedure moveSize (id: string; x, y, w, h: integer);

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° для измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°

function find (id: string): pNode;

Ѐункция поиска ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° ΠΏΠΎ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡƒ.

Класс TForm1:

ListBox1: TListBox

Бписок ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ²

Button1: TButton;

Кнопка создания Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°

sel2: TLabel;

ПолС с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ

sel1: TLabel;

ПолС с Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ

Button2: TButton;

Кнопка для удалСния ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°

Editx: TEdit;

ПолС для Π²Π²ΠΎΠ΄Π° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ x

Edity: TEdit;

ПолС для Π²Π²ΠΎΠ΄Π° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ y

Editw: TEdit;

ПолС для Π²Π²ΠΎΠ΄Π° ΡˆΠΈΡ€ΠΈΠ½Ρ‹

Edith: TEdit;

ПолС для Π²Π²ΠΎΠ΄Π° высоты

Button3: TButton;

Кнопка для измСнСния состояния ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°

Button4: TButton;

Кнопка для построСния наимСньшСго ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° содСрТащСго Π² ΡΠ΅Π±Π΅ Π·Π°Π΄Π°Π½Π½Ρ‹Π΅.

Button5: TButton;

Кнопка для построСния ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° Π½Π° ΠΏΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½ΠΈΠΈ.

procedure FormCreate (Sender: TObject);

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° создания ΠΎΠΊΠ½Π°

procedure Button1Click (Sender: TObject);

Кнопка создания ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°

procedure ListBox1Click (Sender: TObject);

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° выдСлСния ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°

procedure FormPaint (Sender: TObject);

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° рисования

procedure Button3Click (Sender: TObject);

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° измСнСния состояния ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°

procedure Button2Click (Sender: TObject);

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° удалСния ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°

procedure Button4Click (Sender: TObject);

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° построСния наимСньшСго ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° содСрТащСго Π·Π°Π΄Π°Π½Π½Ρ‹Π΅

function min (a, b: integer): integer;

Π’ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ функция ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π°Ρ наимСньший элСмСнт.

function max (a, b: integer): integer;

Π’ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ функция ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π°Ρ наибольший элСмСнт.

procedure roll (var a, b: integer);

Π’ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ функция ΠΌΠ΅Π½ΡΡŽΡ‰Π°Ρ значСния ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² мСстами.

procedure Button5Click (Sender: TObject);

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° построСния ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° Π½Π° ΠΏΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½ΠΈΠΈ Π΄Π²ΡƒΡ… Π·Π°Π΄Π°Π½Π½Ρ‹Ρ…

s: stack;

Π‘Ρ‚Π΅ΠΊ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ².

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классов ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Руководство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

Для добавлСния ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° Π½Π°Π΄ΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ». Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ появится ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ со ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΌ располоТСниСм. ΠŸΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Π² ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΈ Π²Π²Π΅Π΄Ρ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ поля, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π½Π°ΠΆΠ°Π² «Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ». Π‘ΠΈΠ½ΠΈΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ: ярко синим — Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ, Ρ‚Ρ‘ΠΌΠ½ΠΎ синим — ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ.

ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ «ΠΠ°ΠΈΠΌΠ΅Π½ΡŒΡˆΠΈΠΉ содСрТащий» создастся ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ содСрТащий Π² ΡΠ΅Π±Π΅ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ. По Ρ‚Π°ΠΊΠΎΠΌΡƒ ΠΆΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΠ° «ΠΏΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½ΠΈΠ΅», Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½Π° создаёт ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ содСрТащий пСрСсСчСниС Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ….

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

ЦСль Ρ€Π°Π±ΠΎΡ‚Ρ‹, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° класса ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ² со ΡΡ‚ΠΎΡ€ΠΎΠ½Π°ΠΌΠΈ ΠΏΠ°Ρ€Π°Π»Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ осям ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚, ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π°. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Π² ΡΡ€Π΅Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Delphi ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚ся для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Windows. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ², Π° Ρ‚Π°ΠΊ ΠΆΠ΅ позволяСт ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ Π²ΠΌΠ΅Ρ‰Π°ΡŽΡ‰Π΅Π³ΠΎ Π² ΡΠ΅Π±Ρ Π΄Π²Π° Π·Π°Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° ΡΠ²Π»ΡΡŽΡ‰Π΅Π³ΠΎΡΡ ΠΎΠ±Ρ‰Π΅ΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ Π΄Π²ΡƒΡ… Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ….

Климова Π›.М. Delphi 7. ΠžΡΠ½ΠΎΠ²Ρ‹ программирования. РСшСниС Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ. ИзданиС Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅.- М.: ΠšΠ£Π”Π˜Π¦ΠžΠ‘Π ΠΠ—, 2006. 480 с.

Π₯ΠΎΠΌΠΎΠ½Π΅Π½ΠΊΠΎ А.Π”. ΠΈ Π΄Ρ€. Delphi 7/ Под ΠΎΠ±Ρ‰. Π Π΅Π΄. А. Π”. Π₯ΠΎΠΌΠΎΠ½Π΅Π½ΠΊΠΎ.- БПб: Π‘Π₯Π’ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³, 2005. 1216 с.

Бобровский Π‘.И. Delphi 7. Π£Ρ‡Π΅Π±Π½Ρ‹ΠΉ ΠΊΡƒΡ€ΡΠ‘ΠŸΠ±: ΠŸΠΈΡ‚Π΅Ρ€, 2005. 736 с.

http://khpi-iip.mipk.kharkiv.edu/library/case/leon/gl3/gl3.html

http://khpi-iip.mipk.kharkiv.edu/library/case/leon/gl5/gl5.html

Павловская Π’. А. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ высокого уровня — БПб: ΠŸΠΈΡ‚Π΅Ρ€, 2006.

Поган А. М. Руководство программиста — «Π­ΡΠΊΠΈΠΌΠΎ», 2006.

ЛСснСвский А.Π‘. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Иванова Π“. Π‘. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ — М, 2003.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ А

класс ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° интСрфСйс Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Unit2;

type

TForm1 = class (TForm)

ListBox1: TListBox;

Button1: TButton;

Label1: TLabel;

Label2: TLabel;

sel2: TLabel;

sel1: TLabel;

Button2: TButton;

Editx: TEdit;

Edity: TEdit;

Editw: TEdit;

Edith: TEdit;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Button3: TButton;

Button4: TButton;

Button5: TButton;

procedure FormCreate (Sender: TObject);

procedure Button1Click (Sender: TObject);

procedure ListBox1Click (Sender: TObject);

procedure FormPaint (Sender: TObject);

procedure Button3Click (Sender: TObject);

procedure Button2Click (Sender: TObject);

procedure Button4Click (Sender: TObject);

function min (a, b: integer): integer;

function max (a, b: integer): integer;

procedure roll (var a, b: integer);

procedure Button5Click (Sender: TObject);

private

{ Private declarations }

s: stack;

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1. FormCreate (Sender: TObject);

begin

s := stack. Create;

end;

procedure TForm1. Button1Click (Sender: TObject);

begin

ListBox1.Items.Add (s.newRect (300, 100, 100, 100));

Refresh;

end;

procedure TForm1. ListBox1Click (Sender: TObject);

var

selItem: string;

f: pNode;

begin

selItem := ListBox1. Items[ListBox1.ItemIndex];

if selItem <> sel1. Caption then

begin

sel2.Caption := sel1. Caption;

sel1.Caption := selItem;

f := s. find (selItem);

if f <> nil then

begin

EditX.Text := IntToStr (f.x);

EditY.Text := IntToStr (f.y);

EditW.Text := IntToStr (f.w);

EditH.Text := IntToStr (f.h);

end;

end;

Refresh;

end;

procedure TForm1. FormPaint (Sender: TObject);

var

i: integer;

p: pNode;

begin

for i := 0 to ListBox1.Items.Count — 1 do

begin

p := s. find (ListBox1.Items[i]);

if p <> nil then

begin

if p. id = sel1. Caption then Canvas.Pen.Color := clBlue

else if p. id = sel2. Caption then Canvas.Pen.Color := clNavy

else Canvas.Pen.Color := clBlack;

Canvas.Pen.Width := 5;

Canvas.Brush.Style := bsClear;

Canvas.Rectangle (p.x, p. y, p. x + p. w, p. y + p. h);

end;

end;

end;

procedure TForm1. Button3Click (Sender: TObject);

var

f: pNode;

begin

f := s. find (sel1.Caption);

if f <> nil then

begin

f.x := StrToInt (Editx.Text);

f.y := StrToInt (Edity.Text);

f.w := StrToInt (Editw.Text);

f.h := StrToInt (Edith.Text);

Refresh;

end;

end;

procedure TForm1. Button2Click (Sender: TObject);

begin

if sel1. Caption <> '' then s. delRect (sel1.Caption);

ListBox1.Items.Delete (ListBox1.ItemIndex);

Refresh;

end;

procedure TForm1. Button4Click (Sender: TObject);

var

f1, f2: pNode;

x, y, w, h: integer;

begin

f1 := s. find (sel1.Caption);

f2 := s. find (sel2.Caption);

x := min (min (f1.x, f1. x + f1. w), min (f2.x, f2. x + f2. w));

w := max (max (f1.x, f1. x + f1. w), max (f2.x, f2. x + f2. w));

w := w — x;

y := min (min (f1.y, f1. y + f1. h), min (f2.y, f2. y + f2. h));

h := max (max (f1.y, f1. y + f1. h), max (f2.y, f2. y + f2. h));

h := h — y;

ListBox1.Items.Add (s.newRect (x, y, w, h));

Refresh;

end;

function TForm1. min (a, b: integer): integer;

begin

if a < b then min := a else min := b;

end;

function TForm1. max (a, b: integer): integer;

begin

if a > b then max := a else max := b;

end;

procedure TForm1. roll (var a, b: integer);

var

c: integer;

begin

c := a;

a := b;

b := c;

end;

procedure TForm1. Button5Click (Sender: TObject);

var

x1, y1, w1, h1: integer;

x2, y2, w2, h2: integer;

x, y, w, h: integer;

f: pNode;

begin

f := s. find (sel1.Caption);

x1 := f. x;

y1 := f. y;

w1 := x1 + f. w;

if w1 < x1 then roll (w1, x1);

h1 := y1 + f. h;

if h1 < y1 then roll (h1, y1);

f := s. find (sel2.Caption);

x2 := f. x;

y2 := f. y;

w2 := x2 + f. w;

if w2 < x2 then roll (w2, x2);

h2 := y2 + f. h;

if h2 < y2 then roll (h2, y2);

if (((x1 > x2) and (x1 < w2)) or ((w1 > x2) and (w1 < w2)) or

((x2 > x1) and (x2 < w1)) or ((w2 > x1) and (w2 < w1))) and

(((y1 > y2) and (y1 < h2)) or ((h1 > y2) and (h1 < h2)) or

((y2 > y1) and (y2 < h1)) or ((h2 > y1) and (h2 < h1))) then

begin

x := max (x1, x2);

y := max (y1, y2);

w := min (w1, w2);

h := min (h1, h2);

w := w — x;

h := h — y;

ListBox1.Items.Add (s.newRect (x, y, w, h));

Refresh;

end;

end;

end.

unit Unit2;

interface

uses sysutils, classes;

type

pNode = ^Node;

Node = record

id: string;

x, y, w, h: integer;

next: pNode;

end;

stack = class

top: pNode;

num: integer;

public

constructor Create;

destructor Destroy;

function newRect (x, y, w, h: integer): string;

procedure delRect (id: string);

procedure moveSize (id: string; x, y, w, h: integer);

function find (id: string): pNode;

end;

implementation

constructor stack. Create;

begin

top := nil;

num := 0;

end;

destructor stack. Destroy;

var

del: pNode;

begin

while top <> nil do

begin

del := top;

top := top. next;

Dispose (del);

end;

end;

function stack. newRect (x, y, w, h: integer): string;

var

n: pNode;

begin

n := New (pNode);

n.id := IntToStr (num);

Inc (num);

n.x := x;

n.y := y;

n.w := w;

n.h := h;

n.next := top;

top := n;

newRect := n. id;

end;

procedure stack. delRect (id: string);

var

f, d: pNode;

begin

f := top;

if f <> nil then

if f. id = id then

begin

top := top. next;

Dispose (f);

end

else

begin

while f. next <> nil do

begin

if f.next.id = id then

begin

d := f. next;

f.next := d. next;

Dispose (d);

break;

end

end;

end;

end;

procedure stack. moveSize (id: string; x, y, w, h: integer);

var

f: pNode;

begin

f := find (id);

if f <> nil then

begin

f.x := x;

f.y := y;

f.w := w;

f.h := h;

end;

end;

function stack. find (id: string): pNode;

var

f: pNode;

begin

f := top;

while f <> nil do

begin

if f. id = id then break;

f := f. next;

end;

find := f;

end;

end.

Π‘Π»ΠΎΠΊ-схСмы Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²

constructor stack. Create;

destructor stack. Destroy;

function stack. newRect (x, y, w, h: integer): string;

procedure stack. delRect (id: string);

procedure stack. moveSize (id: string; x, y, w, h: integer);

function stack. find (id: string): pNode;

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