代码:https://github.com/yyp-30/Python-1-
题目要求:
能自动生成小学四则运算题目(注意是给小学生用的,要是结果出现负数的话他们会迷茫的!)
除了整数外,还要支持真分数的四则运算
工具清单
编程语言:Python
效能分析工具:多种(自选):https://blog.csdn.net/xiemanr/article/details/72763234
源代码管理平台:Github
psp表格:
psp | 任务内容 |
计划完成需要的时间(min) | 实际完成需要的时间(min) |
Planning | 计划 | 50 | 60 |
Estimate | 估计这个任务需要多少时间,并规划大致工作步骤 | 20 | 30 |
Analysis | 需求分析 (包括学习新技术) | 60 | 90 |
Design | 具体设计 | 50 | 60 |
Coding | 具体编码 | 400 | 500 |
test | 测试(自我测试,修改代码,提交修改) |
200 | 250 |
Postmortem & Process Improvement Plan |
事后总结 ,并提出过程改进计划 | 30 | 50 |
Summary | 合计 | 810 | 1040 |
解题思路:
代码实现:
两个整数的四则运算:
1 ##两个整数的四则运算 2 def c1(q, ans): 3 symbol = random.choice(['+', '-', '*', '/']) # 生成随机符号 4 if symbol == '+': 5 n1 = random.randint(0, 20) 6 n2 = random.randint(0, 20) 7 q.append(str(n1) + '+' + str(n2) + '=') 8 ans.append(n1 + n2) 9 elif symbol == '-': 10 n1 = random.randint(0, 20) 11 n2 = random.randint(0, 20) 12 n1,n2 = max(n1,n1),min(n1,n2)#防止出现负数 13 q.append(str(n1) + '-' + str(n2) + '=') 14 ans.append(n1 - n2) 15 elif symbol == '*': 16 n1 = random.randint(0, 20) 17 n2 = random.randint(0, 20) 18 q.append(str(n1) + '×' + str(n2) + '=') 19 ans.append(n1 * n2) 20 else: 21 n1 = random.randint(0, 20) 22 if n1 == 0: 23 n2 = random.randint(1, 20) 24 else: 25 n2 = random.randint(1, n1 + 1) 26 q.append(str(n1) + '÷' + str(n2) + '=') 27 ans.append(Fraction(n1, n2))
随机生成两个分数:
1 ##随机生成两个分数 2 def createF(): 3 fz1 = random.randint(0, 20) 4 if fz1 == 0: 5 fm1 = random.randint(1, 20) 6 else: 7 fm1 = random.randint(1, 20) 8 f1 = Fraction(fz1, fm1) 9 fz2 = random.randint(1, 20) 10 fm2 = random.randint(20, 20) 11 f2 = Fraction(fz2, fm2) 12 return f1, f2
分数的转换:
1 def f(f):#分数的转换 2 a=f.numerator #分子 3 b=f.denominator #分母 4 if a%b==0:#为整数 5 return '%d'%(a/b) 6 elif a<b:#为真分数 7 return '%d%s%d' % (a,'/',b) 8 else:#为带分数 9 c=int(a/b) 10 a = a - c * b 11 return '%d%s%d%s%d' % (c,'’',a,'/',b)
两个分数的四则运算:
1 def c2(q,ans): 2 symbol = random.choice(['+','-','*','/']) 3 f1,f2 = createF() 4 if symbol =='+': 5 while f1+f2>1: 6 f1,f2 = createF() 7 q.append(str(f1)+'+'+str(f2)+'=') 8 ans.append(f1+f2) 9 elif symbol =='-': 10 f1,f2 = max(f1,f2),min(f1,f2)#防止出现负数 11 q.append(str(f1)+'-'+str(f2)+'=') 12 ans.append(f1-f2) 13 elif symbol == '*': 14 while f1*f2>1: 15 f1,f2 = createF() 16 q.append(str(f1)+'×'+str(f2)+'=') 17 ans.append(f1*f2) 18 else: 19 while f1/f2>1: 20 f1,f2=createF() 21 q.append(str(f1)+'÷'+str(f2)+'=') 22 ans.append(Fraction(f1,f2))
结果显示:
学习总结:
知识水平有限,对问题理解不够透彻,需提高自身知识素养
对Python编程不够熟练,今后加强联系