
106年公務人員特種考試警察人員、一般警察 
人員考試及106年特種考試交通事業鐵路 
人員、退除役軍人轉任公務人員考試試題 代號:30570  全一張
(背面)
考試別: 一般警察人員考試
等別: 三等考試 
類科別: 警察資訊管理人員
科目: 物件導向程式設計
 
二、繪製 UML 類別圖(Class Diagram),表示關於排球聯盟(league)以下之資訊元件:
聯盟(league)由至少 4個球隊(team)組成。每個球隊(team)由 6至12 名球員
(player)組成,且皆有 1名球員擔任隊長(captain)。每個球隊(team)皆有其隊名
(name)及記錄(record)。每名球員(player)皆有號碼(number)及其位置(position)。
球隊(team)倆倆相互(play)比賽(game)。每場比賽(game)都有比數(score)
及比賽地點(location)。各球隊(team)可能有教練(coach)指導,但也可能沒有。
每名教練(coach)皆有認證等級(accreditation level )及年資(year experience)。每
名教練(coach)可以指導(lead)多個球隊(team)。教練(coach)及球員(player)
皆是人員(person),人員皆有名字(name)及地址(address)。類別圖中必須使用適
當的標籤標記所有關聯(Association)。(20 分) 
三、請寫出下列 C++程式執行後之輸出。(10 分) 
#include <iostream> 
using namespace std; 
class AA  { 
  public: 
   int x; 
   AA(int x=0){this->x=x;} 
   virtual void g()=0; 
   void h(){ 
     x=6; 
          cout << endl << "AA h:x= " << x ; 
    } 
} ; 
class BB : public AA { 
 public: 
   int x; 
   BB(int x1=0,int x2=0):AA(x2){ 
      this->x=x1; 
    } 
  void g(){ 
    x=10; 
    cout<< endl<< "BB g:x= "<< x ; 
  } 
  void h(){ 
    x=20; 
    cout<<endl<< "BB h:x= " << x ; 
   } 
}; 
int main(){ 
      AA *ap = new BB(-7,-9) ; 
   ap->g(); 
   ap->h(); 
   BB *bp= static_cast<BB*>(ap); 
   cout<<endl<< "bp-> x= "<< bp->x; 
   bp->g(); 
   bp->h(); 
四、請建立 C++程式,可首先寫入 2字串"第一列文字"及"第二列文字"至檔案"example.txt"
中成為 2列文字。再由檔案"example.txt"中讀出此 2列文字,將之顯示於螢幕。(10 分) 
五、可寫為 a+bi 之數稱為複數(Complex Number),其中 a與b均為實數,i表示虛數,
亦即 i2=
-
1。a稱為複數的實部(real part),b稱為複數的虛部(imaginary part)。
複數四則運算如下: 
‧加法: idbcadicbia )()()()( +++=+++  
‧減法: idbcadicbia )()()()( −−−=+−+  
‧乘法: )( bia +‧ibcadbdacdic )()()( ++−=+  
‧除法: i
dc
adbd
dc
bdac
dicdic dicbia
dic bia 2222
)()( )()(
+
−
+
+
+
=
−+
−+
=
+
+ 
請以 C++語言, 
宣告 complex(複數)class,包含宣告為 float 型式之成員變數:實部(real)與虛部
(imag);將實部與虛部皆預設為 0.0 之建構子(constructor);可進行四則運算之成
員運算符(operator):+、
-
、*、/;將實部與虛部各乘以
-
1之成員運算符
-
。(10 分) 
寫出於複數 class 外部,定義成員 operator *之程式碼。(5分) 
寫出於複數 class 外部,定義成員 operator /之程式碼。加入例外處理(exception 
handle)避免分母為 0。(10 分) 
寫出定義 operator <<之程式碼,使得於主函式中可直接使用 cout<<將複數顯示於
螢幕為(real+imag i),例如:(2+3i)。(5分)