四则运算的升级
题目要求:自动生成小学四则运算题目,加法,减法,乘法,除法求余等运算。
运行环境: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 | 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 |