17
視窗應程式設計 哲輝

進階視窗程式設計 W2

Embed Size (px)

Citation preview

Page 1: 進階視窗程式設計 W2

視窗應⽤用程式設計⺩王哲輝

Page 2: 進階視窗程式設計 W2

實習 1作業、實習將透過 Github 繳交,以編輯歷史作為原創依據

開設 Github 帳號

https://github.com/freesamael/npu-java-course-spring-2015

Fork!

以觀察者模式修改 ObserverSample,並上傳

可以透過 GUI ⼯工具

Sourcetree: https://www.sourcetreeapp.com

Github:https://windows.github.com

Page 3: 進階視窗程式設計 W2

Observer Sample (進階)

https://github.com/freesamael/npu-java-course-spring-2015

試修正此程式,使 1. Model 產⽣生變動時可以通知 View 2. 呈上,程式碼中已包含三個 View instance,照以下步驟增加第四個 View 1. 新增 AlternativeView 類別,提供與 View 相同介⾯面 2. AlternativeView.show() 中將 Model 的字串反向印出,如

“Hello” 印成 “olleH” 3. 以 AlternativeView 增加第四個 View 時,應僅需更動初始化部分及 Window class 部分參數,⽽而不修改 while loop 內容,也不會動到既有的 Model / View / Controller 三個類別

Page 4: 進階視窗程式設計 W2

Git 基本流程

git pull - 從遠端將數據庫下載回本機

修改檔案 / 編譯 / 測試

git add - 將新檔案加⼊入追蹤

git commit - 將修改儲存進本機數據庫

git push - 將數據庫推送回遠端

Page 5: 進階視窗程式設計 W2

Git 推薦閱讀

http://backlogtool.com/git-guide/tw/

Page 6: 進階視窗程式設計 W2

作業要求 - JavaDoc

所有的類別及⽅方法都必須有完整的 JavaDoc

例外:@Override 的⽅方法

缺少之欄位逐項扣⼀一分

Page 7: 進階視窗程式設計 W2

作業要求 - 命名原則常數(static final 或列舉的成員)的名稱全⼤大寫

駝峰式命名,類別/列舉名稱為⼤大寫開頭

除迴圈可使⽤用 i, j, k 外,不使⽤用無意義之名稱如 a, b, c 或 test123 等

⼀一般屬性名稱開頭都加上 m,如 mUsername

Getter / Setter 名稱分別為 get / set 開頭,如 getUsername / setUsername

違反處逐項扣⼀一分

Page 8: 進階視窗程式設計 W2

作業要求 - 程式碼品質

除常數外禁⽌止使⽤用 static 屬性

禁⽌止 magic number / magic string,常數應預定義

最⼩小可視性:private > protected > public

違反處逐項扣⼀一分

所有程式碼正確使⽤用 UTF-8 編碼加五分

z

Page 9: 進階視窗程式設計 W2

評分⽅方式

設計佔 60%,功能佔 40%

前述⾴頁⾯面皆屬設計,扣分上限 60%

Bug 解不完可以繳交屍體,視情況給予部分成績

遲交不予計分

Page 10: 進階視窗程式設計 W2

作業 1

https://github.com/freesamael/npu-java-course-spring-2015

試修正此程式,使 1. 套⽤用觀察者模式 2. 呈上,程式碼中已包含三個 View instance,照以下步驟增加第四個 View 1. 新增 AlternativeView 類別,提供與 View 相同介⾯面 2. AlternativeView.show() 中將 Model 的字串反向印出,如

“Hello” 印成 “olleH”

繳交期限:5/31 結束前

Page 11: 進階視窗程式設計 W2

作業 2

以 Java Swing 或 JavaFX 完成右圖計算機

期限:6/12 結束前繳交成品

繳交⽅方式:push 到 github 即可

Page 12: 進階視窗程式設計 W2

作業要求 - JavaDoc

所有的類別及⽅方法都必須有完整的 JavaDoc

例外:@Override 的⽅方法

缺少之欄位逐項扣⼀一分

Page 13: 進階視窗程式設計 W2

作業要求 - 命名原則常數(static final 或列舉的成員)的名稱全⼤大寫

駝峰式命名,類別/列舉名稱為⼤大寫開頭

除迴圈可使⽤用 i, j, k 外,不使⽤用無意義之名稱如 a, b, c 或 test123 等

⼀一般屬性名稱開頭都加上 m,如 mUsername

Getter / Setter 名稱分別為 get / set 開頭,如 getUsername / setUsername

違反處逐項扣⼀一分

Page 14: 進階視窗程式設計 W2

作業要求 - 程式碼品質除常數外禁⽌止使⽤用 static 屬性

禁⽌止 magic number / magic string,常數應預定義

最⼩小可視性:private > protected > public

違反處逐項扣⼀一分

其餘不良寫作習慣視情況酌予扣分

提⽰示:參考 Google / Oracle Java 建議⾵風格,並善⽤用 Netbeans 格式化⼯工具

https://google-styleguide.googlecode.com/svn/trunk/javaguide.html

http://www.oracle.com/technetwork/java/codeconvtoc-136057.html

所有程式碼正確使⽤用 UTF-8 編碼加五分

Page 15: 進階視窗程式設計 W2

作業要求 - 設計

應符合 MVC 之設計

Model 介⾯面需包含右圖所列⽅方法,並以觀察者模式通知 View

Package Name 應使⽤用 “tw.edu.npu.mis” 以便批改

不符設計要求視情況扣分

Page 16: 進階視窗程式設計 W2

作業要求 - 設計appendDigit(int digit): 輸⼊入單⼀一數字,digit 參數範圍應為 0~9appendDot(): 輸⼊入⼀一個點號performOperation(operator: Operator): 執⾏行⼀一個運算,如加減乘除getDisplay(): 取得⺫⽬目前應顯⽰示於畫⾯面上的資訊

範例:appendDigit(3);getDisplay(); // 回傳 3appendDigit(4);getDisplay(); // 回傳 34performOperation(Operator.PLUS);getDisplay(); // 回傳 34appendDigit(2);getDisplay(); // 回傳 2performOperation(Operator.EQUAL);getDisplay(); // 回傳 36

Page 17: 進階視窗程式設計 W2

評分⽅方式設計佔 60%,功能佔 40%

前述⾴頁⾯面皆屬設計,扣分上限 60%

功能不需考慮連續等號運算(ex. 2××===)

Bug 解不完可以繳交屍體,視情況給予部分成績

功能配分原則上將採取量尺成績配分,較多⼈人實做的功能⽐比重會較重

MOSS 相似度 90% 以上者

可明顯判斷抄襲者 => 抄襲者不予計分

無法判斷抄襲者 => 雙⽅方皆不予計分

遲交不予計分