
年公務人員特種考試警察人員、一般警察人員、國家安全局國家
安全情報人員考試及
111
年特種考試交通事業鐵路人員考試試題
考 試 別
一般警察人員考試
等 別
三等考試
類科組別
警察資訊管理人員
科 目
物件導向程式設計
考試時間
2小時 座號:
※注意:
禁止使用電子計算器。
不必抄題,作答時請將試題題號及答案依照順序寫在試卷上,於本試題上作答者,不予計分。
本科目除專門名詞或數理公式外,應使用本國文字作答。
代號:
頁次:
-
說明:試題回答程式碼可以選用C++、C#、Java 或Python,但副檔名須依使用
的程式語言來命名。
一、下列類別圖及 C#程式碼是一個影像識別軟體 ImageDetector.exe 的類別
設計與部分程式碼,請依以下二個程式執行的結果來撰寫各小題的程式
碼。(每小題 5分,共 15 分)
影像識別軟體的類別圖:
影像識別軟體的部分程式碼:
Program.cs
{
void Main(string[] args)
{
IFoo foo = null;
if (args.Length > 0)
{
if (args[0] == "1")
foo = new FooFeature();
else if (args[0] == "2")
foo = new FooFeatureFast();
string text = foo.Run();
Console.WriteLine(text);
}
else
{
Console.WriteLine("The arguments is null value.");
}
}
影像識別軟體程式執行結果(1):
影像識別軟體程式執行結果(2):
請撰寫 IFoo.cs 程式碼。
請撰寫 FooFeatureFast.cs 程式碼。
請撰寫 FooFeature.cs 程式碼。

代號:
頁次:
-
二、資訊封裝(encapsulation)是物件導向程式設計重要的特性之一,其主要
目的是在確保資料存取的安全。下列 UML 類別圖是一個員工資料規劃,
包括個人基本資料及薪資等資料。單位內的員工(Employee)分成正職
人員(Staff)及約聘人員(Contractor)。正職人員的薪資包含本俸(Salary)
及職務津貼(Allowance),約聘人員為單一薪資且須符合國家最低薪資
25250 元。查詢總薪資(TotalSalary)時正職人員須加總本俸及職務津貼。
建立人員資料時須檢核身分證字號是否符合編碼規則,身分證字號
為員工資料查詢及更新時的關鍵欄。請依據上述說明來回答各小題。
(每小題 5分,共 20 分)
類別圖中有關資訊封裝的設計有誤,請修正繪出正確的類別圖,以符
合題目說明之需求。
請依修正後的類別圖撰寫 Employee 類別的程式碼,無須實作身分證
檢查演算式,但須實作出函數及回傳值等程式碼。
請依修正後的類別圖撰寫 Staff 類別的程式碼,須實作演算式以符合
題目說明之查詢需求。
請依修正後的類別圖撰寫 Contractor 類別的程式碼,須實作演算式以
符合題目說明之資料維護需求。

代號:
頁次:
-
三、使用第二題中的類別建立一位員工資料的串列,並以 Staff 及Contractor
類別各建立一筆資料,須檢核身分證字號正確後,再將資料物件加入串
列中;完成二筆資料後再以迴圈方式將這二筆資料中的身分證字號、姓
名、總薪資列印至螢幕。本題無須撰寫第二題中的類別程式,僅須撰寫
本題所須的應用程式碼即可。撰寫的程式碼輸出結果必須與以下輸出畫
面相同,變數、函數及類別名稱須依第二題之類別圖中的屬性及方法名
稱來宣告,串列及物件名稱須依下列指定名稱來實作程式。(20 分)
串列變數名稱:employees
正職人員物件變數名稱:staff
約聘人員物件變數名稱:contractor
程式執行輸出畫面如下:
身分證:A123456789、姓名:王建國、總薪資:80000
身分證:B123456789、姓名:李大明、總薪資:31000
四、請依下列遞迴函數的 C#程式碼,回答程式執行的結果為何?(25 分)
static void Main(string[] args)
{
Sum(9);
}
public static int Sum(int num)
{
if (num < 1)
{
return 0;
}
else
{
int result = num + Sum(num - 2);
Console.WriteLine(String.Format("Num: {0}",result));
return result;
}

代號:
頁次:
-
五、物件導向程式設計的類別屬性及方法依讀取的透通度可分為 public、
protected 及private 三種,請回答下圖類別 Program 及類別 Rectangle 所
能讀取 Shape 類別中的屬性及方法有那些?(20 分)