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

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ-справочная систСма Β«ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² сдачи сСссии»

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

Π‘ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ (Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ, дихотомичСский, ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π½ΠΎΠ³ΠΎ дСлСния) поиск относится ΠΊ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивным ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ поиска Π² ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ записСй. ИдСя этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡, А Π² ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π΅, ΠΊΡ€Π°ΠΉΠ½ΠΈΠΌΠΈ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄Π²Π° указатСля — Q ΠΈ P, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΈ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌ поиска. Π’Π½Π°Ρ‡Π°Π»Π΅, А ΡΡ€Π°Π²Π½ΠΈΠ²Π°Π΅Ρ‚ся со ΡΡ€Π΅Π΄Π½ΠΈΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ-справочная систСма Β«ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² сдачи сСссии» (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Аннотация

Π’ Π΄Π°Π½Π½ΠΎΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ излагаСтся постановка Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ ΠΎΠ±Ρ‰Π΅Π΅ описаниС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ-справочной систСмы ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² сдачи сСссии. ΠŸΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ срСдства, описаниС Π΅Π³ΠΎ логичСской структуры. РассмотрСны свойства ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ-справочной систСмы.

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ содСрТит описаниС Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ инструкции ΠΏΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ рассматриваСмого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ срСдства.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° написана Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ программирования Object Pascal Π² ΡΡ€Π΅Π΄Π΅ «Delphi 6.0» .

  • Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅
  • 1. Анализ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области ΠΈ ΠΏΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ
  • 1.1 ОписаниС ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области
  • 1.2 ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ
  • 2. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° структуры Π΄Π°Π½Π½Ρ‹Ρ…
  • 3. ОписаниС логичСской структуры
  • 3.1 ОбоснованиС Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… срСдств
  • 3.2 ОписаниС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ принятых Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ
  • 3.3 ОписаниС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° сортировки
  • 3.4 ОписаниС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° поиска
  • 4. Π­ΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ
  • 5. ОписаниС Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…
  • 6. ОписаниС Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…
  • Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
  • Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… источников
  • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ быстро вошСл Π² Π½Π°ΡˆΡƒ Тизнь. Π•Ρ‰Π΅ нСсколько Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄ Π±Ρ‹Π»ΠΎ Ρ€Π΅Π΄ΠΊΠΎΡΡ‚ΡŒΡŽ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ — ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ, Π½ΠΎ Π±Ρ‹Π»ΠΈ ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΡ€ΠΎΠ³ΠΈΠ΅, ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΊΠ°ΠΆΠ΄Π°Ρ Ρ„ΠΈΡ€ΠΌΠ° ΠΌΠΎΠ³Π»Π° ΠΈΠΌΠ΅Ρ‚ΡŒ Ρƒ ΡΠ΅Π±Ρ Π² ΠΎΡ„исС ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²Ρ‚ΠΎΡ€ΠΎΠΌ Π΄ΠΎΠΌΠ΅ Π΅ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΆΠ΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎ вошСл Π² ΠΆΠΈΠ·Π½ΡŒ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь люди ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ†Π΅Π»Π΅ΠΉ. ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ становятся всё Π±ΠΎΠ»Π΅Π΅ доступными, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡ‰Π½Ρ‹ΠΌΠΈ Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ Π±ΠΎΠ»Π΅Π΅ простыми Π² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ.

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

Бправочная систСма ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для получСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ максимально Ρ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰Π΅ΠΉ Π΅Π³ΠΎ Ρ‚Π΅ΠΌΠ΅. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π²Ρ‹Π±ΠΎΡ€ ΡΡ‚Π°Ρ‚ΡŒΠΈ происходит ΠΏΠΎ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² справки. Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½Ρ‹Π΅ систСмы часто ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ с ΠΏΠΎΠΈΡΠΊΠΎΠ²Ρ‹ΠΌΠΈ.

ИмСнно справочныС систСмы Ρ€Π΅ΡˆΠ°ΡŽΡ‚ всС поставлСнныС Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΉ Π½ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ. Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½Ρ‹Π΅ систСмы ΠΈΠΌΠ΅ΡŽΡ‚ Ρ†Π΅Π»Ρ‹ΠΉ ряд ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… достоинств ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Π΅ΠΉ.

Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ это:

Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ большиС ΠΎΠ±ΡŠΠ΅ΠΌΡ‹ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ;

Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ структурировано ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ;

Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ быстрого поиска Π½ΡƒΠΆΠ½Ρ‹Ρ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΈΡ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Ρ… массивах Π΄Π°Π½Π½Ρ‹Ρ….

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

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ-справочная систСма «ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² сдачи сСссии» ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для поиска ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΡΡ‚ΡƒΠ΄Π΅Π½Ρ‚Π°Ρ…. Поиск осущСствляСтся Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ запроса составляСмого ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ поиска являСтся список студСнтов, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΡ… запросу, с ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈ Π΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· Π½ΠΈΡ….

Разработанная систСма позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ врСмя ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ поиском Π² Π²Π΅Π΄ΠΎΠΌΠΎΡΡ‚ях.

1. Анализ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области ΠΈ ΠΏΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

1.1 ОписаниС ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области

Бправочная систСма Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² сдачи сСссии ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ составлСна для контроля успСваСмости студСнтов ΠΈ ΡΡ‚атистики ΠΈΡ… ΡΡ€Π΅Π΄Π½Π΅Π³ΠΎ Π±Π°Π»Π»Π°.

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

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

1.2 ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

ВрСбуСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ-ΡΠΏΡ€Π°Π²ΠΎΡ‡Π½ΡƒΡŽ систСму, ΡΠΏΠΎΡΠΎΠ±Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ ΡΡ‚ΡƒΠ΄Π΅Π½Ρ‚Π°Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Π½ΠΎΡΠΈΡ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ. Π­Ρ‚Π° систСма Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ:

фамилия студСнта;

Π΅Π³ΠΎ порядковый Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠΎ ΠΆΡƒΡ€Π½Π°Π»Ρƒ;

Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ сдачи сСссии;

ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ участия ΠΈΠ»ΠΈ нСучастия Π² Π½Π°ΡƒΡ‡Π½ΠΎ-ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅.

Π­Ρ‚Π° информация Π΄ΠΎΠ»ΠΆΠ½Π° Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π½Π° Π½ΠΎΡΠΈΡ‚Π΅Π»Π΅ Π² Π²ΠΈΠ΄Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π²Π²ΠΎΠ΄ΠΈΠ» Ρ€Π°Π½Π΅Π΅ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π» Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Π½ΠΎΠ²ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π½Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ интСрСс.

БистСма Π΄ΠΎΠ»ΠΆΠ½Π°:

1) ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ просмотра хранящСйся ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΡΡ‚ΡƒΠ΄Π΅Π½Ρ‚Π°Ρ….

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ ΡΡ‚ΡƒΠ΄Π΅Π½Ρ‚Π°Ρ… Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, которая Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ поля:

для Π²Ρ‹Π²ΠΎΠ΄Π° Ρ„Π°ΠΌΠΈΠ»ΠΈΠΈ студСнта;

для Π²Ρ‹Π²ΠΎΠ΄Π° Π΅Π³ΠΎ порядкового Π½ΠΎΠΌΠ΅Ρ€Π° ΠΏΠΎ ΠΆΡƒΡ€Π½Π°Π»Ρƒ;

для Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² сдачи сСссии;

для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠ° участия Π² ΠΠ˜Π ;

2) ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ ΡΡ‚ΡƒΠ΄Π΅Π½Ρ‚Π°Ρ… ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ столбцам. Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° сразу, Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎ ΡˆΠ°Π³Π°ΠΌ. Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°:

для отобраТСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅;

для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ поиска Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ-справочной систСмС.

3) ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ поиска Π°Π±ΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ сдачи сСссии. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ поиска Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ поля:

ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€;

фамилия.

Поиск осущСствляСтся ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ критСриям:

ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΈΠΊΠΈ;

Ρ…ΠΎΡ€ΠΎΡˆΠΈΡΡ‚Ρ‹;

ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Ρ€ΠΎΠΉΠΊΠΈ;

ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Π²ΠΎΠΉΠΊΠΈ.

4) ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ добавлСния, рСдактирования ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡ хранящСйся ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ;

5) ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π½Π΅Π΅ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅;

6) ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΈ ΠΏΠΎΠ½ΡΡ‚Π½Ρ‹ΠΌ интСрфСйсом;

7) Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π΄Π΅ΠΉΡΡ‚вия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 1 сСкунды.

2. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° структуры Π΄Π°Π½Π½Ρ‹Ρ…

Π’ ΡΠΎΠΎΡ‚вСтствии с ΠΏΠΎΡΡ‚Π°Π²Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ вся информация, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ прСдоставляСт данная систСма, ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² Π²ΠΈΠ΄Π΅ Ρ‚Ρ€Π΅Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², Π° ΠΈΠΌΠ΅Π½Π½ΠΎ:

1) Ρ„Π°ΠΉΠ», содСрТащий ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΡΡ‚ΡƒΠ΄Π΅Π½Ρ‚Π°Ρ….

ΠŸΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ «Π‘Ρ‚ΡƒΠ΄Π΅Π½Ρ‚Ρ‹» Π½Π΅ Ρ‚рСбуСтся Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. НСобходимо Π½Π°ΠΆΠ°Ρ‚ΡŒ Π€Π°ΠΉΠ», Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ появится информация ΠΎ ΡΡ‚ΡƒΠ΄Π΅Π½Ρ‚Π°Ρ…, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ: Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, фамилия, Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠΎ ΠΆΡƒΡ€Π½Π°Π»Ρƒ, участиС Π² ΠΠ˜Π .

2) Ρ„Π°ΠΉΠ», содСрТащий ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°Ρ….

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

3) Ρ„Π°ΠΉΠ», содСрТащий ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΎΡ†Π΅Π½ΠΊΠ°Ρ….

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ заполнСния Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ «ΠžΡ†Π΅Π½ΠΊΠΈ» Π±ΡƒΠ΄Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ, которая содСрТится Π² Π½Π΅ΠΉ, Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ: ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ записи, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ студСнта, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°, ΠΎΡ†Π΅Π½ΠΊΠ°.

ПолС «Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ студСнта» обСспСчиваСт связь ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ записСй Π² Ρ„Π°ΠΉΠ»Π°Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠ° Integer, ΠΈΠΌΠ΅Π½Π½ΠΎ поэтому ΠΏΠΎΠ»Π΅ «Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ студСнта» Π²Ρ‹Π±Ρ€Π°Π½ Ρ‚ΠΈΠΏΠ° Integer. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ для обСспСчСния ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠΉ связи ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π½Π΅ ΠΏΠΎΡ‚рСбуСтся ΠΊΠΎΠ΄, выходящий Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Ρ‚ΠΈΠΏΠ° Integer.

Для хранСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ„Π°ΠΌΠΈΠ»ΠΈΠΈ студСнта ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ строка Π΄Π»ΠΈΠ½ΠΎΠΉ Π² Π΄Π²Π°Π΄Ρ†Π°Ρ‚ΡŒ символов (Π² ΡΠΎΠΎΡ‚вСтствии с Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ задания информация ΠΎΠ± ΠΈΠΌΠ΅Π½ΠΈ ΠΈ ΠΎΡ‚чСствС студСнта нас Π½Π΅ ΠΈΠ½Ρ‚СрСсуСт), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ эта Π΄Π»ΠΈΠ½Π° позволяСт ΡƒΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ„Π°ΠΌΠΈΠ»ΠΈΠΈ с Π½Π°ΠΈΠ±ΠΎΠ»ΡŒΡˆΠ΅ΠΉ экономиСй памяти.

Π’Π°ΠΊ ΠΊΠ°ΠΊ порядковый Π½ΠΎΠΌΠ΅Ρ€ студСнта ΠΏΠΎ ΠΆΡƒΡ€Π½Π°Π»Ρƒ — Ρ†Π΅Π»ΠΎΠ΅ число, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° Integer [1], Ρ‚ΠΎ Π² Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ систСмС ΠΏΠΎΠ»Π΅ «ΠŸΠΎΡ€ΡΠ΄ΠΊΠΎΠ²Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠΎ ΠΆΡƒΡ€Π½Π°Π»Ρƒ» выбираСтся Ρ‚ΠΈΠΏΠ° Integer.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠ° участия студСнта Π² ΠΠ˜Π  ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ Π΄Π²Π° исхода: лоТь, истина. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΠΎΠ»Π΅ для ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠ° участия Π²Ρ‹Π±Ρ€Π°Π½ΠΎ Ρ‚ΠΈΠΏΠ° Boolean.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° записи Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ ΡΡ‚ΡƒΠ΄Π΅Π½Ρ‚Π°Ρ… ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 1.

Π’Π°Π±Π»ΠΈΡ†Π° 1 — Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° записи Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ ΡΡ‚ΡƒΠ΄Π΅Π½Ρ‚Π°Ρ….

НаимСнованиС поля

НаимСнованиС сокращСнноС

Π’ΠΈΠΏ

Π”Π»ΠΈΠ½Π°

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π‘Ρ‚ΡƒΠ΄Π΅Π½Ρ‚Π°

ID

Integer

Ѐамилия студСнта

FSTU

String

ΠŸΠΎΡ€ΡΠ΄ΠΊΠΎΠ²Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠΎ ΠΆΡƒΡ€Π½Π°Π»Ρƒ

NUMBER

Integer

ΠŸΡ€ΠΈΠ·Π½Π°ΠΊ участия Π² ΠΠ˜Π 

YCHASTIE

Boolean

ПолС «Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°» обСспСчиваСт связь ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ записСй Π² Ρ„Π°ΠΉΠ»Π°Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠ° Integer, ΠΈΠΌΠ΅Π½Π½ΠΎ поэтому ΠΏΠΎΠ»Π΅ «Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°» Π²Ρ‹Π±Ρ€Π°Π½ Ρ‚ΠΈΠΏΠ° Integer. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ для обСспСчСния ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠΉ связи ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π½Π΅ ΠΏΠΎΡ‚рСбуСтся ΠΊΠΎΠ΄, выходящий Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Ρ‚ΠΈΠΏΠ° Integer.

Для хранСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π° ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ строка Π΄Π»ΠΈΠ½ΠΎΠΉ Π² Π΄Π²Π°Π΄Ρ†Π°Ρ‚ΡŒ символов, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ эта Π΄Π»ΠΈΠ½Π° позволяСт ΡƒΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ с Π½Π°ΠΈΠ±ΠΎΠ»ΡŒΡˆΠ΅ΠΉ экономиСй памяти.

Для хранСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π΅ сдачи Π²Ρ‹Π±Π΅Ρ€Π΅ΠΌ строку Π΄Π»ΠΈΠ½ΠΎΠΉ Π² 3 символа, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ эта Π΄Π»ΠΈΠ½Π° позволяСт ΡƒΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ с Π½Π°ΠΈΠ±ΠΎΠ»ΡŒΡˆΠ΅ΠΉ экономиСй памяти (ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ сдачи находится Π² ΠΏΡ€Π΅Π΄Π΅Π»Π΅ ΠΎΡ‚ 1 Π΄ΠΎ 100 + символ (%)).

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° записи Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°Ρ… ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 2.

Π’Π°Π±Π»ΠΈΡ†Π° 2 — Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° записи Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°Ρ….

НаимСнованиС поля

НаимСнованиС сокращСнноС

Π’ΠΈΠΏ

Π”Π»ΠΈΠ½Π°

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°

ID

Integer

ΠŸΡ€Π΅Π΄ΠΌΠ΅Ρ‚

NAME

String

ΠŸΡ€ΠΎΡ†Π΅Π½Ρ‚ сдачи

RESULT

Integer

ПолС «Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ записи» обСспСчиваСт связь ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ записСй Π² Ρ„Π°ΠΉΠ»Π°Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠ° Integer, ΠΈΠΌΠ΅Π½Π½ΠΎ поэтому ΠΏΠΎΠ»Π΅ «Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ записи» Π²Ρ‹Π±Ρ€Π°Π½ Ρ‚ΠΈΠΏΠ° Integer. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ для обСспСчСния ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠΉ связи ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π½Π΅ ΠΏΠΎΡ‚рСбуСтся ΠΊΠΎΠ΄, выходящий Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Ρ‚ΠΈΠΏΠ° Integer. Для хранСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π΅ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π΅ студСнта ΠΈ ΠΎΡ†Π΅Π½ΠΊΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ‚ΠΈΠΏ Integer. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° записи Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ± ΠΎΡ†Π΅Π½ΠΊΠ°Ρ… ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 3.

Π’Π°Π±Π»ΠΈΡ†Π° 3 — Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° записи Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ± ΠΎΡ†Π΅Π½ΠΊΠ°Ρ….

НаимСнованиС поля

НаимСнованиС сокращСнноС

Π’ΠΈΠΏ

Π”Π»ΠΈΠ½Π°

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ записи

ID

Integer

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ студСнта

StudentID

Integer

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°

ResultsID

Integer

ΠžΡ†Π΅Π½ΠΊΠΈ

Mark

Integer

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ» содСрТит Π² ΡΠ΅Π±Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. Для ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ-справочных систСм Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ вся информация Π² Π½Π΅ΠΉ взаимосвязана. БистСма, разработанная Π² Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅, Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° связСй ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, прСдставлСна Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 1.

Рисунок 1 - Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° связСй ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ.

3. ОписаниС логичСской структуры

3.1 ОбоснованиС Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… срСдств

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

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ «Ρ‚Π°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹» Π±Ρ‹Π»Π° Π²Ρ‹Π±Ρ€Π°Π½Π° систСма программирования Delphi вСрсии 6.

Delphi — это ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Borland International для быстрого создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ инструмСнт Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ построСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ настоящий компилятор ΠΊΠΎΠ΄Π° ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚авляСт срСдства Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования, нСсколько ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ Π½Π° Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… инструмСнтах Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ проСктирования. Π’ ΠΎΡΠ½ΠΎΠ²Π΅ Delphi Π»Π΅ΠΆΠΈΡ‚ язык Object Pascal, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ языка Pascal. Π’ Delphi Ρ‚Π°ΠΊΠΆΠ΅ входят Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ SQL-сСрвСр, Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ², Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго Delphi ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΡ… ΠΎΡ‡Π΅Π½ΡŒ быстро Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ прилоТСния Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСр. Delphi ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ нСбольшиС ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌ (Π΄ΠΎ 15−30 ΠšΠ±Π°ΠΉΡ‚) высокоэффСктивныС исполняСмыС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ (. exe ΠΈ. dll). Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны нСбольшиС ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌ ΠΈ Π±Ρ‹ΡΡ‚Ρ€ΠΎ исполняСмыС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ трСбования ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ским Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ мСстам сущСствСнно ΡΠ½ΠΈΠΆΠ°ΡŽΡ‚ΡΡ — это ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ΠΌΠ°Π»ΠΎΠ²Π°ΠΆΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Π΄Π»Ρ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° Delphi ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°ΠΌΠΈ.

быстрота Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прилоТСния;

высокая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ³ΠΎ прилоТСния;

Π½ΠΈΠ·ΠΊΠΈΠ΅ трСбования Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ³ΠΎ прилоТСния ΠΊ Ρ€Π΅ΡΡƒΡ€ΡΠ°ΠΌ

ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°;

Π½Π°Ρ€Π°Ρ‰ΠΈΠ²Π°Π΅ΠΌΠΎΡΡ‚ΡŒ Π·Π° ΡΡ‡Π΅Ρ‚ встраивания Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈ

инструмСнтов Π² ΡΡ€Π΅Π΄Ρƒ Delphi;

Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² собствСнными срСдствами Delphi (ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ доступны Π² ΠΈΡΡ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΊΠΎΠ΄Π°Ρ…);

удачная ΠΏΡ€ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

БистСма программирования Delphi рассчитана Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚авляСт большоС количСство ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² для этого.

К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚ΠΎΠ΄Π°Ρ‚Π΅Π»Π΅ΠΉ интСрСсуСт, ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго, ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²ΠΎ создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π° ΡΡ‚ΠΈ характСристики ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ срСда Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ проСктирования, способная Π²Π·ΡΡ‚ΡŒ Π½Π° ΡΠ΅Π±Ρ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΌΡ‹ Ρ€ΡƒΡ‚ΠΈΠ½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Ρ‚ΡŒ Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡ‹ постановщиков, ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠΎΠ², тСстСров ΠΈ Ρ‚СхничСских писатСлСй. ВозмоТности Delphi ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ трСбованиям ΠΈ ΠΏΠΎΠ΄Ρ…одят для создания систСм любой слоТности.

3.2 ОписаниС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ принятых Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π΄Π°Π½Π½ΠΎΠΉ систСмы использовалась стратСгия структурного программирования «ΡΠ²Π΅Ρ€Ρ…Ρƒ Π²Π½ΠΈΠ·». Π­Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ΅ пошаговоС нисходящСС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΈ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ Π΄Π°Π½Π½Ρ‹Ρ…. Оно Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅:

1. Нисходящая Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°.

Π­Ρ‚ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΎ разбиваСтся Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΡƒΡŽ структуру. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ — это короткая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Ρ€Π΅ΡˆΠ°ΡŽΡ‰Π°Ρ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ. Π’ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π½ΠΈΠΆΠ΅Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π·Π°Π³Π»ΡƒΡˆΠΊΠ°ΠΌΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π² Π»ΡŽΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΅ΡΡ‚ΡŒ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

Основной ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ нисходящСй Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ: сначала ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π΄Π°Π»Π΅Π΅ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ основным ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ, Π΄Π°Π»Π΅Π΅ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ этими ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ ΠΈ Ρ‚. Π΄., двигаясь ΠΎΡ‚ Π±Π»ΠΎΠΊΠΎΠ² Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ уровня ΠΊ Π±Π»ΠΎΠΊΠ°ΠΌ низшСго.

2. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ программирования, ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ созданиС понятных ΠΈ ΠΏΡ€ΠΎΡΡ‚Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π½Π° Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠΌ языкС.

3.3 ОписаниС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° сортировки

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ осущСствлялся поиск, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ сортировку. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ сортировки — просСиваниС.

ΠœΠ΅Ρ‚ΠΎΠ΄ просСивания Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π½Π°Π΄ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ пСрСстановку. БравниваСмая запись с ΠΌΠ΅Π½ΡŒΡˆΠΈΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ пСрСмСщаСтся насколько это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΊ Π½Π°Ρ‡Π°Π»Ρƒ списка. Если Π΅Π΅ ΠΊΠ»ΡŽΡ‡ мСньшС, Ρ‡Π΅ΠΌ Ρƒ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊΠ°, Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ся ΠΎΠ±ΠΌΠ΅Π½ ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ся ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ΅ сравнСниС.

Рассмотрим этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. ΠžΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΠΌ сортировку студСнтов ΠΏΠΎ ΡΡ‚ΠΎΠ»Π±Ρ†Ρƒ Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€. ИмССм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅: 1221 2212 3434 3245 5657 6565 2235 6576 8756 2345

ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ 1-ΠΉ ΠΈ 2-ΠΉ элСмСнты. Π˜Ρ… ΠΏΠΎΡ€ΡΠ΄ΠΎΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ, поэтому ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠ΅Π½ΡΡŽΡ‚ся мСстами.

Π—Π°Ρ‚Π΅ΠΌ ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ 2-ΠΉ ΠΈ 3-ΠΉ элСмСнты. Π˜Ρ… ΠΏΠΎΡ€ΡΠ΄ΠΎΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ, Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚.

Π”Π°Π»Π΅Π΅ 3-ΠΉ элСмСнт сравниваСтся с 4-ΠΌ. Π˜Ρ… ΠΏΠΎΡ€ΡΠ΄ΠΎΠΊ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ, происходит пСрСстановка. Π”Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄: 1221 2212 3245 3434 5657 6565 2235 6576 8756 2345

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ 3-ΠΉ элСмСнт сначала со 2-ΠΌ, ΠΏΠΎΡ‚ΠΎΠΌ с 1-ΠΌ. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡ… ΠΏΠΎΡ€ΡΠ΄ΠΎΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ, поэтому пСрСстановок Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚. Если порядок Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ, происходит пСрСстановка.

По Ρ‚Π°ΠΊΠΎΠΌΡƒ ΠΆΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ происходит сортировка ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов. Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: 1221 2212 2235 2345 3245 3434 5657 6565 6576 8756

Для ускорСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π΅ рСгистрируСтся Ρ„Π°ΠΊΡ‚ наличия ΠΈΠ»ΠΈ отсутствия ΠΎΠ±ΠΌΠ΅Π½Π°. Π’ΠΎΠ·Π²Ρ€Π°Ρ‚, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π°, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π΅Ρ‚ просмотр. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° сортировки прСдставлСна Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 2.

Рисунок 2 - ΠŸΡ€ΠΎΡΠ΅ΠΈΠ²Π°Π½ΠΈΠ΅ чСлночная» сортировка).

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° осущСствляСтся послС добавлСния Π½ΠΎΠ²ΠΎΠΉ записи Π² Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ послС рСдактирования ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ.

3.4 ОписаниС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° поиска

ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ дСйствия добавлСния записи открываСтся ΠΎΠΊΠ½ΠΎ для Π²Π²ΠΎΠ΄Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ поля, Π² Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄Π΅Ρ‚ внСсСна новая запись.

Π‘ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ (Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ, дихотомичСский, ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π½ΠΎΠ³ΠΎ дСлСния) поиск относится ΠΊ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивным ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ поиска Π² ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ записСй. ИдСя этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡, А Π² ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π΅, ΠΊΡ€Π°ΠΉΠ½ΠΈΠΌΠΈ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄Π²Π° указатСля — Q ΠΈ P, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΈ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌ поиска. Π’Π½Π°Ρ‡Π°Π»Π΅, А ΡΡ€Π°Π²Π½ΠΈΠ²Π°Π΅Ρ‚ся со ΡΡ€Π΅Π΄Π½ΠΈΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ сравнСния ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ поиск, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ² ΠΊ Π½Π΅ΠΉ Ρ‚Ρƒ ΠΆΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ, ΠΈ Ρ‚. Π΄. ПослС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ числа сравнСний Π»ΠΈΠ±ΠΎ ΠΊΠ»ΡŽΡ‡ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΉΠ΄Π΅Π½, Π»ΠΈΠ±ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ установлСно Π΅Π³ΠΎ отсутствиС. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ поиска прСдставлСна Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 3.

Рисунок 3 - Π‘ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ поиск.

4. Π­ΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ

ΠŸΡ€ΠΈ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ открываСтся основноС ΠΎΠΊΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (рисунок 4). Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΡΡ‚ΡƒΠ΄Π΅Π½Ρ‚Π°Ρ…, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ ΠΌΡ‹ΡˆΡŒΡŽ ΠΏΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ этих Π²ΠΊΠ»Π°Π΄ΠΎΠΊ прСдставлСно Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ°Ρ… 5 ΠΈ 6.

ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ» ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ откроСтся ΠΎΠΊΠ½ΠΎ с ΠΏΡƒΡΡ‚Ρ‹ΠΌΠΈ полями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ (рисунок 7).

ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ» откроСтся ΠΎΠΊΠ½ΠΎ «Π˜Π·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…». Π’ Π½Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ (рисунок 8).

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΡΡ‚ΡƒΠ΄Π΅Π½Ρ‚Π΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ навСсти курсор Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ строку ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π£Π΄Π°Π»ΠΈΡ‚ΡŒ». ΠŸΡ€ΠΈ этом ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° выдаст запрос Π½Π° ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ дСйствия (рисунок 9).

Рисунок 4 - ОсновноС ΠΎΠΊΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Рисунок 5 - Π’Π°Π±Π»ΠΈΡ†Π° " Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹" .

Рисунок 6 - Π’Π°Π±Π»ΠΈΡ†Π° " ΠžΡ†Π΅Π½ΠΊΠΈ" .

Рисунок 7 - Окно " Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…" .

Рисунок 8 - ИзмСнСниС Π΄Π°Π½Π½Ρ‹Ρ….

Рисунок 9 - Запрос Π½Π° ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ удалСния.

5. ОписаниС Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…

Разработанная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° прСдусматриваСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹ запуска:

Β· Запуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π·. Π’ ΡΡ‚ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для хранСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»Ρ‹ создадутся ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ пустыми.

Β· ΠŸΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ запуски. Π’ ΡΡ‚ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΊ Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ относятся Ρ„Π°ΠΉΠ»Ρ‹ Π°Π±ΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Π³ΠΎΡ€ΠΎΠ΄ΠΎΠ² ΠΈ ΡƒΠ»ΠΈΡ†.

Π€Π°ΠΉΠ» студСнтов состоит ΠΈΠ· Π·Π°ΠΏΠΈΡΠ΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² ΡΠ΅Π±Ρ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ поля: ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ студСнта, фамилия студСнта, Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠΎ ΠΆΡƒΡ€Π½Π°Π»Ρƒ, участиС Π² ΠΠ˜Π . Π€Π°ΠΉΠ» Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² являСтся ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒΡŽ записСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ состоят ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ»Π΅ΠΉ: ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚, ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ сдачи. Π—Π°ΠΏΠΈΡΡŒ Π² Ρ„Π°ΠΉΠ»Π΅ ΠΎΡ†Π΅Π½ΠΎΠΊ состоит ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ»Π΅ΠΉ: ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ записи, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ студСнта, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°, ΠΎΡ†Π΅Π½ΠΊΠ°.

К Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ относится Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ поиска, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΉ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ поиска. Π’ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ это ΠΎΡ†Π΅Π½ΠΊΠ°.

6. ОписаниС Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…

Для Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ являСтся Ρ‚Π°Π±Π»ΠΈΡ†Π° с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ Ρ„Π°ΠΌΠΈΠ»ΠΈΠΈ студСнта ΠΈ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π΅.

Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ сгруппированы ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ критСриям:

ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΈΠΊΠΈ;

Ρ…ΠΎΡ€ΠΎΡˆΠΈΡΡ‚Ρ‹;

ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Ρ€ΠΎΠΉΠΊΠΈ;

ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Π²ΠΎΠΉΠΊΠΈ.

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

Π’ Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ-справочная систСмы ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² сдачи сСссии. Π’ Π΄Π°Π½Π½ΠΎΠΉ систСмС Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ возмоТности:

добавлСниС записи;

Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ записи;

ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ записи;

сортировка Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ столбцам;

поиск ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΎΡ†Π΅Π½ΠΊΠ°ΠΌ.

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

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ-справочной систСмы.

Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… источников

1. Π€Π°Ρ€ΠΎΠ½ΠΎΠ² Π’. Π’. БистСма программирования Π² DELPHI. БПб.: Π‘Π₯Π’-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³, 2004.888 c.

2. Милов А. Π’. ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² Π·Π°Π΄Π°Ρ‡Π°Ρ… ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…: Π£Ρ‡Π΅Π±Π½Ρ‹ΠΉ курс. Π₯Π°Ρ€ΡŒΠΊΠΎΠ²: Π€ΠΎΠ»ΠΈΠΎ, 2003.397 c.

3. Π‘Π΅Π»ΠΎΠ² Π’. Π’., Чистякова Π’. И. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Delphi: Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС для Π²ΡƒΠ·ΠΎΠ². М.: Горячая линия — Π’Π΅Π»Π΅ΠΊΠΎΠΌ, 2009.240с.

4. ΠœΠ°Ρ€ΠΊΠΈΠ½ А. Π’. ВСхнология программирования: ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ указания ΠΊ Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€Π½Ρ‹ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°ΠΌ / Рязан. гос. Ρ€Π°Π΄ΠΈΠΎΡ‚Π΅Ρ…Π½. Π°ΠΊΠ°Π΄. Рязань, 2005.48 c.

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

unit Unit1;

interface

uses

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

Dialogs, StdCtrls, ComCtrls, Menus, Grids, TabNotBk, XPMan, ExtCtrls;

type

TType = (TypeString, TypeInteger);

TStringGridX = class (TStringGrid)

public

procedure MoveRow (FromIndex, ToIndex: Longint);

end;

TStudent = record

ID: integer;

FSTU: string [20];

NUMBER: integer;

YCHASTIE: boolean;

end;

TResults= record

ID: integer;

NAME: string [20];

RESULT: string [3];

end;

TMark = record

ID: integer;

StudentID: integer;

ResultsID: integer;

Mark: integer;

end;

TForm1 = class (TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

Panel1: TPanel;

GroupBox1: TGroupBox;

Button15: TButton;

Button14: TButton;

Button1: TButton;

RadioGroup1: TRadioGroup;

TabbedNotebook1: TTabbedNotebook;

StringGrid1: TStringGrid;

StringGrid2: TStringGrid;

StringGrid3: TStringGrid;

GroupBox2: TGroupBox;

Button3: TButton;

Button2: TButton;

StringGrid4: TStringGrid;

RadioGroup2: TRadioGroup;

GroupBox3: TGroupBox;

Button4: TButton;

XPManifest1: TXPManifest;

procedure Button4Click (Sender: TObject);

procedure N3Click (Sender: TObject);

procedure FormCreate (Sender: TObject);

procedure N2Click (Sender: TObject);

procedure N5Click (Sender: TObject);

procedure Button15Click (Sender: TObject);

procedure Button14Click (Sender: TObject);

procedure Button1Click (Sender: TObject);

procedure StringGrid1MouseUp (Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure StringGrid2MouseUp (Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure StringGrid3MouseUp (Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure Button3Click (Sender: TObject);

procedure StringGrid4MouseUp (Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure Button2Click (Sender: TObject);

private

function BinaryFind (aStart: integer; aVal: string; aCol: integer;

Tabl: TStringGrid): integer;

procedure SortDelayString (tabl: TStringGrid; aCol: integer; SorType: TType);

{ Private declarations }

public

procedure SortString (tabl: TStringGrid; aCol: integer; SorType: TType);

end;

var

Form1: TForm1;

StudentFile: file of TStudent;

ResultsFile: file of TResults;

MarksFile: file of TMark;

cIndex: integer = 1;

cCount: integer = 0;

FindCount: integer = 0;

implementation

uses

Unit6;

{$R *. dfm}

procedure TStringGridX. MoveRow (FromIndex, ToIndex: Integer);

begin

inherited;

end;

procedure TForm1. Button14Click (Sender: TObject);

var

RowIndex: integer;

begin

Form6. Caption: = 'ИзмСнСниС Π΄Π°Π½Π½Ρ‹Ρ…';

case TabbedNotebook1. PageIndex of

0: begin

RowIndex: = StringGrid1. Row;

with form6 do

begin

LabeledEdit1. EditLabel. Caption: = 'Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€';

LabeledEdit2. EditLabel. Caption: = 'Ѐамилия';

LabeledEdit3. EditLabel. Caption: = 'НомСр ΠΏΠΎ ΠΆΡƒΡ€Π½Π°Π»Ρƒ';

LabeledEdit4. EditLabel. Caption: = 'УчастиС Π² ΠΠ˜Π ';

LabeledEdit1. Text: = StringGrid1. Cells [0, RowIndex];

LabeledEdit2. Text: = StringGrid1. Cells [1, RowIndex];

LabeledEdit3. Text: = StringGrid1. Cells [2, RowIndex];

LabeledEdit4. Text: = StringGrid1. Cells [3, RowIndex];

LabeledEdit4. Visible: = true;

if Form6. ShowModal = mrOk then

with StringGrid1, Form6 do

begin

Cells [0, RowIndex]: = LabeledEdit1. Text;

Cells [1, RowIndex]: = LabeledEdit2. Text;

Cells [2, RowIndex]: = LabeledEdit3. Text;

Cells [3, RowIndex]: = LabeledEdit4. Text;

end;

end;

end;

1: begin

RowIndex: = StringGrid2. Row;

with form6 do

begin

LabeledEdit1. EditLabel. Caption: = 'Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€';

LabeledEdit2. EditLabel. Caption: = 'ΠŸΡ€Π΅Π΄ΠΌΠ΅Ρ‚';

LabeledEdit3. EditLabel. Caption: = 'ΠŸΡ€ΠΎΡ†Π΅Π½Ρ‚ сдачи';

LabeledEdit4. Visible: = false;

LabeledEdit1. Text: = StringGrid2. Cells [0, RowIndex];

LabeledEdit2. Text: = StringGrid2. Cells [1, RowIndex];

LabeledEdit3. Text: = StringGrid2. Cells [2, RowIndex];

LabeledEdit4. Visible: = false;

end;

if Form6. ShowModal = mrOk then

with StringGrid2, Form6 do

begin

Cells [0, RowIndex]: = LabeledEdit1. Text;

Cells [1, RowIndex]: = LabeledEdit2. Text;

Cells [2, RowIndex]: = LabeledEdit3. Text;

end;

end;

2: begin

RowIndex: = StringGrid3. Row;

with form6 do

begin

LabeledEdit1. EditLabel. Caption: = 'Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ записи';

LabeledEdit2. EditLabel. Caption: = 'Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ студСнта';

LabeledEdit3. EditLabel. Caption: = 'Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°';

LabeledEdit4. EditLabel. Caption: = 'ΠžΡ†Π΅Π½ΠΊΠ°';

LabeledEdit4. Visible: = true;

LabeledEdit1. Text: = StringGrid3. Cells [0, RowIndex];

LabeledEdit2. Text: = StringGrid3. Cells [1, RowIndex];

LabeledEdit3. Text: = StringGrid3. Cells [2, RowIndex];

LabeledEdit4. Text: = StringGrid3. Cells [3, RowIndex];

end;

if Form6. ShowModal = mrOk then

with StringGrid3, Form6 do

begin

Cells [0, RowIndex]: = LabeledEdit1. Text;

Cells [1, RowIndex]: = LabeledEdit2. Text;

Cells [2, RowIndex]: = LabeledEdit3. Text;

Cells [3, RowIndex]: = LabeledEdit4. Text;

end;

end;

end;

end;

procedure TForm1. Button15Click (Sender: TObject);

var

i, j: integer;

begin

Form6. Caption: = 'Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…';

Form6. LabeledEdit1. Text: = '';

Form6. LabeledEdit2. Text: = '';

Form6. LabeledEdit3. Text: = '';

Form6. LabeledEdit4. Text: = '';

case TabbedNotebook1. PageIndex of

0: begin

with form6 do

begin

LabeledEdit1. EditLabel. Caption: = 'Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€';

LabeledEdit2. EditLabel. Caption: = 'Ѐамилия';

LabeledEdit3. EditLabel. Caption: = 'НомСр ΠΏΠΎ ΠΆΡƒΡ€Π½Π°Π»Ρƒ';

LabeledEdit4. EditLabel. Caption: = 'УчастиС Π² ΠΠ˜Π ';

LabeledEdit4. Visible: = true;

end;

i: = 0;

while StringGrid1. Cells [0, i] <> '' do

begin

inc (i);

if i > StringGrid1. RowCount then

begin

StringGrid1. RowCount: = StringGrid1. RowCount + 1;

i: = StringGrid1. RowCount;

break;

end;

end;

if Form6. ShowModal = mrOk then

with StringGrid1, Form6 do

begin

Cells [0, i]: = LabeledEdit1. Text;

Cells [1, i]: = LabeledEdit2. Text;

Cells [2, i]: = LabeledEdit3. Text;

Cells [3, i]: = LabeledEdit4. Text;

end;

end;

1: begin

form6. LabeledEdit1. EditLabel. Caption: = 'Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€';

form6. LabeledEdit2. EditLabel. Caption: = 'ΠŸΡ€Π΅Π΄ΠΌΠ΅Ρ‚';

form6. LabeledEdit3. EditLabel. Caption: = 'ΠŸΡ€ΠΎΡ†Π΅Π½Ρ‚ сдачи';

form6. LabeledEdit4. Visible: = false;

i: = 0;

while StringGrid2. Cells [0, i] <> '' do

begin

inc (i);

if i > StringGrid2. RowCount then

begin

StringGrid2. RowCount: = StringGrid2. RowCount + 1;

i: = StringGrid2. RowCount;

break;

end;

end;

if Form6. ShowModal = mrOk then

with StringGrid2, Form6 do

begin

Cells [0, i]: = LabeledEdit1. Text;

Cells [1, i]: = LabeledEdit2. Text;

Cells [2, i]: = LabeledEdit3. Text;

end;

end;

2: begin

form6. LabeledEdit1. EditLabel. Caption: = 'Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ записи';

form6. LabeledEdit2. EditLabel. Caption: = 'Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ студСнта';

form6. LabeledEdit3. EditLabel. Caption: = 'Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°';

form6. LabeledEdit4. EditLabel. Caption: = 'ΠžΡ†Π΅Π½ΠΊΠ°';

form6. LabeledEdit4. Visible: = true;

i: = 0;

while StringGrid3. Cells [0, i] <> '' do

begin

inc (i);

if i > StringGrid3. RowCount then

begin

StringGrid3. RowCount: = StringGrid3. RowCount + 1;

i: = StringGrid3. RowCount;

break;

end;

end;

if Form6. ShowModal = mrOk then

with StringGrid3, Form6 do

begin

Cells [0, i]: = LabeledEdit1. Text;

Cells [1, i]: = LabeledEdit2. Text;

Cells [2, i]: = LabeledEdit3. Text;

Cells [3, i]: = LabeledEdit4. Text;

end;

end;

end;

end;

procedure GridDeleteRow (RowNumber: Integer; Grid: TstringGrid);

var

i: Integer;

begin

Grid. Row: = RowNumber;

if (Grid. Row = Grid. RowCount — 1) then

{ On the last row}

Grid. RowCount: = Grid. RowCount — 1

else

begin

{ Not the last row}

for i: = RowNumber to Grid. RowCount — 1 do

Grid. Rows [i]: = Grid. Rows [i + 1];

Grid. RowCount: = Grid. RowCount — 1;

end;

end;

procedure TForm1. Button1Click (Sender: TObject);

var

a: TStrings;

b: array of TStrings;

i, j: integer;

flag: boolean;

begin

flag: = false;

case TabbedNotebook1. PageIndex of

0: if StringGrid1. Cells [0, 1] = '' then

flag: = true;

1: if StringGrid2. Cells [0, 1] = '' then

flag: = true;

2: if StringGrid3. Cells [0, 1] = '' then

flag: = true;

end;

if flag then

MessageDlg ('ВсС записи ΡƒΠ΄Π°Π»Π΅Π½Ρ‹', mtInformation, [mbOk], 0)

else

if (MessageDlg ('Π£Π΄Π°Π»ΠΈΡ‚ΡŒ запись? ', mtConfirmation, [mbOk, mbCancel], 0) = mrOk) then

case TabbedNotebook1. PageIndex of

0: GridDeleteRow (StringGrid1. Row, StringGrid1);

1: GridDeleteRow (StringGrid2. Row, StringGrid3);

2: GridDeleteRow (StringGrid3. Row, StringGrid3);

end;

end;

procedure TForm1. SortDelayString;

var

j, n, i: integer;

flag: integer;

res: boolean;

count: integer;

buf: array [1.50] of string;

begin

// FindCount: = 0;

try

n: = 0;

for I: = 1 to tabl. RowCount do

if Tabl. Cells [aCol, i] <> '' then

inc (n);

cCount: = n;

// for j: = 1 to n — 1 do

j: = cIndex;

begin

i: = j;

repeat

flag: = 0;

case SorType of

TypeString: res: = (Tabl. Cells [aCol, i] > Tabl. Cells [aCol, i + 1]);

TypeInteger: res: = (strtoint (Tabl. Cells [aCol, i]) > strtoint (Tabl. Cells [aCol, i + 1]));

end;

if res then

begin

TStringGridX (Tabl). MoveRow (i, i+1);

flag: = 1;

dec (i);

inc (FindCount, 1);

end;

until (flag = 0) or (i = 0);

end;

except

MessageDlg ('НСвСрныС Π΄Π°Π½Π½Ρ‹Π΅! ', mtWarning, [mbOk], 0);

end;

inc (cIndex);

if cIndex > cCount — 1 then

begin

cIndex: = 1;

if FindCount > 0 then

MessageDlg ('Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π°! Π¨Π°Π³ΠΎΠ²: ' + inttostr (FindCount), mtWarning, [mbOk], 0);

end;

end;

procedure TForm1. Button2Click (Sender: TObject);

var

ARow: integer;

begin

ARow: = RadioGroup1. ItemIndex;

case TabbedNotebook1. PageIndex of

0: begin

if ARow in [1, 3] then

SortDelayString (StringGrid1, aRow, TypeString);

if Arow in [0, 2] then

SortDelayString (StringGrid1, aRow, TypeInteger);

end;

1: begin

if Arow = 1 then

SortDelayString (StringGrid2, aRow, TypeString);

if Arow in [0, 2] then

SortDelayString (StringGrid2, aRow, TypeInteger);

end;

2: begin

SortDelayString (StringGrid3, aRow, TypeInteger);

end;

3: begin

if (ARow = 0) then

SortDelayString (StringGrid4, aRow, TypeInteger);

if (ARow = 1) then

SortDelayString (StringGrid4, aRow, TypeString);

end;

end;

end;

procedure TForm1. Button3Click (Sender: TObject);

var

ARow: integer;

begin

ARow: = RadioGroup1. ItemIndex;

case TabbedNotebook1. PageIndex of

0: begin

if ARow in [1, 3] then

SortString (StringGrid1, aRow, TypeString);

if Arow in [0, 2] then

SortString (StringGrid1, aRow, TypeInteger);

end;

1: begin

if Arow = 1 then

SortString (StringGrid2, aRow, TypeString);

if Arow in [0, 2] then

SortString (StringGrid2, aRow, TypeInteger);

end;

2: begin

SortString (StringGrid3, aRow, TypeInteger);

end;

3: begin

if (ARow = 0) then

SortString (StringGrid3, aRow, TypeInteger);

if (ARow = 1) then

SortString (StringGrid3, aRow, TypeString);

end;

end;

end;

procedure TForm1. Button4Click (Sender: TObject);

var

s: string;

r, k, old, cnt, i: integer;

stId: string;

begin

for i: = 1 to stringgrid4. rowcount do

StringGrid4. Rows [i]. Clear;

// StringGrid4. Cells [0, 1]: = '';

// StringGrid4. Cells [1, 1]: = '';

r: = 0;

k: = 0;

old: = 0;

s: = IntToStr (5 — RadioGroup2. ItemIndex);

cnt: = 1;

while r >= 0 do

begin

r: = BinaryFind (k, s, 3, StringGrid3);

k: = r;

if r >= 0 then

begin

stId: = StringGrid3. Cells [1, r];

StringGrid4. Rows [cnt]. Add (stId);

r: = BinaryFind (1, stId, 0, StringGrid1);

if r >= 0 then

StringGrid4. Rows [cnt]. Append (StringGrid1. Cells [1, r])

else

StringGrid4. Rows [cnt]. Append ('Ѐамилия отсутствуСт');

inc (cnt, 1);

r: = 0;

end;

end;

end;

procedure TForm1. FormCreate (Sender: TObject);

begin

with StringGrid1 do

begin

Cells [0, 0]: = 'Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€';

Cells [1, 0]: = 'Ѐамилия';

Cells [2, 0]: = 'НомСр ΠΏΠΎ ΠΆΡƒΡ€Π½Π°Π»Ρƒ';

Cells [3, 0]: = 'УчастиС Π² ΠΠ˜Π ';

end;

with StringGrid2 do

begin

Cells [0, 0]: = 'Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€';

Cells [1, 0]: = 'ΠŸΡ€Π΅Π΄ΠΌΠ΅Ρ‚';

Cells [2, 0]: = 'ΠŸΡ€ΠΎΡ†Π΅Π½Ρ‚ сдачи';

end;

with StringGrid3 do

begin

Cells [0, 0]: = 'Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ записи';

Cells [1, 0]: = 'Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ студСнта';

Cells [2, 0]: = 'Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°';

Cells [3, 0]: = 'ΠžΡ†Π΅Π½ΠΊΠ°';

end;

with StringGrid4 do

begin

Cells [0, 0]: = 'Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€';

Cells [1, 0]: = 'Ѐамилия';

end;

end;

procedure TForm1. N2Click (Sender: TObject);

var

i, j: integer;

StudentRecord: TStudent;

ResultRecord: TResults;

MarkRecord: TMark;

begin

try

case TabbedNotebook1. PageIndex of

0: begin

AssignFile (StudentFile, 'students. std');

Reset (StudentFile);

i: = 0;

j: = 1; repeat

with StudentRecord, StringGrid1 do

begin

Read (StudentFile, StudentRecord);

Cells [0, j]: = IntToStr (ID);

Cells [1, j]: = FSTU;

Cells [2, j]: = IntToStr (NUMBER);

if YCHASTIE then

Cells [3, j]: = 'Π”Π°'

else

Cells [3, j]: = 'НСт';

inc (j);

end;

until Eof (StudentFile);

CloseFile (StudentFile);

end;

1: begin

AssignFile (ResultsFile, 'results. rsl');

Reset (ResultsFile);

i: = 0;

j: = 1;

repeat

with ResultRecord, StringGrid2 do

begin

Read (ResultsFile, ResultRecord);

Cells [0, j]: = IntToStr (ID);

Cells [1, j]: = ResultRecord. NAME;

Cells [2, j]: = RESULT;

inc (j);

end;

until Eof (ResultsFile);

CloseFile (ResultsFile);

end;

2: begin

AssignFile (MarksFile, 'mark. mrk');

Reset (MarksFile);

i: = 0;

j: = 1;

repeat

with MarkRecord, StringGrid3 do

begin

Read (MarksFile, MarkRecord);

Cells [0, j]: = IntToStr (ID);

Cells [1, j]: = IntToStr (StudentID);

Cells [2, j]: = IntToStr (ResultsID);

Cells [3, j]: = IntToStr (Mark);

inc (j);

end;

until Eof (MarksFile);

CloseFile (MarksFile);

end;

end;

except

MessageDlg ('НСвСрноС содСрТимоС Ρ„Π°ΠΉΠ»Π°! ', mtWarning, [mbOk], 0);

end;

end;

procedure TForm1. N3Click (Sender: TObject);

var

j: integer;

StudentRecord: TStudent;

ResultRecord: TResults;

MarkRecord: TMark;

begin

try

case TabbedNotebook1. PageIndex of

0: begin

AssignFile (StudentFile, 'students. std');

Rewrite (StudentFile);

for J: = 1 to StringGrid1. RowCount — 1 do

if StringGrid1. Cells [0, j] <> '' then

with StudentRecord, StringGrid1 do

begin

ID: = StrToIntDef (Cells [0, j], — 1);

FSTU: = Cells [1, j];

NUMBER: = StrToIntDef (Cells [2, j], — 1);

YCHASTIE: = ((Cells [3, j]) = 'Π”Π°') or ((Cells [3, j]) = 'ДА') or

((Cells [3, j]) = 'Π΄Π°');

Write (StudentFile, StudentRecord);

end;

CloseFile (StudentFile);

end;

1: begin

AssignFile (ResultsFile, 'results. rsl');

Rewrite (ResultsFile);

for J: = 1 to StringGrid2. RowCount — 1 do

if StringGrid2. Cells [0, j] <> '' then

with ResultRecord, StringGrid2 do

begin

ID: = StrToIntDef (Cells [0, j], — 1);

ResultRecord. NAME: = Cells [1, j];

RESULT: = Cells [2, j];

Write (ResultsFile, ResultRecord);

end;

CloseFile (ResultsFile);

end;

2: begin

AssignFile (MarksFile, 'mark. mrk');

Rewrite (MarksFile);

for J: = 1 to StringGrid1. RowCount — 1 do

if StringGrid3. Cells [0, j] <> '' then

with MarkRecord, StringGrid3 do

begin

ID: = StrToIntDef (Cells [0, j], — 1);

StudentID: = StrToIntDef (Cells [1, j], — 1);

ResultsID: = StrToIntDef (Cells [2, j], — 1);

Mark: = StrToIntDef (Cells [3, j], — 1);

Write (MarksFile, MarkRecord);

end;

CloseFile (MarksFile);

end;

end;

except

MessageDlg ('НСвСрныС Π΄Π°Π½Π½Ρ‹Π΅! ', mtWarning, [mbOk], 0);

end;

end;

procedure TForm1. N5Click (Sender: TObject);

begin

Close

end;

procedure TForm1. SortString;

var

j, n, i: integer;

flag: integer;

res: boolean;

buf: array [1.50] of string;

begin

FindCount: = 0;

try

n: = 0;

for I: = 1 to tabl. RowCount do

if Tabl. Cells [aCol, i] <> '' then

inc (n);

for j: = 1 to n — 1 do

begin

i: = j;

repeat

flag: = 0;

case SorType of

TypeString: res: = (Tabl. Cells [aCol, i] > Tabl. Cells [aCol, i + 1]);

TypeInteger: res: = (strtoint (Tabl. Cells [aCol, i]) > strtoint (Tabl. Cells [aCol, i + 1]));

end;

if res then

begin

TStringGridX (Tabl). MoveRow (i, i+1);

flag: = 1;

dec (i);

inc (FindCount, 1);

end;

until (flag = 0) or (i = 0);

end;

if FindCount > 0 then

MessageDlg ('Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π°! Π¨Π°Π³ΠΎΠ²: ' + inttostr (FindCount), mtWarning, [mbOk], 0);

except

MessageDlg ('НСвСрныС Π΄Π°Π½Π½Ρ‹Π΅! ', mtWarning, [mbOk], 0);

end;

FindCount: = 0;

end;

procedure TForm1. StringGrid1MouseUp (Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

var

Coord: TGridCoord;

ARow, Acol: integer;

begin

Coord: = StringGrid1. MouseCoord (x, y);

ACol: = Coord. Y;

ARow: = Coord. X;

if (Acol >= 0) and (ARow >= 0) then

begin

if (ACol = 0) then

begin

if Arow in [1, 3] then

SortString (StringGrid1, aRow, TypeString);

if Arow in [0, 2] then

SortString (StringGrid1, aRow, TypeInteger);

end;

end;

end;

procedure TForm1. StringGrid2MouseUp (Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

var

Coord: TGridCoord;

ARow, Acol: integer;

begin

Coord: = StringGrid2. MouseCoord (x, y);

ACol: = Coord. Y;

ARow: = Coord. X;

if (Acol >= 0) and (ARow >= 0) then

begin

if (ACol = 0) then

begin

if Arow = 1 then

SortString (StringGrid2, aRow, TypeString);

if Arow in [0, 2] then

SortString (StringGrid2, aRow, TypeInteger);

end;

end;

end;

procedure TForm1. StringGrid3MouseUp (Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

var

Coord: TGridCoord;

ARow, Acol: integer;

begin

Coord: = StringGrid3. MouseCoord (x, y);

ACol: = Coord. Y;

ARow: = Coord. X;

if (Acol >= 0) and (ARow >= 0) then

begin

if (ACol = 0) then

SortString (StringGrid3, aRow, TypeInteger);

end;

end;

procedure TForm1. StringGrid4MouseUp (Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

var

Coord: TGridCoord;

ARow, Acol: integer;

begin

Coord: = StringGrid4. MouseCoord (x, y);

ACol: = Coord. Y;

ARow: = Coord. X;

if (Acol >= 0) and (ARow >= 0) then

begin

if (ARow = 0) then

SortString (StringGrid4, aRow, TypeInteger);

if (ARow = 1) then

SortString (StringGrid4, aRow, TypeString);

end;

end;

function TForm1. BinaryFind (aStart: integer; aVal: string; aCol: integer; Tabl: TStringGrid): integer;

var

q, p, i, flag: integer;

v: string;

begin

q: = aStart + 1; // Π½Π°Ρ‡Π°Π»ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°

p: = 0; // ΠΊΠΎΠ½Π΅Ρ† Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°;

result: = - 1;

for i: = 1 to tabl. RowCount — 1 do

if Tabl. Cells [0, i] <> '' then

inc (p);

// q: = 1; // Start;

{ if (p = 0) then

exit; }

repeat

if p < q then

begin

flag: = 1;

result: = - 1;

end

else

begin

i: = trunc ((q + p) /2);

v: = Tabl. Cells [aCol, i];

if (aVal < Tabl. Cells [aCol, i]) then

p: = i — 1

else if True then

if (aVal > Tabl. Cells [aCol, i]) then

q: = q + 1

else

begin

flag: = 1;

result: = i;

end;

end;

until flag = 1;

end;

end.

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