個人作業1——四則運算題目生成程序(基於控制台)


Deadline:##

2017-3-8 12:00AM,以博客發表日期為准。

評分基准:##

  • 按時交 - 有分,檢查的項目包括后文的四個方面
    • 題目要求
    • 個人軟件過程耗時估計與統計表
    • 代碼提交
    • 博文規范
  • 晚交 - 0分
  • 遲交兩周以上 - 倒扣本次作業分數
  • 抄襲 - 倒扣本次作業分數

題目描述:##

看了大家對於本課程的目標和規划,很多同學都希望能提高自己的實踐能力,沒有捷徑可走,就是練習、練習再練習!那么就從第一個個人項目開始吧,用一周的時間完成一個基於控制台的四則運算程序,實現一個自動生成小學四則運算題目的命令行程序

從《構建之法》第一章的 “程序” 例子出發,像阿超那樣,花二十分鍾寫一個能自動生成小學四則運算題目的命令行 “軟件”,滿足以下需求:

  1. 除了整數以外,還要支持真分數的四則運算,真分數的運算,例如:1/6 + 1/8 = 7/24
  2. 運算符為 +, −, ×, ÷
  3. 並且要求能處理用戶的輸入,並判斷對錯,打分統計正確率。
  4. 要求能處理用戶輸入的真分數, 如 1/2, 5/12 等
  5. 使用 -n 參數控制生成題目的個數,例如執行下面命令將生成10個題目
    Myapp.exe -n 10

個人軟件過程:##

  1. 在開始實現程序之前,理解下Personal Software Process Stages(http://www.cnblogs.com/xinz/archive/2011/10/22/2220872.html)

  2. 在開始實現程序之前,請使用以下PSP表格,在第3列填上自己對每個環節的估計時間(單位:分鍾).

  3. 在做每個環節的過程中,請在第4列填上對應環節的實際消耗時間(單位:分鍾).

  4. 在軟件開發中,掌握估計時間是一項重要的技能,請通過PSP表格做到

    a.厘清開發的完整環節,爭取在每個環節都有實際的工作,一開始邊界不清楚是正常的,但請嘗試按自己的理解去努力在對應環節做實際的工作。
    b.預估每個環節的時間,並真實統計這些環節的耗時,在完成后輸出完整的PSP耗時估計表。
    c.注意:該表格是給自己看的,不要偽造數據!
    d.PSP模版表格如下,第3列和第4列分別對應第2列條目的估計時間和真實時間,模版表格里的時間只是示意。

PSP2.1 Personal Software Process Stages Time Senior Student Time
Planning 計划 8 6
· Estimate 估計這個任務需要多少時間 8 6
Development 開發 82 88
· Analysis 需求分析 (包括學習新技術) 6 10
· Design Spec 生成設計文檔 5 6
· Design Review 設計復審 4 6
· Coding Standard 代碼規范 3 3
· Design 具體設計 10 12
· Coding 具體編碼 36 21
· Code Review 代碼復審 7 9
· Test 測試(自我測試,修改代碼,提交修改) 13 21
Reporting 報告 9 6
· 測試報告 3 2
· 計算工作量 2 1
· 並提出過程改進計划 3 3

代碼提交:##

  1. 提交你的源代碼和可執行程序至你的coding.net地址

    a.怎樣使用git提交代碼到coding.net? 參考,考驗你強大自學能力的時刻到了:

    b.需要提交的應該有

    • 項目的工程文件,例如Eclipse的項目文件
    • 項目的源代碼
    • 一些必要的配置
    • 單獨創建一個public子目錄,存放編譯后的可執行程序,這不是標准的軟件發布的做法,但是目前你這樣先提交可以。

    c.不應該提交的有:

    • bin目錄
    • obj目錄
    • 可以在根目錄下創建一個.gitignore文件,把需要忽略的文件夾和文件相對路徑逐行添加進去,這樣git 提交的時候就會忽略這些子目錄和子文件。
  2. 博文的一開始需要寫明你注冊的 coding 地址

博文規范##

  1. 提交的博客必須完整包含下面五個部分
    a.需求分析,即使老師已經給出了題目,也要對題目的需求做分析,需求分析可以是自己的思考分析,也可以是找小學老師,學生甚至家長調查后挖掘出更細致的需求,別小看這個過程,請真實的做這個過程。
    b.功能設計,題目的需求,以及從真實調研里獲得的需求后,要對程序做基本的功能設計,有同學會問:“不就是出題嘛,有啥好設計的?”,其實, 題目里要求的只是基本的要求,自己思考和調研會有超出題目要求的需求,甚至你有天才的設計,作出特色的功能。因此,功能會有:

    • 基本功能
    • 擴展功能
    • 高級功能

    c.設計實現,設計包括代碼如何組織,你會有哪些Java類,這些類分別負責什么功能,他們之間的關系怎樣?你會設計哪些重要的函數,關鍵的函數是否需要畫出流程圖?
    d.代碼說明,你一定花了最多時間在代碼的編寫與調試上,那么,這個環節請把你的重要代碼展示出來,代碼的排版請做好。
    e.測試運行,你的程序必須是可運行的,請展示你的程序運行的截圖,包括題目要求的所有需求,都有運行的截圖。說明你的程序確實完成了所有需求,如果有實現了擴展需求或者高級需求,也請大方秀出來。

  2. 展示PSP,這個環節重要的是讓自己看到自己的估計和實際消耗時間,哪個環節耗時最多,哪個環節估計失敗?為什么?

  3. 小結。如果,如果所有的環節你都認真做了,那么,此處你應該會有很多經驗願意與大家分享。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM