1. 程式人生 > 其它 >結對程式設計--中小學數學卷子自動生成程式程式碼互評(2)

結對程式設計--中小學數學卷子自動生成程式程式碼互評(2)

本部落格為吳貞逸和黃澤雲的結對程式設計專案總結


  • 一、選擇實現結對程式設計專案的技術

說實話一開始並沒有想用C++和QT的方式來實現這次的結對程式設計。在個人專案中我使用的是python而黃同學使用的是Java,都不是c++,但是當我們仔細閱讀專案需求說明並同自己個人專案的實現情況比較後,我們決定將一切推倒重來。就我個人而言,個人專案中存在著以下問題:封裝性不夠,很多函式需要重寫,登入方式需要重構;出題邏輯不夠合理,很多題目難以計算。所以,最後我們選擇了我倆都熟悉的語言c++。而說到c++的UI,肯定不會去用網頁,因為c++本身就有一個很棒的QT支援,而我學習過一點pyqt的內容,所以上手也會稍微快一點。

  • 二、複用說明

由於語言的更換,直觀上程式碼的複用基本是不可見的。但是部分程式碼邏輯還是汲取了個人專案中較為優秀的思想,比如生成題目的邏輯,仍然是先對運算元操作符進行考慮再對括號進行考慮;使用者登入和修改密碼等賬戶類操作也是用對txt檔案讀寫實現。

  • 三、經驗教訓

這次的結對程式設計專案存在著許多難點。首先是基礎的技術方面。雖然我們都很熟悉c++,但是用起來確實不怎麼順手,習慣了python和Java便捷的介面後,總覺得c++的開發特別繁瑣緩慢。然後是QT,雖然是基於面向物件,但是每一個控制元件都是一個類,呼叫起來也很是麻煩,不像pyqt那樣能直接一個函式搞定;對於QT creator的使用也不是很熟練,導致在生成釋出版本時出現了一些問題;在生成完整專案時還要學習資原始檔的編寫。然後是需求實現方面的難點。如前文所述,我們之前的題目生成邏輯雖然能生成題目,但基本無法計算,於是我們引入了π,並以π/4和π/6為最小單位,使得三角函式值可計算;答案設定方面也會有困難,為了更具迷惑性、更貼近實際,我們不能直接以隨機數出答案,而應該以計算結果為基準來出答案。這種貼切實際的考量使得我們的程式碼更加複雜,需要更多的邏輯判斷。

當然,經過這次專案也收穫了許多,我對QT和QT creator的操作更加熟練了,也重新撿起了很多c++的知識。對於過程中的難點的克服,有時還得多多上網查詢學習。給我印象最深的兩個關鍵詞“做中學”和“萬事開頭難”,學習QT的時候對著網上的教學視訊和資料,有時看了後面忘了前面,看完後使用時又感覺什麼也沒學會,總是感覺很難理解運用,只能通過對介面重複的改來改去然後觀察結果來倒逼自己熟練設計方法,因此覺得很是折磨。但看到稍微人性化一點點的介面以後的成就感會慢慢沖淡畏難的情緒,從而堅持完成專案。

QT creator生成專案時編譯還遇到了一個問題多方求助上網查詢都沒有解決。最後仔細看報錯詳情才解決了。

https://www.cnblogs.com/wtdyyds/p/15388772.html