
104
年公務人員高等考試三級考試試題  代號:26840 
類    科: 資訊處理
科    目: 程式語言
 
全一張 
(
)
四、請使用物件導向程式語言(C#或Java),設計一具門禁功能的智慧卡管理資訊系統。
系統應依如下的 class diagram 建立相關的類別資訊。(35 分) 
SmartCard  
-cardID: String   
-issueDate: String   
-issueOrg: Organization   
#getCardID(): String   
#getIssueDate(): String   
#getIssueOrg(): Organization   
#setCardID(String): void   
#setIssueDate(String): void   
#setIssueOrg(Organization): void   
 
+nowDateToString(): String   
+toString():String 
  
 Security 
SMsecurity  -date: String 
-securityList: List  -enterExit: EnterExit 
+SMsecurity() +Security() 
+SMsecurity(String, Organization)  +Security(EnterExit) 
 +getDate(): String 
+addInfo(EnterExit): void  +getEnterExit(): EnterExit 
+addInfo(String, EnterExit):void +setData(EnterExit): void 
+addInfo(Security):void  +setData(String, EnterExit): void 
+toString(): String  +toString(): String 
z 所有的類別變數皆為 private,SMsecurity 類別繼承自抽象類別 SmartCard 
z 發卡單位 Organization、進出入狀況 EnterExit,請分別使用 enum 的格式來表示 
z 記錄進出入狀況,日期資料若未提供,則填入目前系統的日期時間 
z 一張智慧卡,會有多次的進出入記錄,資料值應存放於 List 線性資料結構中 
z 改寫系統的 toString()方法後,執行如下的測試動作 
 SMsecurity sms = new SMsecurity("SM001", Organization.NewTaipeiMRT); 
 sms.addInfo("2015/06/15 18:36:01", EnterExit.Enter); 
 sms.addInfo("2015/06/15 20:16:01", EnterExit.Exit); 
 sms.addInfo("2015/06/20 18:20:01", EnterExit.Enter); 
 sms.addInfo(EnterExit.Exit); 
 /* for Java */ System.out.println(sms.toString()); 
 /* for C# */ Console.WriteLine(sms.ToString()); 
  應能產生類似如下的結果 
 
 *****Smart card SM001 (6/21/2015 10:38:38 PM, NewTaipeiMRT) 
 -----Enter and Exit information: 
 (2015/06/15 18:36:01, Enter) 
 (2015/06/15 20:16:01, Exit) 
 (2015/06/20 18:20:01, Enter) 
 (6/21/2015 10:38:38 PM, Exit)