個人專案:中小學數學卷子自動生成程式 隊友評價
使用者:
小學、初中和高中數學老師。
功能:
命令列輸入使用者名稱和密碼,兩者之間用空格隔開(程式預設小學、初中和高中各三個賬號,具體見附表),如果使用者名稱和密碼都正確,將根據賬戶型別顯示“當前選擇為XX出題”,XX為小學、初中和高中三個選項中的一個。否則提示“請輸入正確的使用者名稱、密碼”,重新輸入使用者名稱、密碼;
登入後,系統提示“準備生成XX數學題目,請輸入生成題目數量(輸入-1將退出當前使用者,重新登入):”,XX為小學、初中和高中三個選項中的一個,使用者輸入所需出的卷子的題目數量,系統預設將根據賬號型別進行出題。每道題目的運算元在1-5個之間,運算元取值範圍為1-100;
題目數量的有效輸入範圍是“10-30”(含10,30,或-1退出登入),程式根據輸入的題目數量生成符合小學、初中和高中難度的題目的卷子(具體要求見附表)。同一個老師的卷子中的題目不能與以前的已生成的卷子中的題目重複(以指定資料夾下存在的檔案為準,見5);
在登入狀態下,如果使用者需要切換型別選項,命令列輸入“切換為XX”,XX為小學、初中和高中三個選項中的一個,輸入項不符合要求時,程式控制臺提示“請輸入小學、初中和高中三個選項中的一個”;輸入正確後,顯示“”系統提示“準備生成XX數學題目,請輸入生成題目數量”,使用者輸入所需出的卷子的題目數量,系統新設定的型別進行出題;
生成的題目將以“年-月-日-時-分-秒.txt”的形式儲存,每個賬號一個資料夾。每道題目有題號,每題之間空一行。
附表-1:賬戶、密碼
賬戶型別 |
賬戶 |
密碼 |
備註 |
小學 |
張三1 |
123 |
|
張三2 |
123 |
||
張三3 |
123 |
||
初中 |
李四1 |
123 |
|
李四2 |
123 |
||
李四3 |
123 |
||
高中 |
王五1 |
123 |
|
王五2 |
123 |
||
王五3 |
123 |
附表-2:小學、初中、高中題目難度要求
小學 |
初中 |
高中 |
||
難度要求 |
+,-,*./ |
平方,開根號 |
sin,cos,tan |
|
備註 |
只能有+,-,*./和() |
題目中至少有一個平方或開根號的運算子 |
題目中至少有一個sin,cos或tan的運算子 |
生成txt檔案2021-09-28-19-58-51如下:
1. (75 - 50 / (65 - 77)) + √97 =
2. 44 + 52^2 =
3. (63 * √57) - 29 =
4. (59 * (45 - 29 - 92)) / √72 =
5. 68^2 =
6. 73 / 8 - √13 =
7. √(95 + 54 + 60) =
8. 6 / √13 * 88 =
9. (62 / 87 * (√(10 / 6))) - 98 =
10. (75 / (22 / √3)) - 50 =
11. 59 - 73 + (86 + 69^2 + 54) =
12. 32 / √81 =
13. 73 + 75 + √53 =
14. 58^2 =
15. 21 * 12^2 - 48 =
16. 95^2 - 57 =
17. √29 - 100 =
18. 79 / 88^2 / 53 =
19. √47 =
20. (69 + 80 * 78) * 70^2 =
隊友評價:
優點:
1.程式碼模組化結構清晰
函式呼叫關係清晰,程式碼塊之間邏輯通順可讀性強,便於隊友與其他程式設計者的理解,提高了合作效率。
2.註釋通俗易懂細緻
對於每個功能性函式都進了相應的註釋,在關鍵的生成程式碼部分對不同難度的試卷進行了分別註釋,對生成演算法進行解釋。
3.對不同的特殊情況詳盡討論
對於出題時的不同情況,如單個運算元時的討論,對不同難度試卷題目的討論非常詳盡,並且做出了相應的註釋進行討論。
缺點:
1.程式碼規範性有所欠缺
對於縮排沒有進行整體的規劃以至於程式碼美觀性有所不足,有部分變數的命名有些簡單,沒有做到儘可能地讓讀者讀懂。存在單行長程式碼,沒有進行換行處理。
2.未實現查重與建立獨立資料夾
生成題目輸出到按照日期進行命名的txt檔案中,但並未儲存到相應的獨立資料夾中,未實現不能重複出題的查重功能。