Диагностические сообщения




 

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

Основные сообщения: «Не могу открыть файл с именем …»

Возникает при попытке открыть несуществующий файл с исходными данными.

Так же может являться следствием ограничения прав конкретного пользователя в системах с разграничением доступа (UNIX, Windows NT,2000 и т.д.) или же файл может быть уже открыт другой программой. Следует указать другой путь.

Если такое сообщение об ошибке возникает при попытке ввести имя выходного файла, то основной причиной является попытка задать такое местонахождение файла, которое является областью «только для чтения» (устройства чтения компакт-дисков, защищенные от записи дискеты). Следует указать другой путь.

· «Файл … успешно перекодирован в …»

Файл был успешно закодирован-декодирован с помощью метода Хемминга-15,11. Если при декодировании возникали ошибки, то все они по возможности были исправлены. В связи с тем, что используется кодирование информации с помощью метода Хемминга-15,11, то гарантируется исправление лишь однобитовых ошибок.

 

3.
Программная реализация

 

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

Программа условно разделяется на 4 логических части:

. Работа с файлами

. Блоки реализации интерфейса

. Блоки обработки ошибок

. Внешние функции кодирования-декодирования.

Рассмотрим каждую из них, а так же их взаимодействие:

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

. Интерфейс служит для облегчения взаимодействия программы с пользователями. Интерактивный “дружественный” интерфейс позволяет существенно уменьшиться время освоения программного продукта. Интерфейс реализован в текстовом режиме(textmode(C80)), что является следствием проведенного анализа на качество восприятия информации в различных режимах, а так же большей простотой в реализации, чем графического, при практически одинаковом результате.

. Блоки обработки ошибок являются неотъемлемой частью любой серьёзной программы, т.к. позволяют сразу увидеть, на каком этапе выполнения программы произошла ошибка и предпринять необходимые действия для её устранения.

. Внешние функции кодирования и декодирования базируются на алгоритме Хемминга. Основой этого алгоритма является добавление проверочных разрядов в исходную кодовую комбинацию при кодировании и проверке полученного четырехразрядного синдрома при декодировании. Если полученный синдром равен нулю, то в кодовой комбинации не содержится ошибок, иначе значение синдрома указывает на номер искаженного бита. После запуска программы пользователь может выбрать один из трех предложенных вариантов: вызов функции кодирования, вызов функции декодирования или пункт выхода из программы. При выборе первых двух пунктов появляются поля запроса, в которых необходимо ввести имена входного и выходного файлов. Производиться попытка открытия исходного файла; если это по каким-либо причинам не удается, то выводится соответствующее сообщение об ошибке и предлагается осуществить повторный ввод. Осуществляется попытка открытия выходного файла на запись, в случае неудачи выводится сообщение об ошибке и предлагаться осуществить повторный ввод. Затем в память считывается блок информации размером 32 бита (4 байта) для кодирования и 48 бит (6 байт) для раскодирования из исходного файла. Вызывается внешняя функция обработки файла. При кодировании исходные данные длиной 32 бита делятся на 3 части, состоящие из 11 бит каждая. Каждая часть раздельно кодируется по методу Хемминга-15,11. Затем каждые закодированные части по 15 бит дополняются незначащим битом до слова (16 бит) и сохраняются в выходном буфере. При декодировании исходные данные длиной 48 бит (6 байт) делятся на 2 слова (16 бит). Для каждого из слов составляется синдром, и, в случае, когда он не нулевой, исправляется ошибочный бит. Затем из исправленных слов выделяется по 11 информационных бит, которые затем и формируют выходные 32 бита. Если вызванная функция проверки открытого файла на конец возвращает ненулевое значение, то происходит выдача сообщения об успешном перекодировании с последующим возвратом в главное меню.


Заключение

 

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

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

Разработанная программа может быть использована в большинстве известных ОС, таких, как Windows 9x-Me-NT-2000-Xp, а также, конечно, в среде MS-DOS, PC-DOS и т.д. Русскоязычные пользователи любого уровня подготовки найдут её интересной.

 




Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-03-31 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: