| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Программа шифрования |
| Автор: WaRPLeX 25.10.2004, 16:27 |
| Привет всем! Курсовую задали в инстике. А я не понимаю С++. Это вообще не из моей области. Есть ли добрые люди которые помогли бы. Суть: Прога. Вводишь любой текст с клавы. Есть таблица замены символов (к примеру одной букве соответствует другая). По этой таблице текст кодируется (побуквенно) и сохраняется в фаил (любой, по любому пути). При просмотре файла просто набор букв без смысла выводится, т.к. всё зашифровано. И обратная программы нужна. Открываешь фаил (по любому фиксированному пути). Программа с помощью этойже таблицы замены символов текс расшифровывает и выводит на экран. Надеюсь мне кто-нибудь поможет. Заранее благодарен. Мыло: i.v.gusev@mail.ru |
| Автор: chipset 25.10.2004, 16:27 |
| Совет: используй std::map |
| Автор: Mad 25.10.2004, 16:37 | ||
| chipset зачем так сложно, можно и по проще :
|
| Автор: Step 25.10.2004, 16:49 |
| Mad, chipset- правильно советует... а обратное преобразование ты еще через одну таблицу будешь делать... |
| Автор: Mad 25.10.2004, 16:59 | ||
Step
|
| Автор: Step 25.10.2004, 17:06 |
| Mad, приношу вам свои извинения (понимая что мог зацепить подобным высказыванием), да можно и так. можно и через две табицы, можно и через ассоциативные масивы... решений много, а вот что выберет вопрошающий это уже его дела... конечна ваше предложение это самая простая реализация и для столь ограниченной задачи наверное оптимольное |
| Автор: WaRPLeX 26.10.2004, 08:13 |
| А как задать таблицу шифрования типа Буква её шифр А В Б Г В Д И какие #include <?> - нужны для моей прогИ? Таблица задаётся массивом? char Decode(char c) { char ret=0; while (code_table[ret] != c) ret++; return ret; } Выше это что и к чему относится! |
| Автор: WaRPLeX 2.11.2004, 16:39 |
| Дак помогите что ли |
| Автор: LuckLess 2.11.2004, 21:11 |
| таблица в данном случае - это массив(одномерный). Любому символу соответствует его код (1 байт если не брать unicode) , и если брать код символа как идекс массива , то какбы получаешь таблицу. Добавлено @ 21:17 для приведенного Mad-ом кода #includ-ы не нужны. но вероятно тебе понадабются windows.h и kernel32.lib для readfile()/writefile()/createfile() и stdio.h для scanf()(если используешь C) или iostream.h(если не ошибся , так как обыцно пишу все на С) для ввода на С++. |
| Автор: bel_nikita 5.11.2004, 01:52 | ||||||
WaRPLeX
Помогу, что ли Вот, типа простенький алгоритм шифорования/дешифорования:
Результат:
З.Ы.: Ну, а писать, читать файл и вводить строки от пользователя в следующей серии. Спать уже охота. Поздно, однако З.Ы.2: а компилятор какой? а то может BC 3.1, так зря все писал это... |
| Автор: WaRPLeX 5.11.2004, 17:19 |
| bel_nikita ой спасибо. у меня завтра в 12 утра здавать. Как ты вовремя. И как раз мне на день рождения (у меня сегодня). Спасибо просто приогромнейшее. Круто было бы если бы она целая была, тоесть полная как в задании. Я бы такую в жизни не написал! И коменты вообще к стати. Ещё раз спасибо. И если не трудно, было-бы здорово, если её дописать. |
| Автор: WaRPLeX 5.11.2004, 17:20 |
| Буду надеяться, что опять мне поможете. |
| Автор: WaRPLeX 5.11.2004, 17:38 |
| И у нас вообще не билдер а ДОС версия. вроде ВС7 |
| Автор: bel_nikita 5.11.2004, 17:57 | ||
WaRPLeX В честь Дня Рождения примите поздравления!
Дык, это... там же я STL юзаю. Под ДОСом моя писанина не будет работать. Точнее в BC 3.1 нет STL |
| Автор: WaRPLeX 6.11.2004, 12:20 |
| Спасибо за поздравления. Я вчера посмотрел, у нас ВС 3.1. Я преподу показал прогу, говорю, типа она пока не до конца. А он мне, что это, а что это. Говорит, типа ты чё так сложно то сделал. Типа ты гений чтоли. Говорит, что сложно так будет её защищать. Нам ведь каждую строчку обяснять что делает надо. Он мне говорил как надо переделать, что-то про таблицу из одномерного массива, но я ничего не понял, т.к. был пьян (день рождения всё таки). Вообщем препод дал мне ещё времени. bel_nikita Если тебе не сложно, то напиши как можно проще. Мы ещё только самые основные понятия прошли по С++. А то я сам много что в программе не понял. Мы такое наверно дальше будем изучать. Вообщем, буду очень благодарен, если поможешь! |
| Автор: bel_nikita 6.11.2004, 15:01 | ||||
WaRPLeX
Проще можно. Будет совсем по простому Но! Надо же самому, что-то иногда делать! И не надо меня упрашивать! Это не поможет!
З.Ы.: WaRPLeX - откомпиль прогу в BC 3.1. Надеюсь разбить прогу на две (кодирование и декодирование) не составит труда. З.Ы.2: Успехов! З.Ы.3: Если надумаешь благодарить меня, то просто зарегистрируйся и почаще заходи на форум. Здесь найдутся люди, которые тебе всегда тебе помогут |