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

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° списка Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² унивСрситСта

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

МногиС языки программирования ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ. Π’ Π½ΠΈΡ… прослСТиваСтся явная иСрархия (ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ наслСдования) ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса. НапримСр, Π² C# -object, Π° Π² Delphi-TObject. Рис. 6.3.Π’Π²ΠΎΠ΄ характСристик Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π’Π²ΠΎΠ΄ списка Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½ послС наТатия клавиши «0». Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° список ΠΏΠΎΠ»ΠΎΠ½, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ (рис. 6. 4): Π’Ρ‹Ρ…ΠΎΠ΄… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

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

  • 1. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅
  • 2. ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ
  • 3. Анализ Π·Π°Π΄Π°Ρ‡ΠΈ
  • 4. БрСдства Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ
  • 5. ВрСбования ΠΊ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΌΡƒ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌΡƒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ
  • 6. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
  • 7. РСализация
    • 7.1 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
    • 7.2 ОписаниС Π΄Π°Π½Π½Ρ‹Ρ…
    • 7.3 ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹
  • 8. ВСстированиС
  • 9. Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
  • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

1. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

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

МногиС языки программирования ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ. Π’ Π½ΠΈΡ… прослСТиваСтся явная иСрархия (ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ наслСдования) ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса. НапримСр, Π² C# -object, Π° Π² Delphi-TObject.

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

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

Π—Π°Π΄Π°Π½ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ класс. ΠžΡ‚ Π½Π΅Π³ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ нСсколько ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ². ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ класс Бписок элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ² Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ добавлСния элСмСнта Π² ΡΠΏΠΈΡΠΎΠΊ, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнта ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°, поиск элСмСнта Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΈ Π΄Ρ€. Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ унивСрситСта. Π›ΡŽΠ±ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ — Ρ†Π΅Π»ΠΎΠ΅ число. Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π±Ρ‹Π²Π°ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, заявлСниС, Π²Π΅Π΄ΠΎΠΌΠΎΡΡ‚ΡŒ. Как слСдствиС, ΠΎΠ½ΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ характСристиками.

Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ:

1. Π”ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ элСмСнт Π² ΡΠΏΠΈΡΠΎΠΊ.

2. Π˜Π·ΠΌΠ΅Π½ΡΡ‚ΡŒ элСмСнт Π² ΡΠΏΠΈΡΠΊΠ΅.

3. Π£Π΄Π°Π»ΡΡ‚ΡŒ элСмСнта ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°.

4. Найти всС элСмСнты Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ критСриям.

5. ΠŸΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ список.

3. Анализ Π·Π°Π΄Π°Ρ‡ΠΈ

РСшСниС Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ связано с Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, которая Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со ΡΠΏΠΈΡΠΊΠΎΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² унивСрситСта.

Π Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ начинаСтся с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ. Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ возмоТности добавлСния элСмСнта Π² ΡΠΏΠΈΡΠΎΠΊ, удалСния элСмСнта ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°, измСнСния элСмСнта, поиска Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π° списка. Для использования этих возмоТностСй Π±ΡƒΠ΄Π΅Ρ‚ создано ΠΏΡ€ΠΎΠ½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ мСню. Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ списка Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ класс, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚. Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ любого Ρ‚ΠΈΠΏΠ° ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ характСристики: ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€, Ρ‚ΠΈΠΏ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, Π΄Π°Ρ‚Π° внСсСния послСдних ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΊΡƒΠ»ΡŒΡ‚Π΅Ρ‚Π°, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ относится Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚. Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠ΅ для всСх Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² дСйствия, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ: ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅. Π­Ρ‚ΠΈ характСристики ΠΈ Π΄Π΅ΠΉΡΡ‚вия Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ для всСх Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² класс «Document». ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρƒ Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ характСристики, Π½ΠΎ Π΄Π΅ΠΉΡΡ‚вия, выполняСмыС Π½Π°Π΄ Π½ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ ΠΏΠΎ ΡΡƒΡ‚ΠΈ, слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ наслСдованиС ΠΎΡ‚ ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄ΠΊΠ° «Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚». Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ класс «ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²», содСрТащий ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π²ΡΠ΅Ρ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… унивСрситСта. Для этого Π±ΡƒΠ΄Π΅Ρ‚ использован массив. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ возмоТности ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ дСйствия со ΡΠΏΠΈΡΠΊΠΎΠΌ.

4. БрСдства Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

Данная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ срСдС программирования C# Π² ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Π’Ρ‹Π±ΠΎΡ€ этот обусловлСн простотой постановки Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ возмоТностСй.

5. ВрСбования ΠΊ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΌΡƒ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌΡƒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ

Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ срСды ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠŸΠš Ρ‚ΠΈΠΏΠ° IBMPC.

БистСмныС трСбования:

Β· ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Pentium 200 ΠœΠ“Ρ†

Β· ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Π°Ρ ΠΏΠ°ΠΌΡΡ‚ΡŒ 32 RAM

Β· Π’ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚Π° 800×600

Β· ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма Microsoft Windows 98/ME/2000/XP/Vista/7

Β· ΠšΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°

Β· ΠœΡ‹ΡˆΡŒ

Β· Π Π°Π·ΠΌΠ΅Ρ€Ρ‹ свободного дискового пространства 200 ΠΊΠ±

6. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

ΠŸΡ€ΠΈ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²ΠΈΠ΄ΠΈΡ‚ ΠΎΠΊΠ½ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ содСрТит Π³Π»Π°Π²Π½ΠΎΠ΅ мСню. Оно содСрТит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ (рис. 6.1):

Β· Π’Π²ΠΎΠ΄ списка Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²

Β· Поиск Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ критСриям

Β· ИзмСнСниС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°

Β· Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°

Β· ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ вСсь список Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²

Β· Π’Ρ‹Ρ…ΠΎΠ΄ Рис. 6.1. Π“Π»Π°Π²Π½ΠΎΠ΅ мСню ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Для Π²Π²ΠΎΠ΄Π° списка Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚ мСню, послС Ρ‡Π΅Π³ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ (рис. 6.2):

Рис. 6.2.Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ списка ПослС Π²Ρ‹Π±ΠΎΡ€Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ описаниС характСристики Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° (рис. 6.3):

Рис. 6.3.Π’Π²ΠΎΠ΄ характСристик Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π’Π²ΠΎΠ΄ списка Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½ послС наТатия клавиши «0». Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° список ΠΏΠΎΠ»ΠΎΠ½, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ (рис. 6. 4):

Рис. 6.4.НаТатиС Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ вСсь список Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π’Π°ΠΊΠΆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ поиска Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ (рис. 6.5):

Рис. 6.5.Поиск Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ поиска ΠΏΡ€ΠΈΠΊΠ°Π·ΠΎΠ² ΠΏΠΎ Ρ„Π°ΠΌΠΈΠ»ΠΈΠΈ отвСтствСнного Π·Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ (рис. 6.6):

Рис. 6.6. Поиск ΠΏΡ€ΠΈΠΊΠ°Π·ΠΎΠ² ΠΏΠΎ Ρ„Π°ΠΌΠΈΠ»ΠΈΠΈ отвСтствСнного Π·Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ поиска заявлСний ΠΏΠΎ Ρ„Π°ΠΌΠΈΠ»ΠΈΠΈ заявитСля (рис. 6.7):

Рис. 6.7. Поиск заявлСний ΠΏΠΎ Ρ„Π°ΠΌΠΈΠ»ΠΈΠΈ заявитСля Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ поиска вСдомостСй Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… курса ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ (рис. 6.8):

Рис. 6.8. Поиск вСдомостСй Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… курса ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ поиска всСх вСдомостСй ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ дисциплинС: (рис. 6.9):

Рис. 6.9. Поиск всСх вСдомостСй ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ дисциплинС Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ измСнСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ (рис. 6.10):

Рис. 6.10. ИзмСнСниС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ Π’ ΡΠΏΠΈΡΠΎΠΊ возмоТностСй Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. ПослС выполнСния всСх Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… дСйствий со ΡΠΏΠΈΡΠΊΠΎΠΌ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½Π°ΠΆΠ°Π² ΠΊΠ»Π°Π²ΠΈΡˆΡƒ «0"(рис. 6.11):

Рис. 6.11. НаТатиС Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Π’Ρ‹Ρ…ΠΎΠ΄.

7. РСализация

7.1 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Рис. 7.1. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

7.2 ОписаниС Π΄Π°Π½Π½Ρ‹Ρ…

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ описаны ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹:

publicabstractclassDocument//класс — Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ всСх Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²

{

intnumber; //Π½ΠΎΠΌΠ΅Ρ€ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°

publicstringLastModified; // Π΄Π°Ρ‚Π° послСднСго измСнСния строкой

publicstringType; //свойство Ρ‚ΠΈΠΏ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°

publicstring Department; //свойство Ρ„Π°ΠΊΡƒΠ»ΡŒΡ‚Π΅Ρ‚

}

classStatement: Document // класс «Statement» — наслСдник ΠΎΡ‚ Document

{

int course; //курс

int group; //Π³Ρ€ΡƒΠΏΠΏΠ°

intstudentscnt; // сколько всСго студСнтов Π² Π³Ρ€ΡƒΠΏΠΏΠ΅

intfailedcnt; // количСство Π½Π΅ ΡΠ΄Π°Π²ΡˆΠΈΡ…

}

classRequest: Document// класс «Request» — наслСдник ΠΎΡ‚ Document

{

publicstringFromWho; // ΠΎΡ‚ ΠΊΠΎΠ³ΠΎ заявлСниС

publicstringToWhom; // ΠΊΠΎΠΌΡƒ заявлСниС

publicstring Subject; // Ρ‚Π΅ΠΌΠ° заявлСния

}

classRectorsOrder: Document // класс «RectorsOrder» — наслСдник ΠΎΡ‚ Document

{

intexecby; // Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ скольки Π΄Π½Π΅ΠΉ ΠΏΡ€ΠΈΠΊΠ°Π· Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½

publicstringName; // Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΊΠ°Π·Π°

publicstringPersonResponsible;// отвСтствСнный Π·Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΊΠ°Π·Π°

classDocumentsList//класс «DocumentsList» — список Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²

{

staticprivateint N = 50; //Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ списка.

privateintcount;//количСство элСмСнтов Π² ΡΠΏΠΈΡΠΊΠ΅

Document[] Elem = newDocument[N]; //самсписок Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ массива

}

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅:

7.3 ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹

Класс «Document» ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:

publicvirtualstringShowInfo ()//Π²Ρ‹Π²ΠΎΠ΄ Π½Π° ΡΠΊΡ€Π°Π½ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ (Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ строки с ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠ°ΠΌΠΈ)

publicvirtualvoidChange ()//ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ Π­Ρ‚ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠ±Ρ‰ΠΈΠ΅ поля для всСх Ρ‚ΠΈΠΏΠΎΠ² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

Бвойство:

publicintNumber//свойство Π½ΠΎΠΌΠ΅Ρ€

{

get { return number; }

set { number = value< 0? -value :value; }

}

ΠšΠ»Π°ΡΡΡ‹ «Statement», «Request», «RectorsOrder» ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ «Document», дополняя ΠΈΡ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ полями, присущими ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.

Класс «DocumentsList» ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹-ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹:

publicboolcheck//свойство для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ списка (Π½Π΅ ΠΏΡƒΡΡ‚ Π»ΠΈ)

voidShow_Elem (intNum) //просмотр Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ элСмСнта (ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ)

publicvoidEl_Add (inttype) //Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнта Π² ΡΠΏΠΈΡΠΎΠΊ

publicvoidEl_Delete (intid) //ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнта ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° (ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ)

publicvoidView () //просмотр всСх элСмСнтов Π² ΡΠΏΠΈΡΠΊΠ΅

publicvoidEl_Change (intid) //измСнСния элСмСнта Π² ΡΠΏΠΈΡΠΊΠ΅ (ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ)

publicvoidEl_Search (int type) //поиск Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΠΎ Ρ‚ΠΈΠΏΡƒ

publicvoidEl_SearchByNum (intnum) //поиск ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°

publicvoidEl_SearchAllRequestsFrom (string name) // всС заявлСния ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ заявитСля

publicvoidEl_SearchAllStatementsOf (int c, int g) // всС вСдомости Π΄Π°Π½Π½ΠΎΠ³ΠΎ курса ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹

publicvoidEl_SearchAllStatementsBySubj (stringsubj) // всСв Сдомости ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΌΡƒ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρƒ

publicvoidEl_SearchRObyResp (stringresp) // всС ΠΏΡ€ΠΈΠΊΠ°Π·Ρ‹ Ρ€Π΅ΠΊΡ‚ΠΎΡ€Π°, Π³Π΄Π΅ отвСтствСнный Π·Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ — resp

8. ВСстированиС

ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ список Π΄Π°Π½Π½ΠΎΠ΅

К ΠΏΡƒΡΡ‚ΠΎΠΌΡƒ списку нСльзя ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ удалСния ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ элСмСнта, поэтому Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ список Π½Π° ΠΏΡƒΡΡ‚ΠΎΡ‚Ρƒ ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… дСйствий. Для этого Π² ΠΊΠ»Π°ΡΡΠ΅ «DocumentsList» Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ свойство «check», Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅Π΅ «true», Ссли список Π½Π΅ ΠΏΡƒΡΡ‚ ΠΈ «false» Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ случаС (рис. 8.1):

Рис. 8.1.ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΏΡƒΡΡ‚ΠΎΡ‚Ρƒ НСобходима Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏΠ° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° (рис. 10).

Рис. 8.2.ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° коррСктности Π²Ρ‹Π±ΠΎΡ€Π°

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

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ‹Π»Π° создана ΠΈ ΠΎΡ‚тСстирована ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ возмоТности:

1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ списка Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

2. Поиск ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.

3. Поиск ΠΏΡ€ΠΈΠΊΠ°Π·ΠΎΠ² ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ отвСтствСнного.

4. Поиск заявлСний ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ заявитСля.

5. Поиск всСх вСдомостСй Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ курса ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹.

6. Поиск всСх вСдомостСй ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π΄ΠΈΡΡ†ΠΈΠΏΠ»ΠΈΠ½.

7. ИзмСнСниС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅.

8. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°.

9. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ списка Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ структурныС части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

ΠœΠΎΠ΄ΡƒΠ»ΡŒDocument.cs

using System;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Text;

namespace task2

{

publicabstractclassDocument

{

int number; // Π½ΠΎΠΌΠ΅Ρ€ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°

publicint Number //свойство Π½ΠΎΠΌΠ΅Ρ€

{

get { return number; }

set { number = value< 0? -value :value; }

}

publicstringLastModified; // Π΄Π°Ρ‚Π° послСднСго измСнСния строкой

publicstringType; //свойство Ρ‚ΠΈΠΏ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°

publicstring Department; //свойство Ρ„Π°ΠΊΡƒΠ»ΡŒΡ‚Π΅Ρ‚

public Document (int n, string lm, string t, string d) // конструктор

{

Number = n;

LastModified = lm;

Type = t;

Department = d;

}

publicDocument () { }

//Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π² ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°Ρ…

publicvirtualstringShowInfo ()//ΠΏΠΎΠ°ΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅

{

return" Π’ΠΈΠΏ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°: «+ Type + «n» +

" НомСр Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°: «+ Number + «n» +

" Π”Π°Ρ‚Π° внСсСния послСдних ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚: «+ LastModified + «n» +

" Π€Π°ΠΊΡƒΠ»ΡŒΡ‚Π΅Ρ‚: «+ Department + «n» ;

}

publicvirtualvoidChange () //ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅

{

Console.WriteLine («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Ρ‚ΠΈΠΏ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°»);

Type = Console. ReadLine ();

Console.WriteLine («Π’Π²Π΅Π΄ΠΈΡ‚Π΅Π½ΠΎΠΌΠ΅Ρ€Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°»);

Number = Int32. Parse (Console.ReadLine ());

Console.WriteLine («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π΄Π°Ρ‚Ρƒ внСсСния послСдних ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚»);

LastModified = Console. ReadLine ();

Console.WriteLine («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΊΡƒΠ»ΡŒΡ‚Π΅Ρ‚Π°»);

Department = Console. ReadLine ();

}

}

}

ΠœΠΎΠ΄ΡƒΠ»ΡŒStatement.cs

using System;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Text;

using task2;

namespace task2

{

classStatement: Document

{

int course; //курс

int group; //Π³Ρ€ΡƒΠΏΠΏΠ°

intstudentscnt; // сколько всСго студСнтов Π² Π³Ρ€ΡƒΠΏΠΏΠ΅

intfailedcnt; // количСство Π½Π΅ ΡΠ΄Π°Π²ΡˆΠΈΡ…

publicstringTeachersName// имя прСподаватСля

{

get;

set;

}

publicstringSubjName// Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°

{

get;

set;

}

publicint Course

{

get { return course; }

set { if (value> 0 &&value< 5) course = value; else course = 1; }

}

publicint Group

{

get { return group; }

set { group = value< 0? -value :value; }

}

publicintStudentsCnt

{

get { returnstudentscnt; }

set { studentscnt = value< 0? -value :value; }

}

publicintFailedCnt

{

get { returnfailedcnt; }

set { failedcnt = value>= 0? value: studentscnt; }

}

public Statement (int n, string lm, string d, intcrs, int gr, intstcn, intfcn, stringtchn, stringsjn)//конструктор

: base (n, lm, «Π’Π΅Π΄ΠΎΠΌΠΎΡΡ‚ΡŒ», d)

{

Course = crs;

Group = gr;

StudentsCnt = stcn;

FailedCnt = fcn;

TeachersName = tchn;

SubjName = sjn;

}

public Statement () { }

publicoverridestringShowInfo () // ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ родитСля

{

returnbase.ShowInfo () +

" ΠšΡƒΡ€Ρ: «+ Course + «n» +

" Π“Ρ€ΡƒΠΏΠΏΠ°: «+ Group + «n» +

" Дисциплина: «+ SubjName + «n» +

" ΠŸΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»ΡŒ: «+ TeachersName + «n» +

" ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ студСнтов Π² Π³Ρ€ΡƒΠΏΠΏΠ΅: «+ StudentsCnt + «n» +

" ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π½Π΅ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΡ†Π΅Π½ΠΎΠΊ: «+ FailedCnt + «n» ;

}

publicoverridevoidChange () //ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅

{

base.Change ();

Console.WriteLine («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ курс»);

Course = Int32. Parse (Console.ReadLine ());

Console.WriteLine («Π’Π²Π΅Π΄ΠΈΡ‚Π΅Π³Ρ€ΡƒΠΏΠΏΡƒ»);

Group = Int32. Parse (Console.ReadLine ());

Console.WriteLine («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ дисциплину»);

SubjName = Console. ReadLine ();

Console.WriteLine («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ прСподаватСля (ЀИО)»);

TeachersName = Console. ReadLine ();

Console.WriteLine («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ количСство студСнтов Π² Π³Ρ€ΡƒΠΏΠΏΠ΅»);

StudentsCnt = Int32. Parse (Console.ReadLine ());

Console.WriteLine («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ количСство Π½Π΅ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΡ†Π΅Π½ΠΎΠΊ»);

FailedCnt = Int32. Parse (Console.ReadLine ());

}

}

}

ΠœΠΎΠ΄ΡƒΠ»ΡŒRequest.cs

using System;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Text;

namespace task2

{

classRequest: Document

{

publicstringFromWho; // ΠΎΡ‚ ΠΊΠΎΠ³ΠΎ заявлСниС

publicstringToWhom; // ΠΊΠΎΠΌΡƒ заявлСниС

publicstring Subject; // Ρ‚Π΅ΠΌΠ° заявлСния

public Request (int n, string lm, string d, stringfw, stringtw, stringsbj)//конструктор

: base (n, lm, «Π—аявлСниС», d)

{

FromWho = fw;

ToWhom = tw;

Subject = sbj;

}

public Request () { }

publicoverridestringShowInfo () // ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ родитСля

{

returnbase.ShowInfo () + «ΠžΡ‚ΠΊΠΎΠ³ΠΎ (ЀИО): «+ FromWho + «n» +

" ΠšΠΎΠΌΡƒ (ЀИО): «+ ToWhom + «n» +

" Π’Π΅ΠΌΠ°: «+ Subject + «n» ;

}

publicoverridevoidChange () //ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅

{

base.Change ();

Console.WriteLine («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠžΡ‚ ΠΊΠΎΠ³ΠΎ (ЀИО)»);

FromWho = Console. ReadLine ();

Console.WriteLine («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠšΠΎΠΌΡƒ (ЀИО)»);

ToWhom = Console. ReadLine ();

Console.WriteLine («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Ρ‚Π΅ΠΌΡƒ»);

Subject = Console. ReadLine ();

}

}

}

ΠœΠΎΠ΄ΡƒΠ»ΡŒRectorsOrder.cs

using System;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Text;

namespace task2

{

classRectorsOrder: Document

{

intexecby;

publicintExecBy

{

get { returnexecby; }

set { execby = value< 30? value: 30; }

}

publicstring Name // Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΊΠ°Π·Π°

{

get;

set;

}

publicstringPersonResponsible

{

get;

set;

}

publicRectorsOrder (int n, string lm, string d, string name, intexb, stringpresp) // конструктор

: base (n, lm, «ΠŸΡ€ΠΈΠΊΠ°Π· Ρ€Π΅ΠΊΡ‚ΠΎΡ€Π°», d)

{

Name = name;

ExecBy = exb;

PersonResponsible = presp;

}

publicRectorsOrder () { }

publicoverridestringShowInfo () // ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ родитСля

{

returnbase.ShowInfo () + «ΠΠ°Π·Π²Π°Π½ΠΈΠ΅: «+ Name + «n» + «ΠŸΡ€ΠΈΠ²Π΅ΡΡ‚ΠΈ Π² ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² ΡΡ€ΠΎΠΊ Π΄ΠΎ «+ ExecBy + «Π΄Π½Π΅ΠΉ n» +

" ΠžΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΉ Π·Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ (ЀИО): «+ PersonResponsible + «n» ;

}

publicoverridevoidChange () //ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅

{

base.Change ();

Console.WriteLine («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅»);

Name = Console. ReadLine ();

Console.WriteLine («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ срок исполнСния»);

ExecBy = Int32. Parse (Console.ReadLine ());

Console.WriteLine («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ЀИО отвСтствСнного Π·Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅»);

PersonResponsible = Console. ReadLine ();

}

}

}

ΠœΠΎΠ΄ΡƒΠ»ΡŒDocumentsList.cs

using System;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Text;

namespace task2

{

classDocumentsList//список Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²

{

staticprivateint N = 50;

publicint count;

Document[] Elem = newDocument[N];

//——————————————————————————————————————;

publicDocumentsList ()

{

int i;

count = 0;

for (i = 0; i ≠ N — 1; i++)

Elem[i] = null;

}

//——————————————————————————————————————;

publicboolcheck//ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° содСрТимого списка (Π½Π΅ ΠΏΡƒΡΡ‚ Π»ΠΈ)

{

get

{

return !(count == 0);

}

}

//——————————————————————————————————————;

voidShow_Elem (intNum) //просмотр Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ элСмСнта (ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅)

{

Elem[Num]. ShowInfo ();

Console.WriteLine ();

Console.WriteLine («Π“ΠΎΡ‚ΠΎΠ²ΠΎ.»);

Console.WriteLine ();

}

//——————————————————————————————————————;

publicvoidEl_Add (inttype) //Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈ СэлСмСнта Π² ΡΠΏΠΈΡΠΎΠΊ

{

if (count == Elem. Length)

Array.Resize (ref Elem, count * 2);

if (type == 1)

Elem[count] = newRequest ();

elseif (type == 2)

Elem[count] = newStatement ();

elseif (type == 3)

Elem[count] = newRectorsOrder ();

Elem[count]. Change ();

count++;

Console.WriteLine ();

Console.WriteLine («ΠšΠΎΠ½Π΅Ρ†.»);

Console.WriteLine ();

}

//——————————————————————————————————————;

publicvoidEl_Delete (intid) //ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнта ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ (Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°)

{

int i, k;

bool find = false;

for (i = 0; (i <= (count — 1)) && (!find); i++)

{

find = Elem[i]. Number == id;

}

if (find)

{

i—;

Elem[i] = null;

for (k = i + 1; k <= count — 1; k++)

Elem[k — 1] = Elem[k];

GC.Collect (); //Π²Ρ‹Π·ΠΎΠ² сборщика мусора

GC.WaitForPendingFinalizers ();

Console.WriteLine ();

Console.WriteLine («nΠ£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ. n»);

Console.WriteLine ();

count—;

}

elseConsole.WriteLine («nНСт Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° с Ρ‚Π°ΠΊΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌn»); Console. WriteLine ();

}

//——————————————————————————————————————;

publicvoidView () //просмотр всСх элСмСнтов Π² ΡΠΏΠΈΡΠΊΠ΅

{

int i = 0;

for (i = 0; i <= (count — 1); i++)

{

Console.WriteLine (Elem[i]. ShowInfo ());

Console.WriteLine ();

}

Console.WriteLine («nΠšΠΎΠ½Π΅Ρ† списка. n»);

Console.WriteLine ();

}

//——————————————————————————————————————;

publicvoidEl_Change (int id) //ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ элСмСнта Π² ΡΠΏΠΈΡΠΊΠ΅

{

int i = 0;

bool ok = false;

while ((!ok) && (i <= (count — 1)))

{

if (Elem[i]. Number == id)

ok = true;

else i++;

}

if (ok)

{

Console.WriteLine (Elem[i]. ShowInfo ());

Console.WriteLine («nΠ’Π²Π΅Π΄ΠΈΡ‚Π΅ Π½ΠΎΠ²Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:»);

Console.WriteLine (Elem[i]. ShowInfo ());

Console.WriteLine ();

Console.WriteLine («nИзмСнСниС внСсСно. n»);

Console.WriteLine ();

}

else

{ Console. WriteLine («nНСт Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° с Ρ‚Π°ΠΊΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌn»); Console. WriteLine (); }

}

//——————————————————————————————————————;

publicvoidEl_Search (int type) //поиск Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΠΎ Ρ‚ΠΈΠΏΡƒ

{

if (type == 1)

{

int i = 0;

for (i = 0; i <= (count — 1); i++)

if (Elem[i] isRequest)

{

Console.WriteLine (Elem[i]. ShowInfo ());

Console.WriteLine ();

}

}

elseif (type == 2)

{

int i = 0;

for (i = 0; i <= (count — 1); i++)

if (Elem[i] isStatement)

{

Console.WriteLine (Elem[i]. ShowInfo ());

Console.WriteLine ();

}

}

elseif (type == 3)

{

int i = 0;

for (i = 0; i <= (count — 1); i++)

if (Elem[i] isRectorsOrder)

{

Console.WriteLine (Elem[i]. ShowInfo ());

Console.WriteLine ();

}

}

Console.WriteLine ();

Console.WriteLine («ΠŸΠΎΠΈΡΠΊ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½.»);

Console.WriteLine ();

}

//——————————————————————————————————————;

publicvoidEl_SearchByNum (intnum) //поиск ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°

{

int i = 0;

// string s;

bool ok = false;

while ((!ok) && (i <= (count — 1)))

{

if (Elem[i]. Number == num)

ok = true;

else i++;

}

if (ok)

{

Console.WriteLine (Elem[i]. ShowInfo ());

Console.WriteLine ();

}

Console.WriteLine ();

Console.WriteLine («ΠŸΠΎΠΈΡΠΊ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½.»);

Console.WriteLine ();

}

//——————————————————————————————————————;

publicvoidEl_SearchAllRequestsFrom (stringname) // всС заявлСния ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ заявитСля

{

int i = 0;

for (i = 0; i <= (count — 1); i++)

if ((Elem[i]) isRequest&& (Elem[i] asRequest).FromWho == name)

{

Console.WriteLine (Elem[i]. ShowInfo ());

Console.WriteLine ();

}

Console.WriteLine ();

Console.WriteLine («ΠŸΠΎΠΈΡΠΊ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½.»);

Console.WriteLine ();

}

//——————————————————————————————————————;

publicvoidEl_SearchAllStatementsOf (int c, int g) // всС вСдомости Π΄Π°Π½Π½ΠΎΠ³ΠΎ курса ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹

{

int i = 0;

for (i = 0; i <= (count — 1); i++)

if ((Elem[i]) isStatement&& (Elem[i] asStatement).Course == c && (Elem[i] asStatement).Group == g)

{

Console.WriteLine (Elem[i]. ShowInfo ());

Console.WriteLine ();

}

Console.WriteLine ();

Console.WriteLine («ΠŸΠΎΠΈΡΠΊ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½.»);

Console.WriteLine ();

}

//——————————————————————————————————————;

publicvoidEl_SearchAllStatementsBySubj (stringsubj) // всС вСдомости ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΌΡƒ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρƒ

{

int i = 0;

for (i = 0; i <= (count — 1); i++)

if ((Elem[i]) isStatement&& (Elem[i] asStatement).SubjName == subj)

{

Console.WriteLine (Elem[i]. ShowInfo ());

Console.WriteLine ();

}

Console.WriteLine ();

Console.WriteLine («ΠŸΠΎΠΈΡΠΊ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½.»);

Console.WriteLine ();

}

//——————————————————————————————————————;

publicvoidEl_SearchRObyResp (stringresp) // всС ΠΏΡ€ΠΈΠΊΠ°Π·Ρ‹ Ρ€Π΅ΠΊΡ‚ΠΎΡ€Π°, Π³Π΄Π΅ отвСтствСнный Π·Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ — resp

{

int i = 0;

for (i = 0; i <= (count — 1); i++)

if ((Elem[i]) isRectorsOrder&& (Elem[i] asRectorsOrder).PersonResponsible == resp)

{

Console.WriteLine (Elem[i]. ShowInfo ());

Console.WriteLine ();

}

Console.WriteLine ();

Console.WriteLine («ΠŸΠΎΠΈΡΠΊ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½.»);

Console.WriteLine ();

}

//——————————————————————————————————————;

}

}

ΠœΠΎΠ΄ΡƒΠ»ΡŒProgram.cs

using System;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Text;

namespace task2

{

classProgram

{

staticvoid Main (string[] args)

{

DocumentsList List = newDocumentsList ();

int i = 0;

do

{

Console.WriteLine («————————————————————————»);

Console.WriteLine («Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ дСйствиС:»);

Console.WriteLine («1 — Π’Π²ΠΎΠ΄ списка Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²»);

Console.WriteLine («2 — Поиск ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°»); // public void El_SearchByNum (intnum)

Console.WriteLine («3 — ВсС ΠΏΡ€ΠΈΠΊΠ°Π·Ρ‹, Π³Π΄Π΅ отвСтствСнный — «); // public void El_SearchRObyResp (string resp)

Console.WriteLine («4 — ВсС заявлСния ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°»); // public void El_SearchAllRequestsFrom (string name)

Console.WriteLine («5 — ВсС вСдомости Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ курса ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹»); // public void El_SearchAllStatementsOf (int c, int g)

Console.WriteLine («6 — ВсСвСдомостипооднойиздисциплин»); // public void El_SearchAllStatementsBySubj (string subj)

Console.WriteLine («7 — ИзмСнСниС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°»);

Console.WriteLine («8 — Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°»);

Console.WriteLine («9 — ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ вСсь список Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²»);

Console.WriteLine («0 — Π’Ρ‹Ρ…ΠΎΠ΄»);

Console.WriteLine («————————————————————————»);

i = Int32. Parse (Console.ReadLine ());

switch (i)

{

case 1:

{

int type;

do

{

Console.WriteLine («————————————————————————»);

Console.WriteLine («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Ρ‚ΠΈΠΏ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°: «);

Console.WriteLine («1 — ЗаявлСниС «);

Console.WriteLine («2 — Π’Π΅Π΄ΠΎΠΌΠΎΡΡ‚ΡŒ «);

Console.WriteLine («3 — ΠŸΡ€ΠΈΠΊΠ°Π· Ρ€Π΅ΠΊΡ‚ΠΎΡ€Π° «);

Console.WriteLine («0 — Π—Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒ Π²Π²ΠΎΠ΄ «);

Console.WriteLine («————————————————————————»);

type = Int32. Parse (Console.ReadLine ());

if ((type > 0) && (type < 4)) List. El_Add (type);

elseif (type ≠ 0) Console. WriteLine («nНСвСрный Ρ‚ΠΈΠΏ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π΅Ρ‰Ρ‘ Ρ€Π°Π·: n»);

} while (type ≠ 0);

}

break;

case 2:

if (List.check)

{

int nm;

Console.WriteLine («————————————————————————»);

Console.WriteLine («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π½ΠΎΠΌΠ΅Ρ€ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°: «);

nm = Int32. Parse (Console.ReadLine ());

Console.WriteLine («————————————————————————»);

List.El_SearchByNum (nm);

}

else { Console. WriteLine («nБписокпустn»); Console. WriteLine (); }

break;

case 3:

if (List.check)

{

// public void El_SearchRObyResp (string resp)

stringreq;

Console.WriteLine («————————————————————————»);

Console.WriteLine («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ имя заявитСля: «);

req = Console. ReadLine ();

Console.WriteLine («————————————————————————»);

List.El_SearchAllRequestsFrom (req);

}

else { Console. WriteLine («nБписок пустn»); Console. WriteLine (); }

break;

case 4:

if (List.check)

{

stringreq;

Console.WriteLine («————————————————————————»);

Console.WriteLine («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ имя заявитСля: «);

req = Console. ReadLine ();

Console.WriteLine («————————————————————————»);

List.El_SearchAllRequestsFrom (req);

}

else { Console. WriteLine («nБписокпустn»); Console. WriteLine (); }

break;

case 5:

if (List.check)

{ intcour;

int gr;

Console.WriteLine («————————————————————————»);

Console.WriteLine («Π’Π²Π΅Π΄ΠΈ тСкурс: «);

cour = Int32. Parse (Console.ReadLine ());

Console.WriteLine («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π³Ρ€ΡƒΠΏΠΏΡƒ: «);

gr = Int32. Parse (Console.ReadLine ());

Console.WriteLine («————————————————————————»);

List.El_SearchAllStatementsOf (cour, gr);

}

else { Console. WriteLine («nБписок пустn»); Console. WriteLine (); }

break;

case 6:

if (List.check)

{

stringsubj;

Console.WriteLine («————————————————————————»);

Console.WriteLine («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ дисциплины: «);

subj = Console. ReadLine ();

Console.WriteLine («————————————————————————»);

List.El_SearchAllStatementsBySubj (subj);

}

else { Console. WriteLine («nБписок пустn»); Console. WriteLine (); }

break;

case 7:

if (List.check)

{

Console.WriteLine («nΠ’Π²Π΅Π΄ΠΈΡ‚Π΅ Π½ΠΎΠΌΠ΅Ρ€ измСняСмого Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°»);

intchange_id = Int32. Parse (Console.ReadLine ());

List.El_Change (change_id);

}

else { Console. WriteLine («nБписок пустn»); Console. WriteLine (); }

break;

case 8:

if (List.check)

{

Console.WriteLine («nΠ’Π²Π΅Π΄ΠΈΡ‚Π΅ Π½ΠΎΠΌΠ΅Ρ€ удаляСмого Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°n»);

intdelete_id = Int32. Parse (Console.ReadLine ());

List.El_Delete (delete_id);

}

else { Console. WriteLine («nБписок пустn»); Console. WriteLine (); }

break;

case 9:

if (List.check)

{

Console.WriteLine («ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² ΡΠΏΠΈΡΠΊΠ΅» + List. count);

List.View ();

}

else { Console. WriteLine («nБписок пустn»); Console. WriteLine (); }

break;

case 0: Console. WriteLine («nΠ—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. НаТмитС Π»ΡŽΠ±ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ… n»);

break;

default: Console. WriteLine («nΠ’Ρ‹Π±Ρ€Π°Π½ Π½Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚ мСню. ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π²Ρ‹Π±ΠΎΡ€: n»);

break;

}

}

while (i ≠ 0);

Console.ReadLine ();

}

}

}

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