Реферат: Преобразования информации перед передачей её в канал связи
Заданием на данную курсовую работу является разработка программы на языке C++ для преобразования информации перед передачей её в канал связи.
Программа должна выполнять следующие действия - создать многооконный интерфейс пользователя , вывести строку подсказки с назначениями каждой из "горячей клавиш" , организовать опрос клавиатуры, вызов той или иной функции , соответствующей нажатой "горячей клавише'. Исходные данные (преобразуемый текст) должны храниться в файле на диске до загрузки данной программы и считываться по запросу пользователя. Имя файла задаётся пользователем в диалоговом режиме. Кодирование и декодирование информации должно осуществляться при нажатии пользователем соответствующих "горячих клавиш" .
Контрольная сумма , которая должна храниться в избыточном байте должна сверяться с полученной контрольной суммой при декодировании текстовой информации , предназначенной для передачи в канал связи.
В качестве "горячих клавиш" должны использоваться клавиши (комбинации клавиш) из диапазона Alt+F1 - Alt+F10 , клавиша Esc может использоваться для выхода из программы.
В данной курсовой работе для кодирования данных используется метод перестановки бис символа , варианты которой представлены в таблице 1.
Таблица 1
До перестановки | 0 | 1 | 2 | 3 |
После перестановки | 1 | 0 | 3 | 2 |
Избыточный байт в выходном файле формируется через каждые 3 символа путём сложения по модулю 2.
В результате необходимо получить работающую программу , а также результаты , удовлетворяющие условиям поставленной задачи.
2. Разработка алгоритма решения задачи преобразования информации
По условиям , заданным в задаче , исходный текст должен кодироваться с избыточностью путём сложения по модулю 2 на каждые 3 символа. Kодирование должно осуществляться путём подстановки символа по следующей схеме (0-1,1-0,2-3,3-2)
В связи с этим был разработан алгоритм кодирования информации в соответствии с заданием на курсовое проектирование (вариант 45). Данный алгоритм изображен на рисунке 1 и содержит в себе следующие функциональные блоки:
1) начало функции
2) проверка попадания символа в интервал
3) проверка кода символа >=50
4) если код символа >=50 то переменная mask=50h
5) если код символа не >=50 то переменная mask=40h
6) обнулить половину кода
7) разложить по битам в массив buf c перестановкой
8) запись полученных битов в символ
9) вернуть половину кода
10) возвратить символ программе
11) конец функции
3. Разработка программы
Разработанная программа petrov.cpp предназначена для преобразования информации перед передачей её в канал связи. Программа полностью отвечает требованиям , изложенным в разделе 1 (постановка задачи) и содержит в себе следующие функциональные модули:
1) функция getwin - осуществляет считывание позиции курсора
2) функция perest - осуществляет преобразование символа в соответствии с заданием.
3) основная программа - осуществляет оформление экрана , опрос клавиатуры [1] , вызов функций [1] в соответствии с нажатой "горячей клавиши", вывод сообщения об ошибке при её возникновении , очистку экрана , [1] выход из программы.
Данная программа использует при своей работе следующие переменные:
x1,y1,x2,y2 - координаты окна
tc , tb - цвет окна
px , py - позиция курсора