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

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

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

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

    public int Shift { private get; set; }
    public string Encode(string plainText)
    {
         // Реализация
        return encoded_text;
    }
  
}

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

textual
Листинг программы
   class Program
    {
        class CaesarCipher
        {
            public static string Alphabet { get; set; }
            public static int Shift { private get; set; }
            public static string Encryption(string text )
            {
                text = text.ToLower();
                var res = new StringBuilder();
                for (int i = 0; i < text.Length; i++)
                    for (int j = 0; j < Alphabet.Length; j++)
                        if (text[i] == Alphabet[j]) res.Append(Alphabet[(j + Shift) % Alphabet.Length]);
 
                return res.ToString();
            }
            public static string Decryption(string crypt)
            {
                crypt = crypt.ToLower();
                var res = new StringBuilder();
                for (int i = 0; i < crypt.Length; i++)
                    for (int j = 0; j < Alphabet.Length; j++)
                        if (crypt[i] == Alphabet[j]) res.Append(Alphabet[(j - Shift + Alphabet.Length) % Alphabet.Length]);
 
                return res.ToString();
            }
        }
        static void Main(string[] args)
        {
            CaesarCipher.Alphabet = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
            CaesarCipher.Shift = 3;
            string text = "текст";
            Console.WriteLine("Текст {0}", text);
            string crypt = CaesarCipher.Decryption(text);
            Console.WriteLine("Шифруем текст: {0}", crypt);
            text = " ";
            text = CaesarCipher.Encryption(crypt);
            Console.WriteLine("Дешифруем текст: {0}", text);
 
            CaesarCipher.Alphabet = "abcdefghijklmnopqrstuvwxyz";
            text = "tekst";
            Console.WriteLine("Текст {0}", text);
            crypt = CaesarCipher.Decryption(text);
            Console.WriteLine("Шифруем текст: {0}", crypt);
            text = " ";
            text = CaesarCipher.Encryption(crypt);
            Console.WriteLine("Дешифруем текст: {0}", text);
            Console.ReadKey(); 
        }
    }

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


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

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

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