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

Простой шифратор - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Borland C++ работает на OS 7 ? http://www.cyberforum.ru/cpp-beginners/thread332254.html
Borland C++ работает на OS 7 ? Не дублируйте темы - это нарушает правила форума.
C++ Поиск слова в тексте Составить алгоритм поиска заданного слова в тексте. Слово и текст являются массивами символов заданной длины. Если заданное слово присутствует в тексте, то алгоритм должен возвращать номер позиции совпадения,в противном случае-значение 1 http://www.cyberforum.ru/cpp-beginners/thread332211.html
Пояснения условия C++
Пожалуйста поясните следующую задачу. (Прошу решения не предлагать, мне нужно самому решить) http://www.cyberforum.ru/attachment.php?attachmentid=87759&stc=1&d=1310459683 Я не понимаю как эта таблица получается. Если я могу предположить, что нижняя таблица (после пунктира) получилась в результате перемножения верхней, то как получилась верхняя догадок нет. В условие въехать не могу.
Как заполнить вектор в структуре? C++
как заполнить вектор в структуре?? struct pupil { vector <string> a; } я делал так: pupil f; f.a.push_back("qwerty"); что не правильно, подскажите как надо P.S. Пытался сделать массив строк struct pupil { string a;
C++ Двумерный массив в динамической памяти как поле класса http://www.cyberforum.ru/cpp-beginners/thread332132.html
Здравствуйте! Вот так можно описать двумерный массив в дин.памяти. class nameClass { public: MapPlaceTp ** roomMap; setArr ( ); };
C++ перегрузка оператора присваевания Не могу разобраться как перегрузить оператор присваивания так чтобы выводило правильно то есть a = 15; c = 7.8; d = "50"; d=a+d; //ответ: 65 а данный код выводит подробнее

Показать сообщение отдельно
Vultaron
 Аватар для Vultaron
1 / 1 / 0
Регистрация: 27.03.2011
Сообщений: 31
12.07.2011, 15:23     Простой шифратор
Задача такая: пользователь вводит четырехзначное число, после этого программа отображает это число в шифрованном виде. Шифрование заключается в том, что к каждой цифре числа прибавляется число 7, после этого от каждой из четырех новых цифр берется операция взятия остатка от деления на 10 (mod 10). Например, есть число 1234.
Согласно шифрования программа должна выдать: (1 + 7) mod 10 (2 + 7) mod 10 (3 + 7) mod 10 (4 + 7) mod 10
т.е. число 8901.
Код программы такой:
C++
1
2
3
4
5
6
7
8
//Enigma.h
class Number
{
    public:
    void greeting ();
    void enigmaWork ();
    void notencryptedToEncrypted (int);
};
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
53
54
55
56
57
58
59
60
61
//Enigma.cpp
#include <iostream>
#include <math.h>
#include "Enigma.h"
using std::cin;
using std::cout;
using std::endl;
 
void Number::greeting ()
{
    std::cout<<"Вас приветствует шифровальная утилита";
}
 
void Number::enigmaWork ()
{
    int mode;
    int number;
    greeting();
    std::cout<<"Выберите режим работы\n(1 - из обычного числа перевести в шифрованное)"<<endl;
    std::cin>>mode;
    std::cout<<"Введите число"<<endl;
    std::cin>>number;
    
    if (mode == 1)
    {
        Number::notencryptedToEncrypted (number);
    }
}
 
//Ошибка скорее всего в реализации этой функции
void Number::notencryptedToEncrypted (int number)
{
       
    int changedNumber = 0;
    int passwordIndex = 1000;
    while (passwordIndex >= 1)
    {
        if ((number % passwordIndex) >= 0)
        {
            int a;
            a = static_cast<int>(number/passwordIndex + 7);
            if (a % 10 > 0)
            {
                changedNumber += (a % 10) * passwordIndex; 
                passwordIndex = passwordIndex / 10;
            }
            else
            {
                changedNumber += a * passwordIndex;
                passwordIndex = passwordIndex / 10;
            }           
        }
        else
        {
            passwordIndex = passwordIndex / 10;
        }
    }
    
    std::cout<<"Исходное число: "<<number<<"\nЗашифрованное число: "<<changedNumber<<endl;
    
}
C++
1
2
3
4
5
6
7
8
9
/Main.cpp
#include "Enigma.h"
 
int main ()
{
    Number number;
    number.enigmaWork ();
    return 0;
}
P.S. Знаю что ошибка скорее всего элементарная, но не могу понять в чем
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru