Программа coDecЗадано число ки последовательность чисел от 1 до к 1 к. Необходимозашифровать литерную последовательность, находящуюся в файле в соответствии свведенной последовательностью. Выходные данные записать в файл. Например, если кравно 4 и последовательность S3,S2,S4,S1 то символы S1,S1,S3,S4преобразуются в S3,S2,S4,S1. Если количество символов не кратно к,то в конце последовательности необходимо добавить пробелы.
2. Описание применения1.Назначение программыПрограмма coDec предназначена для шифрации идешифрации символьного массива, находящегося в файле. 2. УсловияпримененияПрограмма предъявляет очень скромные требования кресурсам вычислительной установки. Тем не менее, в случае необходимостииспользовать для компиляции и сборки программы С на машинах типа PC необходимоиметь 8Мбайт оперативной памяти. Программа в состоянии брать из любого каталогафайлы и также записывать файлы в произвольную директорию,
указанную вами.Однако не следует пренебрегать общими принципами шифрации и дешифрацииинформационных данных , то есть воспринимать сей труд как панацею зашиты отпосторонних лиц. Любая закодированная порция данных может быть с легкостьюпреобразована в исходный текст подбором ключа, путем перестановки литер длянахождения логичного варианта. Описание задачиЗадача, поставленная на практике, состояла внеобходимости набора некоего числа к и последовательности 1
к, иперегруппировке символьного массива из одного файла в символьный массив другогофайла, в соответствии с раннее введенной последовательностью.Кодированиедостигает ся следующим образом из символьного массива файла источникапоследовательно берутся символы и записываются в новый символьный массив В B i 1 c , далее из этого массива происходит такжепоследовательно запись в файл, за исключением того, что индексы записываемыхсимволов равны последовательности
B pointer , где pointer равен массивупоследовательности .Декодирование принципработы декодирования противоположен кодированию и состоит в том, что новомумассиву В с индексами последовательности присваиваются считываемыесимволы B pointer c , а затем производится запись этогомассива, но уже с индексами от 1 до к B i 1 . 3.Описание программы1.ОбщиесведенияПрограмма coDec предназначена для шифрации идешифрации
символьного массива, находящегося в файле.Для выполнения программы достаточно вычислительнойустановки типа PC с процессором i386 и выше и 8 Мбайт оперативной памяти,оснащенной любой из следующих операционных систем MS DOS начиная с версии5.0 , Windows 95, Windows NT версий 0.Программа coDec написана на языке Visual C ,реализованном, например, в компиляторе MS Developer
Studio v.4.2 дляоперационных систем Windows NT и Windows 2. ФункциональноеназначениеПрограмма применяется для шифрования или дешифрацииданных из одного файла в другой. Однако не всякое сочетание исходных данныхпозволяет получить желаемый результат, например, не рекомендуется загружать .exe и прочие файлы, имеющие в своей структуре помимо текстовых данных,спецсимволы, в некоторых случаях воспринимаемые программой как конец файла.3.3.
Описаниелогической структурыПримечания вида см. Текст , встречающиеся вэтом разделе, означают ссылки на документ Текст программы .Описание головной программыВ Разделе 1 см. Текст производитсяподлключение стандартных библиотек компилятора для обеспечения функционированияотдельных операторов и всей программы в целом.В Разделе 2 см. Текст осуществляется описаниепеременных.В Разделе 3 см.
Текст производится выбордальнейшего действия программы кодирования 0 или декодирования 1 литерной последовательности, содержащейся в исходном файле, в выходной файл.Конструкция while 1 обеспечиваетпостоянное выполнение цикла до тех пор, пока не выполнится условие if,которое прерывает его действие оператором break. В Разделе 4находится цикл ввода длины кодовой последовательности, который автоматическипроверяет условие правильности введенного значения.Сообщение Error K must be integer from 1to 10 означает, что введенный
вами символ не удовлетворяеттребованиям и необходимо повторить ввод заново.В Разделе 5 организован цикл последовательностис проверкой вычисления контрольной суммы, путем подсчета введенной суммы исуммы из массива W с последующим сравнением обоих результатов. Еслисуммы не совпадают, цикл повторяется снова, в противном случае выполняетсяпоследующий оператор. Сообщение Error Repeat input говорито том, что последовательность неправильна и необходимо повторить
ввод заново.Раздел 6 образован для ввода и открытия длячтения исходного файла, открытия и записи выходного файла. Литера r обозначает, что файл открывается для чтения, соответственно w -длязаписи. При открытии происходит автоматическая проверка существования вуказанной директории файла. Если программа не в состоянии найти или открыть еговыводиться сообщение об ошибке Error Can t open file и сновазапрашивается имя, если же ошибок не найдено выполняется следующеедействие-
запрос имени файла для результатов.Раздел 7 предназначен для шифрации данных. Егоорганизация устроена по принципу, описанному в разделе 2.3. При этом, если впоследней последовательности не хватает n символов до к,программа автоматически приписывает дополнительные пробелы. Конструкция if feof fp amp amp i 0 return 0 - образована для исключениядополнительного цикла, который может возникнуть, если количество символов вфайле кратно к, в этом случае выполняется
лишний цикл, приводящий кдобавлению дополнительных пробелов и, следовательно, увеличению файлов. Придостижении конца файла EOF шифрации прекращается.Раздел 8 Дешифрация и запись вфайл-приемник-устроен практически по тому же принципу как и в разделе 7.Различиямежду операциями кодирования и декодирования приводятся в подразделе Описаниезадачи . Дешифрация также прекращается при достижении конца файла.
Раздел 9 закрывает раннее открытые файлы.3.4. Используемыетехнические средстваДля выполнения программы достаточно компьютера типаIBM PC с процессором i386 и выше и 8 Мбайт оперативной памяти, оснащенной любойиз следующих операционных систем MS DOS начиная с версии 5.0 , Windows 95,Windows NT версий 4.0.3.5. Вызови загрузкаЗапуск программы происходит путем запуска файла coDec.exe3.6
Входныеи выходные данныеФайлы-источники при кодировке по возможности должныбыть с расширением txt, в то время как файл-приемник может иметь любое. Вызваноэто причинами, описанными ранее в пункте 3.2. При декодировкеограничений нет.4.Текст программы Шифратор-дешифраторРаздел 1 include lt stdio.h gt include lt io.h gt include lt stdlib.h gt include lt iostream.h gt include lt string.h gt include lt math.h gt int main Раздел 2FILE fp, fp2 указатели на поток inti,k,
Sum,Sum contr,pointer,select intW 1,2,3,4,5,6,7,8,9,10 массив проверки int Y 10 массивдля кодовой перестановки char B 11 массивдля перестановленных символов char c переменная для хранения символа char fname 20 ,fname2 20 массивы для имен файлов О с н о в н о е т е л о п р о г р а м м ы Раздел 3 Выбор кодирования-декодирования while 1 printf nChoose coder 0 or decoder 1 scanf d , amp select if
select 0 select 1 break while getchar ! n Раздел 4 Ввод длины кодовой последовательности while 1 printf nInput length of code k 1 to 10 scanf d , amp k ввод десятичногоцелого if k gt 1 amp amp k lt 10 amp amp k ceil k break while getchar ! n printf n Error K must be integer from 1 to10 Раздел 5 Ввод перестановки while 1 printf n Input d elements n ,k for Sum 0,Sum contr 0,i 0 i lt k i printf
Element d ,i 1 scanf d , amp Y i Sum Y i Sum contr W i Вычисление контрольнойсуммы if Sum Sum contr break while getchar ! n printf n Error Repeat input Очистка входного потока while getchar ! n Раздел 6 Ввод имени файла-источника puts nInput name of file-sourche gets fname Открытие файла-источника while fp fopen fname, r NULL открытие файла для чтения puts
Error Can t open file nInput name offile-source n gets fname Ввод имени файла-приемника puts nInput name of file for results gets fname2 Создание файла-приемника if fp2 fopen fname2, w NULL открытие файла для записи perror fname2 return 1 Раздел 7 Шифрация и запись в файл-приемник if select 0 while 1 for i 0 i lt k i c fgetc fp if feof fp amp amp i 0 return 0 if feof fp amp amp i gt 0 B i 1 elseB i 1 c for i 0 i lt k i pointer
Y i putc B pointer ,fp2 if feof fp break Раздел 8 Дешифрация и запись в файл-приемник else while 1 for i 0 i lt k i c getc fp pointer Y i B pointer c if feof fp break for i 0 i lt k i putc B i 1 ,fp2 Раздел 9 Закрытие файла источника и приемника fclose fp fclose fp2
! |
Как писать рефераты Практические рекомендации по написанию студенческих рефератов. |
! | План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом. |
! | Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач. |
! | Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты. |
! | Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ. |
→ | Виды рефератов Какими бывают рефераты по своему назначению и структуре. |