Атаки на системы защиты информации. Алгоритм очереди на основе структуры " Товар"

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И  НАУКИ РЕСПУБЛИКИ БЕЛАРУСЬ

БЕЛОРУССКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ  УНИВЕРСИТЕТ

Факультет информационных технологий и робототехники (ФИТР)

 

Кафедра программного обеспечения  вычислительной техники

и автоматизированных систем

 

 

 

 

КУРСОВАЯ  РАБОТА

 

по дисциплине: ”Основы алгоритмизации и программирования”

 

  1. на тему: ” Атаки на системы защиты информации. Алгоритм очереди на основе структуры " Товар".

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Выполнил: ст. гр. 107211 Корогода В.И.

 

Приняла:  ст. преподаватель  И.М.Желакович

 

 

 

 

 

 

 

 

 

Минск  2012

Содержание

Содержание 2

ВВЕДЕНИЕ 3

1. Теоретические основы 5

1.1  Атаки сети, виды и защита 5

1.1.1 Классификация 5

1.1.2 Почтовая бомбардировка 5

1.1.3 Атаки с подбором пароля 6

1.1.4 Вирусы, почтовые черви и "троянские кони" 7

1.1.5 Сетевая разведка 7

1.1.6 Сниффинг пакетов 8

1.1.7 IP-спуфинг 9

1.1.8 Атака на отказ в обслуживании 10

1.1.9 Атаки типа Man-in-the-Middle 12

1.1.10 Использование "дыр" и "багов" в ПО 12

2. Постановка задачи 14

3. Описание программы 15

3.1 Описание данных 15

4. Блок схема 17

5. Руководство пользователя 18

6. Тестирование программы 19

7. ЗАКЛЮЧЕНИЕ 21

8. Список используемой литературы 22

 

 

ВВЕДЕНИЕ

 

Данная  курсовая работа посвящен работе с реализацией ввода и обработки структурных даных. Программа написана на языке С++, который в свою очередь явился наиболее удобной средой разработки программы. Гибкость, надежность и экономичность языка С++  свели к минимуму время разработки программного продукта и обеспечили ему понятность и доступность.

Язык С++ был разработан Бьерном Страуструпом в начале 80-х годов в AN&T Bell Labs. С++ был также стандартизирован комитетом ISO в рамках ISO/IEC 14882:1998 или как «Стандарт С++»(Standard C++).

С++  -  это  язык программирования общего назначения, хорошо известный своей  эффективностью, экономичностью и переносимостью.

Указанные преимущества С++ обеспечивают хорошее качество разработки почти любого вида программного продукта.  Использование  С++  в качестве  инструментального языка позволяет получать быстрые и компактные программы. Во многих случаях программы, написанные  на С++,  сравнимы по скорости с программами, написанными на языке ассемблера. При этом они имеют лучшую наглядность.

С++  поддерживает  указатели на переменные и функции. Указатель на объект  программы соответствует машинному адресу  этого объекта.  Посредством разумного использования указателей можно создавать эффективно-выполняемые программы,  так как указатели позволяют ссылаться на объекты тем же самым путем, как это делает машина. С++ поддерживает арифметику указателей, и тем самым позволяет осуществлять непосредственный доступ и манипуляции с адресами памяти.

С++ сочетает эффективность и мощность в относительно  малом по размеру языке. Хотя С++ не содержит встроенных компонент языка, выполняющих ввод-вывод, распределение памяти, манипуляций с экраном или управление процессами, тем не менее, системное окружение С++ располагает библиотекой объектных модулей, в которой реализованы подобные функции. Библиотека поддерживает многие из функций, которые требуются при всевозможной работе.

Таким образом  благодаря своей уникальности и  универсальности, язык С++ - это мощное средство программиста сегодня.

При разработке программы особое внимание было уделено  тому, чтобы программный продукт  был максимально универсальным  и применимым к различным областям знаний. В процессе отладки были устранены все мелкие недочеты, учтены основные пользовательские замечания.

В программе  в основном используются сложные  типы данных - функции, структуры, присутствует запись данных в файл. Программа  достаточно проста в эксплуатации и  не должна вызвать у пользователя вопросов при работе с ней.

 

1. Теоретические основы

 

1.1  Атаки сети, виды и защита

 

 Разумеется, целенаправленное применение подобных  традиционных средств управления  безопасностью, как антивирусное  ПО, межсетевые экраны, средства  криптографии и т.д., способствует  предотвращению несанкционированного  доступа к информации. Однако  в данном случае появляется  человеческий фактор. Человек, конечный  пользователь, оказывается самым  слабым звеном безопасности  системы,  и хакеры, зная это, умело используют  методы социальной инженерии.  Какие бы ни были многоуровневые  системы идентификации, от них  нет никакого эффекта, если  пользователи, к примеру, используют  простые для взлома пароли. При  профессиональном подходе к вопросам  безопасности такие проблемы  в крупных компаниях решают  путем выдачи уникальных и  сложных паролей или установкой  жестких правил для сотрудников  и адекватных мер наказания  за их несоблюдение.

 

1.1.1 Классификация

 

 Сетевые  атаки настолько разнообразны, насколько  разнообразны системы, против  которых они применяются. Технологически  большинство сетевых атак использует  множество ограничений, изначально  являющимися ограничениями в  протоколе TCP/IP. В спецификациях  ранних версий интернет-протокола (IP) отсутствовали требования безопасности, поэтому многие IP изначально являлись уязвимыми. И только через долгий срок, когда началось широкое развитие электронной коммерции и произошел ряд серьезных проблем с хакерами, начали обширно внедряться средства обеспечения безопасности интернет-протокола. Однако, поскольку изначально средства защиты для IP не разрабатывались, его реализации начали дополнять различными сетевыми процедурами, снижающими риск присущий этому протоколу.

 

1.1.2 Почтовая бомбардировка

 

 Бомбардировка  электронной почтой (т.н. mailbombing) - один  из самых старых и примитивных  видов интернет-атак. Правильнее даже будет назвать это компьютерным вандализмом. Суть мэйлбомбинга - в заваливании почтового ящика "мусорной" корреспонденцией или даже повреждения почтового сервера. Для этого используются специальные программы - мэйлбомберы. Они просто засыпают указанный в качестве мишени почтовый ящик огромным количеством писем, указывая при этом фальшивые данные отправителя - вплоть до IP-адреса. Все, что нужно агрессору, использующему мэйлбомбер, - указать e-mail жертвы, количество сообщений, придумать текст письма, указать фальшивые данные отправителя и нажать кнопку "пуск". Но большинство интернет-провайдеров имеют собственные надежные системы защиты клиентов от мэйлбомбинга. Когда число одинаковых писем из одного источника превышает предел, вся поступающая информация такого рода просто уничтожается. Поэтому сегодня почтовых бомбардировок можно не опасаться.

 

1.1.3 Атаки с подбором пароля

 

 Атакующий  систему хакер часто начинает  свои действия с попыток заполучить  пароль администратора или пользователя. Для того чтобы узнать пароль, существует великое множество  различных методов. Вот основные из них: IP-спуфинг и сниффинг пакетов - их мы рассмотрим позже. Внедрение в систему "троянского коня" - один из наиболее распространенных приемов, про него мы также расскажем подробнее в дальнейшем. Перебор "в лоб" (brute force attack - "атака грубой силой"). Существует много программ, которые осуществляют перебор паролей через Интернет или напрямую компьютере. Одни программы подбирают пароли по определенному словарю, другие просто генерируют случайным образом. Логический перебор пароля. Использующий этот метод злоумышленник просто подбирает возможные комбинации символов, которые могут быть использованы в качестве пароля. Такой метод обычно оказывается очень эффективным. Специалисты по компьютерной безопасности не перестают удивляться, до чего часто пользователи используют в качестве пароля такие "загадочные" комбинации как, 1234, qwerty или собственное имя, написанное задом наперед. Хакеры, подбирая  пароль, могут досконально изучить человека, использующего этот пароль. Имена членов семьи и родственников, домашних животных; спортивных команд; названия книг и кинофильмов – используются все эти данные и комбинации из них. Спастись от подобного можно, только используя в качестве пароля абсолютно случайную комбинацию символов, желательно сгенерированную программой. И необходимо регулярно менять пароль - следить за этим должен системный администратор. Социальная инженерия. Это использование хакером психологических приемов "работы" с пользователем. Типичный  пример - телефонный звонок от якобы "системного администратора" с заявлением вроде "У нас тут произошел сбой в системе, и информация о пользователях была утеряна. Не могли бы вы сообщить еще раз свой логин и пароль?". Так жертва сама отдает пароль в руки хакеру. Защититься от таких атак, помимо обычной бдительности, помогает система "одноразовых паролей".

 

1.1.4 Вирусы, почтовые черви и "троянские кони"

 

 Эти  проблемы поражают, в основном, не  провайдеров, а компьютеры пользователей.  Масштабы поражения при этом  огромны - вспыхивающие все чаще  глобальные компьютерные эпидемии  приносят многомиллиардные убытки. Авторы же "зловредных" программ  становятся все изощреннее, воплощая  в современных вирусах самые  передовые программные и психологические  технологии. Вирусы - это разные виды "враждебного" программного  кода. Вирусы внедряются в другие  программы с целью выполнения  заложенной в них вредоносной  функции. Это может быть уничтожение  файлов на винчестере, порча оборудования  или другие операции. Часто вирусы  запрограммированы на срабатывание  в определенную дату, а также  на рассылку своих копий с  помощью электронной почты по  всем адресам, найденным в адресной  книге. "Троянский конь", в отличие  от вируса, - самостоятельная программа,  чаще всего не предназначенная  для грубого разрушения информации, свойственного вирусам. Обычно  цель внедрения "троянского  коня" - получение скрытого удаленного  контроля над компьютером. "Троянские  кони" успешно маскируют под  различные игры или программы,  большинство которых можно подцепить  в Интернете. Более того, хакеры  иногда встраивают "троянских  коней" в совершенно "невинные" программы. Попав на компьютер, "троянский конь" не афиширует  свое присутствие, выполняется  максимально скрытно. Современные  средства борьбы с вирусами  очень эффективны, и практика  показывает, что регулярно вспыхивающие  глобальные эпидемии компьютерных  вирусов происходят чаще всего  благодаря "человеческому фактору" - большинство пользователей и  многие системные администраторы  ленятся регулярно обновлять  базы данных антивируса и проверять  на вирусы электронную почту.

 

1.1.5 Сетевая разведка

 

 Сетевую  разведку нельзя назвать атакой - ведь никаких "зловредных" действий хакер не производит. Однако сетевая разведка всегда  предшествует нападению, так как  при его подготовке хакерам  необходимо собрать всю информацию  о системе. Иинформация собирается  с использованием большого набора  приложений - ведь хакер старается получить как можно больше полезной информации. При этом производится сканирование портов, запросы DNS и т.д. Так удается выяснить, кому принадлежит тот или иной домен и какие адреса этому домену присвоены. Анализируются при проведении сетевой разведки и характеристики приложений, работающих на хостах, - словом, добывается информация, которую впоследствии можно использовать при взломе или проведении DDoS-атаки.

 

1.1.6 Сниффинг пакетов

 

 Сниффер  представляет собой программу,  которая использует сетевую карту,  работающую в режиме promiscuous mode (в  этом режиме все пакеты, полученные  по физическим каналам). При этом  сниффер перехватывает все пакеты, которые передаются через атакуемый  домен. Во многих случаях снифферы  работают в сетях на вполне  законном основании - их используют  для диагностики неисправностей  и анализа трафика. Поэтому  далеко не всегда можно определить, используется или нет конкретная программа-сниффер злоумышленниками, и не произошло ли банальной подмены программы на аналогичную. При помощи сниффера можно узнать различную конфиденциальную информацию - такую, например, как имена пользователей и пароли. Связано это с тем, что ряд широко используемых сетевых приложений передает данные в текстовом формате (telnet, FTP, SMTP, POP3 и т.д.). Поскольку пользователи часто применяют одни и те же логин и пароль, даже однократный перехват этой информации несет серьезную угрозу информационной безопасности. Единожды завладев логином и паролем сотрудника, хакер может получить доступ к ресурсу на системном уровне и с его помощью создать фальшивого, пользователя, которого можно в любой момент использовать для доступа в Сеть. Впрочем, используя определенный набор средств, можно существенно смягчить угрозу сниффинга пакетов. Это достаточно сильные средства аутентификации, которые трудно обойти, даже используя "человеческий фактор". Например, однократные пароли (One-Time Passwords). Это технология двухфакторной аутентификации, при которой происходит сочетание того, что у вас есть, с тем, что вы знаете. При этом аппаратное или программное средство генерирует по случайному принципу уникальный одномоментный однократный пароль. Если хакер узнает этот пароль с помощью сниффера, эта информация будет бесполезной, потому что в этот момент пароль уже будет использован и выведен из употребления. Но это касается только паролей - к примеру, сообщения электронной почты все равно остаются незащищенными. Другой способ борьбы со сниффингом - использование анти-снифферов. Это аппаратные или программные средства, которые распознают снифферы. Они измеряют время реагирования хостов и определяют, не приходится ли хостам обрабатывать "лишний" трафик. Подобного рода средства не могут полностью ликвидировать угрозу сниффинга, но жизненно необходимы при построении комплексной системы защиты. Однако наиболее эффективной мерой, по мнению ряда специалистов, будет просто сделать работу снифферов бессмысленной. Для этого достаточно защитить передаваемые по каналу связи данные современными методами криптографии. В результате хакер перехватит не сообщение, а зашифрованный текст. Сейчас наиболее распространенными являются криптографические протоколы IPSec от корпорации Cisco, а также протоколы SSH (Secure Shell) и SSL (Secure Socket Layer).

 

1.1.7 IP-спуфинг

 

 Спуфинг  - это вид атаки, при которой  хакер внутри организации или  за ее пределами выдает себя  за санкционированного пользователя. Для этого существуют различные  способы. Например, хакер может  воспользоваться IP-адресом, находящимся  в пределах диапазона санкционированных  к применению в рамках Сети  данной организации IP-адресов,  или авторизованным внешним адресом,  в случае если ему разрешен  доступ к определенным сетевым  ресурсам. Кстати, IP-спуфинг часто  используется как составная часть  более сложной, комплексной атаки.  Типичный пример - атака DDoS, для  осуществления которой хакер  обычно размещает соответствующую  программу на чужом IP-адресе, чтобы  скрыть свою истинную личность. Однако чаще всего IP-спуфинг  используется для выведения из  строя системы при помощи ложных  команд, а также для воровства  конкретных файлов или, наоборот, внедрения в базы данных ложной  информации. Полностью устранить  угрозу спуфинга практически  невозможно, но ее можно существенно  ослабить. Например, имеет смысл  настроить системы безопасности  таким образом, чтобы они отсекали  любой трафик, поступающий из  внешней сети с исходным адресом,  который должен на самом деле  находиться в сети внутренней. Впрочем, это помогает бороться  с IP-спуфингом, только когда  санкционированными являются лишь  внутренние адреса. Если таковыми  являются и некоторые внешние  адреса, использование данного метода  теряет смысл. Неплохо также  на всякий случай заблаговременно  пресечь попытки спуфинга чужих  сетей пользователями вашей сети - эта мера может позволить  избежать целого ряда неприятностей,  если внутри организации объявится  злоумышленник или просто компьютерный  хулиган. Для этого нужно использовать  любой исходящий трафик, если  его исходный адрес не относится ко внутреннему диапазону IP-адресов организации. При необходимости данную процедуру может выполнять и провайдер услуг Интернет. Этот тип фильтрации известен под названием "RFC 2827". Опять-таки, как и в случае со сниффингом пакетов, самой лучшей защитой будет сделать атаку абсолютно неэффективной. IP-спуфинг может быть реализован только при условии, что аутентификация пользователей происходит на базе IP-адресов. Поэтому криптошифрование аутентификации делает этот вид атак бесполезными. Впрочем, вместо криптошифрования с тем же успехом можно использовать случайным образом генерируемые одноразовые пароли.

 

1.1.8 Атака на отказ в обслуживании

 

 Сегодня  одна из наиболее распространенных  в мире форм хакерских атак - атака на отказ в обслуживании (Denial of Service - DoS). Между тем, это  одна из самых молодых технологий - ее осуществление стало возможно  только в связи с действительно  повсеместным распространением  Интернета. Не случайно о DoS-атаках  широко заговорили только после  того, как в декабре 1999 года  при помощи этой технологии  были "завалены" web-узлы таких  известных корпораций, как Amazon, Yahoo, CNN, eBay и E-Trade. Хотя первые сообщения  о чем-то похожем появились  еще в 1996 году, до "рождественского  сюрприза" 1999 года DoS-атаки не воспринимались  как серьезная угроза безопасности  в Сети. Однако спустя год, в  декабре 2000-го, все повторилось: web-узлы  крупнейших корпораций были атакованы  по технологии DoS, а их системные  администраторы вновь не смогли  ничего противопоставить злоумышленникам.  Ну а в 2001 году DoS-атаки стали  уже обычным делом. Собственно  говоря, DoS-атаки производятся отнюдь  не для кражи информации или  манипулирования ею. Основная их  цель - парализовать работу атакуемого web-узла. В сущности, это просто  сетевой терроризм. Не случайно поэтому американские спецслужбы подозревают, что за многими DoS-атаками на серверы крупных корпораций стоят пресловутые антиглобалисты. Действительно, одно дело швырнуть кирпич в витрину "Макдональдса" где-нибудь в Мадриде или Праге, и совсем другое - "завалить" сайт этой суперкорпорации, давно уже ставшей своего рода символом глобализации мировой экономики. DoS-атаки опасны еще и тем, что для их развертывания кибертеррористам не требуется обладать какими-то особенными знаниями и умениями - все необходимое программное обеспечение вместе с описаниями самой технологии совершенно свободно доступно в Интернете. К тому же от подобного рода атак очень сложно защититься. В общем случае технология DoS-атаки выглядит следующим образом: на выбранный в качестве мишени web-узел обрушивается шквал ложных запросов со множества компьютеров по всему миру. В результате, обслуживающие узел серверы оказываются парализованы и не могут обслуживать запросы обычных пользователей. При этом пользователи компьютеров, с которых направляются ложные запросы, и не подозревают о том, что их машина тайком используется злоумышленниками. Такое распределение "рабочей нагрузки" не только усиливает разрушительное действие атаки, но и сильно затрудняет меры по ее отражению, не позволяя выявить истинный адрес координатора атаки. Сегодня наиболее часто используются следующие разновидности DoS-атак:

- Smurf - ping-запросы  ICMP (Internet Control Message Protocol) по адресу  направленной широковещательной  рассылки. Используемый в пакетах  этого запроса фальшивый адрес  источника в результате оказывается  мишенью атаки. Системы, получившие  направленный широковещательный  ping-запрос, отвечают на него и  "затапливают" сеть, в которой  находится сервер-мишень.

- ICMP flood - атака, аналогичная Smurf, только  без усиления, создаваемого запросами  по направленному широковещательному  адресу.

- UDP flood - отправка на адрес системы-мишени  множества пакетов UDP (User Datagram Protocol), что приводит к "связыванию" сетевых ресурсов.

- TCP flood - отправка на адрес системы-мишени  множества TCP-пакетов, что также  приводит к "связыванию" сетевых  ресурсов.

- TCP SYN flood - при проведении такого рода  атаки выдается большое количество  запросов на инициализацию TCP-соединений  с узлом-мишенью, которому, в результате, приходится расходовать все свои  ресурсы на то, чтобы отслеживать  эти частично открытые соединения.

 В  случае атаки трафик, предназначенный  для переполнения атакуемой сети, необходимо "отсекать" у провайдера  услуг Интернет, потому что на  входе в Сеть сделать это  уже будет невозможно - вся полоса  пропускания будет занята. Когда  атака этого типа проводится  одновременно через множество  устройств, говорится о распределенной  атаке DoS (Distributed Denial of Service - DDoS). Угрозу DoS-атак можно снизить несколькими  способами. Во-первых, необходимо  правильно сконфигурировать функции  анти-спуфинга на маршрутизаторах  и межсетевых экранах. Эти функции  должны включать, как минимум,  фильтрацию RFC 2827. Если хакер будет  не в состоянии замаскировать  свою истинную личность, он вряд  ли решится на проведение атаки.  Во-вторых, необходимо включить и  правильно сконфигурировать функции  анти-DoS на маршрутизаторах и межсетевых экранах. Эти функции ограничивают число полуоткрытых каналов, не позволяя перегружать систему. Также рекомендуется при угрозе DoS-атаки ограничить объем проходящего по Сети некритического трафика. Об этом уже нужно договариваться со своим интернет-провайдером. Обычно при этом ограничивается объем трафика ICMP, так как он используется сугубо для диагностических целей.

 

1.1.9 Атаки типа Man-in-the-Middle

 

 Этот тип атак весьма характерен для промышленного шпионажа. При атаке типа Man-in-the-Middle хакер должен получить доступ к пакетам, передаваемым по Сети, а потому в роли злоумышленников в данном случае часто выступают сами сотрудники предприятия или, к примеру, сотрудник фирмы-провайдера. Для атак Man-in-the-Middle часто используются снифферы пакетов, транспортные протоколы и протоколы маршрутизации. Цель подобной атаки, соответственно, - кража или фальсификация передаваемой информации или же получение доступа к ресурсам сети. Защититься от подобных атак крайне сложно, так как обычно это атаки "крота" внутри самой организации. Поэтому в чисто техническом плане обезопасить себя можно только путем криптошифрования передаваемых данных. Тогда хакер вместо необходимых ему данных получит мешанину символов, разобраться в которой, не имея под рукой суперкомпьютера, попросту невозможно. Впрочем, если злоумышленнику повезет, и он сможет перехватить информацию о криптографической сессии, шифрование данных автоматически потеряет всяческий смысл. Так что "на переднем крае" борьбы в данном случае должны находиться не "технари", а кадровый отдел и служба безопасности предприятия.

 

1.1.10 Использование "дыр" и "багов" в ПО

 

 Весьма  и весьма распространенный тип  хакерских атак - использование уязвимых  мест (чаще всего банальных недоработок)  в широко используемом программном  обеспечении, прежде всего для  серверов. Особо "славится" своей  ненадежностью и слабой защищенностью  ПО от Microsoft. Обычно ситуация развивается следующим образом: кто-либо обнаруживает "дыру" или "баг" в программном обеспечении для сервера и публикует эту информацию в Интернете в соответствующей конференции. Производитель данного ПО выпускает патч ("заплатку"), устраняющий данную проблему, и публикует его на своем web-сервере. Проблема в том, что далеко не все администраторы, по причине элементарной лени, постоянно следят за обнаружением и появлением патчей, да и между обнаружением "дыры" и написанием "заплатки" тоже какое-то время проходит: Хакеры же тоже читают тематические конференции и, надо отдать им должное, весьма умело применяют полученную информацию на практике. Не случайно же большинство ведущих мировых специалистов по информационной безопасности - бывшие хакеры.

 Основная  цель подобной атаки - получить  доступ к серверу от имени  пользователя, работающего с приложением,  обычно с правами системного  администратора и соответствующим  уровнем доступа. Защититься от  подобного рода атак достаточно  сложно. Одна из причин, помимо  низкокачественного ПО, состоит в том, что при проведении подобных атак злоумышленники часто пользуются портами, которым разрешен проход через межсетевой экран и которые не могут быть закрыты по чисто технологическим причинам. Так что лучшая защита в данном случае - грамотный и добросовестный системный администратор.

 

2. Постановка задачи

Разработать программу, реализующую алгоритм очереди (20 элементов). Задача решается в двух вариантах: статическом (на основе массива  структур) и динамическом. Реализовать  алгоритм кольцевой очереди на основе динамического списка. В качестве элемента очереди выбрать структуру, соответствующую индивидуальному  варианту.

Предусмотреть заполнение очереди из файла (подготовить  файл на 20 элементов).

Предусмотреть многоуровневое меню:

  1. Заполнение очереди
    1. с консоли (циклически)
    2. из файла (выбор файла, тек. папка, любая папка)
  2. Удаление элемента из очереди (циклически)
    1. безвозвратно
    2. с сохранением в файл
  3. Очистка очереди (с выводом удаляемых элементов)
    1. безвозвратно
    2. с сохранением в файл
  4. Вывод элементов, содержащихся в очереди
    1. на экран
    2. в файл
  5. Вывод количества элементов в очереди
  6. Сдвиг всех элементов очереди к началу при наличии пустых мест в начале очереди (для статического варианта)
  7. Выход

Реализовать алгоритм обработки исключений.

Проанализировать  достоинства и недостатки статического и динамического вариантов.

Продемонстрировать  работу всех пунктов меню. Продемонстрировать обработку ошибочных ситуаций (ввод данных другого типа, ввод пустых данных, переполнение очереди, пустая очередь).

 

3. Описание программы

3.1 Описание данных

1) void vvodMass();

Функция vvodMass отвечает за выбор способа ввода данных.

2) void consolVvodMass();

Функция consolVvodMass отвечает за ввод данных в массив с консоли и обеспечивает его.

3) void vivodFileMass();

Функция vivodFileMass обеспечивает вывод данных массива в файл.

4) void vivodEkranMass();

Функция vivodEkranMass обеспечивает вывод данных массива на экран.

5) void delElem();

Функция delElem отвечает за выбор способа удаления элементов массива или очереди.

6) void clean();

Функция clean отвечает за выбор способа очистки массива или очереди.

7) void vivodElem();

Функция vivodElem обеспечивает выбор варианта вывода элементов массива или очереди на экран или в файл.

8) void vivodColMass();

Функция vivodColMass обеспечивает вывод количества элементов массива.

9) void vivodColStruct();

Функция vivodColStruct обеспечивает вывод количества элементов очереди.

10) void sdvig();

Функция sdvig обеспечивает выбор сдвига элементов массива или очереди.

11) void sdvigMass();

Функция sdvigMass обеспечивает сдвиг элементов массива.

12) void sdvigStruct();

Функция sdvigStruct обеспечивает сдвиг элементов очереди.

13) void FromFileMass();

Функция FromFileMass обеспечивает считывание массива структур из файла.

14) void FromFileStruct();

ФункцияFromFileStruct обеспечивает считывание элементов очереди из файла.

15) void BezvDelMass();

Функция BezvDelMass обеспечивает безвозвратное удаление элемента массива.

16) void BezvDelStruct();

функция BezvDelStruct обеспечивает безвозвратное удаление элемента очереди.

17) void DelInFileMass();

Функция DelInFileMass обеспечивает удаление элемента массива с сохранением в файл.

18) void DelInFileStruct();

Функция DelInFileStruct обеспечивает удаление элемента очереди с сохранением в файл.

19) void BezvCleanMass();

Функция BezvCleanMass обеспечивает безвозвратную очистку массива.

20) void BezvCleanStruct();

Функция BezvCleanStruct обеспечивает безвозвратную очистку структуры.

21) void CleanInFileMass();

Функция CleanInFileMass обеспечивает очистку массива с сохранением элементов в файл.

22) void CleanInFileStruct();

Функция CleanInFileStruct обеспечивает очистку очереди с сохранением элементов в файл.

23) void chooseMethod();

Функция chooseMethod используется для выбора вариантов программы, статического или динамического.

24) void FromFileChain();

Функция FromFileChain обеспечивает ввод элементов очереди из файла.

25) void consolVvodStruct();

Функция consolVvodStruct обеспечивает ввод элементов очереди с консоли.

26) void vivodEkranStruct();

Функция vivodEkranStruct обеспечивает вывод элементов очереди на экран.

Атаки на системы защиты информации. Алгоритм очереди на основе структуры " Товар"