现代程序设计 作业9 - 综合练习
經(jīng)過(guò)大半學(xué)期的學(xué)習(xí)和練習(xí), 我們把學(xué)到的東西綜合起來(lái)。
在作業(yè)2 (http://www.cnblogs.com/xinz/p/3318230.html ) 中, 同學(xué)們用各種方法 (主要是動(dòng)態(tài)規(guī)劃,外加一些遍歷)計(jì)算了一維和二維數(shù)組中最小最大子數(shù)組的和。 當(dāng)然,程序在飛快地運(yùn)行的時(shí)候,我們可以通過(guò)debug 工具中的 單步執(zhí)行 命令看到中間結(jié)果。 中間結(jié)果一般有這些數(shù)據(jù):
這個(gè)數(shù)組目前暫定的最大子數(shù)組的范圍是哪里?? 目前的值是多少?
目前計(jì)算到哪些部分, 目前的牽涉到的子數(shù)組的和是多少?
我們的要求是,設(shè)計(jì)并實(shí)現(xiàn)一個(gè)系統(tǒng),讓一個(gè)普通用戶就能通過(guò)單步執(zhí)行的方式看到你的算法是如何工作的。 一個(gè)典型的流程是:
1. 用戶用你的程序讀入一個(gè)數(shù)組文件 (就像我們以前做過(guò)的那樣),顯示初始狀態(tài) (就像圍棋打譜程序那樣)
1.1. 用戶也可以自行定義數(shù)組的大小,或者要求隨機(jī)生成一個(gè)數(shù)字矩陣。
2. 用戶這時(shí)候有兩個(gè)選擇
2.1? 按 單步執(zhí)行 鍵, 在 GUI 看到你的程序是如何一步一步算出目前最大子數(shù)組的范圍,當(dāng)前計(jì)算到的臨時(shí)子數(shù)組是在哪里,等等。 最好用不同的顏色標(biāo)識(shí)不同的狀態(tài)。
2.2? 按 自動(dòng)運(yùn)行 鍵, 在 GUI 看到程序自動(dòng)運(yùn)行,并自動(dòng)顯示過(guò)程, 每次改變狀態(tài)的時(shí)候要稍作停留 (例如 1 秒鐘的時(shí)間)
3. 咳,我沒看清楚!? 這時(shí)最好有一個(gè) 倒帶 / 回滾 的鍵, 讓用戶可以看清楚關(guān)鍵的幾步。
(當(dāng)然,用戶可以選擇是普通模式還是擴(kuò)展定義的連通模式)
?
要求: 這個(gè)要求的各個(gè)方面我們都已經(jīng)單獨(dú)寫代碼試驗(yàn)過(guò)了,把它們合起來(lái)也不是太難。? 要求還那樣: 寫程序和單元測(cè)試,簽入GitHub,寫博客描述,總結(jié)所花費(fèi)的時(shí)間和估計(jì)。
評(píng)分:
功能 (分?jǐn)?shù)范圍 –30 到 30分):? 在PC 桌面上運(yùn)行? (滿分 20 分); 如果能在程序能直接在網(wǎng)上顯示 (例如使用 Javascript 在網(wǎng)頁(yè)上讓用戶直接看到過(guò)程),則滿分是 30 分。
代碼質(zhì)量 (分?jǐn)?shù)范圍:? -30 分到 30 分):? 同學(xué)們?cè)谡n程中已經(jīng)看了很多書,實(shí)踐了不少原理,也看過(guò)爛的代碼 (很多同學(xué)還大義凜然地鄙視過(guò)爛代碼),并且紛紛表示要寫高效/好懂/可擴(kuò)展的算法。現(xiàn)在就來(lái)試試看,請(qǐng)寫博客,截圖,畫圖描述:
??? 注釋,命名: 有一致規(guī)范的規(guī)范,合適的注釋??
??? 結(jié)構(gòu): 結(jié)構(gòu)清晰,各種類/結(jié)構(gòu)的定義 正確地反映了現(xiàn)實(shí)世界實(shí)體,以及實(shí)體之間的關(guān)系.
??? 單元測(cè)試: 有單元測(cè)試保證 非UI 模塊的正確性? (UI 模塊不要求單元測(cè)試自動(dòng)覆蓋),有代碼覆蓋率。
(注:? 以上的各個(gè)部分,達(dá)不到基本要求的,倒扣分,扣到 –30 分為止。 抄襲按學(xué)校規(guī)定處理)
?
附加題:? 你已經(jīng)做了這么多,不妨再進(jìn)一步: 如果博客中描述了動(dòng)態(tài)規(guī)劃的原理,并通過(guò)錄制屏幕的方式讓一般的讀者 (例如,正在學(xué)習(xí)算法的大學(xué)生)能通過(guò)你的動(dòng)態(tài)程序理解動(dòng)態(tài)規(guī)劃的算法,以及這個(gè)算法的擴(kuò)展,那么可以得到附加分? 10 分。你可以宣傳你的博客,讓大家都來(lái)學(xué)習(xí)。?
總結(jié)
以上是生活随笔為你收集整理的现代程序设计 作业9 - 综合练习的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 地图点儿莱唔点儿康的新功能 – 路况 和
- 下一篇: down redis集群_redis有哪