Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа №5 (Вариант 12)

.doc
Скачиваний:
8
Добавлен:
20.06.2014
Размер:
791.55 Кб
Скачать

2

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

ЛИПЕЦКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

КАФЕДРА АВТОМАТИЗИРОВАННЫХ СИСТЕМ УПРАВЛЕНИЯ

Лабораторная работа №5

по дисциплине

«Технология программирования»

на тему:

«Программирование алгоритмов кодирования информации»

Студент

Ключанских А.С

подпись, дата

фамилия, инициалы

Группа

АС-10

Принял

Домашнев П.А.

ученая степень, звание

подпись, дата

фамилия, инициалы

Липецк 2011

  1. Задание

Написать программу, осуществляющую кодирование и раскодирование последовательности из входного файла заданным методом и сохраняющую результат в выходной файл. Имена файлов вводит пользователь. Режим работы с файлам – двоичный. Для алгоритмов шифрования/дешифрования пользователь должен вводить также ключ.

Вариант 12

Алгоритм шифрования

2 – метод Вижинера

  1. Листинг программы

#include <stdio.h>

#include <conio.h>

#include <locale.h>

#include <string.h>

void main()

{

char inputName[256], outputName[256];

unsigned char key[256];

setlocale(LC_ALL, "Russian");

printf("Введите название входного файла:\n\r");

scanf("%s", inputName);

printf("Введите название выходного файла:\n\r");

scanf("%s", outputName);

printf("Введите ключ шифрования:\n\r");

scanf("%s", key);

FILE* inputFp = fopen(inputName, "rb");

FILE* outputFp = fopen(outputName, "wb");

if (inputFp == NULL || outputFp == NULL)

{

printf("Не удалось открыть файл");

getch();

return;

}

printf("1. Кодирование\n2. Раскодирование\n");

int ch,i=0;

do ch=getch();

while(ch!='1'&&ch!='2');

int keylen=strlen((char*)key);

if(ch=='1')

{

while((ch=fgetc(inputFp))!=EOF)

{

if(i==keylen)i=0;

fputc((ch+key[i++])%256,outputFp);

}

}

else

{

while((ch=fgetc(inputFp))!=EOF)

{

if(i==keylen)i=0;

fputc((ch+256-key[i++])%256,outputFp);

}

}

printf("Данные успешно внесены в файл %s", outputName);

getch();

}

  1. Контрольный пример

  1. Блок-схема