四则运算
---恢复内容开始---
题目
1、能自动生成四则运算题目(不能出现小数)
2、除了整数外,能支持分数运算。
1、解题思路
(1)刚拿到题目,我认为应从简单的整数运算开始。运用列表存储运算符,用random函数产生0-3的运算符,以决定产生的运算式子是哪种运算符。随后随机产生两个数进行运算。一次循环产生用户需要的题目数量。其次,还进行运算,给出答案。由于不能产生负数,应注意在减法运算时,要把随机产生的较大数赋值给被减数,叫小数赋值给减数。除法运算中除数不能是0.2、解题思路
(2)在进行分数运算时 ,用到fraction函数以生成分数。
2、函数组成
该程序包括三个三个函数。其中newint()用于整数四则运算,newfra()用于分数四则运算,newtest():用于产生式子。
3、代码
from fractions import Fraction import random def newint():#整数四则运算 opr = ['+', '-', '×', '÷'] fh = random.randint(0, 3) n1 = random.randint(0, 100) n2 = random.randint(0, 100) rjg = 0 if fh == 0: rjg = n1 + n2 elif fh == 1: n1, n2 = max(n1, n2), min(n1, n2) rjg = n1 - n2 elif fh == 2: rjg = n1 * n2 elif fh == 3: n1, n2 = max(n1, n2), min(n1, n2) while n1 % n2 != 0: n1 = random.randint(0, 100) n2 = random.randint(0, 100) n1, n2 = max(n1, n2), min(n1, n2) rjg = int(n1 / n2) print(n1, opr[fh], n2, '= ', end='') return rjg def newfra():#分数四则运算 opr = ['+', '-', '×', '÷'] fh = random.randint(0, 3) t1 = random.randint(1, 100) t2 = random.randint(t1, 100) n1 = Fraction(t1, t2) t1 = random.randint(1, 100) t2 = random.randint(t1, 100) n2 = Fraction(t1, t2) rjg = 0 if fh == 0: rjg = n1 + n2 elif fh == 1: n1, n2 = max(n1, n2), min(n1, n2) rjg = n1 - n2 elif fh == 2: rjg = n1 * n2 elif fh == 3: n1, n2 = max(n1, n2), min(n1, n2) rjg = n1 / n2 print(n1, opr[fh], n2, '= ', end='') return rjg def newtest(): opr = ['+', '-', '×', '÷'] print('输入题库所需要的题目数量') n=int(input()) rjg=[] m=0 while m<=(n-1): fh = random.randint(0, 1)#大概一半整数运算,一半分数运算 if fh==0: print(m+1,end='、') rjg.append(newfra()) print(' ') else: print(m+1,end='、') rjg.append(newint()) print(' ') m=m+1 m=0 print('答案:') while m<=(n-1): print(m+1,'、',rjg[m]) m=m+1 newtest()
4、运算结果

5、改进
可在代码中加入算法实现:记录学生容易错的题型,以更高的概率出易错题。
6、时间
| 内容 | 预估耗时(分钟) | 实际耗时(分钟) |
| 估计这个任务需要多长时间 | 150 | 150 |
| 需求分析 | 10 | 10 |
| 生成设计文档 | 10 | 10 |
| 设计复审 | 10 | 10 |
| 代码规范 | 10 | 10 |
| 具体设计 | 30 | 30 |
| 代码复审 | 10 | 10 |
| 测试 | 10 | 10 |
| 测试报告 | 10 | 10 |
| 计算工作量 | 10 | 10 |
| 事后总结,并提出过程改进计划 | 10 | 10 |
浙公网安备 33010602011771号