一、需求分析

通过一个小程序随机出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语句进行编写设计

四、测试运行

20194666——自动生成四则运算题第一版报告

20194666——自动生成四则运算题第一版报告

 

  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

相关文章: