日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

现代程序设计 作业 2

發(fā)布時間:2024/7/23 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 现代程序设计 作业 2 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我們上節(jié)課講了 返回整數(shù)數(shù)組中最大子數(shù)組的和 這個問題。 我們第二次作業(yè)在這個基礎(chǔ)上擴(kuò)展。

程序要使用的數(shù)組放在一個叫 input.txt 的文件中,? 文件格式是:

數(shù)組的行數(shù),

數(shù)組的列數(shù),

每一行的元素,? (用逗號分開)

每一個數(shù)字都是有符號32位整數(shù), 見 MSDN 的定義.? 當(dāng)然, 行數(shù)和列數(shù)都是正整數(shù)。

例如下面的文件說明數(shù)組是有1行, 6列, 元素依次是:? 5, 6, –3, 8, –9, 2

?

用你選擇的語言 (C, C#, C++, Java) 在Windows 系統(tǒng)下實現(xiàn)下面的功能, 并作單元測試和統(tǒng)計測試覆蓋率。 建議用VS2012, 如果你有其它的工具可以達(dá)到同樣的效果, 歡迎使用。

?

1) 絕大部分同學(xué)都已經(jīng)做出來了單維數(shù)組的 求數(shù)組中最大子數(shù)組的和, 但是你不妨試一試:

把你的程序編譯為可執(zhí)行文件, 然后執(zhí)行 例如? maxsum.exe? <file name>

輸出就是最大子數(shù)組的和, 上面的例子就應(yīng)該輸出 16.

?

如果輸入的數(shù)組很大,? 并且有很多大的數(shù)字,? 就會產(chǎn)生比較大的結(jié)果 (考慮一下數(shù)的溢出), 請保證你的程序能正常輸出。

另外, 如果輸入文件的參數(shù)有錯誤, 這個程序應(yīng)該能正常退出, 并顯示相應(yīng)的錯誤信息。 任何輸入錯誤都不能導(dǎo)致你的程序崩潰 (對的,? TA 會模擬一些有錯誤的文件來檢查)。

?

2) 如果上面的問題解決了,? 那我們就順利地進(jìn)入第二個階段 - 處理二維數(shù)組.?? 在這個階段, 我們要求二維數(shù)組的子數(shù)組必須是矩形的

??

maxsum.exe? <file name>

會返回 28

這是一個比較大的數(shù)組的例子:

?

3) 如果 “子數(shù)組” 并不要求是一個矩形, 而是聯(lián)通的元素即可 (上下或左右相鄰即視為聯(lián)通),? 那解法會是怎么樣呢?

上面文件的正解就是:

(圖 3-1,一個簡單的例子)

請實現(xiàn)這一算法, 命令行要加一個參數(shù), 表示這一特殊要求:

maxsum.exe? /a <file name>

輸出是: 50

注: 考慮到同學(xué)們的反饋, 在這一問中, 可以假設(shè)數(shù)組的長度和寬度不大于 32.? 同時,在和同學(xué)們的討論中,我們列舉了幾種較有意思的形狀,見下。

(圖3-2,兩個大正數(shù) (50)通過它們之間的最小權(quán)值路徑相連)????

? (圖 3-3,子連通圖中有環(huán))

(圖 3-4,和是135,是三個大正數(shù)通過公共的最小權(quán)值聯(lián)通路徑相連)

(圖3-5,和圖3-4 一樣,但是此圖的解法是通過兩兩大正數(shù)之間的最小連通圖得到。它們的和是 134,不是最佳)

?

4) 在步驟 2) 的基礎(chǔ)上, 我們還可以做另一個擴(kuò)展, 假設(shè)數(shù)組的一頭一尾在水平方向上是首尾相連的。 我們用 /h 表示它在水平方向上相連。 如果在垂直方向上相連可以么?? 當(dāng)然可以, 我們用 /v 表示它在垂直方向相連。 這樣, 我們有:

maxsum.exe? /h <file name>

maxsum.exe? /v <file name>

?

5) 那么, 可以同時 /h? /v 么?? 我想是可以的。 這個矩陣會成一個什么樣呢?? 是球形, 還是…?

?

啊, 是個輪胎, 可能還是備胎!

maxsum.exe? /v /h <file name>

會輸出什么呢?

當(dāng)然, 我們還有: maxsum.exe? /v /h /a <file name>

6) 哇, 還有第六步? 仿佛聽到同學(xué)們叫苦連天…?? 那就算了, 以后再說 ?

?

要求還是老一套:

a) 代碼都簽入你的 GitHub,? TA 用你的代碼編譯并運行他們的測試用例,? 來驗證你的程序的正確性。

b) 博客

描述在這么多相似的需求面前, 你怎么維護(hù)你的設(shè)計 (父類/子類/基類, UML, 設(shè)計模式,? 或者其它方法) 讓整個程序的架構(gòu)不至于崩潰的?

給出你做單元測試/代碼覆蓋率的最終覆蓋率的報告, 用截屏顯示你的代碼覆蓋率

閱讀 工程師的能力評估和發(fā)展 和相關(guān)文章, 在完成作業(yè)的時候記錄自己花費的時間, 并填下表。如果你對有些術(shù)語不太清楚,請查看教材和其它資料。如果你認(rèn)為你不需要做某個步驟, 那就跳過去。?

你在這個作業(yè)中學(xué)到了什么?? 有什么好的設(shè)計值得分享?? 感想如何 (太容易 / 太難 / 太無趣)?

?

?

?

Personal Software Process Stages

時間百分比(%)

實際花費的時間 (分鐘)

原來估計的時間 (分鐘)

Planning

計劃

???

·???????? Estimate

·???????? 估計這個任務(wù)需要多少時間,把工作細(xì)化并大致排序

???

Development

開發(fā)

???

·???????? Analysis

·???????? 需求分析 (包括學(xué)習(xí)新技術(shù))

???

·???????? Design Spec

·???????? 生成設(shè)計文檔

???

·???????? Design Review

·???????? 設(shè)計復(fù)審 (和同事審核設(shè)計文檔)

???

·???????? Coding Standard

·???????? 代碼規(guī)范 (制定合適的規(guī)范)

???

·???????? Design

·???????? 具體設(shè)計

???

·???????? Coding

·???????? 具體編碼

???

·???????? Code Review

·???????? 代碼復(fù)審

???

·???????? Test

·???????? 測試(自我測試,修改代碼,提交修改)

???

Reporting

總結(jié)報告

???

·???????? Test Report

·???????? 測試報告

?

?

?

·???????? Size Measurement

·???????? 計算工作量

???

·???????? Postmortem & Improvement Plan

·???????? 事后總結(jié), 并提出改進(jìn)

???
Total總計100%總用時總估計的用時

總結(jié)

以上是生活随笔為你收集整理的现代程序设计 作业 2的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。