【Github项目地址】
https://github.com/axh10086/test
【PSP表格】
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
Planning | 计划 | 10 | |
· Estimate | · 估计这个任务需要多少时间 | 10 | |
Development | 开发 | 655 | |
· Analysis | · 需求分析 (包括学习新技术) | 30 | |
· Design Spec | · 生成设计文档 | 30 | |
· Design Review | · 设计复审 (和同事审核设计文档) | 10 | |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 5 | |
· Design | · 具体设计 | 40 | |
· Coding | · 具体编码 | 5h*60 | |
· Code Review | · 代码复审 | 1h*60 | |
· Test | · 测试(自我测试,修改代码,提交修改) | 3h*60 | |
Reporting | 报告 | 290 | |
· Test Report | · 测试报告+博客 | 4h*60 | |
· Size Measurement | · 计算工作量 | 10 | |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 40 | |
合计 | 955 |
【解题思路描述】
首先,用”import random” 和”random.randint(n,m)”来完成随机数的产生的生成运算。
与用户输入的答案进行匹配,判断对错
【设计实现过程】
该代码较简单,没有将四种运算分为四种单独的函数进行编程。
代码首先将四则运算包含在一个数组中,并且随机选择其中一种运算。随机生成两个十进制的整数,进行加减乘除四种运算。最后将用户输入的答案与正确答案进行比较。
【代码说明】
展示出项目关键代码,并解释思路与注释说明。
1 import random 2 opr = ['+','-','×','÷'] #四则运算的选择 3 jg = '0' 4 print('输入 "0000" 可退出') 5 while True: 6 fh = random.randint(0, 3) #fh可取0,1,2,3 7 n1 = random.randint(1, 10) #n1为1~10范围内的数 8 n2 = random.randint(1, 10) #n2为1~10范围内的数 9 rjg = 0 10 if fh == 0: #加法 11 rjg = n1 + n2 12 elif fh == 1: #减法 13 n1,n2 = max(n1,n2),min(n1,n2) #因为不能出现负数 所以用大的值减去小的值 14 rjg = n1 - n2 15 elif fh == 2:#乘法 16 rjg = n1 * n2 17 elif fh == 3:#除法 18 n1,n2 = max(n1,n2),min(n1,n2) 19 while n1 % n2 != 0:#只考虑整除的情况 20 n1 = random.randint(1, 10) 21 n2 = random.randint(1, 10) 22 n1,n2 = max(n1,n2),min(n1,n2)#保证用大的数除以小的数 23 rjg = int(n1 / n2) 24 25 print(n1, opr[fh], n2, '= ', end='')#输出题目 26 jg = input()#输入答案 27 if jg == '0000':#输入0000 意为退出 28 break 29 sr = int(jg) 30 if int(sr) == rjg:#如果输入答案与正确答案相等 则输出 正确 31 print('正确') 32 else: 33 print('错误,正确答案为:', rjg)
【测试运行】截图
【效能分析】
本代码十分简易 没有复杂的考虑到分数的四则运算 而只考虑了整数的实现 这是十分不足的地方
PSP表格记录下程序的各个模块上实际花费的时间
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
Planning | 计划 | 10 | 8 |
· Estimate | · 估计这个任务需要多少时间 | 10 | 8 |
Development | 开发 | 655 | 785 |
· Analysis | · 需求分析 (包括学习新技术) | 30 | 35 |
· Design Spec | · 生成设计文档 | 30 | 40 |
· Design Review | · 设计复审 (和同事审核设计文档) | 10 | 15 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 5 | 5 |
· Design | · 具体设计 | 40 | 60 |
· Coding | · 具体编码 | 300 | 420 |
· Code Review | · 代码复审 | 60 | 90 |
· Test | · 测试(自我测试,修改代码,提交修改) | 180 | 120 |
Reporting | 报告 | 290 | 330 |
· Test Report | · 测试报告+博客 | 4h*60 | 4.5h*60 |
· Size Measurement | · 计算工作量 | 10 | 10 |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 40 | 50 |
合计 | 955 | 1123 |