四则运算

四则运算
这个作业属于哪个课程 https://edu.cnblogs.com/campus/ahgc/AHPU-SE-19/
这个作业要求在哪里 https://edu.cnblogs.com/campus/ahgc/AHPU-SE-19/homework/11376
这个作业目标 不断完成客户的需求
学号 3190704233
`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()
`

好文要顶 关注我 收藏该文
mmmmyu
关注 - 3
粉丝 - 0
+加关注
00
« 上一篇: 第一次来
posted on 2020-10-26 21:41 mmmmyu 阅读(18) 评论(0) 编辑 收藏
刷新评论刷新页面返回顶部
发表评论
编辑
预览
支持 Markdown
退出 订阅评论

[Ctrl+Enter快捷键提交]

首页 新闻 博问 专区 闪存 班级
【推荐】华为HCIE直播密训:VRRP+MSTP典型组网案例分析、 一步玩转HCIE认证
【推荐】超50万行C++/C#: 大型组态工控、电力仿真CAD与GIS源码库
【推荐】未知数的距离,毫秒间的传递,声网与你实时互动

相关博文:
· ArrayList实现原理(JDK1.8)
· 十分钟掌握Pandas(上)——来自官网API
· Java并发之synchronized关键字和Lock接口
· Aso.NetCore的配置系统Configuration
· kalilinux修改更新源和更新命令
» 更多推荐...

最新 IT 新闻:
· 段永平黄峥唐岩卸任在40岁,陌陌新CEO王力要讲新故事
· 星巴克科技园店迎最大订单:暗示Redmi K30S至尊纪念版备货足
· 11位科幻作家参与 首次AI人机共创写作实验启动
· 特斯拉启动英国能源计划 或推出大型"虚拟发电厂"项目
· 不吹不黑,硬核拆解蚂蚁的“估值艺术”
» 更多新闻...

posted @ 2020-10-27 23:49  苏时  阅读(148)  评论(0)    收藏  举报