需求分析:git
功能設計:數組
1.在控制檯輸入題目的數量及生成數的範圍dom
2.在文本中記錄全部生成的題目函數
3.在文本中記錄每道題對應的正確答案學習
4.把正確答案和作題者輸入的答案進行對比,在文本中計算出正確和錯誤的題目數量並標記題號測試
設計實現:ui
Fraction:分數格式的結構體編碼
MathMethod.cs:數學公式方法類,提供對應的計算方法spa
Fraction Add(Fraction f1, Fraction f2):分數的加法方法.net
Fraction Sub(Fraction f1, Fraction f2):分數的減法方法
Fraction Mul(Fraction f1, Fraction f2):分數的乘法方法
Fraction Div(Fraction f1, Fraction f2):分數的除法方法
Fraction Simplify(Fraction f):分數的化簡方法
// 用最大公約數化簡 public static Fraction Simplify(Fraction f) { int GCD; int temp, remain; Fraction store=f; if (f.deno < f.nume) { temp = f.deno; f.deno = f.nume; f.nume = temp; } while (f.nume != 0) { remain = f.deno % f.nume; f.deno = f.nume; f.nume = remain; } GCD = f.deno; store.deno = store.deno/GCD; store.nume = store.nume/GCD; return store; }
測試運行:
控制檯:
Exercises文件:
Answers文件:
Grade文件:
我的軟件過程:
PSP2.1 | Personal Software Process Stages | Time Senior Student | Time |
Planning | 計劃 | 5 | 5 |
· Estimate | 估計這個任務須要多少時間 | 650 | 360 |
Development | 開發 | 300 | 180 |
· Analysis | 需求分析 (包括學習新技術) | 5 | 5 |
· Design Spec | 生成設計文檔 | 0 | 0 |
· Design Review | 設計複審 | 10 | 10 |
· Coding Standard | 代碼規範 | 5 | 5 |
· Design | 具體設計 | 10 | 20 |
· Coding | 具體編碼 | 300 | 150 |
· Code Review | 代碼複審 | 30 | 15 |
· Test | 測試(自我測試,修改代碼,提交修改) | 30 | 90 |
Reporting | 報告 | 30 | 40 |
· | 測試報告 | 2 | 2 |
· | 計算工做量 | 2 | 2 |
· | 並提出過程改進計劃 | 3 | 3 |
代碼地址
https://git.coding.net/HangZhe/HomeWork1.git
小結:
最近一些事情真的讓我有點忙不過來,致使此次做業我花的時間其實不多,有一些功能沒有實現,只是作了簡單的兩個操做數的整數和分數運算,後續會補齊。學到的東西仍是有的,好比使用Split(char a)函數能夠把一個字符串以字符a爲分界線進行劃分,劃分的結果是一個字符串數組,每一小段都是一個數組元素,還有就是對C#的文件操做方面應用的更加熟練,對文件的寫入要一次完成比較好,後面要加入的括號運算能夠先在一個隨機的運算數前面生成左括號,而後在這個運算數的後面再取一個隨機的數前面加上右括號,對於括號的運算個人思路是使用上學期編譯原理的知識轉換爲逆波蘭式,查重應該使用棧來實現。