2017-2018-20172309 『Java程序設計』課程 結對編程練習_四則運算_第三週

2017-2018-20172309 『Java程序設計』課程 結對編程練習_四則運算

組隊成員: 仇夏
學號: 20172310
博客地址:
@王志偉 四則運算第一週博客 @仇夏四則運算第一週博客
@王志偉 四則運算第二週博客 @仇夏四則運算第二週博客
結對照片:html

1.進度進程:

1.上週進度:

  • 已完成:
    - 完成了生成中綴表達式的類。
    - 完成了main函數用來運行的類。
    - 中綴表達式轉化成後綴表達式的類
    - 後綴表達式的計算。
    - 去重。
    - 代碼的完善與美化。
  • 待完成:
    - 將生成的題目存到一個文件中。
    - UML類圖的完善。

2.這周進度:

  • 已完成:
    - 完成了生成中綴表達式的類。
    - 完成了main函數用來運行的類。
    - 中綴表達式轉化成後綴表達式的類
    - 後綴表達式的計算。
    - 去重。
    - 代碼的完善與美化。
    - 將生成的題目存到一個文件中。
    - UML類圖的完善。

2.項目介紹:

  • 這個程序要求用戶輸入所要生成問題的個數n(每一個算式的等級都是隨機的且最高級爲5級),以後每出來一個問題就要求用戶輸入他計算的獲得的答案。程序將自動計算出正確答案,並與用戶答案相比較,最後全部問題計算完後,電腦自動顯示全部正確答案與用戶答案,並給出正確率。
  • 建立一個文件,並將生成的題目存入文件,並從文件中讀題並計算:

3.項目中遇到的問題:

因爲前面兩週遇到的問題已經在前兩篇博客中指出,所以在本篇博客中再也不贅述。這裏只說出這周解決的問題:java

  • 問題一:
    在進行比較符號優先級的時候,出現了一些問題。例如在考慮一個符號是否應該進棧時,應該與棧頂元素進行比較,比他高就進棧,低就棧頂元素出棧,直到遇到比他高的元素或者棧中沒有元素。git

    舉個例子:
    3+5×2-1=
    第一步:在考慮「-」是否進棧時, 棧中元素爲: + × 暫時輸出的後綴表達式爲: 3 5 2
    第二步:此時應該與棧頂元素「×」比較:沒有棧頂元素優先級高,則輸出,此時棧中元素爲: + 暫時輸出的後綴表達式爲: 3 5 2 ×
    再與棧頂元素「+」比較:沒有棧頂元素優先級高,則輸出,此時棧中元素爲: 空 暫時輸出的後綴表達式爲: 3 5 2 × +// 我遇到的問題是如何調用符號「+」
    此時棧中沒有元素,則「-」入棧。
    ...
    最後獲得的後綴表達式爲:3 5 2 × + 1 - =編程

由於我符號優先級進行比較運用的方法是構建一個數組,所以在調用已經存入棧的元素很差再進行調用(它的橫座標與縱座標每次賦值沒有規律,很差進行賦值)。數組

  • 解決方案:咱們這個項目進行計算時不用考慮包含括號的運算。所以咱們發現一個規律:當須要進行二次符號比較時,每每是將棧中的元素所有輸出,且棧中的元素最多不會超過兩個!所以咱們的解決方案是當須要進行二次比較時,就把棧中元素所有輸出便可!

    ************************************************************************************************
    *******************************************分割線*********************************************
    ************************************************************************************************
  • 問題二:
    圖中的正確答案都是同樣的,可是問題不一樣的!!
  • 解決方案:咱們猜想出現這個問題的緣由是:在從本身建立的文件中讀取寫入的問題時,每一次都是隻讀取第一行。所以在讀取第一行之後須要跳過已經讀取過的行。所以我增添了下面語句,用於跳過已經讀取的行。

4.UML類圖:

5.項目代碼連接:

項目目錄函數

6.成員感想總結:

  • 20172309:

    嗯,寫到這時這個項目也總算是作完了。心中不免是有點激動與開心的(特別是看到與隊友一塊兒製做的程序運行的時候),可是我以爲,咱們更應該記住的是在製做這個項目過程當中所收穫的東西。
    最初與隊友接到這個項目的時候,隊友與我都是一頭霧水。由於咱們兩什麼都不知道,咱們就一塊兒查資料。在第一週的時候,由於對這個項目的不瞭解,我不知道幹什麼,也不知道應該幹什麼,因此我就以爲很是的沮喪,甚至有過放棄的念頭,可是這時隊友就過來安慰我,讓我不要放棄(在整個過程當中,咱們互相鼓勵),同時她還已經完成了一部分的代碼,同時還給我講解。這就讓我一會兒瞭解了我下一步應該幹什麼(論隊友的重要性!^_^),總而言之,再次感謝個人隊友。
    在此後的兩週至今,隊友與我都是秉承「誰有空就誰作,誰能作就多作」的觀念進行編碼的。在其中的過程當中,咱們一塊兒討論、分享本身的方法,而後把最好的方法在代碼中實現。在這一過程當中,由於隊友最近都比較忙,因此項目編寫任務天然地都落在我身上(隊友準備請我吃飯吧)。在其間,我也遇到了很多問題,所以找了許多的同窗幫忙。好比侯澤洋同窗郭愷同窗(這裏是他們的博客,就當給他們打廣告吧)。不過,隊友在百忙之中仍然很關心這個項目的,她時不時的在看過程序後給我提出程序存在的問題(隊友是大佬,帶我裝×帶我飛)。因此這個程序才能這麼完美。
    編碼

  • 20172310:

    首先能和個人小夥伴組隊我是感到很開心的。隊友是個編程能力很不錯的人喲
    ٩(๑❛ᴗ❛๑)۶,並且態度還很積極,完成了此次任務的不少事呢,給個大大的贊
    (σ゚∀゚)σ..:*☆ 哎喲不錯哦。
    設計

我認爲咱們作的好的方面是:htm

  1. 在任務分配上很快達成了一致,使得任務可以快速的進行下去。雖然前期咱們是打算一塊兒完成所有的任務,但考慮到各自的時間有差別,並且個人編程能力不是很好,因此爲了更加的高效且團隊成員可以都能展示本身能力,咱們進行了採起了分工合做的方式。
  2. 在編程的時候咱們都能拿出本身的見解,積極地討論,而後接受隊友的意見和想法,來完善咱們的代碼。
  3. 遇到困難的時候互相鼓勵,一點一點地解決了困難。
    作得不足的幾個方面:
    1. 對任務的總體把握不是很好,有些代碼過於的繁瑣,沒能精簡。
    2. 由於後期我在忙一些複雜的(雜七雜八的)事情,因此致使隊友一我的完成了不少的事情,我都沒有出到什麼力,不過好在隊友很給力呢。
    3. 編程能力仍是有些欠缺,有些方式可以想獲得,可是卻都實現不了。

7. 好友評分:

王志偉 仇夏
我的貢獻度 50% 50%
相關文章
相關標籤/搜索