任务需求:
1.输入一个数n,能生成n道四则运算的题目
2.题目较为简单,数字在1-100之间
思路
分为三个部分,函数oprint()用于生成整数算式
def oprint():#整数四则运算
opr = ['+', '-', '×', '÷']
j = random.randint(0, 3)
n1 = random.randint(0, 100)
n2 = random.randint(0, 100)
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)
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())
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 |