軟體工程個人專案:能自動生成小學四則運算題目的程式
阿新 • • 發佈:2020-09-21
思路:
a.四則運算加減乘除,採用兩個隨機數,由於不能出現負數,所以在對兩個隨機數進行減法運算的時候,需要進行比較大小,而除法在運算中,除數不能取0。
b. 進行真分數運算應注意假分數的影響
實現過程:
定義函式:用def szys()實現隨機生成四則運算,用def test()通過呼叫syzs()實現題庫的製作.
所以程式碼分為三個部分,第一部分是生成隨機四則運算,最後輸出算式並返回正確答案;第二部是使用者通過輸入一個整數來輸出所需要的算式,當輸出的算式達到目標數量後,便一一輸出答案;第三部分為主函式,需要使用者自己選擇模式,當輸入是‘1’時,是為四則運算,通過呼叫syzs()函式得到算式和返回值,使用者輸入答案後,便與使用者輸入值進行比較。當輸入是‘2’時,是生成題庫,並在最後輸出答案。
原始碼:
import random #四則運算 def szys(): sym = ['+', '-', '×', '÷'] f= random.randint(0, 3) n1 = random.randint(1, 20) n2 = random.randint(1, 20) result = 0 if f== 0:#加法 result = n1 + n2 elif f == 1:#減法,要先比較大小,防止輸出負數 n1, n2 = max(n1, n2), min(n1, n2) result= n1 - n2 elif f== 2:#乘法 result = n1 * n2 elif f == 3:#除法,要比較大小,並迴圈取整除 n1, n2 = max(n1, n2), min(n1, n2) while n1 % n2 != 0: n1 = random.randint(1, 10) n2 = random.randint(1, 10) n1, n2 = max(n1, n2), min(n1, n2) result= int(n1 / n2) print(n1, sym[f], n2, '= ', end='') return result #製作題庫 def test(): sym = ['+', '-', '×', '÷'] print('輸入所需要的題目數量') n=int(input()) result =[] m=0 while m<=(n-1): print(m+1,end='、') result .append(szys()) print(' ') m=m+1 m=0 print('對應的答案:') while m<=(n-1): print(m+1,'、',result [m]) m=m+1 print('選擇想要的模式') print('1、進行四則運算') print('2、製作題庫') n=int(input()) #當輸入1時,進行四則運算,呼叫函式syzs() if n==1: while True: result = szys() j= input() s= int(j) if s== result : print('right') else: print('error.,the answer is', result ) #當輸入2時,進行製作題庫 if n==2: test()
測試執行:
分析:這次作業我是用python實現的,但由於我python學得還不是很精,所以我參考了網上的程式碼,基本上實現了四則運算,也方便了教師及時提取題庫,但由於時間不充分,所以在實現真分數上,沒有達到預期,這點還需要在後續中進行改進。
PSP表格:
PSP2.1 | Personal Software Process Stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
---|---|---|---|
Planning | 計劃 | 20 | 15 |
· Estimate | · 估計這個任務需要多少時間 | 60 | 45 |
Development | 開發 | 50 | 45 |
· Analysis | · 需求分析 (包括學習新技術) | 60 | 45 |
· Design Spec | · 生成設計文件 | 20 | 15 |
· Design Review | · 設計複審 (和同事稽核設計文件) | 15 | 10 |
· Coding Standard | · 程式碼規範 (為目前的開發制定合適的規範) | 20 | 10 |
· Design | · 具體設計 | 30 | 25 |
· Coding | · 具體編碼 | 30 | 25 |
· Code Review | · 程式碼複審 | 40 | 20 |
· Test | · 測試(自我測試,修改程式碼,提交修改) | 25 | 10 |
Reporting | 報告 | 10 | 8 |
· Test Report | · 測試報告 | 15 | 10 |
· Size Measurement | · 計算工作量 | 15 | 10 |
· Postmortem & Process Improvement Plan | · 事後總結, 並提出過程改進計劃 | 35 | 20 |
合計 | 415 | 393 |