20165320 結對編程學習第一週

需求分析編程

實現一個命令行程序;
自動生成小學四則運算題目(加、減、乘、除)
支持整數
支持多運算符(好比生成包含100個運算符的題目)
支持真分數
統計正確率框架

設計思路
1.在此次結對編程中,咱們一開始的想法是設計一個可以處理分數的類,而後在教材中的Example4_22正好有相關的內容,因此咱們就在此個例子上進行修改,獲得了一個可以處理分數運算的類,而後索性就直接從分數這個難點開始構思。學習

2.在結對編程四則運算的博客內,咱們接觸到了運算後綴表達式以及將中綴表達式轉化成後綴表達式的兩個概念,其中都提到了棧,這個是用做運算,轉換中臨時存儲數據的一個結構,是整個計算方法的核心內容,是一個基本框架。因此咱們按照要求設計了一個有關的棧類爲轉化與計算作準備。優化

3.最後就是一個計算器和一個轉化器的設計,博客中提到了如下的計算規則:命令行

若是遇到數字,咱們就直接將其輸出。設計

若是遇到非數字時,若棧爲空或者該符號爲左括號或者棧頂元素爲括號,直接入棧。3d

若是遇到一個右括號,持續出棧並輸出符號,直到棧頂元素爲左括號,而後將左括號出棧(注意,左括號只出棧,不輸出),右括號不入棧。blog

若是遇到運算符號且棧非空,查看棧頂元素,若是棧頂元素的運算優先級大於或者等於該運算符號,則持續出棧,直到棧頂元素優先級小於該運算符。最後將該元素入棧。開發

若是咱們讀到了輸入的末尾,則將棧中全部元素依次彈出。字符串

這幾點就是後綴表達式的轉化方法,咱們經過這幾點設計了一個轉化器,即Tran類。

計算器的規則:

計算規則就是創建一個空棧,遇到數字就入棧,遇到符號就以符號前面的兩個數爲運算數進行計算。

以上四類咱們已經開發完畢,目前的程序能夠實現:計算一個正常的運算式(即中綴表達式)的值(支持有理數的運算,輸出結果爲一個字符串類型)。根據需求分析,咱們還須要如下功能:

隨機生成(多個)運算式;
判斷計算結果值是否正確;
判斷隨機生成的(多個)運算式是否有重複;
計算正確率
系統優化
以上功能須要在下一週的編程中開發實現。

功能截圖

結對感覺

在這一次的結對編程學習中,我深入地體會到婁老師爲何要推薦咱們結對學習。此次的學習任務比以往要重不少,一我的單打獨鬥很難取得特別快的進展,尤爲是當你的Parter是一個很是優秀的隊友時,你能從他的身上發現特別多本身的不足之處,在生活的方方面面,不單單是學習。因此,我以爲這次結對學習讓我受益不淺。

結對編程照片

相關文章
相關標籤/搜索