湖南大學軟體工程導論個人專案-程式碼分析
1、專案需求
使用者:
小學、初中和高中學生。
功能:
1、所有功能通過圖形化介面操作,可以是桌面應用,可以是網站(程式語言和技術不限);
2、使用者註冊功能。使用者提供手機號碼,點選註冊將收到一個註冊碼,使用者可使用該註冊碼完成註冊;
3、使用者完成註冊後,介面提示設定密碼,使用者輸入兩次密碼匹配後設置密碼成功。密碼6-10位,必須含大小寫字母和數字。使用者在登入狀態下可修改密碼,輸入正確的原密碼,再輸入兩次相同的新密碼後修改密碼成功;
4、密碼設定成功後,跳轉到選擇介面,介面顯示小學、初中和高中三個選項,使用者點選其中之一後,提示使用者輸入需要生成的題目數量;
5、使用者輸入題目數量後,生成一張試卷(同一張卷子不能有相同題目,題目全部為選擇題),介面顯示第一題的題乾和四個選項,使用者選擇四個選項中的一個後提交,介面顯示第二題,...,直至最後一題;
6、最後一題提交後,介面顯示分數,分數根據答對的百分比計算;
7、使用者在分數介面可選擇退出或繼續做題;
8、小初高數學題目要求見個人專案。
附表-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的運算子 |
2、測試結果
這裡以高中賬號為例,測試結果正確,輸出無誤。
3、程式碼分析
首先從功能角度:雖然看起來實現了專案需求,但是仔細推敲可以發現,該作者編寫程式碼時只考慮了一個括號的情況,而沒有考慮多個括號以及括號巢狀的問題,演算法有待改進。除了括號以外,還沒有考慮三角函式和平方開方內可以包含複雜表示式的可能性。
程式碼優缺點:
優點:編碼較為規範,簡單易懂。函式的使用較為合理,類的封裝性保持地較好。執行後,使用者互動比較合理,易於操作。
缺點:生成代數式的演算法有待改進,並且全域性變數設定有些許隨意,佔用空間較多,希望以後能進行改進。