C++ 入門指南 V2.00 - 單元 12 範例及練習程式碼



class_demo3.cpp


#include <iostream>
 
using namespace std;
 
class Demo {
   // 宣告 public 的成員
   public:
      Demo();
      Demo(int n1);
      Demo(int n1, int n2);
      void set_a(int n);
      void set_b(int n);
      int get_a();
      int get_b();
      int do_something();

   // 宣告 private 的成員
   private:
      int a;
      int b;
};

// 沒有參數的建構函數
Demo::Demo() {
   set_a(1);
   set_b(1);
}

// 一個參數的建構函數
Demo::Demo(int n1) {
   set_a(n1);
   set_b(n1);
}

// 兩個參數的建構函數
Demo::Demo(int n1, int n2) {
   set_a(n1);
   set_b(n2);
}
 
int Demo::do_something() {
   // 改成呼叫 getter 成員函數
   return get_a() + get_b();
}

// setter 與 getter 成員函數
void Demo::set_a(int n) {
   a = n;
}
 
void Demo::set_b(int n) {
   b = n;
}
 
int Demo::get_a() {
   return a;
}
 
int Demo::get_b() {
   return b;
}
 
int main(void) {
   Demo t1;
   Demo t2(11);
   Demo t3(11, 22);
  
   cout << endl;
   cout << t1.do_something() << endl;
   cout << t2.do_something() << endl;
   cout << t3.do_something() << endl;
   cout << endl;
     
   return 0;
}
 
/* 檔名: class_demo3.cpp
   作者: Kaiching Chang 
   時間: 2014-5 */

exercise1201.cpp


#include <iostream>
 
using namespace std;

class IntegerDemo {
public:
   IntegerDemo(int);
   void set_value(int);
   int get_value();
   void Add(int);
   void Subtract(int);
   void Multiply(int);
   void Divide(int);

private:
   int value;
};

IntegerDemo::IntegerDemo(int p) {
   set_value(p);
} 

void IntegerDemo::set_value(int p) {
   value = p;
}

int IntegerDemo::get_value() {
   return value;
}

void IntegerDemo::Add(int p) {
   value += p;
}

void IntegerDemo::Subtract(int p) {
   value -= p;
}

void IntegerDemo::Multiply(int p) {
   value *= p;
}

void IntegerDemo::Divide(int p) {
   value /= p;
}
 
int main(void) {
   int input1;
   int input2;
   int input3;
   int input4;
   int input5;
    
   cin >> input1;
   cin >> input2;
   cin >> input3;
   cin >> input4;
   cin >> input5;
    
   cout << endl;
   IntegerDemo a(input1);
   cout << "a = " << a.get_value() << endl;
   a.Add(input2);
   cout << "a = " << a.get_value() << endl;
   a.Subtract(input3);
   cout << "a = " << a.get_value() << endl;
   a.Multiply(input4);
   cout << "a = " << a.get_value() << endl;
   a.Divide(input5);
   cout << "a = " << a.get_value() << endl;
   cout << endl;
         
   return 0;
}
 
/* 檔名: exercise1201.cpp
   作者: Kaiching Chang 
   時間: 2014-5 */

exercise1202.cpp


#include <iostream>
 
using namespace std;

class FactorialDemo {
public:
   FactorialDemo(int);
   void set_value(int);
   int get_value();

private:
   int value;
};

FactorialDemo::FactorialDemo(int p) {
   int result = 1;
    
   for (int i = 1; i <= p; i++) {
      result *= i;
   }
   
   set_value(result);
}

void FactorialDemo::set_value(int p) {
   value = p;
}

int FactorialDemo::get_value() {
   return value;
}
 
int main(void) {
   cout << endl;
   FactorialDemo a(10);
   cout << "10! = " << a.get_value() << endl;
   cout << endl;
         
   return 0;
}
 
/* 檔名: exercise1202.cpp
   作者: Kaiching Chang 
   時間: 2014-5 */

exercise1203.cpp


#include <iostream>
 
using namespace std;

class FibonacciDemo {
public:
   FibonacciDemo(int);
   void set_value(int);
   int get_value();

private:
   int value;
};

FibonacciDemo::FibonacciDemo(int n) {
   int f0 = 0;
   int f1 = 1;
   int f2;
    
   if (n == 0) {
      set_value(f0);
   }
   else if (n == 1) {
      set_value(f1);
   }
   else {
      for (int i = 2; i <= n; i++) {
         f2 = f0 + f1;
         f0 = f1;
         f1 = f2;
      }
        
      set_value(f2);
   }
}

void FibonacciDemo::set_value(int n) {
   value = n;
}

int FibonacciDemo::get_value() {
   return value;
}
 
int main(void) {
   cout << endl;
   FibonacciDemo a(10);
   cout << "f(10) = " << a.get_value() << endl;
   cout << endl;
         
   return 0;
}
 
/* 檔名: exercise1203.cpp
   作者: Kaiching Chang 
   時間: 2014-5 */

the end

沒有留言: