Python實現自動生成四則運算題目


Github項目地址:https://github.com/Aiyaxc/zuoye-

題目:實現自動生成四則運算題目的命令行程序。

1)題目要求:

   a.  能自動生成小學四則運算題目(注意是給小學生用的,要是結果出現負數的話他們會迷茫的!)

   b. 除了整數外,還要支持真分數的四則運算

 2)思路:

   a.四則運算加減乘除,采用兩個隨機數,由於不能出現負數,所以在對兩個隨機數進行減法運算的時候,需要進行比較大小,而除法在運算中,除數不能取0。

   b.  進行真分數運算應注意假分數的影響

 3)實現過程

      定義函數:用def szys()實現隨機生成四則運算,用def test()通過調用syzs()實現題庫的制作.

      所以代碼分為三個部分,第一部分是生成隨機四則運算,最后輸出算式並返回正確答案;第二部是用戶通過輸入一個整數來輸出所需要的算式,當輸出的算式達到目標數量后,便一一輸出答案;第三部分為主函數,需要用戶自己選擇模式,當輸入是‘1’時,是為四則運算,通過調用syzs()函數得到算式和返回值,用戶輸入答案后,便與用戶輸入值進行比較。當輸入是‘2’時,是生成題庫,並在最后輸出答案。

4)源代碼:

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()

  

(5)測試運行:

  1. 先運行第一個模式----進行四則運算,結果:

      2.運行第二個模式----制作題庫,先生成15道題:

 

                     生成30道題:

 

 

(5)分析

       這次作業我是用python實現的,但由於我python學得還不是很精,所以我參考了網上的代碼,基本上實現了四則運算,也方便了教師及時提取題庫,但由於時間不充分,所以在實現真分數上,沒有達到預期,這點還需要在后續中進行改進。

(6)PSP表格

 

 

預計耗時(分鍾)

是實際耗時(分鍾)

Planning

計划

20

15

Estimate

估計這個任務需要多少時間

/

/

Development

開發

120

200

Analysis

需求分析

5

7

Design Spec

生成設計文檔

/

/

Design Review

設計復審(和同事審核設計文檔)

/

/

Coding Standerd

代碼規范(為目前的開發制定合適的規范)

5

8

Design

具體設計

8

12

Coding

具體編碼

35

70

Code Review

代碼復審

20

30

Text

測試(自測,修改代碼,提交修改)

20

30

Reporting

報告

25

20

Text Report

測試報告

10

15

Size Measurement

計算工作量

6

5

Postmortem & Process Improvement Plan

事后總結,並提出過程改進計划

5

5

Sum

合計

279

407

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM