申論 4請使用物件導向程式語言(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():StringSecuritySMsecurity -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(): Stringz 所有的類別變數皆為private,SMsecurity 類別繼承自抽象類別SmartCardz 發卡單位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)