
Encrypt.cpp 的程式原始碼如下
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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | #include <cstdlib> #include <ctime> #include "Encrypt.h" Encrypt::Encrypt() { setoArray(); setcArray(); } void Encrypt::setoArray() { string s; char c = 'a' ; int i; for (i = 0; i < N; i++) { s += c++; } oArray = s; } void Encrypt::setcArray() { srand ( time (0)); int a = 0; int b = 0; while (a % 2 == 0) { a = rand () % 10; b = rand () % 10; } int x, y, m; char r; char c = 'a' ; string s; int i; for (i = 0; i < N; i++) { x = c; y = x * a + b; m = y % N; s += ( char ) m + DIFF; c++; } cArray = s; } void Encrypt::setcArray(string s) { cArray = s; } string Encrypt::getoArray() { return oArray; } string Encrypt::getcArray() { return cArray; } string Encrypt::toEncode(string s) { char c; string r; int i, m; for (i = 0; i < s.size(); i++) { if (s.at(i) >= 97 && s.at(i) <= 122) { c = s.at(i); m = c - 97; r += getcArray().at(m); } else { r += s.at(i); } } return r; } string Encrypt::toDecode(string s) { int i, j; string r; for (i = 0; i < s.size(); i++) { if (s.at(i) >= 97 && s.at(i) <= 122) { for (j = 0; j < N; j++) { if (s.at(i) == getcArray().at(j)) { r += ( char ) j + DIFF; break ; } } } else { r += s.at(i); } } return r; } /* 《程式語言教學誌》的範例程式 檔名:Encrypt.cpp 功能:示範 C++ 程式 作者:張凱慶 時間:西元 2012 年 10 月 */ |
您可以繼續參考
範例程式碼
相關目錄
回 C++ 入門指南
回 C++ 教材目錄
回首頁
參考資料
C++ reference
Qt Developer Network
沒有留言:
張貼留言