Форум программистов, компьютерный форум CyberForum.ru

Шифрование/дешифрование текста: шифр Цезаря - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ структуры (подскажите где ошибки) http://www.cyberforum.ru/cpp-beginners/thread32302.html
Ребята посмотрите код я только начал делать задание но выдает ошибки что надо сделать написал ниже пробую пока только начало Предметная область - бухгалтерия предприятия. Решаемые задачи - учет труда и зарплаты работников; табель учета рабочего времени (складывается по подразделам и включает ПИБ работника, должность, количество отработанных часов и количество неробочих дней, за месяц)....
C++ Гляньте код... В тексте, состоящем из русских букв, подсчитайте количество гласных букв. #include <iostream.h> #include <conio.h> #include <stdio.h> void main() { char s; http://www.cyberforum.ru/cpp-beginners/thread32296.html
Задача на последовательность отрицательных чисел(не работает) C++
Во всех последовательностях отрицательных чисел поменят местами минимальное и максимальное значение местами Вот код: #include <stdio.h> #include <time.h> #include <stdlib.h> int Ar; int main(void) { int i, j; int nn; int ib;
Задан двумерный массив C++
Задан двумерный массив Q(C,S). Найти среднее геометрическое всех элементов. Если это сделать невозможно, выдать сообщение о причине.
C++ Найти НОК http://www.cyberforum.ru/cpp-beginners/thread32254.html
Помогите решить задачу: Найти наименьшее общее кратное четырех заданных натуральных чисел.
C++ Здача на строки Получить из слова a, вычёркиванием некоторого кол-ва букв, слова b. Отобразить на экране промежуточные этапы. Добавлено через 4 часа 46 минут 10 секунд Тем кто поможет заранее спс, а код оформите на C подробнее

Показать сообщение отдельно
korsarqa
7 / 7 / 0
Регистрация: 06.12.2011
Сообщений: 170
09.06.2012, 16:26     Шифрование/дешифрование текста: шифр Цезаря
Недавно писал курсовую по Высокоуровневому программированию. У меня было подобное задание только ввод текста идет с файла.
Вот код:
Функция main
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include "head.h"
 
using namespace std;
 
 
void main(){
setlocale( LC_ALL,"" );
int ans;
cout << "Пожалуйста введите 1 для шифрования, 0 для дешифрования \n";
cin >> ans;
if (ans==1) {
    system("cls");
    encryption();
     } else if (ans==0) {
         system("cls");
         decryption();
          } else {
        printf("Ошибка!");
        printf("Вы должны были ввести 0 или 1!");
        getch();
 }
}
Функция encryption(шифровка)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include "head.h"
 
using namespace std;
 
void encryption() {
    setlocale( LC_ALL,"" );
 char a;
    const int MAX_PATH = 256; // Константа, содержащая максимальную длину имени.
    char *fileName = new char[MAX_PATH]; // Строка для хранения имени файла ввода.
    char *fileOut = new char[MAX_PATH]; // Строка для хранения имени файла вывода.
    FILE *f1 = NULL, *f2 = NULL;
 
    cout<<"Шифр Цезаря \n"; 
    cout<<"Процесс шифрования"<<endl;
    cout<<"Путь к файлу ввода: \n";
    cin>>fileName;
    cout<<"Путь к файлу вывода: \n";
    cin>>fileOut;
 
 FILE *f=fopen(fileName, "r");
 FILE *fo=fopen(fileOut, "w");
 int n, *key;
 
 if(f==NULL)
 {
     cout<<"Файл ввода отсутствует \n";
     getch();
 } else {
    cout << "Введите ключ: \n";
    cin >> n;
 key=new int[n];
  while((a=fgetc(f))!=EOF) {
      if(a>='a' && a<='z') {
          a=('a' + (a-'a' + n) % 26 );
          fprintf(fo, "%c", a);
      } else if (a>='A' && a<='Z') {
          a=('A' + (a-'A' + n) % 26 );
          fprintf(fo, "%c", a);
      } else {
          fprintf(fo,"%c", a);
      }
  }
  cout<<"Процесс шифрования завершен \n";
  cout<<"Нажмите Enter для выхода из программы \n";
   fclose(f);
 fclose(fo);
 getch();
 }
}
Функция Decryption (Дешифровка)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include "head.h"
 
using namespace std;
 
void decryption() {
    setlocale( LC_ALL,"" );
 char a;
    const int MAX_PATH = 256; // Константа, содержащая максимальную длину имени.
    char *fileName = new char[MAX_PATH]; // Строка для хранения имени файла ввода.
    char *fileOut = new char[MAX_PATH]; // Строка для хранения имени файла вывода.
    FILE *f1 = NULL, *f2 = NULL;
 
    cout<<"Шифр Цезаря \n";
    cout<<"Процесс дешифрования"<<endl;
    cout<<"Путь к файлу ввода: \n";
    cin>>fileName;
    cout<<"Путь к файлу вывода: \n";
    cin>>fileOut;
 
 FILE *f=fopen(fileName, "r");
 FILE *fo=fopen(fileOut, "w");
 int n, *key;
 
 if(f==NULL)
 {
     cout<<"Файл ввода отсутствует \n";
     getch();
 } else { 
    cout << "Введите ключ: \n";
    cin >> n;
 key=new int[n];
  while((a=fgetc(f))!=EOF) {
          if(a>='a' && a<='z') {
              a=('z' - ('z'-a + n) % 26 );
          fprintf(fo, "%c", a);
      } else if (a>='A' && a<='Z') {
         a=('Z' - ('Z'-a + n) % 26 );
          fprintf(fo, "%c", a);
      } else {
          fprintf(fo,"%c", a);
      }
  }
  cout<<"Процесс дешифрования завершен \n";
  cout<<"Нажмите Enter для выхода из программы \n";
   fclose(f);
 fclose(fo);
 getch();
 }
}
Ну и заголовочный файл формата .h. Имя head.h
C++
1
2
3
4
5
6
7
8
9
#pragma once
 
extern char *f;
extern char *fo;
extern char a;
extern char *key;
 
void encryption();
void decryption();
 
Текущее время: 07:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru