四则运算
Github地址:https://github.com/sjzsjzsjz/jisuan
PSP表格:
|
|
预测时间(分钟) |
nning |
计划 |
2 |
Estimate |
估计这个任务需要多少时间 |
120 |
Development |
开发 |
10 |
Analysis |
需求分析 |
10 |
Design Spec |
生成设计文档 |
3 |
Design Review |
设计复审(和同事审核设计文档) |
2 |
Coding Standerd |
代码规范(为目前的开发制定合适的规范) |
1 |
Design |
具体设计 |
5 |
Coding |
具体编码 |
60 |
Code Review |
代码复审 |
10 |
Text |
测试(自测,修改代码,提交修改) |
5 |
Reporting |
报告 |
10 |
Text Report |
测试报告 |
10 |
Size Measurement |
计算工作量 |
5 |
Postmortem & Process Improvement Plan |
事后总结,并提出过程改进计划 |
10 |
解题思路描述:
(1) 思考如何随机生成四则运算表达式
(2) 查阅相关博客,了解效能分析所用工具
(3) 学习所用到的类库,如random库
设计实现过程:
这个四则运算表达式由三个函数实现,分别为create1()、create2()、calcul(),前两个函数负责生成表达式,最后一个表达式负责计算结果。
代码说明:
def create1(t):
s1=random.randint(1,10)
s2=random.randint(1,10)
s3=random.choice(['+','-','*','/'])
calcul(s1,s2,s3,t)
def create2(t):
s1=random.randint(1,10)
s2=random.randint(s1,11)
s3=random.randint(1,10)
s4=random.randint(s3,11)
s5=random.choice(['+','-'])
sr="第"+str(t)+"题:"+str(s1)+'÷'+str(s2)+s5+str(s3)+'÷'+str(s4)+'='
l1.append(sr)
if s5=='+':
l2.append(s1/s2+s3/s4)
else:
if s1/s2-s3/s4>0:
l2.append(s1/s2-s3/s4)
else:
sr="第"+str(t)+"题:"+str(s3)+'÷'+str(s4)+s5+str(s1)+'÷'+str(s2)+'='
l2.append(s3/s4-s1/s2)
def calcul(s1,s2,s3,t):
sr="第"+str(t)+"题:"+str(s1)+s3+str(s2)+'='
if s3=='+':
l2.append(s1+s2)
elif s3=='-':
if s1>=s2:
l2.append(s1-s2)
else:
sr="第"+str(t)+"题:"+str(s2)+s3+str(s1)+'='
l2.append(s2-s1)
elif s3=='*':
sr="第"+str(t)+"题:"+str(s1)+'x'+str(s2)+'='
l2.append(s1*s2)
elif s3=='/':
sr="第"+str(t)+"题:"+str(s1)+'÷'+str(s2)+'='
l2.append(s1/s2)
l1.append(sr)
测试运行:
性能分析:
这个程序通过使用cProfile和time模块来测试程序的性能
PSP表格:
|
|
实际时间(分钟) |
nning |
计划 |
10 |
Estimate |
估计这个任务需要多少时间 |
180 |
Development |
开发 |
10 |
Analysis |
需求分析 |
10 |
Design Spec |
生成设计文档 |
3 |
Design Review |
设计复审(和同事审核设计文档) |
2 |
Coding Standerd |
代码规范(为目前的开发制定合适的规范) |
1 |
Design |
具体设计 |
5 |
Coding |
具体编码 |
90 |
Code Review |
代码复审 |
20 |
Text |
测试(自测,修改代码,提交修改) |
5 |
Reporting |
报告 |
30 |
Text Report |
测试报告 |
10 |
Size Measurement |
计算工作量 |
5 |
Postmortem & Process Improvement Plan |
事后总结,并提出过程改进计划 |
10 |