个人四则运算作业

这个作业属于哪个课程 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 m
4:
integer3()
elif m5:
integer4()
elif m == 6:
integer_score()
elif m
7:
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真的好用且简洁。继续努力学习好好加油!

posted @ 2020-10-28 09:03  yuanjinsheng  阅读(85)  评论(0编辑  收藏  举报