Шифр Цезаря - C# (184497)

Узнай цену своей работы

Формулировка задачи:

Алфавит представляет из себя массив символов и задается методом setAlphabet; Значение сдвига задается методом setShift, сдвиг алфавита осуществлять вправо; Шифрование производится в методе encode, если исходная строка содержит символ отсутствующий в алфавите, то символ не кодировать. Метод должен возвращать зашифрованный текст.
Листинг программы
  1. public class CesarCipher
  2. {
  3. public char[] Alphabet { private get; set; }
  4. public int Shift { private get; set; }
  5. public string Encode(string plainText)
  6. {
  7. // Реализация
  8. return encoded_text;
  9. }
  10. }
  11. Вот что сделал, помогите плз
  12. public class CesarCipher
  13. {
  14. string encrypt_text = "The quick brown fox jumps over the lazy dog";
  15. int shift = 3;
  16. public char[] Alphabet { private get; set; }
  17. char[] alphabet = new char[26] {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q',
  18. 'R','S','T','U','V','W','X','Y','Z'};
  19.  
  20. public int Shift { private get; set; }
  21. public string Encode(string plainText)
  22. {
  23. // Реализация
  24. return encoded_text;
  25. }
  26. }

Решение задачи: «Шифр Цезаря»

textual
Листинг программы
  1.    class Program
  2.     {
  3.         class CaesarCipher
  4.         {
  5.             public static string Alphabet { get; set; }
  6.             public static int Shift { private get; set; }
  7.             public static string Encryption(string text )
  8.             {
  9.                 text = text.ToLower();
  10.                 var res = new StringBuilder();
  11.                 for (int i = 0; i < text.Length; i++)
  12.                     for (int j = 0; j < Alphabet.Length; j++)
  13.                         if (text[i] == Alphabet[j]) res.Append(Alphabet[(j + Shift) % Alphabet.Length]);
  14.  
  15.                 return res.ToString();
  16.             }
  17.             public static string Decryption(string crypt)
  18.             {
  19.                 crypt = crypt.ToLower();
  20.                 var res = new StringBuilder();
  21.                 for (int i = 0; i < crypt.Length; i++)
  22.                     for (int j = 0; j < Alphabet.Length; j++)
  23.                         if (crypt[i] == Alphabet[j]) res.Append(Alphabet[(j - Shift + Alphabet.Length) % Alphabet.Length]);
  24.  
  25.                 return res.ToString();
  26.             }
  27.         }
  28.         static void Main(string[] args)
  29.         {
  30.             CaesarCipher.Alphabet = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
  31.             CaesarCipher.Shift = 3;
  32.             string text = "текст";
  33.             Console.WriteLine("Текст {0}", text);
  34.             string crypt = CaesarCipher.Decryption(text);
  35.             Console.WriteLine("Шифруем текст: {0}", crypt);
  36.             text = " ";
  37.             text = CaesarCipher.Encryption(crypt);
  38.             Console.WriteLine("Дешифруем текст: {0}", text);
  39.  
  40.             CaesarCipher.Alphabet = "abcdefghijklmnopqrstuvwxyz";
  41.             text = "tekst";
  42.             Console.WriteLine("Текст {0}", text);
  43.             crypt = CaesarCipher.Decryption(text);
  44.             Console.WriteLine("Шифруем текст: {0}", crypt);
  45.             text = " ";
  46.             text = CaesarCipher.Encryption(crypt);
  47.             Console.WriteLine("Дешифруем текст: {0}", text);
  48.             Console.ReadKey();
  49.         }
  50.     }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут