任务需求:

1.输入一个数n,能生成n道四则运算的题目

2.题目较为简单,数字在1-100之间

 

 

思路

分为三个部分,函数oprint()用于生成整数算式

def oprint():#整数四则运算
opr = ['+', '-', '×', '÷'] #运算符集合
j = random.randint(0, 3) #运算符集合下标
n1 = random.randint(0, 100) #随机生成1-100间的整数
n2 = random.randint(0, 100) #随机生成1-100间的整数
re = 0 #运算结果
if j == 0: #算式为加法
re = n1 + n2
elif j == 1: #算式为减法
n1, n2 = max(n1, n2), min(n1, n2) #n1取较大值,n2取较小值
re = n1 - n2
elif j == 2: #算式为乘法
re = n1 * n2
elif j == 3: #算式为除法
n1, n2 = max(n1, n2), min(n1, n2) #被除数n1为较大值,除数n2为较小值
while n1 % n2 != 0: #保证算式为整除
n1 = random.randint(0, 100)
n2 = random.randint(0, 100)
n1, n2 = max(n1, n2), min(n1, n2)
re = int(n1 / n2)
print(n1, opr[j], n2, '= ', end='') #输出题目
return re #返回答案


 

函数oprfra()用于生成分数算式

def oprfra():
opr = ['+', '-', '×', '÷'] #运算符集合
j = random.randint(0, 3) #运算符集合下标
t1 = random.randint(1, 100)
t2 = random.randint(t1, 100)
n1 = Fraction(t1, t2) #生成分数
t1 = random.randint(1, 100)
t2 = random.randint(t1, 100)
n2 = Fraction(t1, t2) #生成分数
re = 0
if j == 0: #算式为加法
re = n1 + n2
elif j == 1: #算式为减法
n1, n2 = max(n1, n2), min(n1, n2)
re = n1 - n2
elif j == 2: #算式为乘法
re = n1 * n2
elif j == 3: #算式为除法
n1, n2 = max(n1, n2), min(n1, n2)
re = n1 / n2
print(n1, opr[j], n2, '= ', end='')
return re


 

函数test()用于生成题目及答案

def test():
opr = ['+', '-', '×', '÷']
print('输入题库所需要的题目数量')
n=int(input()) #题目数量n
re=[] #答案集合
m=0
while m<=(n-1):
j = random.randint(0, 1) #让题目大概一般整数算式,一般分数算式
if j==0: #生成分数算式
print(m+1,end='、')
re.append(oprfra())
print(' ')
else: #生成整数算式
print(m+1,end='、')
re.append(oprint())
print(' ')
m=m+1
m=0
print('答案:')
while m<=(n-1):
print(m+1,'、',re[m]) #输出答案
m=m+1
test()


 

运行结果:

四则运算_过程改进

 还能改进的地方

1.能作答,作答后判断正误并给出答案

2.整数和分数能同时计算

3.能计算括号

 

PSP

内容

预估耗时(分钟)

实际耗时(分钟)

估计这个任务需要多长时间

120

160

需求分析

10

10

生成设计文档

/

/

设计复审

/

/

代码规范

/

/

具体设计

100

100

代码复审

20

20

测试

10

10

测试报告

10

10

计算工作量

5

5

事后总结,并提出过程改进计划

5

5