四则运算的升级

题目要求:自动生成小学四则运算题目,加法,减法,乘法,除法求余等运算。

运行环境:python

代码展示:

def button(): #按钮处理函数
    #buttonNew.place_forget() #隐藏button
    global Number
    global RAns
    global Rnum
    if Number is 0: #开始步骤
        EnterAns.delete('0','end')
        listAns.insert(0, "开始答题~~")
        buttonNew["text"] = "下一题"
        R = Newq()  # 获取新问题
        Q1["text"] = R[1]  # 问题
        RAns=R[0]
        Number+=1
    else:  #先判断上一题是否正确再生成新题目 每5道有一道为真分数的运算
        User_A = EnterAns.get()
        u=Q1["text"]+"="+str(RAns)+"    your "+User_A+":"
        if User_A == str(RAns): #匹配答案
            u += " right"
            Rnum+=1
        else:
            u += " wrong"
        listAns.insert(0, u)
        if Number%5!=0:
            R = Newq()  # 获取整数新问题
        else:
            R=newF() # 获取分数新问题
        Q1["text"] = R[1]  # 问题
        RAns = R[0]  #正确答案
        Number += 1
        EnterAns.delete('0', 'end') #清空输入框
    if Number%30 == 0 :
        sss='你做了'+str(Number)+'道题,对了'+str(Rnum)+''
        tkinter.messagebox.showinfo("well done",sss)

整数的加减乘除:

#整数的加减乘除
def Newq():
    s=['+','-','×','÷']
    q=[]
    s_num=random.randint(0, 3)
    if s_num is 0 :#加法
        a=random.randint(0,50)
        b=random.randint(0,50)
        q.append(a+b)
        q.append(str(a)+' '+s[s_num]+' '+str(b))
        return q
    elif s_num is 1 :#减法
        a=random.randint(0,50)
        b=random.randint(0,a)
        q.append(a - b)
        q.append(str(a) + ' '+s[s_num]+' ' + str(b))
        return q
    elif s_num is 2 :#乘法
        a=random.randint(0,20)
        b=random.randint(0,20)
        q.append(a * b)
        q.append(str(a) + ' '+s[s_num]+' ' + str(b))
        return q
    else : #除法
        a=random.randint(0,20)
        b=random.randint(1,20)
        if (a>b and a%b!=0): #避免出现 20/3 这样的问题
            tmp=a
            a=b
            b=tmp
        c=Fraction(a,b)
        q.append(str(c))
        q.append(str(a) + ' '+s[s_num]+' ' + str(b))
        return q

分数的加减乘除:

#分数的加减乘除
def newF():
    s=['+','-','×','÷']
    q=[]
    s_num=random.randint(0, 3)
    t1 = random.randint(0, 20)
    if t1==0:
        t2=random.randint(1, 20)
    else:
        t2 = random.randint(t1, 20)
    a=Fraction(t1,t2)
    t1 = random.randint(1, 20)
    if t1==0:
        t2=random.randint(1, 20)
    else:
        t2 = random.randint(t1, 20)
    b = Fraction(t1, t2)
    if s_num is 0 :#加法
        q.append(a+b)
        q.append(str(a)+' '+s[s_num]+' '+str(b))
        return q
    elif s_num is 1 :#减法
        if a<b:
            tm=a
            a=b
            b=tm
        q.append(a - b)
        q.append(str(a) + ' '+s[s_num]+' ' + str(b))
        return q
    elif s_num is 2 :#乘法
        q.append(a * b)
        q.append(str(a) + ' '+s[s_num]+' ' + str(b))
        return q
    else : #除法
        c=Fraction(a,b)
        q.append(str(c))
        q.append(str(a) + ' '+s[s_num]+' ' + str(b))
        return q

psp表格:

    预计耗时(分钟) 实际耗时(分钟)
Planning 计划 5  3
Estimate 估计这个任务需要多少时间 5  3
Development 开发 76  130
Analysis 需求分析  10  5
Design Spec 生成设计文档  0
Design Review 设计复审(和同事审核设计文档)  5  0
Coding Standerd 代码规范(为目前的开发制定合适的规范) 5  15
Design 具体设计 10  20
Coding 具体编码 40 90
Code Review 代码复审 5  10
Text 测试(自测,修改代码,提交修改)  20  5
Reporting 报告  12  22
Text Report 测试报告 8  15
Size Measurement 计算工作量  5  2
Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 10  5
Sum 合计 216  325
posted @ 2020-09-28 14:49  五月123  阅读(107)  评论(0编辑  收藏  举报