Будь умным!


У вас вопросы?
У нас ответы:) SamZan.ru

Задание

Работа добавлена на сайт samzan.ru: 2016-06-06


8

Министерство  образования РФ

Уральский государственный технический университет -УПИ

Кафедра "Технология и средства связи"

ОТЧЁТ

по учебной практике

                                        Преподаватель: Петров  Р.А.

                                  Студент:  Черепанов К.А.

             Группа: Р-207

Екатеринбург

2000

СОДЕРЖАНИЕ

1.Задание.........................................................................................................………...3

2.Описание применения........…......................................................................……….3

  2.1. Назначение программы.........................................................................……….3

  2.2. Условия применения.........…..................................................................………3

  2.3. Описание задачи..................…...............................................................……….3

3.Описание программы..................….............................................................………..4

  3.1. Общие сведения................................................................................….……….4

  3.2. Функциональное назначение..…...........................................................………4

  3.3. Описание  логической  структуры...................................................…………..4

  3.4. Используемые технические средства.....................................................….......5

  3.5. Вызов и загрузка....................................................................................………..5

  3.6. Входные и выходные данные............….................................................………5

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


1
.Задание

Задано число к и последовательность чисел от 1 до к 1......к. Необходимо зашифровать литерную последовательность, находящуюся в  файле в соответствии с введенной последовательностью. Выходные данные записать в  файл. Например, если к равно 4 и последовательность S3,S2,S4,S1 то символы S1,S1,S3,S4 преобразуются в S3,S2,S4,S1. Если количество символов не кратно к, то в конце последовательности необходимо добавить пробелы.

 2. Описание применения

2.1. Назначение программы

Программа coDec предназначена для шифрации и дешифрации символьного массива, находящегося в файле.

2.2. Условия применения

Программа предъявляет очень скромные требования к ресурсам вычислительной установки. Тем не менее, в случае необходимости использовать для компиляции и сборки программы С на машинах типа PC необходимо иметь 8Мбайт оперативной памяти. Программа в состоянии брать из любого каталога файлы и  также записывать файлы в произвольную директорию, указанную вами. Однако не следует пренебрегать общими принципами шифрации и дешифрации информационных данных , то есть воспринимать сей труд как панацею зашиты от посторонних лиц. Любая  закодированная порция данных может быть с легкостью преобразована в исходный текст подбором ключа, путем перестановки литер для нахождения логичного варианта.

  1.  Описание задачи

Задача, поставленная на практике, состояла в необходимости набора некоего числа к и последовательности 1.....к, и перегруппировке символьного массива из одного файла в символьный массив другого файла, в соответствии с раннее введенной последовательностью.

Кодирование достигается следующим образом: из символьного массива файла источника последовательно берутся символы и записываются в новый символьный массив В[ ] (B[i+1]=c), далее  из этого массива происходит также последовательно запись в файл, за исключением того, что индексы записываемых символов равны последовательности (B[pointer], где pointer равен массиву последовательности).

Декодирование: принцип работы декодирования противоположен кодированию и состоит в том, что новому массиву В[ ] с индексами последовательности присваиваются считываемые символы (B[pointer]=c), а затем производится запись этого массива, но уже с индексами от 1 до к (B[i+1]).

3. Описание программы

3.1.Общие сведения

Программа coDec предназначена для шифрации и дешифрации символьного массива, находящегося в файле.

Для выполнения программы достаточно вычислительной установки типа  PC с процессором i386 и выше и 8 Мбайт оперативной памяти, оснащенной любой из следующих операционных систем: MS DOS (начиная с версии 5.0), Windows 95, Windows NT версий 4.0.

Программа coDec написана на языке Visual C++, реализованном, например, в компиляторе MS Developer Studio v.4.2  для операционных систем Windows NT и Windows 95.

3.2. Функциональное назначение

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

3.3. Описание  логической  структуры

Примечания вида "см. Текст", встречающиеся в этом разделе, означают ссылки на документ «Текст программы».

Описание головной программы

В Разделе 1 (см. Текст) производится  подлключение стандартных библиотек компилятора для обеспечения функционирования отдельных операторов и всей программы в целом.

В Разделе 2 (см. Текст) осуществляется описание переменных.

В Разделе 3 (см. Текст) производится выбор дальнейшего действия программы: кодирования (0) или декодирования (1) литерной последовательности, содержащейся в исходном файле, в выходной файл.

Конструкция while (1) обеспечивает постоянное выполнение цикла до тех пор, пока не выполнится условие if, которое прерывает его действие оператором break.

           В Разделе 4 находится цикл ввода длины кодовой последовательности, который автоматически проверяет условие правильности введенного значения.

Сообщение "Error!!! K must be integer from 1 to 10" означает, что введенный вами символ не удовлетворяет требованиям и необходимо повторить ввод заново.

В Разделе 5 организован цикл последовательности с проверкой вычисления контрольной суммы, путем подсчета введенной суммы и суммы из массива W[ ] с последующим сравнением обоих результатов. Если суммы не совпадают, цикл повторяется снова, в противном случае выполняется последующий оператор. Сообщение " Error!!! Repeat input" говорит о том, что последовательность неправильна и необходимо повторить ввод заново.

Раздел  6 образован для ввода и открытия для чтения исходного файла, открытия  и записи выходного файла. Литера «r» обозначает, что файл открывается для чтения, соответственно «w»-для записи. При открытии происходит автоматическая проверка существования в указанной директории файла. Если программа не в состоянии найти или открыть его выводиться сообщение об ошибке «Error!!! Can't open file» и  снова запрашивается имя, если же ошибок не найдено выполняется следующее действие-запрос имени файла для результатов.

Раздел 7 предназначен для шифрации данных. Его организация устроена по принципу, описанному в разделе 2.3. При этом, если в последней последовательности не хватает n  символов до к, программа автоматически приписывает дополнительные пробелы. Конструкция if (feof(fp)&&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. exe

3.6 Входные и выходные данные

Файлы-источники при кодировке по возможности должны быть с расширением  txt, в то время как файл-приемник может иметь любое. Вызвано это причинами, описанными ранее в пункте 3.2. При декодировке ограничений нет.

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

// Шифратор-дешифратор

Раздел №1

# include <stdio.h>

# include <io.h>

# include <stdlib.h>

# include <iostream.h>

# include <string.h>

# include <math.h>

int main ()

{                                                                  Раздел №2 

FILE *fp,*fp2;             / *указатели на поток*/

    int i,k,Sum,Sum_contr,pointer,select;

    int W[]={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",&select);

         if ((select==0)||(select==1)) break;

             while (getchar()!='\n');

}

Раздел №4

/*Ввод длины кодовой последовательности*/

while (1)

{

printf ("\nInput length of code k(1 to 10) ");

scanf ("%d", &k);/* ввод десятичного целого*/

if (k>=1&&k<=10&&k==ceil(k)) break;

while (getchar()!='\n') ;

printf ("\n Error!!! K must be integer from 1 to 10 ");

}

Раздел №5

/*Ввод перестановки*/

while (1)

{

            printf ("\n Input %d elements \n",k);

            for (Sum=0,Sum_contr=0,i=0; i<k; i++)

            {

printf ("Element[%d]:",i+1);

                 scanf ("%d", &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 of file-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<k;i++)

{

c=fgetc(fp);

if (feof(fp)&&i==0) return 0;

if (feof(fp)&&i>0)

B[i+1]=' ';

else

B[i+1]=c;

}

for (i=0;i<k;i++)

{

pointer=Y[i];

putc(B[pointer],fp2);

}

if (feof(fp)) break;

}

}

Раздел №8

/*Дешифрация и запись в файл-приемник*/

else

{

while (1)

{ 

for(i=0;i<k;i++)

{

c=getc(fp);

pointer=Y[i];

B[pointer]=c;

}

if (feof(fp)) break;

for (i=0;i<k;i++)

                  putc(B[i+1],fp2);

}

}

Раздел №9

/*Закрытие файла источника и приемника*/

 fclose(fp);

        fclose(fp2);

}




1. і На виконання зазначених законодавчих документів державною службою зайнятості було виконано велику робот
2.  Перші цивілізації на території України Територія України заселена людьми з найдавніших часів
3. Тема- Развитие восприятия художественного произведения
4. і... Колись все те що зараз із гордістю красуэться на вітринах магазинів було бездушною купою брухту обабіч
5. На тему- Заемщики юридических лиц коммерческими банками Выполнил-ст
6. ] ж Этапы разработки и представления Объект.html
7. ВВЕДЕНИЕ Искусство Древнего Рима с его оригинальными и совершенными памятниками живописи архитектуры и с
8. Комерційні банк
9. Гарантия как способ обеспечения исполнения обязательств
10. Курсовой Проект Синтез системы автоматического управления Вариант N 5 Выполнил- Кузнецова А
11. Автосила [2.html
12. тема
13. реферату Давні ігри українцівРозділ Народознавство Давні ігри українців Читаючи нині в нашій пресі такі
14. вариант 0002 РУССКИЙ ЯЗЫК 1
15. Боевое Знамя вручается воинской части по ее сформи ровании
16. How to use dictionary
17. Психологические особенности отношения к соблюдению нравственных норм у будущих педагогов
18. Социальноэкономическая сущность финансов их роль в системе денежных отношений рыночного хозяйства функц
19. Рекламные сувениры
20. Оно осуществляет исполнительную власть Российской Федерации является коллегиальным органом возглавляющи