107 年 - 107 專技高考 資訊技師 程式設計#73026-阿摩線上測驗
107 年 - 107 專技高考 資訊技師 程式設計#73026
一、請使用 Java 或 C++,撰寫一個抽象超類別(Abstract superclass)
StudentRecord 和其實體化繼承的子類別 SemesterRecord,使其兩者階層
類別之多型化介面(Polymorphic interface)關係可大致建構成如下之摘
錄表。類別 SemesterRecord 針對考量科目,僅用最終的學期成績(亦即
semesterScore),加以綜合合併整理而得到每個學生該科目的最終學期完
整成績紀錄(Grade Record)。(20 分)
並請撰寫一個測試主程式,適當地加入例外處理,讓使用者能夠依其需
求,連續地在控制台輸入資料。程式執行後應能產生類似如下的輸出結果:
二、請使用 Java 或 C++,撰寫一套可以簡單地用來建立銀行客戶存款餘額的
程式套件。其中,以類別 CreateByteBasedFileViaValidation 為主程式,
以建立和寫入序列化(Serializable)物件(類別 AccountRecordSerializable
的物件)到循序檔案中。類別 AccountRecordSerializable 須包含 private
的資料成員 account(String), firstName(String), lastName(String),
cellPhone(String), eMail(String)和 balance(為 double),並提供 public
的 “get”和 “set”方法(Method),以便存取這些 private 資料成員。在程
式中可以藉由建立串流的類別 FileOutputStream (和類別
ObjectOutputStream 配合)來開啟檔案以將物件寫入到檔案中。同時,
從輸入控制台讀取資料寫檔的過程當中,得必須確保輸入資料的有效
性,並讓使用者依其需求,連續地在控制台輸入資料;其中的 cellPhone
必須是為 10 個數字(10 digits)的號碼字串。除了前述的兩類別外,可
自行斟酌加入其它適當的類別和套件,以確保整體套件程式的完整性和
專業性。程式執行後應能產生類似如下的輸出結果:(30 分)
三、使用 Java Swing 撰寫一個 JFrame 型的圖形使用者介面(GUI)
程式:應用於銀行客戶信用查詢。此套件程式可以讓使用者(例
如信用部經理)從屬於循序存取(Sequential)方式的文字檔案
中查詢顯示三種類別群的客戶帳戶。此三類者分別為零餘額
(Zero balance;亦即 balance=0)、貸方餘額(Credit balance;
亦即 balance <0)和借方餘額(Debit balance;亦即 balance>0)
的客戶。在此套件中,請以類別 CreditInquiry_SequentialFileTextBased
配合第二題所述的類別 AccountRecordSerializable(即第二題和第三題可
以共用此類別的相同概念),並藉由類別 Scanner 的物件開啟檔案以便將
格式化的客戶存款字串資料,從檔頭開始循序的讀出查詢,進而將所關
注的類別群呈現在使用者介面(GUI)的畫面上。同樣地,除了前述的
兩類別外,可自行斟酌加入其它適當的類別(或 Enum)和套件,以加
強確保整體套件程式的完整性和專業性。程式執行後應能產生類似如下
的輸出顯示結果:(30 分)
四、請以 Java(或 C++或 PHP 或 Javascript)撰寫一個可在控制台進行查詢 (Query)某家出版書局─其所出版之相關書本作者資料的程式。假設 此資料庫包含三個資料表格( Tables ): Authors, BookISBN 和 BookDetails。此三種已 Created 之表格各自所包含的內容資料欄位屬性 和其書本資料庫彼此的關係如下圖所示。(20 分)
至於其程式(在此為類別 ShowAuthorsContents_SQL)執行的過程和結
果顯示類似於下圖。註:假設資料庫名稱為 books,資料庫管理者帳號為 admin,密碼為
mclo。其連結資料庫的基本語法為:CONNECT ConnectionURLString
[ PROTOCOL Identifier ] [ AS Identifier ] [ USER String PASSWORD
String ]。若以 Java DB(Apache Derby)為應用,則連接語法類似於:
Connection conn = DriverManager.getConnection(“jdbc:derby:books”,
"admin", "mclo");