1. 程式人生 > 實用技巧 >軟體工程個人專案:能自動生成小學四則運算題目的程式

軟體工程個人專案:能自動生成小學四則運算題目的程式

思路:

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.1Personal 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