一、需求分析
通过一个小程序随机出10道100以内的四则运算发的题
(1)自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内
(2)剔除重复算式。 2 + 3 = 和 2 + 3 = 是重复算式 2 + 3 = 和 3 + 2 = 不属于重复算式
(3)题目数量可定制
(4)相关参数可控制
是否包含乘法和除法
操作数数值范围可控(如操作数 在100以内 还是1000以内)
操作数是否含负数
(5)生成的运算题存储到外部文件out.txt中
二 功能设计
1、基本功能:自动生成基本四则运算题库,题库难度和数量自己可以控制
2、扩展功能:系统单文件运行,自动生成题库。
三、 设计实现
使用python 语言,利用嵌套的if判断语句,以及while循环体 break语句进行编写设计
四、测试运行
1 if d == '+': 2 result1 = a + b 3 R = [a, d, b, result1] 4 L = R[0], R[1], R[2], R[3] 5 Q = R[2], R[1], R[0], R[3] 6 if result1 <= 100: 7 if L not in T: 8 if Q not in T: 9 print("%d、 %d %s %d = %d" % (count, a, d, b, result1)) 10 print("%d、 %d %s %d = %d" % (count, a, d, b, result1), file=doc) 11 T.append(L) 12 count += 1 13 else: 14 while 1: 15 a = random.randint(0, 2) 16 b = random.randint(0, 2) 17 result1 = a + b 18 R = [a, d, b, result1] 19 L = R[0], R[1], R[2], R[3] 20 Q = R[2], R[1], R[0], R[3] 21 if result1 <= 100: 22 if L not in T: 23 if Q not in T: 24 print("%d、 %d %s %d = %d" % (count, a, d, b, result1)) 25 print("%d、 %d %s %d = %d" % (count, a, d, b, result1), file=doc) 26 T.append(L) 27 break 28 count += 1 29 elif d == '-': 30 result2 = a - b 31 R = [a, d, b, result2] 32 L = R[0], R[1], R[2], R[3] 33 Q = R[2], R[1], R[0], R[3] 34 if result2 < 100: 35 if L not in T: 36 if Q not in T: 37 print("%d、 %d %s %d = %d" % (count, a, d, b, result2)) 38 print("%d、 %d %s %d = %d" % (count, a, d, b, result2), file=doc) 39 T.append(L) 40 count += 1 41 else: 42 while 1: 43 a = random.randint(0, 100) 44 b = random.randint(0, 100) 45 result2 = a - b 46 R = [a, d, b, result2] 47 L = R[0], R[1], R[2], R[3] 48 Q = R[2], R[1], R[0], R[3] 49 if result2 <= 100: 50 if L not in T: 51 if Q not in T: 52 print("%d、 %d %s %d = %d" % (count, a, d, b, result2)) 53 print("%d、 %d %s %d = %d" % (count, a, d, b, result2), file=doc) 54 T.append(L) 55 break 56 count += 1 57 elif d == '*': 58 result3 = a * b 59 R = [a, d, b, result3] 60 L = R[0], R[1], R[2], R[3] 61 Q = R[2], R[1], R[0], R[3] 62 if result3 < 100: 63 if L not in T: 64 if Q not in T: 65 print("%d、 %d %s %d = %d" % (count, a, d, b, result3)) 66 print("%d、 %d %s %d = %d" % (count, a, d, b, result3), file=doc) 67 T.append(L) 68 count += 1 69 else: 70 while 1: 71 a = random.randint(0, 100) 72 b = random.randint(0, 100) 73 result3 = a * b 74 R = [a, d, b, result3] 75 L = R[0], R[1], R[2], R[3] 76 Q = R[2], R[1], R[0], R[3] 77 if result3 <= 100: 78 if L not in T: 79 if Q not in T: 80 print("%d、 %d %s %d = %d" % (count, a, d, b, result3)) 81 print("%d、 %d %s %d = %d" % (count, a, d, b, result3), file=doc) 82 T.append(L) 83 break 84 count += 1 85 else: 86 result4 = a / b 87 R = [a, d, b, result4] 88 L = R[0], R[1], R[2], R[3] 89 Q = R[2], R[1], R[0], R[3] 90 if result4 < 100: 91 if L not in T: 92 if Q not in T: 93 print("%d、 %d %s %d = %d" % (count, a, d, b, result4)) 94 print("%d、 %d %s %d = %d" % (count, a, d, b, result4), file=doc) 95 T.append(L) 96 count += 1 97 else: 98 while 1: 99 a = random.randint(0, 100) 100 b = random.randint(0, 100) 101 result4 = a / b 102 R = [a, d, b, result4] 103 L = R[0], R[1], R[2], R[3] 104 Q = R[2], R[1], R[0], R[3] 105 if result4 <= 100: 106 if L not in T: 107 if Q not in T: 108 print("%d、 %d %s %d = %d" % (count, a, d, b, result4)) 109 print("%d、 %d %s %d = %d" % (count, a, d, b, result4), file=doc) 110 T.append(L) 111 break 112 count += 1
五、PSP撰写
| PSP2.1 | 任务内容 | 计划共完成需要的时间(min) | 实际完成需要的时间(min) |
| Planning | 计划 | 120 | 180 |
| Estimate | · 估计这个任务需要多少时间,并规划大致工作步骤 | 120 | 180 |
| Development | 开发 | 80 | 120 |
| Analysis | 需求分析 (包括学习新技术) | 20 | 20 |
| Design Spec | 生成设计文档 | 10 | 4 |
| Design Review | 设计复审 (和同事审核设计文档) | 10 | 10 |
| Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 1 | 1 |
| Design | 具体设计 | 3 | 10 |
| Coding | 具体编码 | 4 | 10 |
| Code Review | 代码复审 | 12 | 5 |
| Test | · 测试(自我测试,修改代码,提交修改) | 10 | 10 |
| Reporting | 报告 | 17 | 10 |
| Test Report | 测试报告 | 10 | 5 |
| Size Measurement | 计算工作量 | 10 | 5 |
| Postmortem & Process Improvement Plan | 事后总结 ,并提出过程改进计划 | 5 | 5 |