我們在個人作業1中,用各種語言實現了乙個命令列的四則運算小程式。進一步,本次要求把這個程式做成gui(可以是windows pc 上的,也可以是mac、linux,web,手機上的),成為乙個有基本功能、一定價值的程式。
1:記錄使用者的對錯總數,程式退出再啟動的時候,能把以前的對錯數量儲存並在此基礎上增量計算。
2:有計時功能,能顯示使用者開始答題後的消耗時間。
3:介面支援中文簡體/中文繁體/英語,使用者可以選擇一種。
天生(隊友):
1:有計時功能,能顯示使用者開始答題後的消耗時間。
2:介面支援中文簡體/中文繁體/英語,使用者可以選擇一種。
畢川(本人):
1:建構四則表示式的題庫。(網上找的題庫,然後自己用演算法計算出題目的結果)
2:記錄使用者的對錯總數,程式退出再啟動的時候,能把以前的對錯數量儲存並在此基礎上增量計算。
1:中綴表示式轉字尾表示式
2:字尾表示式求值
void infix_postfix(string infix, string &postfix) //中綴表示式轉化成字尾表示式
i--;
postfix += ' ';
} else if (infix[i] == '(') //遇到左括號直接入棧
else if (infix[i] == ')') //遇到右括號,將棧中的元素全部輸出到postfix中,直到遇見左括號
q.pop();
} else //遇到運算子
else
q.push(infix[i]);//彈出之後再把輸入元素入棧
}} }
while (!q.empty()) //把棧中剩下的元素全部放到字尾表示式的陣列中
}
實現了四則混合運算,可以計算分數和整數的混合運算(帶小括號的)。
對於分數的處理,是使用了兩個棧,分子和分母棧。
變數命名的規則:以變數的功能命名,使用完整的英文描述,採用駝峰命名法。
函式傳參過程中盡量採用形式傳值
花括號「{}」不允許省略,即使只有一段**。
使用括號「()」來強調運算子優先順序。
記得格式化**,eclipse裡面ctrl+shilft+f
注釋**段,注釋邏輯選擇!
1:與隊友第二次合作,但是這次的合作沒有那麼順利,因為隊友用的技術我不會,所以只用了負責後端的演算法和記錄使用者的對錯總數。
2:結對程式設計中,**的規範還是挺重要的!
程式鏈結
碼雲鏈結
psp2.1
personal software process stages
time (%) senior student
time (%)
planning
計畫 · estimate
估計這個任務需要多少時間
development開發6
4 · analysis
需求分析 (包括學習新技術)
0.50.2
· design spec
生成設計文件
0.30.2
· design review
設計複審00
· coding standard
**規範
0.20.1
· design
具體設計
· coding
具體編碼
· code review
**複審
0.50.6
· test
測試(自我測試,修改**,提交修改)11
reporting報告2
3 ·test report
測試報告00
· size measurement
計算工作量
·postmortem & process improvement plan
並提出過程改進計畫
從結對程式設計到結對工作
熟悉極限程式設計的人都知道,在極限程式設計的十二項實踐中,有乙個非常重要的實踐就是結對程式設計,也就是兩個人坐在同一臺電腦前面,使用相同的鍵盤和滑鼠來開發同樣的乙個模組,乙個負責 的鍵入,另外乙個人負責盯緊可能出現的錯誤,包括低階錯誤和方向性的錯誤。而且,當乙個問題對其中乙個人難以解決而恰好是另外乙...
從結對程式設計到結對工作
熟悉極限程式設計的人都知道,在極限程式設計的十二項實踐中,有乙個非常重要的實踐就是結對程式設計,也就是兩個人坐在同一臺電腦前面,使用相同的鍵盤和滑鼠來開發同樣的乙個模組,乙個負責 的鍵入,另外乙個人負責盯緊可能出現的錯誤,包括低階錯誤和方向性的錯誤。而且,當乙個問題對其中乙個人難以解決而恰好是另外乙...
結對程式設計理解
做呼叫中心監控系統的時候,跟專案經理兩個人結對程式設計。他負責寫 我負責回答所有他對系統中不理解 中的地方。我們兩個經常就某個功能實現的設計討論開來,我們互相發現對方設計方面的不足,最後統一乙個好的 設計方法。結對程式設計的那段時間,我統計了一下我們的開發效率是兩個人原來開發效率的130 提高了30...