Утилита архивирования файлов по алгоритму Хаффмана
Автор: john_snow0987 • Декабрь 8, 2018 • Курсовая работа • 1,970 Слов (8 Страниц) • 444 Просмотры
Содержание
- Введение.Цели и задачи……………………………………………………..стр.3
- Описание алгоритма Дэвида Хаффмана для кодирования последовательности байтов………………………………………………………………………….стр.4
- Техническая реализация……………………………………………………...стр.9
3.1.Интеграция с контекстным меню файловой системы Windows……….стр.9
3.2.Пользовательский интерфейс……………………………………………стр.10
3.3.Структура программы.Описание основных классов…………………...стр.11
3.4.Описание работы программного кода…………………………………...стр.13
- Выводы………………………………………………………………………...стр.16
4.1.Экспериментальные данные………………………………………….....стр.16
4.2.Выполненные задачи……………………………………………………..стр.16
- Список литературы……………………………………………………………стр.17
- Введение.Цели и задачи
Архиваторы - это программы позволяющие уменьшить размер файла для экономии места на диске.
Тема сжатия данных является актуальной, т.к.в настоящее время пользователи ПК часто пользуются Интернетом и оперируют большими объемами информации. Очень часто случается так, что данные не помещаются на флэш-карту или на компакт-диск, а после архивирования данные прекрасно поместятся.
Сжатие информации - это процесс преобразования информации, хранящийся в файле, при котором уменьшается избыточность в ее представлении и соответственно требуется меньший объем памяти для хранения.
Сжатие информации в файлах происходит за счет устранения избыточности различными способами: например, за счет упрощения кодов, исключения из них постоянных битов или представления повторяющихся символов в виде коэффициента повторения и соответствующих символов.
Применяют различные алгоритмы подобного сжатия информации.При работе над данным курсовым проектом был использован алгоритм сжатия данных Дэвида Хаффман, разработанный в 1952 году.В настоящее время данных алгоритм используется во многих программах для архивации данных.
Цель курсовой работы заключается в раскрытии понятия архивации данных и изучения алгоритма для разработки утилиты архивирования файлов.
Перед началом разработки приложения поставлены следующие задачи:
1.Обеспечить стабильную работу функционала по сжатию файла при помощи алгоритма Дэвида Хаффмана.
2.Предоставить возможность декодирования и полного восстановления сжатого файла.
3.Организовать сохранение информации о файле, которая требуется для его возвращения из архива.
4.Найти оптимальное решение касательно сжатия (восстановления) директории, содержащей файлы.
5.Разработать простой дружественный интерфейс. Предоставить пользователю возможность отменить выполняемую операцию и следить за течением процесса.
6.Произвести интеграцию приложения с контекстным меню файловой системы ОС Windows.
Результатом работы над курсовым проектом будет готовое программное решение, позволяющее производить архивацию выбранных пользователем данных.
- Описание алгоритма Дэвида Хаффмана для кодирования последовательности байтов
Любой файл можно представить как последовательность байтов – единиц информации.Множество всевозможных комбинаций бит в составе байта назовем алфавитом символов.[pic 1]
Алгоритм Д.Хаффмана - алгоритм оптимального префиксного кодирования символов алфавита, который в настоящее время используется во многих программах для сжатия информации.
Отображение символ-код, представленное данным алгоритмом, является биекцией, что позволяет однозначно трактовать сжатую информацию и восстановить ее в полном объеме.Это свойство - следствие префиксности алгоритма: ни одна кодирующая последовательность не является префиксом другой.
Определение кодирующей последовательности бит для определенного символа включает в себя несколько этапов:
...