
encrypt01.cpp
// 引入 Encrypt 類別的標頭檔
#include "encrypt01.h"
// Encrypt 的建構函數
Encrypt::Encrypt() {
// 呼叫 setter 設定 code_array
set_code_array();
}
// 設定 code_array 的 setter 成員函數
void Encrypt::set_code_array() {
// 設定 a 、 b 值
int a = 3;
int b = 5;
// 利用公式建立密碼表字串
int x, y, m;
char c = 'a';
string s;
int i;
for (i = 0; i < 26; i++) {
x = c;
y = x * a + b;
m = y % 26;
s += m + 97;
c++;
}
// 將建立好的密碼表直接設定給成員變數
code_array = s;
}
// 回傳密碼表字串的 getter 成員函數
string Encrypt::get_code_array() {
return code_array;
}
/* encrypt01.cpp
Kaiching Chang
2014-5 */encrypt_demo01.cpp
// 引入標準程式庫中的 iostream
#include <iostream>
// 引入 Encrypt 類別的標頭檔
#include "encrypt01.h"
// 使用 std 中的兩個名稱
using std::cout; // 標準輸出串流的物件
using std::endl; // 新行符號,等於 '\n'
// 程式執行的 main() 函數
int main() {
// 印出空白一行
cout << endl;
// 建立 Encrypt 物件
Encrypt encryptor;
// 印出密碼表字串
cout << encryptor.get_code_array()
<< endl << endl;
return 0;
}
/* encrypt_demo01.cpp
Kaiching Chang
2014-5 */exercise1501.cpp
#include <iostream>
using namespace std;
// 將整數拆成整數陣列的函數
void ArrayNumber(int array[], int number) {
int i;
int j = 1000;
int temp = number;
for (i = 0; i < 4; i++) {
array[i] = temp / j;
temp %= j;
j /= 10;
}
}
int main(void) {
int answer = 1234;
int answer_array[4];
ArrayNumber(answer_array, answer);
int guess;
cin >> guess;
int guess_array[4];
ArrayNumber(guess_array, guess);
int number = 0;
for (int i = 0; i < 4; i++) {
if (guess_array[i] == answer_array[i]) {
number++;
}
}
if (number == 4) {
cout << "Right!!" << endl;
}
else {
cout << "Wrong!!" << endl;
}
}
/* 檔名: exercise1501.cpp
作者: Kaiching Chang
時間: 2014-5 */exercise1502.cpp
#include <iostream>
using namespace std;
// 將整數拆成整數陣列的函數
void ArrayNumber(int array[], int number) {
int i;
int j = 1000;
int temp = number;
for (i = 0; i < 4; i++) {
array[i] = temp / j;
temp %= j;
j /= 10;
}
}
// 測試猜測與答案是否相等
bool EqualTest(int array1[], int array2[]) {
int number = 0;
for (int i = 0; i < 4; i++) {
if (array1[i] == array2[i]) {
number++;
}
}
if (number == 4) {
return true;
}
else {
return false;
}
}
int main(void) {
int answer = 1234;
int answer_array[4];
ArrayNumber(answer_array, answer);
int guess;
cin >> guess;
int guess_array[4];
ArrayNumber(guess_array, guess);
if (EqualTest(answer_array, guess_array)) {
cout << "Right!!" << endl;
}
else {
cout << "Wrong!!" << endl;
}
}
/* 檔名: exercise1502.cpp
作者: Kaiching Chang
時間: 2014-5 */exercise1503.cpp
#include <iostream>
using namespace std;
// 將整數拆成整數陣列的函數
void ArrayNumber(int array[], int number) {
int i;
int j = 1000;
int temp = number;
for (i = 0; i < 4; i++) {
array[i] = temp / j;
temp %= j;
j /= 10;
}
}
// 測試猜測與答案是否相等
bool EqualTest(int array1[], int array2[]) {
int number = 0;
for (int i = 0; i < 4; i++) {
if (array1[i] == array2[i]) {
number++;
}
}
if (number == 4) {
return true;
}
else {
return false;
}
}
// 計算 A 、 B 值
void ABCounter(int array1[], int array2[], int array3[]) {
int a = 0;
int b = 0;
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
if (array1[i] == array2[j]) {
if (i == j) {
a++;
}
else {
b++;
}
}
}
}
array3[0] = a;
array3[1] = b;
}
int main(void) {
int answer = 1234;
int answer_array[4];
ArrayNumber(answer_array, answer);
int guess;
cin >> guess;
int guess_array[4];
ArrayNumber(guess_array, guess);
int ab_array[2];
ABCounter(answer_array, guess_array, ab_array);
if (answer == guess) {
cout << "Right!!" << endl;
}
else {
cout << "Wrong!! " << ab_array[0] << "A" << ab_array[1] << "B!!" << endl;
}
}
/* 檔名: exercise1503.cpp
作者: Kaiching Chang
時間: 2014-5 */exercise1504.cpp
#include <iostream>
using namespace std;
// 將整數拆成整數陣列的函數
void ArrayNumber(int array[], int number) {
int i;
int j = 1000;
int temp = number;
for (i = 0; i < 4; i++) {
array[i] = temp / j;
temp %= j;
j /= 10;
}
}
// 測試猜測與答案是否相等
bool EqualTest(int array1[], int array2[]) {
int number = 0;
for (int i = 0; i < 4; i++) {
if (array1[i] == array2[i]) {
number++;
}
}
if (number == 4) {
return true;
}
else {
return false;
}
}
// 計算 A 、 B 值
void ABCounter(int array1[], int array2[], int array3[]) {
int a = 0;
int b = 0;
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
if (array1[i] == array2[j]) {
if (i == j) {
a++;
}
else {
b++;
}
}
}
}
array3[0] = a;
array3[1] = b;
}
int main(void) {
int answer = 1234;
int answer_array[4];
ArrayNumber(answer_array, answer);
while (true) {
int guess;
cin >> guess;
int guess_array[4];
ArrayNumber(guess_array, guess);
int ab_array[2];
ABCounter(answer_array, guess_array, ab_array);
if (answer == guess) {
cout << "Right!!" << endl;
break;
}
else {
cout << "Wrong!! " << ab_array[0] << "A" << ab_array[1] << "B!!" << endl;
}
}
}
/* 檔名: exercise1504.cpp
作者: Kaiching Chang
時間: 2014-5 */exercise1505.cpp
#include <iostream>
using namespace std;
// 將整數拆成整數陣列的函數
void ArrayNumber(int array[], int number) {
int i;
int j = 1000;
int temp = number;
for (i = 0; i < 4; i++) {
array[i] = temp / j;
temp %= j;
j /= 10;
}
}
// 測試猜測與答案是否相等
bool EqualTest(int array1[], int array2[]) {
int number = 0;
for (int i = 0; i < 4; i++) {
if (array1[i] == array2[i]) {
number++;
}
}
if (number == 4) {
return true;
}
else {
return false;
}
}
// 計算 A 、 B 值
void ABCounter(int array1[], int array2[], int array3[]) {
int a = 0;
int b = 0;
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
if (array1[i] == array2[j]) {
if (i == j) {
a++;
}
else {
b++;
}
}
}
}
array3[0] = a;
array3[1] = b;
}
int main(void) {
int answer = 1234;
int answer_array[4];
ArrayNumber(answer_array, answer);
int times = 0;
while (true) {
times++;
int guess;
cin >> guess;
int guess_array[4];
ArrayNumber(guess_array, guess);
int ab_array[2];
ABCounter(answer_array, guess_array, ab_array);
if (answer == guess) {
cout << "Right!! You guess " << times << " times!!" << endl;
break;
}
else {
cout << "Wrong!! " << ab_array[0] << "A" << ab_array[1] << "B!!" << endl;
}
}
}
/* 檔名: exercise1505.cpp
作者: Kaiching Chang
時間: 2014-5 */the end
沒有留言:
張貼留言