
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)