Архиватор

Содержание.

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

Предложения по конкретизации.

Описание используемых типов данных.

Описание структуры программного продукта.

Заголовки разработанных процедур.

Текст программы.

Предложения по конкретизации.

Данная программа работает из командной строки :

Запустив исполняемый файл , пользователь получает инструкцию по использованию

Примечание:

при вводе команды (кодировать декодировать) : 1) между командой входящим и результирующим файлом ставить пробел ; 2)имена и расширения файлов разделяют точкой ;

Также во избежание некорректной работы программы желательно указывать полный путь к оперируемым файлам

Пример использования программы :

Сжимаем расжимаем файл , находясь в папке с программой :

D:USERS>vic a c:foldermyfile.* c:foldermyfile1.*

Где :

vic – программа.exe

myfile.* , myfile1.* входящий и результирующий файлы соответственно

команда сжатия <а> ; распаковки <е>

Курсовая работа

По алг. яз. и программированию

Булгаков Виктор Викторович

ПО – 21

Лист

3

1. Описание используемых типов данных.

В программе используются данных описанные в модуле “vic.cpp”:

// Количество битов в регистре

#define BITS_IN_REGISTER 16

// Максимально возможное значение в регистре

#define TOP_VALUE (((long) 1 << BITS_IN_REGISTER) - 1)

// Диапазоны

#define FIRST_QTR (TOP_VALUE / 4 + 1)

#define HALF (2 * FIRST_QTR)

#define THIRD_QTR (3 * FIRST_QTR)

// Количество символов алфавита

#define NO_OF_CHARS 256

// Специальный символ КонецФайла

#define EOF_SYMBOL (NO_OF_CHARS + 1)

// Всего символов в модели

#define NO_OF_SYMBOLS (NO_OF_CHARS + 1)

// Порог частоты для масштабирования

#define MAX_FREQUENCY 16383

// Таблицы перекодировки

unsigned char index_to_char [NO_OF_SYMBOLS];

int char_to_index [NO_OF_CHARS];

// Таблицы частот

int cum_freq [NO_OF_SYMBOLS + 1];

int freq [NO_OF_SYMBOLS + 1];

// Регистры границ и кода

long low, high;

long value;

// Поддержка побитлвых операций с файлами

long bits_to_follow;

int buffer;

int bits_to_go;

int garbage_bits;

// Обрабатываемые файлы

File in,out

Курсовая работа

По алг. яз. и программированию

Булгаков Виктор Викторович

ПО – 21

2. Описание структуры программного продукта.

Программный продукт включает 1 файл:

‘vic.exe’ – основная программа;

‘vic.cpp’ – модуль, в котором содержатся описания используемых в программе типов данных и объявлены необходимые переменные :

Курсовая работа

По алг. яз. и программированию

Булгаков Виктор Викторович

ПО – 21

Разработанные процедуры и функции.

Модуль ‘vic.cpp’.

void start_model (void) Инициализация адаптивной модели

Обновление модели очередным символом

void update_model ( int symbol)

проверка на переполнение счетчика частоты

if (cum_freq [0] == MAX_FREQUENCY)

масштабирование частот при переполнении

for ( i = NO_OF_SYMBOLS; i >= 0; i--)

Инициализация побитового ввода

void start_inputing_bits (void)

Ввод очередного бита сжатой информации

int input_bit (void)

Инициализация побитового вывода

void start_outputing_bits (void)

Вывод очередного бита сжатой информации

void output_bit ( int bit)

Очистка буфера побитового вывода

void done_outputing_bits (void)

Вывод указанного бита и отложенных ранее

void output_bit_plus_follow ( int bit)

Инициализация регистров границ и кода перед началом сжатия

void start_encoding (void)

Очистка побитового вывода

void done_encoding (void)

Загрузка начала сжатого сообщения

void start_decoding (void)

Кодирование очередного символа

void encode_symbol ( int symbol)

пересчет значений границ

range = (long) (high - low) + 1;

Декодирование очередного символа

int decode_symbol (void)

арифметическое кодирование

void encode ( char *infile, char *outfile)

арифметическое декодирование

void decode ( char *infile, char *outfile)

Головная процедура

void main ( int argc, char **argv)

Реферат опубликован: 13/05/2007