这个作业属于哪个课程 | https://edu.cnblogs.com/campus/ahgc/AHPU-SE-19 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/ahgc/AHPU-SE-19/homework/11376 |
这个作业的目标 | <编写代码能够完成作业要求并且记录完成时间及各个事项> |
学号 | <3190704141> |
`import random
def prt(n1,n2,n3,n4,f):#输出函数
ope = ['+', '-', '×', '/']#operator 运算符
if n1%n2 ==0 and n3%n4 != 0:
print(str(n1//n2), ope[f], str(n3//GCD(n3,n4))+'/'+str(n4//GCD(n3,n4)), ' = ', end='')
elif n1%n2 != 0 and n3%n4 == 0:
print(str(n1//GCD(n1,n2))+'/'+str(n2//GCD(n1,n2)), ope[f], str(n3//n4), ' = ', end='')
elif n1%n2 ==0 and n3%n4 == 0:
print(str(n1//n2), ope[f], str(n3//n4), ' = ', end='')
else:
print(str(n1//GCD(n1,n2))+'/'+str(n2//GCD(n1,n2)), ope[f], str(n3//GCD(n3,n4))+'/'+str(n4//GCD(n3,n4)), ' = ', end='')
def GCD(x,y):#求最大公因数
if x > y:
smaller = y
else:
smaller = x
value = 1
for i in range(1,smaller + 1):
if((x % i == 0) and (y % i == 0)):
value = i
return value
def Iniszys(f):#自主选择四则运算函数
n1 = random.randint(1, 10)
n2 = random.randint(1, 10)
if n1>=n2 and n1 % n2 != 0:
n1,n2=min(n1,n2),max(n1,n2)
n3 = random.randint(1, 10)
n4 = random.randint(1, 10)
if n3>=n4 and n3 % n4 != 0:
n3,n4=min(n3,n4),max(n3,n4)
result = 0
if f == 0:#加法
if (n1*n4+n2*n3)%(n2*n4) == 0:
result = (n1*n4+n2*n3)//(n2*n4)#结果为整数则正常显示
else:
result = str((n1*n4+n2*n3)//GCD(n1*n4+n2*n3,n2*n4)) +'/'+str((n2*n4)//GCD(n1*n4+n2*n3,n2*n4))
prt(n1,n2,n3,n4,f)
elif f == 1:#减法,防止输出负数
if (n1*n4-n2*n3)%(n2*n4) == 0:
result = abs(n1*n4-n2*n3)//(n2*n4)#结果为整数则正常显示
else:
result = str(abs(n1*n4-n2*n3)//GCD(n1*n4-n2*n3,n2*n4)) +'/'+str((n2*n4)//GCD(n1*n4-n2*n3,n2*n4))
prt(n1,n2,n3,n4,f)
elif f== 2:#乘法
if (n1*n3)%(n2*n4) == 0:
result = abs(n1*n3)//(n2*n4)#结果为整数则正常显示
else:
result = str((n1*n3)//GCD(n1*n3,n2*n4))+'/'+str((n2*n4)//GCD(n1*n3,n2*n4))
prt(n1,n2,n3,n4,f)
elif f == 3:#除法
if (n1*n4)%(n2*n3) == 0:
result = abs(n1*n4)//(n2*n3)#结果为整数则正常显示
else:
result = str((n1*n4)//GCD(n1*n4,n2*n3))+'/'+str((n2*n3)//GCD(n1*n4,n2*n3))
prt(n1,n2,n3,n4,f)
return result
def Autoszys():# 自动生成四则运算函数
f= random.randint(0, 3)
n1 = random.randint(1, 10)
n2 = random.randint(1, 10)
if n1>=n2 and n1 % n2 != 0:
n1,n2=min(n1,n2),max(n1,n2)
n3 = random.randint(1, 10)
n4 = random.randint(1, 10)
if n3>=n4 and n3 % n4 != 0:
n3,n4=min(n3,n4),max(n3,n4)
result = 0
if f == 0:#加法
if (n1*n4+n2*n3)%(n2*n4) == 0:
result = (n1*n4+n2*n3)//(n2*n4)#结果为整数则正常显示
else:
result = str((n1*n4+n2*n3)//GCD(n1*n4+n2*n3,n2*n4)) +'/'+str((n2*n4)//GCD(n1*n4+n2*n3,n2*n4))
prt(n1,n2,n3,n4,f)
elif f == 1:#减法,防止输出负数
if (n1*n4-n2*n3)%(n2*n4) == 0:
result = abs(n1*n4-n2*n3)//(n2*n4)#结果为整数则正常显示
else:
result = str(abs(n1*n4-n2*n3)//GCD(n1*n4-n2*n3,n2*n4)) +'/'+str((n2*n4)//GCD(n1*n4-n2*n3,n2*n4))
prt(n1,n2,n3,n4,f)
elif f== 2:#乘法
if (n1*n3)%(n2*n4) == 0:
result = abs(n1*n3)//(n2*n4)#结果为整数则正常显示
else:
result = str((n1*n3)//GCD(n1*n3,n2*n4))+'/'+str((n2*n4)//GCD(n1*n3,n2*n4))
prt(n1,n2,n3,n4,f)
elif f == 3:#除法
if (n1*n4)%(n2*n3) == 0:
result = abs(n1*n4)//(n2*n3)#结果为整数则正常显示
else:
result = str((n1*n4)//GCD(n1*n4,n2*n3))+'/'+str((n2*n3)//GCD(n1*n4,n2*n3))
prt(n1,n2,n3,n4,f)
return result
def Ini():
print('输入所需要的题目数量:')
n=int(input())
result =[]
m=0
score=0#得分
print('请选择运算法则:')
print('0 --> + ')
print('1 --> - ')
print('2 --> * ')
print('3 --> / ')
f=int(input())
while m<=(n-1):
print(m+1,end='. ')
m+=1
result = Iniszys(f)
s= input()
b = 1#判断是否全对
if s== result :
print('正确')
score=score+(100//n)
else:
print('错误,正确答案是:', result )
b=0
if b == 1:
score == 100
print('你的得分是:',score)
print('测试结束')
def Auto():
print('输入所需要的题目数量:')
n=int(input())
result =[]
m=0
score=0#得分
b = 1#判断是否全对
while m<=(n-1):
print(m+1,end='. ')
m+=1
result = Autoszys()
s= input()
if s== result :
print('正确')
score=score+(100//n)
else:
print('错误,正确答案是:', result )
b=0
if b == 1:
score == 100
print('你的得分是:',score)
print('测试结束')
print('选择想要的模式:')
print('1、自动生成')
print('2、自主选择运算符号')
n=int(input())
if n==1:#自动生成运算符
Auto()
if n==2:
Ini()`
psp表格: