个人四则运算作业
这个作业属于哪个课程 https://edu.cnblogs.com/campus/ahgc/AHPU-SE-19/
这个作业要求在哪里 https://edu.cnblogs.com/campus/ahgc/AHPU-SE-19/homework/11376
这个作业的目标 写一个能自动生成小学四则运算题目的程序
学号 3190704133
代码如下
import random
from fractions import Fraction
operation = ['+', '-', '*', '/'] #四则运算的符号
global f
n = Fraction('{}'.format(n)).limit_denominator() #小数转化为分数
if n > 0:
print('题目:')
print(f,'=')
print('请输出答案:')
x = Fraction('{}'.format(eval(input()))).limit_denominator()
if n == x: #输入的数与表达式比较
print(True)
else:
print(False)
print('正确的答案为:',n)
else:
integer_score()
def integer():#加法
# rand = operation[random.randint(0,3)]
number = random.randint(1, 3)
f = ''
for i in range(number):
a = random.randint(1, 10)
rand = operation[random.randint(0, 0)]
f += str(a) + rand
b = random.randint(1, 10)
f += str(b)
n = eval(f)
if isinstance(n, int) and n > 0:
print('题目:')
print(f, '=')
print('请输出答案:')
x = eval(input())
if n == x:
print(True)
else:
print(False)
print('正确的答案为:', n)
else:
integer()
def integer2():#减法
# rand = operation[random.randint(0,3)]
number = random.randint(1, 3)
f = ''
for i in range(number):
a = random.randint(1, 10)
rand = operation[random.randint(1, 1)]
f += str(a) + rand
b = random.randint(1, 10)
f += str(b)
n = eval(f)
if isinstance(n, int) and n > 0:
print('题目:')
print(f, '=')
print('请输出答案:')
x = eval(input())
if n == x:
print(True)
else:
print(False)
print('正确的答案为:', n)
else:
integer2()
def integer3():#乘法
# rand = operation[random.randint(0,3)]
number = random.randint(1, 3)
f = ''
for i in range(number):
a = random.randint(1, 10)
rand = operation[random.randint(2, 2)]
f += str(a) + rand
b = random.randint(1, 10)
f += str(b)
n = eval(f)
if isinstance(n, int) and n > 0:
print('题目:')
print(f, '=')
print('请输出答案:')
x = eval(input())
if n == x:
print(True)
else:
print(False)
print('正确的答案为:', n)
else:
integer3()
def integer4():#除法
# rand = operation[random.randint(0,3)]
number = random.randint(1, 2)
f = ''
for i in range(number):
a = random.randint(1, 10)
rand = operation[random.randint(3, 3)]
f += str(a) + rand
b = random.randint(1, 10)
f += str(b)
n = eval(f)
if isinstance(n, float) and n > 0:
print('题目:')
print(f, '=')
print('请输出答案:')
x = eval(input())
if n == x:
print(True)
else:
print(False)
print('正确的答案为:', n)
else:
integer4()
def score():
op = ['+', '-']
number = random.randint(1, 3)
f = ''
for i in range(number):
a = random.randint(1, 10)
b = random.randint(a, 10)
rand = op[random.randint(0, 1)]
f += str(a) + '/'+ str(b)+rand
a = random.randint(1, 10)
b = random.randint(a, 10)
f += str(a) + '/'+ str(b)
n = eval(f)
n = Fraction('{}'.format(n)).limit_denominator()
if n > 0:
print('题目:')
print(f,'=')
print('请输出答案:')
x = Fraction('{}'.format(eval(input()))).limit_denominator()
if n == x:
print(True)
else:
print(False)
print('正确的答案为:',n)
else:
score()
def szys():
sym = ['+', '-', '×', '÷']
f= random.randint(3, 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('输入所需要的题目数量')
m=int(input())
result =[]
n=0
while n<=(m-1):
print(n+1,end='、')
result .append(szys())
print(' ')
n=n+1
n=0
print('对应的答案:')
while n<=(m-1):
print(n+1,'、',result [n])
n=n+1
if name == 'main':
while True:
print('选择你想做的题:')
print('0(退出)1(分数题目),2(加法题目),3(减法题目),4(乘法题目),5(除法题目),6(综合题目)7(制作题库)')
m = int(input())
if m == 1:
score()
elif m == 2:
integer()
elif m3:
integer2()
elif m4:
integer3()
elif m5:
integer4()
elif m == 6:
integer_score()
elif m7:
test()
elif m == 0:
exit()
else:
print('请重新输入你的选择')
运行截图
分数运算:
加法运算:
减法运算:
乘法运算:
除法运算:
综合题目:
制作题库:
个人总结:
任务内容 计划完成需要的时间(min) 实际完成需要的时间(min)
计划 8 5
估计这个任务需要多少时间,并规划大致工作步骤 10 12
开发 150 180
需求分析(包括学习新技术) 30 20
生成设计文档 6 5
设计复审 15 5
代码规范 5 10
具体设计 10 7
具体编码 50 60
代码复审 7 5
测试(自我测试,修改代码,提交修改) 30 120
报告 20 15
测试报告 5 0
计算工作量 5 0
事后总结,并提出过程改进计划 10 8
个人总结:python真的好用且简洁。继续努力学习好好加油!