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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

现代程序设计 作业 2

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

我們上節課講了 返回整數數組中最大子數組的和 這個問題。 我們第二次作業在這個基礎上擴展。

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

數組的行數,

數組的列數,

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

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

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

?

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

?

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

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

輸出就是最大子數組的和, 上面的例子就應該輸出 16.

?

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

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

?

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

??

maxsum.exe? <file name>

會返回 28

這是一個比較大的數組的例子:

?

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

上面文件的正解就是:

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

請實現這一算法, 命令行要加一個參數, 表示這一特殊要求:

maxsum.exe? /a <file name>

輸出是: 50

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

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

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

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

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

?

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

maxsum.exe? /h <file name>

maxsum.exe? /v <file name>

?

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

?

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

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

會輸出什么呢?

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

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

?

要求還是老一套:

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

b) 博客

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

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

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

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

?

?

?

Personal Software Process Stages

時間百分比(%)

實際花費的時間 (分鐘)

原來估計的時間 (分鐘)

Planning

計劃

???

·???????? Estimate

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

???

Development

開發

???

·???????? Analysis

·???????? 需求分析 (包括學習新技術)

???

·???????? Design Spec

·???????? 生成設計文檔

???

·???????? Design Review

·???????? 設計復審 (和同事審核設計文檔)

???

·???????? Coding Standard

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

???

·???????? Design

·???????? 具體設計

???

·???????? Coding

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

???

·???????? Code Review

·???????? 代碼復審

???

·???????? Test

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

???

Reporting

總結報告

???

·???????? Test Report

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

?

?

?

·???????? Size Measurement

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

???

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

·???????? 事后總結, 并提出改進

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。